# DET0529 — Behavioral Detection of Native API Invocation via Unusual DLL Loads and Direct Syscalls ## Descrição A invocação direta de APIs nativas do Windows (syscalls) é uma técnica avançada de evasão ([[t1106-native-api|T1106 — Native API]]) onde adversários chamam funções do kernel Windows diretamente via syscall instruction, contornando hooks de monitoramento instalados por produtos de segurança na `ntdll.dll`. Ferramentas como `SysWhispers`, `Hell's Gaté` e `Halo's Gaté` automatizam a geração de syscall stubs que resolvem dinâmicamente os números de syscall em tempo de execução, tornando a detecção baseada em IAT hooking ineficaz. Implantes avançados de APTs e frameworks C2 modernos (Cobalt Strike com malleable profiles, Brute Ratel C4) utilizam extensivamente direct syscalls. A detecção de DLL loads incomuns foca em processos que carregam `ntdll.dll` de memória não-mapeada ou que executam syscalls sem passar pelo código legítimo de `ntdll.dll`. Técnicas como `indirect syscalls` e `module stomping` tentam disfarçar a origem da chamada, mas ainda deixam artefatos detectáveis: acesso à estrutura PEB para resolução manual de módulos, leitura de `ntdll.dll` do disco para obter números de syscall frescos, ou execução de código em regiões de memória RWX não associadas a módulos conhecidos. O monitoramento via ETW (Event Tracing for Windows) com providers como `Microsoft-Windows-Threat-Intelligence` e `Microsoft-Windows-Security-Auditing` provê visibilidade sobre chamadas de sistema suspeitas. Ferramentas de EDR com telemetria de kernel são fundamentais para detectar este padrão — soluções baseadas apenas em user-mode hooks são significativamente mais fáceis de contornar por adversários sofisticados. ## Indicadores de Detecção - Processo com módulo `ntdll.dll` carregado de endereço de memória diferente do arquivo mapeado do disco - Execução de instrução `syscall` originada de região de memória não associada a módulo carregado (unbacked memory) - Leitura de `ntdll.dll` do disco por processo que já o tem mapeado (técnica de refresh para obter syscall numbers não-hooked) - Alocação de memória RWX (`VirtualAlloc` com PAGE_EXECUTE_READWRITE) sem subsequente proteção de memória - ETW event de `NtAllocateVirtualMemory` ou `NtCreateThreadEx` sem correspondente call stack em módulo legítimo - Carregamento de DLL de path não-padrão por processo que normalmente não carrega DLLs adicionais ## Técnicas Relacionadas - [[t1106-native-api|T1106 — Native API]] — técnica principal coberta por esta estratégia - [[t1055-process-injection|T1055 — Process Injection]] — uso frequente de direct syscalls para injeção - [[t1562-impair-defenses|T1562 — Impair Defenses]] — contorno de EDR hooks como objetivo da técnica - [[t1027-obfuscated-files-or-information|T1027 — Obfuscated Files or Information]] — ofuscação de shellcode que usa direct syscalls - [[t1574-hijack-execution-flow|T1574 — Hijack Execution Flow]] — técnicas relacionadas de desvio de fluxo de execução ## Analytics Relacionadas - [[an1465-analytic-1465|AN1465 — Analytic 1465]] - [[an1466-analytic-1466|AN1466 — Analytic 1466]] - [[an1467-analytic-1467|AN1467 — Analytic 1467]] --- *Fonte: [MITRE ATT&CK — DET0529](https://attack.mitre.org/detectionstrategies/DET0529)*