# DC0021 — OS API Execution
## Descrição
O **OS API Execution** registra chamadas feitas por processos às interfaces de programação fornecidas pelo sistema operacional — as Windows API (WinAPI), syscalls Linux, macOS Cocoa/Darwin frameworks, entre outras. Essas chamadas são o mecanismo fundamental pelo qual qualquer programa interage com recursos do sistema: alocar memória, abrir arquivos, estabelecer conexões de rede, criar threads, etc.
Do ponto de vista defensivo, o monitoramento de chamadas de API é extremamente valioso porque revela a **intenção** de um processo. Um processo que chama `VirtualAllocEx` seguido de `WriteProcessMemory` e `CreateRemoteThread` está quase certamente realizando injeção de código — independentemente de seu nome ou assinatura. Esse padrão comportamental é mais difícil de ofuscar do que indicadores estáticos como hashes ou strings.
O [[t1106-native-api|T1106-native-api]] descreve específicamente o uso de chamadas de API de baixo nível (syscalls diretas, como `NtAllocateVirtualMemory` em vez de `VirtualAlloc`) para contornar hooks de segurança instalados por EDRs no userland. Adversários sofisticados como o [[g0032-lazarus-group]] e [[g0016-apt29]] utilizam syscalls diretas ou a técnica "Hell's Gaté" para evitar monitoramento de API por soluções de segurança que hookam funções na `ntdll.dll`.
O monitoramento de OS API Execution geralmente requer instrumentação especializada: ETW (Event Tracing for Windows), API Monitor, ou recursos de EDR como hooks no userland. O Microsoft Defender for Endpoint e CrowdStrike Falcon capturam sequências de API relevantes, mas a cobertura completa exige tuning cuidadoso para evitar volumes excessivos de telemetria.
## Telemetria
| Plataforma | Event ID | Descrição | Log Source |
|---|---|---|---|
| Windows | ETW Microsoft-Windows-Kernel-Process | Chamadas de API do kernel | ETW |
| Windows | ETW Microsoft-Antimalware-Scan-Interface | AMSI — chamadas de script/API monitoradas | ETW / AMSI |
| Windows | Sysmon 10 | ProcessAccess — acesso a processo via API `OpenProcess` | Sysmon |
| Linux | Auditd `syscall` | Registro de syscalls por processo | Auditd |
| Linux | `strace`/`ltrace` | Rastreamento de chamadas de sistema e biblioteca | strace |
| macOS | `dtrace` / ESF | Rastreamento de chamadas de sistema e eventos de processo | DTrace / ESF |
## Queries de Detecção
### KQL — Azure Sentinel / Microsoft Defender
```kql
// Detecção de sequência de API suspeita: alloc + write + exec remoto
DeviceEvents
| where ActionType in ("VirtualAllocRemoteApiCall", "WriteProcessMemoryApiCall", "CreateRemoteThreadApiCall")
| summarize apis=make_set(ActionType), count=count() by DeviceName, InitiatingProcessFileName,
InitiatingProcessId, bin(Timestamp, 5m)
| where array_length(apis) >= 2
| where apis has "VirtualAllocRemoteApiCall" and apis has "WriteProcessMemoryApiCall"
| order by Timestamp desc
```
### SPL — Splunk
```spl
index=windows source=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational
| eval api_sequence=mvappend(GrantedAccess)
| where EventCode=10
| where GrantedAccess IN ("0x1fffff", "0x1f0fff", "0x143a")
| stats count, values(GrantedAccess) as access_mask by Computer, SourceImage, TargetImage
| where count > 3
| sort - count
```
## Técnicas Relacionadas
| Técnica | Nome | Relevância |
|---|---|---|
| [[t1055-process-injection\|T1055-process-injection]] | Process Injection | Sequências de API (`VirtualAllocEx` + `WriteProcessMemory` + `CreateRemoteThread`) |
| [[t1106-native-api\|T1106-native-api]] | Native API | Uso direto de syscalls para bypass de hooking de userland |
| [[t1027-obfuscated-files-or-information\|T1027-obfuscated-files-or-information]] | Obfuscated Files or Information | APIs de decodificação/decriptação (ex.: `CryptDecrypt`, `RtlDecompressBuffer`) |
## Contexto LATAM
> [!globe] Relevância Regional
> A cobertura de OS API Execution em ambientes brasileiros depende fortemente da presença de EDR. Organizações do setor financeiro (bancos, fintechs) geralmente têm cobertura adequada via CrowdStrike ou Defender for Endpoint, mas pequenas e médias empresas carecem dessa telemetria. Ataques de banking trojan prevalentes no Brasil — como [[s0531-grandoreiro]] e [[mekotio]] — fazem uso extensivo de APIs Windows para injeção e persistência, tornando este componente crítico para a detecção de ameaças regionais.
## Referências
- [MITRE ATT&CK — DC0021 OS API Execution](https://attack.mitre.org/datasources/DS0009/#OS%20API%20Execution)
- [Windows API Monitoring via ETW](https://learn.microsoft.com/en-us/windows/win32/etw/event-tracing-portal)
- [[ds0009-process|DS0009 — Process]]
- [[t1106-native-api|T1106-native-api]]
- [[t1055-process-injection|T1055-process-injection]]