# DC0022 - File Access
> [!info] Monitora operações de leitura em arquivos existentes sem modificá-los. Essencial para detectar coleta de credenciais (SAM, NTDS.dit), acesso a dados sensíveis e reconhecimento por enumeração de arquivos.
## Descrição
File Access monitora operações de leitura e acesso a arquivos existentes, capturando qual processo leu quais arquivos e quando. Diferente de File Creation e File Modification, foca em operações de leitura que não alteram o arquivo. É essencial para detectar coleta de dados sensíveis (credenciais, documentos confidenciais), acesso a arquivos de configuração de segurança, leitura de bases de dados de senhas do sistema (SAM, NTDS.dit, /etc/shadow) e operações de reconhecimento por enumeração de arquivos.
## Fonte de Dados
Parent: [[ds0022-file|DS0022 - File]]
## Pipeline de Detecção
```mermaid
graph TB
A["📂 Event ID 4663<br/>Objeto Acessado"] --> B["🗂️ Arquivo Alvo<br/>Identificado"]
B --> C{"🎯 Arquivo<br/>Crítico?"}
C -->|SAM / NTDS.dit| D["🚨 Alerta P1<br/>Credential Dumping"]
C -->|shadow / passwd| E["🚨 Alerta P1<br/>Linux Creds Acesso"]
C -->|Documento Sensível| F{"🔢 Volume de<br/>Acesso?"}
F -->|Alto Volume| G["🚨 Alerta P2<br/>Possível Exfiltração"]
F -->|Normal| H["✔️ Acesso<br/>Legítimo"]
classDef p1 fill:#e74c3c,color:#ecf0f1
classDef p2 fill:#e67e22,color:#ecf0f1
classDef ok fill:#2ecc71,color:#2c3e50
classDef proc fill:#2c3e50,color:#ecf0f1
class D,E p1
class G p2
class H ok
class A,B,C,F proc
```
## O Que Monitorar
- Windows Event ID 4663 (Objeto acessado) com SACL configurado nos arquivos alvo
- Acesso ao arquivo SAM: `C:\Windows\System32\config\SAM`
- Acesso ao arquivo NTDS.dit em Domain Controllers
- Leitura de arquivos de credenciais: `unattend.xml`, `web.config`, `.env`, `id_rsa`
- Acesso em massa a documentos sensíveis por processo incomum
- Leitura de arquivos de histórico de terminal (`.bash_history`, `ConsoleHost_history.txt`)
- Acesso a arquivos de configuração de aplicações com senhas (ex: `wp-config.php`)
## Técnicas Detectadas
| Técnica | ID | Como Detectar |
|---------|-----|---------------|
| Data from Local System | [[t1005-data-from-local-system\|T1005]] | Acesso em massa a documentos por processo incomum |
| OS Credential Dumping | [[t1003-os-credential-dumping\|T1003]] | Acesso a SAM, NTDS.dit, /etc/shadow |
| File and Directory Discovery | [[t1083-file-and-directory-discovery\|T1083]] | Enumeração sistemática de diretórios e arquivos |
| Unsecured Credentials | [[t1552-unsecured-credentials\|T1552]] | Leitura de arquivos de config com senhas em texto claro |
## Implementação
**Windows - configurar SACL em arquivos críticos:**
```powershell
# Adicionar auditoria de leitura ao arquivo SAM
$acl = Get-Acl "C:\Windows\System32\config\SAM"
$audit = New-Object System.Security.AccessControl.FileSystemAuditRule("Everyone","ReadData","Success")
$acl.AddAuditRule($audit)
Set-Acl "C:\Windows\System32\config\SAM" $acl
```
**Linux - monitorar via auditd:**
```
-w /etc/shadow -p r -k credential_access
-w /etc/passwd -p r -k credential_access
```
**FIM para arquivos sensíveis:** Configurar alertas de acesso (não apenas modificação) para arquivos de credenciais críticos.
**Ferramentas:** Wazuh FIM, Tripwire, Qualys, Microsoft Defender for Endpoint, CrowdStrike Falcon, auditd.
## Consultas KQL — Microsoft Sentinel / Defender
### Acesso a Arquivos de Credenciais do Sistema
```kql
// DC0022 - Acesso a SAM, NTDS.dit e arquivos de credenciais críticos
DeviceFileEvents
| where Timestamp > ago(1d)
| where ActionType == "FileRead"
| where (
FolderPath has @"C:\Windows\System32\config\"
and FileName in~ ("SAM", "SYSTEM", "SECURITY")
)
or FileName =~ "ntds.dit"
or FileName in~ ("unattend.xml", "Unattend.xml", "sysprep.inf")
| where InitiatingProcessFileName !in~ (
"lsass.exe", "smss.exe", "wininit.exe",
"svchost.exe", "services.exe"
)
| project
Timestamp,
DeviceName,
FileName,
FolderPath,
InitiatingProcessFileName,
InitiatingProcessCommandLine,
InitiatingProcessAccountName,
SHA256
| order by Timestamp desc
```
### Acesso em Massa a Documentos - Possível Coleta/Exfiltração
```kql
// DC0022 - Alto volume de acesso a arquivos de escritório em curto período
DeviceFileEvents
| where Timestamp > ago(1d)
| where ActionType == "FileRead"
| where FileName has_any (".docx", ".xlsx", ".pdf", ".pptx", ".doc", ".xls")
| where InitiatingProcessFileName !in~ (
"winword.exe", "excel.exe", "acrobat.exe",
"acrord32.exe", "OUTLOOK.EXE", "WINWORD.EXE"
)
| summarize
files_accessed = count(),
unique_folders = dcount(FolderPath),
file_list = make_set(FileName, 20)
by DeviceName, InitiatingProcessFileName, InitiatingProcessAccountName,
bin(Timestamp, 15m)
| where files_accessed > 50 or unique_folders > 10
| order by files_accessed desc
```
## Contexto LATAM
> [!latam] Relevância Regional
> **Acesso a credenciais e documentos sensíveis é etapa central de ataques a organizações brasileiras.** O NTDS.dit — banco de dados do Active Directory — é alvo prioritário em ataques a empresas de médio porte no Brasil, onde um único DC centraliza autenticação de toda a organização. Grupos de ransomware documentados em ataques ao Brasil (2024-2025) realizam dump do NTDS.dit como rotina antes do deployment do payload para garantir persistência pós-recovery. No setor bancário brasileiro, o acesso a arquivos de configuração de aplicações web (`web.config`, `.env`) é vetor de comprometimento de chaves de API e credenciais de banco de dados. O **Wazuh** — solução open-source popular em SOCs brasileiros — oferece FIM (File Integrity Monitoring) capaz de detectar esses acessos sem custo de licença.
## Referências
- [MITRE ATT&CK - DS0022 File](https://attack.mitre.org/datasources/DS0022/)
- [Windows File Auditing - Microsoft](https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/event-4663)
- [Wazuh FIM Documentation](https://documentation.wazuh.com/current/user-manual/capabilities/file-integrity/index.html)
- [NTDS.dit Extraction - CERT.br](https://www.cert.br/)