# DC0010 - OS API Execution
## Descrição
OS API Execution monitora chamadas diretas a APIs do sistema operacional, especialmente aquelas em nível mais baixo (syscalls e APIs nativas do Windows como `NtCreateProcess`, `NtAllocateVirtualMemory`, `NtWriteVirtualMemory`). Adversários abusam dessas APIs para contornar hooks de EDR que operam em nível de user-mode API, executar código injetado em outros processos, manipular tokens de segurança e realizar operações de credential dumping sem acionar assinaturas tradicionais.
### Pipeline de Detecção
```mermaid
graph TB
A["📥 Fonte de Dados<br/>ETW Kernel Providers<br/>EDR API Hooking"] --> B["🔄 Coleta<br/>CrowdStrike / SentinelOne<br/>Defender for Endpoint"]
B --> C["📊 Normalização<br/>API name, caller process,<br/>target process, parameters"]
C --> D["🔍 Correlação<br/>Sequência de APIs<br/>(alloc > write > thread)"]
D --> E["⚠️ Regras de Detecção<br/>Injection chain,<br/>direct syscall bypass"]
E --> F["🚨 Alerta<br/>SOC Tier 2/3 - Avançado"]
F --> G["📋 Resposta<br/>Análise de malware +<br/>Threat hunting"]
classDef source fill:#3498db,stroke:#2c3e50,color:#ecf0f1
classDef process fill:#2ecc71,stroke:#2c3e50,color:#ecf0f1
classDef alert fill:#e74c3c,stroke:#2c3e50,color:#ecf0f1
class A source
class B,C,D process
class E,F,G alert
```
## Fonte de Dados
Parent: [[ds0009-process|DS0009 - Process]]
## O Que Monitorar
- Chamadas a APIs de alocação de memória em processos remotos (`VirtualAllocEx`, `NtAllocateVirtualMemory`)
- Uso de `WriteProcessMemory` / `NtWriteVirtualMemory` em processos de terceiros
- Chamadas a `CreateRemoteThread` / `NtCreateThreadEx` para injeção de threads
- APIs de manipulação de token: `DuplicateToken`, `ImpersonateLoggedOnUser`, `SetThreadToken`
- Chamadas diretas via syscall para bypassar hooks de EDR (Hell's Gate, Halo's Gate)
- Uso de `MiniDumpWriteDump` para extrair credenciais da memória
- Carregamento de DLLs em processos via `LoadLibraryEx` ou `LdrLoadDll`
## Técnicas Detectadas
| Técnica | ID | Como Detectar |
|---------|-----|---------------|
| Native API | [[t1106-native-api\|T1106]] | Chamadas diretas a Nt* APIs fora do padrão normal |
| Process Injection | [[t1055-process-injection\|T1055]] | Sequência: VirtualAllocEx > WriteProcessMemory > CreateRemoteThread |
| Process Hollowing | [[t1055-process-injection\|T1055.012]] | NtUnmapViewOfSection seguido de NtWriteVirtualMemory |
| Access Token Manipulation | [[t1134-access-token-manipulation\|T1134]] | Chamadas a APIs de impersonation e token duplication |
| OS Credential Dumping | [[t1003-os-credential-dumping\|T1003]] | MiniDumpWriteDump, NtReadVirtualMemory em lsass |
## Implementação
**API Monitoring via EDR:** CrowdStrike Falcon, SentinelOne e Microsoft Defender for Endpoint instrumentam chamadas de API em modo kernel para detecção sem hooks userland.
**ETW (Event Tracing for Windows):** Monitorar provider `Microsoft-Windows-Kernel-Process` e `Microsoft-Windows-Kernel-Memory` para chamadas de API de baixo nível.
**Ferramenta API Monitor:** Para ambientes de análise/sandbox, usar API Monitor para capturar todas as chamadas de API de processos suspeitos.
**Regra de correlação:**
```
# Sequência clássica de injeção de processo
VirtualAllocEx (MEM_COMMIT|PAGE_EXECUTE_READWRITE)
-> WriteProcessMemory
-> CreateRemoteThread
```
**Ferramentas:** CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint, Elastic Endpoint, Frida (análise dinâmica).
## Detecção KQL (Microsoft Sentinel / Defender)
```kql
// Sequência de injeção de processo via APIs
DeviceEvents
| where ActionType in ("CreateRemoteThreadApiCall", "QueueUserApcRemoteApiCall", "SetThreadContextRemoteApiCall")
| where InitiatingProcessFileName !in~ ("svchost.exe", "csrss.exe", "lsass.exe")
| project Timestamp, DeviceName, ActionType, InitiatingProcessFileName, FileName, InitiatingProcessCommandLine
| order by Timestamp desc
```
```kql
// Direct syscall evasion - processos sem import table normal
DeviceImageLoadEvents
| where FileName =~ "ntdll.dll"
| where InitiatingProcessFileName !in~ ("svchost.exe", "services.exe", "csrss.exe")
| summarize LoadCount = count() by InitiatingProcessFileName, DeviceName, bin(Timestamp, 1h)
| where LoadCount > 10
```
## Contexto LATAM
> [!latam] Relevância Regional
> OS API Execution é o data component mais avançado e de menor adoção em SOCs brasileiros. Requer EDR com instrumentação de kernel-level, o que limita a cobertura a organizações com orçamento para soluções como CrowdStrike ou SentinelOne. Trojans bancários brasileiros (Grandoreiro, Guildma, Javali) utilizam extensivamente process injection via APIs nativas, tornando esta detecção crítica apesar da baixa adoção.
> - Adoção em SOCs brasileiros: **muito baixo**
> - Ferramentas comuns: CrowdStrike Falcon (em grandes bancos), Microsoft Defender for Endpoint (em empresas com E5), SentinelOne
> - Desafios: requer EDR com telemetria de kernel (custo elevado para mercado brasileiro); analistas precisam de conhecimento avançado de Windows internals; técnicas de evasão como direct syscall (Hell's Gate) contornam a maioria dos EDRs disponíveis; sandbox analysis raramente utilizado fora de grandes instituições financeiras