# DS0024 — Windows Registry ## Visão Geral **Gap 1 — SACLs não configuradas** A auditoria de Registry via Event 4657 requer que SACLs sejam configuradas nas chaves de interesse. Sem SACL, nenhum evento é gerado — independente da política de auditoria estar habilitada. Menos de 20% dos ambientes Windows auditados em LATAM têm SACLs adequadas configuradas. **Gap 2 — Volume de eventos vs. capacidade de ingestão** O Registry gera um volume extremamente alto de eventos quando auditoria ampla está habilitada. Muitos SIEMs LATAM têm limites de ingestão que levam as equipes a desabilitar a auditoria de Registry completamente. **Gap 3 — Sysmon sem regras de Registry** Mesmo com Sysmon implantado, configurações minimalistas frequentemente omitem eventos de Registry (IDs 12, 13, 14) por questões de volume. Isso elimina a principal fonte de visibilidade sobre persistência. **Gap 4 — Chaves menos conhecidas não monitoradas** Equipes focam em `CurrentVersion\Run` mas ignoram vetores como `AppInit_DLLs`, `Image File Execution Options` (IFEO debugger hijacking), `Winlogon\Userinit` e COM hijacking — todos utilizados por APTs modernos. **Gap 5 — Ausência de baseline de Registry** Sem um baseline do estado "limpo" do Registry, é difícil identificar modificações anômalas. Ferramentas como RegShot ou Autoruns deveriam ser usadas periodicamente para estabelecer e comparar baselines. **Recomendações:** - Usar o script PowerShell acima para inventariar Run keys semanalmente e comparar com baseline - Implantar Sysmon com regras específicas para Registry (IDs 12, 13, 14) focadas em chaves críticas - Considerar Wazuh como solução de FIM de Registry de baixo custo adequada para o mercado LATAM - Executar Autoruns periodicamente e exportar resultados para correlação no SIEM ## Descrição O Windows Registry é um banco de dados hierárquico do sistema operacional Windows que armazena configurações de software, dispositivos de hardware, preferências de usuário e parâmetros do sistema operacional. Sua estrutura é organizada em "hives" (colmeias) como `HKEY_LOCAL_MACHINE` (HKLM), `HKEY_CURRENT_USER` (HKCU), `HKEY_CLASSES_ROOT` e `HKEY_USERS`, cada uma contendo chaves, subchaves e valores de configuração. Do ponto de vista de segurança ofensiva, o Registry é um dos principais mecanismos de persistência no Windows. Chaves como `HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`, `HKCU\...\Run`, e run keys em chaves de serviços são locais clássicos onde malware estabelece persistência de inicialização. Além disso, o Registry armazena credenciais em cache, configurações de serviços remotos, chaves de criptografia e configurações de segurança — tornando-o alvo de coleta de informações por adversários em estágios de pós-comprometimento. A auditoria do Registry é fundamental para detectar persistência, escalação de privilégios e evasão de defesas. A maioria dos ransomwares modernos que operam no Brasil — incluindo grupos que visam o setor financeiro e saúde — utiliza chaves de Run para garantir execução após reinicialização, tornando o monitoramento desta fonte de dados crítico para equipes de resposta. ```mermaid graph TB A["🗂️ Windows Registry<br/>HKLM / HKCU / HKCR<br/>Hives e subchaves"] --> B["📋 Auditoria Nativa<br/>EID 4657 Valor modificado<br/>EID 4660 Chave excluída"] A --> C["🔍 Sysmon ID 12/13/14<br/>Key Creaté/Delete<br/>Value Set / Rename"] B --> D["📥 SIEM<br/>Correlação com baseline<br/>Sigma Registry rules"] C --> D D --> E{"🎯 Detecção<br/>Run Key nova?<br/>IFEO / AppInit_DLLs?<br/>Defender desabilitado?"} E -->|"Persistência"| F["🚨 Alerta SOC<br/>T1547.001 / T1112<br/>T1003 / T1562.001"] E -->|"Legítimo"| G["✅ Baseline aprovado<br/>Autoruns referência"] ``` ## Componentes de Dados | Componente | ID MITRE | Descrição | Eventos Relevantes | |-----------|----------|-----------|-------------------| | Registry Key Creation | [[dc0056-windows-registry-key-creation\|DC0056]] | Nova chave criada (ex: chave de persistência Run) | Sysmon ID 12, Windows 4657 (SetValue) | | Registry Key Deletion | [[dc0045-windows-registry-key-deletion\|DC0045]] | Remoção de chave (limpeza de rastros, anti-forense) | Sysmon ID 12 (destroy), Windows 4660 | | Registry Key Modification | [[dc0063-windows-registry-key-modification\|DC0063]] | Alteração de valor existente (config tampering) | Sysmon ID 13, Windows 4657 | | Registry Key Access | [[dc0050-windows-registry-key-access\|DC0050]] | Leitura de chave (coleta de credenciais, recon) | Windows 4656, 4663 (Object Access) | ## Como Coletar ### Windows — Auditoria Nativa ``` Pré-requisito: habilitar auditoria de Object Access auditpol /set /subcategory:"Registry" /success:enable /failure:enable Event IDs relevantes: 4656 — Handle solicitado para chave de registro 4657 — Valor de registro modificado (mais direto que 4656) 4658 — Handle de chave de registro fechado 4660 — Chave de registro excluída 4663 — Tentativa de acesso a chave de registro Pré-requisito: configurar SACL nas chaves críticas via regedit ou GPO: - HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run - HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options - HKLM\SYSTEM\CurrentControlSet\Services - HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run ``` ### Windows — Sysmon ```yaml # Sysmon Event IDs para Registry: # 12 — RegistryEvent (Key Creaté/Delete) # 13 — RegistryEvent (Value Set) # 14 — RegistryEvent (Key/Value Rename) # Configuração para chaves de persistência críticas: <EventFiltering> <RuleGroup name="Registry Persistence" groupRelation="or"> <RegistryEvent onmatch="include"> <!-- Run Keys — persistência clássica --> <TargetObject condition="contains">CurrentVersion\Run</TargetObject> <!-- Image File Execution Options — debugger hijacking --> <TargetObject condition="contains">Image File Execution Options</TargetObject> <!-- AppInit DLLs — injeção em processos --> <TargetObject condition="contains">AppInit_DLLs</TargetObject> <!-- Services — persistência via serviço --> <TargetObject condition="contains">CurrentControlSet\Services</TargetObject> <!-- Winlogon — hooking de logon --> <TargetObject condition="contains">Winlogon</TargetObject> <!-- COM hijacking --> <TargetObject condition="contains">InprocServer32</TargetObject> </RegistryEvent> </RuleGroup> </EventFiltering> ``` ### Auditpol — Configuração via GPO ``` GPO path: Computer Configuration → Windows Settings → Security Settings → Advanced Audit Policy Configuration → Object Access → Audit Registry Recomendação: habilitar Success + Failure para ambientes com alta sensibilidade ``` ### PowerShell — Monitoramento e Inventário ```powershell # Inventariar chaves de persistência Run $runKeys = @( "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" ) foreach ($key in $runKeys) { if (Test-Path $key) { Get-ItemProperty -Path $key | Select-Object * -ExcludeProperty PS* } } # Monitoramento de mudanças com .NET WMI $query = "SELECT * FROM RegistryKeyChangeEvent WHERE Hive='HKEY_LOCAL_MACHINE' AND KeyPath='SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run'" Register-WMIEvent -Query $query -Action { Write-Host "Run key modificada!" } ``` ### Ferramentas Complementares | Ferramenta | Uso | |-----------|-----| | **Autoruns** (Sysinternals) | Inventário completo de pontos de auto-execução via Registry | | **RegShot** | Comparação de snapshots do Registry (antes/depois de execução suspeita) | | **Wazuh** | FIM de Registry via agente — alertas em tempo real | | **Velociraptor** | Coleta forense de artefatos de Registry em escala | ## Técnicas Detectadas | Técnica | Tática | Como DS0024 Detecta | |---------|--------|-------------------| | [[t1547-001-registry-run-keys-startup-folder\|T1547.001 — Registry Run Keys / Startup Folder]] | Persistence | Criação/modificação de chaves Run (Sysmon ID 13, Event 4657) | | [[t1112-modify-registry\|T1112 — Modify Registry]] | Defense Evasion | Modificação de chaves de configuração de segurança, UAC, Defender | | [[t1574-012-ctp-hijacking\|T1574.012 — CTPHijacking via COM]] | Privilege Escalation | Modificação de InprocServer32 para DLL maliciosa | | [[t1003-os-credential-dumping\|T1003 — OS Credential Dumping]] | Credential Access | Acesso a HKLM\SAM, HKLM\SECURITY (LSA secrets) | | [[t1562-001-disable-or-modify-tools\|T1562.001 — Disable or Modify Tools]] | Defense Evasion | Modificação de chaves do Windows Defender, Firewall, Sysmon | ## Gaps de Cobertura Brasil/LATAM > [!warning] Registry: Alta Relevância, Baixa Cobertura no Brasil > O Registry é a fonte de dados mais relevante para detecção de persistência no Windows — e ao mesmo tempo uma das menos monitoradas em SOCs brasileiros. ## Referências - [[dc0056-windows-registry-key-creation|DC0056 — Windows Registry Key Creation]] - [[dc0045-windows-registry-key-deletion|DC0045 — Windows Registry Key Deletion]] - [[dc0063-windows-registry-key-modification|DC0063 — Windows Registry Key Modification]] - [[dc0050-windows-registry-key-access|DC0050 — Windows Registry Key Access]] - [[t1547-001-registry-run-keys-startup-folder|T1547.001 — Registry Run Keys / Startup Folder]] - [[t1112-modify-registry|T1112 — Modify Registry]] - [[t1003-os-credential-dumping|T1003 — OS Credential Dumping]] - [MITRE ATT&CK — DS0024 Windows Registry](https://attack.mitre.org/datasources/DS0024/) - [Microsoft — Registry Auditing Events](https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4657)