# T1106 - Native API ## Descrição Adversários interagem diretamente com a interface de programação nativa do sistema operacional para executar comportamentos de baixo nível, contornando camadas de abstração monitoradas por ferramentas de segurança. As APIs nativas - como as funções da família `Nt*` e `Zw*` no Windows (ntdll.dll), `fork()` e `execve()` no Linux, e equivalentes no macOS - fornecem acesso controlado a serviços do kernel, incluindo gerenciamento de processos, memória, dispositivos e I/O de arquivos. São utilizadas pelo próprio sistema operacional durante o boot e em operações rotineiras, o que torna seu uso difícil de distinguir de atividade legítima. O abuso da Native API por adversários segue uma lógica direta: evitar funções de alto nível monitoradas por EDRs e hooks de usermode. Funções como `CreateProcess()` da Windows API e `ShellExecute()` são frequentemente monitoradas por soluções de segurança via hooking em DLLs de usermode. Ao invocar diretamente `NtCreateProcess()` ou usar syscalls diretas em assembly (`syscall` / `int 0x80`), o adversário bypassa esses hooks e executa código sem que o EDR intercepte a chamada. Esta técnica é funcionalmente similar ao uso de [[t1059-command-and-scripting-interpreter|Command and Scripting Interpreter]], mas opera em um nível ainda mais profundo da pilha de execução. Frameworks como Microsoft .NET e macOS Cocoa também expõem wrappers para APIs nativas, ampliando o leque de linguagens que podem abusar desta técnica. Uma variação sofisticada utiliza a técnica conhecida como "syscall direto" ou "Hell's Gaté / Halo's Gaté", onde o malware resolve dinâmicamente os números de syscall (`SSN - System Service Number`) em tempo de execução, evitando a dependência de endereços de função fixos em ntdll.dll. Isso torna o comportamento quase invisível para soluções que dependem de hooking de DLLs. Adversários também podem tentar remover os hooks de segurança via [[t1562-001-disable-tools|Disable or Modify Tools]], recarregando versões limpas de ntdll.dll diretamente do disco para substituir a versão hookada em memória. **Contexto Brasil/LATAM:** No Brasil, esta técnica aparece principalmente em campanhas de ransomware avançado e em implantes de espionagem utilizados por grupos como [[g1051-medusa-ransomware|Medusa Group]] - ativo contra alvos brasileiros - e [[g0032-lazarus-group|Lazarus Group]] em operações financeiras contra exchanges e bancos da região. A combinação de syscalls diretos com injeção de processo é um padrão comum em amostras de malware analisadas pelo CERT.br em 2024-2025, especialmente em stagers de Cobalt Strike e loaders de segunda fase adaptados para contornar EDRs populares no mercado brasileiro. ## Attack Flow ```mermaid graph TB A[Acesso Inicial<br/>T1566 / T1190] --> B[Loader de<br/>Primeiro Estágio] B --> C{T1106\nNative API\nSyscall Direto}:::highlight C --> D[Injeção de Processo<br/>T1055] D --> E[C2 Estabelecido<br/>Persistência] classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b ``` ## Como Funciona 1. **Preparação:** O adversário desenvolve ou adapta um loader/implante que resolve dinâmicamente os endereços de funções nativas em ntdll.dll ou calcula os números de syscall (SSN) diretamente pelo parsing do PE da ntdll carregada em memória. Técnicas como "Hell's Gaté" varrem a memória da DLL para encontrar os bytes de instrução `syscall` e o número correspondente, permitindo a invocação direta sem depender de exports hookados. O código é frequentemente escrito em C/C++ ou Rust com trechos de assembly inline. 2. **Execução:** O malware chama funções como `NtAllocateVirtualMemory`, `NtWriteVirtualMemory`, `NtCreateThreadEx` e `NtCreateProcess` diretamente via syscall ou por resolução dinâmica, executando ações como alocação de memória executável, escrita de shellcode em processos remotos e criação de threads em processos legítimos (injeção). Como os hooks do EDR geralmente residem nas versões exportadas dessas funções em ntdll.dll em usermode, o uso de syscall direto bypassa completamente o monitoramento baseado em hooking. 3. **Pós-execução:** Com o payload executado via Native API, o adversário estabelece persistência, abre canal de C2 e realiza [[t1055-process-injection|Process Injection]] em processos legítimos do sistema (svchost.exe, explorer.exe) para mascarar a atividade. O rastreamento forense é dificultado pela ausência de chamadas de API visíveis nos logs padrão do Windows. Detecção efetiva requer monitoramento de ETW (Event Tracing for Windows) em modo kernel. ## Detecção **Fontes de dados:** - **ETW (Event Tracing for Windows) - Microsoft-Windows-Threat-Intelligence** - único provider que captura chamadas de syscall diretamente no kernel, independente de hooks em usermode; requer PPL (Protected Process Light) - **Sysmon Event ID 8 (CreateRemoteThread)** - injeção de thread em processo remoto via `NtCreateThreadEx` - **Sysmon Event ID 10 (ProcessAccess)** - acesso a memória de outros processos via `NtReadVirtualMemory` / `NtWriteVirtualMemory` - **Windows Event ID 4688** - criação de processos suspeitos com PPID spoofing detectável pela discrepância entre PID pai e processo real - **EDR kernel callbacks** - soluções com drivers em modo kernel (CrowdStrike, SentinelOne) registram callbacks `PsSetCreateProcessNotifyRoutine` e `PsSetLoadImageNotifyRoutine` que capturam criação de processos e carregamento de módulos independente de syscalls diretos - **Análise de entropy de DLLs carregadas** - módulos não-assinados ou com imports incomuns de ntdll indicam possível unhooking **Sigma Rule:** ```yaml title: Invocação de Syscall Direto via Padrão de Carregamento Incomum de ntdll id: 5c9a2d4e-1b7f-4e8c-9d3a-6f2b5e8c1d7a status: experimental description: Detecta processo que carrega uma segunda cópia de ntdll.dll do disco - padrão associado a técnicas de unhooking e syscall direto logsource: category: image_load product: windows detection: selection: ImageLoaded|endswith: '\ntdll.dll' Signed: 'false' filter_system: Image|startswith: - 'C:\Windows\System32\' - 'C:\Windows\SysWOW64\' condition: selection and not filter_system falsepositives: - Ferramentas de análise forense legítimas - Debuggers e profilers de desenvolvimento level: high tags: - attack.execution - attack.defense_evasion - attack.t1106 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Implementar Application Control (Windows Defender Application Control / AppLocker) para restringir execução de binários não-assinados que possam conter loaders com syscalls diretos. Em ambientes corporativos brasileiros, definir uma whitelist de aplicativos aprovados reduz drasticamente a superfície de ataque para loaders de malware customizados. Priorizar ambientes de alta criticidade: financeiro, saúde, governo. | | [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | Utilizar EDR com driver em modo kernel que registre callbacks nativos do sistema operacional (não dependa apenas de hooks em usermode). Soluções como CrowdStrike Falcon, SentinelOne e Microsoft Defender for Endpoint com kernel-mode protection são necessárias para detectar syscalls diretos. Habilitar ETW providers de threat intelligence e correlacionar com alertas de comportamento anômalo de processos legítimos. | ## Threat Actors Grupos que utilizam T1106 para executar código de forma furtiva, frequentemente em combinação com técnicas de injeção de processo e evasão de EDR: - [[g1051-medusa-ransomware|Medusa Group]] - grupo de ransomware ativo no Brasil; usa loaders com syscalls diretos para contornar EDRs corporativos brasileiros - [[g0126-higaisa|Higaisa]] - APT sul-coreano que usa Native API para injeção furtiva de implantes em processos legítimos - [[g0032-lazarus-group|Lazarus Group]] - grupo norte-coreano com amplo repertório de técnicas de evasão; usa syscalls diretos em implantes financeiros contra exchanges e bancos - [[g0078-gorgon-group|Gorgon Group]] - grupo paquistanês que usa Native API em RATs distribuídos via spear-phishing - [[g0010-turla|Turla]] - APT russo (FSB) com implantes altamente sofisticados que abusam de APIs nativas para injeção e persistência furtiva - [[g0114-chimera|Chimera]] - grupo chinês com foco em semicondutores; usa técnicas avançadas de injeção via Native API - [[g0098-blacktech|BlackTech]] - APT taiwanês/chinês que usa Native API em backdoors customizados para telecomúnicações - [[g0034-sandworm|Sandworm Team]] - APT russo (GRU) responsável por ataques destrutivos; usa APIs nativas em wiper malware - [[g1008-sidecopy|SideCopy]] - grupo paquistanês que imita TTPs do Sidewinder; usa Native API em stagers de segunda fase - [[g0081-tropic-trooper|Tropic Trooper]] - APT taiwanês/filipino que usa chamadas de API nativas em backdoors direcionados a governo e transporte ## Software Associado - [[s0396-evilbunny|EvilBunny]] (malware) - implante Lua com invocação de APIs nativas para execução de código - [[s1179-exbyte|Exbyte]] (malware) - exfiltrador do BlackByte ransomware com uso de API nativa para coleta furtiva - [[s0141-winnti-for-windows|Winnti for Windows]] (malware) - backdoor modular com uso extensivo de APIs nativas para injeção - [[s0453-pony|Pony]] (malware) - stealer clássico com módulo de coleta via chamadas de API de baixo nível - [[s0687-cyclops-blink|Cyclops Blink]] (malware) - botnet do Sandworm com comunicação e persistência via APIs nativas de sistema - [[s0268-bisonal|Bisonal]] (malware) - RAT chinês com execução via API nativa para evasão de AV - [[s0084-mis-type|Mis-Type]] (malware) - backdoor do Tropic Trooper com injeção de processo via NtCreateThreadEx - [[s0678-torisma|Torisma]] (malware) - implante do Lazarus Group com uso de syscalls diretos para execução de shellcode - [[s0627-sodamaster|SodaMaster]] (malware) - RAT do APT10 com uso de APIs nativas para enumeração e execução - [[s0629-rainyday|RainyDay]] (malware) - backdoor do APT41 com técnicas avançadas de injeção via Native API --- *Fonte: [MITRE ATT&CK - T1106](https://attack.mitre.org/techniques/T1106)*