# 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)