# T1014 - Rootkit ## Descrição Rootkits são programas ou conjuntos de componentes projetados para ocultar a presença de malware, atores de ameaça e suas atividades em um sistema comprometido. A técnica T1014 cobre o uso de rootkits para interceptar e modificar chamadas de sistema operacional que fornecem informações sobre processos, arquivos, conexões de rede, drivers e outros componentes do sistema. Do ponto de vista do adversário, rootkits resolvem um problema fundamental: como manter acesso persistente e operar em um ambiente sem ser detectado por ferramentas de segurança, antivírus e analistas de SOC. Um rootkit bem implementado torna processos maliciosos invisíveis ao gerenciador de tarefas, oculta arquivos do sistema de arquivos e esconde conexões de rede de ferramentas como `netstat`. A técnica não é monolítica - rootkits operam em diferentes camadas do sistema, cada uma com características, capacidades e desafios de detecção distintos: | Tipo | Nível de operação | Persistência | Dificuldade de remoção | |------|------------------|-------------|------------------------| | **User-mode** | Espaço do usuário (DLL injection, API hooking) | Moderada | Moderada | | **Kernel-mode** | Ring 0, módulos do kernel (LKM, drivers) | Alta | Alta | | **Bootkit** | MBR / VBR / UEFI | Muito alta | Muito alta | | **Hypervisor** | Abaixo do SO (VMM) | Máxima | Extremamente alta | | **Firmware** | UEFI/BIOS, drives, NICs | Máxima | Requer reflash de hardware | Rootkits que modificam setores de boot são técnicamente cobertos também por [[t1542-003-bootkit|T1542.003 - Bootkit]], enquanto rootkits de firmware se intersectam com [[t1542-001-system-firmware|T1542.001 - System Firmware]]. ## Como Funciona ### Rootkits User-Mode Operam em Ring 3 (espaço do usuário), interceptando chamadas de API do Windows ou do sistema operacional antes que retornem ao aplicativo solicitante. Técnicas comuns: - **DLL Injection + API Hooking** - uma DLL maliciosa é injetada em processos-alvo (ex: `explorer.exe`, `lsass.exe`) e patcha funções de sistema como `NtQuerySystemInformation`, `NtQueryDirectoryFile` para filtrar entradas maliciosas dos resultados - **IAT/EAT Hooking** - modifica a Import Address Table ou Export Address Table de executáveis para redirecionar chamadas para funções maliciosas - **Userland hooking via LD_PRELOAD** (Linux) - carrega bibliotecas maliciosas que sobrescrevem funções de `libc` como `readdir()`, `fopen()` e chamadas de rede São mais fáceis de detectar porque operam no mesmo nível que ferramentas de segurança, mas são também mais fáceis de desenvolver e implantar sem privilégios de kernel. ### Rootkits Kernel-Mode Operam em Ring 0, com acesso direto ao kernel do sistema operacional. Em Linux, são comumente implementados como **Loadable Kernel Modules (LKM)**; em Windows, como **drivers de kernel** (`.sys`). Capacidades: - **DKOM (Direct Kernel Object Manipulation)** - modifica diretamente estruturas de dados do kernel na memória (ex: `EPROCESS` no Windows) para desligar processos da lista encadeada - tornando-os invisíveis mesmo para ferramentas que operam em kernel-mode - **Hook de SSDT** (Windows, 32-bit) - modifica a System Service Descriptor Table para redirecionar chamadas de sistema para funções maliciosas - **Filtro de filesystem** - registra um driver de filtro que intercepta operações de I/O e omite arquivos/diretórios do rootkit dos resultados - **Netfilter hooks** (Linux) - instala hooks na pilha de rede do kernel para ocultar conexões e filtrar tráfego O malware [[drovorub|Drovorub]] (atribuído ao [[g0007-apt28|APT28]]) é um exemplo canônico: combina LKM kernel rootkit com agente user-mode e servidor de C2, implementando DKOM para ocultar o módulo de kernel da lista de módulos carregados. ### Bootkits Modificam o Master Boot Record (MBR), Volume Boot Record (VBR) ou a cadeia de boot UEFI. Como o rootkit é carregado antes do sistema operacional, tem controle total sobre o processo de boot e pode: - Interceptar o carregador do sistema operacional - Modificar o kernel antes que ele sejá executado - Sobreviver a reinstalações do sistema operacional (se infectar o MBR/UEFI) ### Rootkits de Hypervisor Instalam um hypervisor malicioso abaixo do sistema operacional existente, que passa a rodar como uma máquina virtual sem saber. Permitem monitoramento total do estado da VM. São extremamente raros em ataques reais devido à complexidade de desenvolvimento. ## Attack Flow ```mermaid graph TB A["🎯 Acesso Inicial<br/>T1566 / T1190"] --> B["⚡ Escalada de Privilégios<br/>T1068 / T1078"] B --> C{"Tipo de Rootkit"} C --> D["👤 User-Mode Rootkit<br/>DLL Injection + API Hooking"] C --> E["⚙️ Kernel-Mode Rootkit<br/>LKM / Driver malicioso"] C --> F["💾 Bootkit<br/>MBR / VBR / UEFI"] D --> G["🔗 Hook de API do SO<br/>Filtro de processos/arquivos/rede"] E --> H["🧠 DKOM + SSDT Hook<br/>Manipulação direta do kernel"] F --> I["🔒 Boot pré-SO<br/>Persistência abaixo do kernel"] G --> J["👁️ Evasão de AV/EDR<br/>Processos e arquivos ocultos"] H --> J I --> J J --> K["📡 C2 persistente<br/>Conexões ocultas - T1071"] K --> L["🕵️ Operação silenciosa<br/>Exfiltração / Cryptomining / Espionagem"] style A fill:#8B0000,color:#fff style E fill:#8B4513,color:#fff style F fill:#4B0082,color:#fff style J fill:#006400,color:#fff style L fill:#8B0000,color:#fff ``` ## Exemplos de Uso ### APT28 / Fancy Bear - Drovorub (Linux) O [[g0007-apt28|APT28]] desenvolveu o [[drovorub|Drovorub]], um rootkit de kernel para Linux exposto pelo NSA e FBI em 2020. O Drovorub implementa um LKM que usa DKOM para se ocultar da lista de módulos do kernel, esconde arquivos e conexões de rede, e fornece capacidades de transferência de arquivos e execução de comandos com comunicação C2 sobre WebSockets. ### Winnti Group / APT41 - Rootkits de driver Windows O [[g0044-winnti-group|Winnti Group]] (e seu subconjunto [[g0096-apt41|APT41]]) utiliza sistematicamente rootkits de driver Windows assinados digitalmente (usando certificados roubados de empresas de software legítimas) para ocultar implants de longo prazo em alvos de espionagem. O driver intercepta chamadas de filesystem e rede para tornar o malware invisível a EDRs. ### TeamTNT - Skidmap (cryptomining) O [[g0139-teamtnt|TeamTNT]] usou o rootkit [[s0468-skidmap|Skidmap]] em campanhas de cryptomining em containers Linux e ambientes Kubernetes. O Skidmap instala um LKM que intercepta chamadas de leitura de `/proc/stat` e `/proc/net/dev` para ocultar o uso de CPU e tráfego de rede gerado pela mineração de criptomoedas. ### UNC3886 - COATHANGER (Fortinet) O [[g1048-unc3886|UNC3886]] (atribuído a nexo chinês) implantou o rootkit [[s1105-coathanger|COATHANGER]] em dispositivos Fortinet FortiGaté. O rootkit persiste no firmware do appliance e sobrevive a reboots e atualizações de firmware. Oculta processos, arquivos e conexões de rede maliciosas diretamente no sistema embarcado do appliance. ### Rocke - Cryptomining em cloud O [[g0106-rocke|Rocke]] utiliza rootkits LKM em instâncias Linux na nuvem (AWS, Alibaba Cloud) para ocultar processos de mineração de criptomoedas de ferramentas de monitoramento. O malware [[umbreon|Umbreon]] associado ao grupo oculta conexões de rede e processos usando hooks de `libc` (user-mode) e módulos de kernel. ## Detecção Detectar rootkits é inerentemente difícil porque a premissa da técnica é subverter as próprias ferramentas usadas para observar o sistema. A detecção eficaz requer abordagens que contornem o rootkit, operando de fora do ambiente comprometido ou em nível mais baixo. **Estrategias principais:** | Estrategia | Descrição | Cobertura | |-----------|-----------|-----------| | **Comparação de artefatos** | Comparar resultados de APIs de nível alto (ex: `ps`) com leitura direta de estruturas do kernel - discrepâncias indicam DKOM | Kernel-mode rootkits | | **Análise de integridade de memória** | Ferramentas como Volatility analisam dump de memória offline, sem passar pelas APIs do SO | User-mode e kernel-mode | | **Verificação de assinatura de módulos** | Garantir que todos os módulos de kernel/drivers carregados têm assinatura digital válida e esperada | Kernel-mode rootkits | | **Monitoramento de boot** | Verificar integridade de MBR/VBR/UEFI com hash comparativo em boot | Bootkits | | **Network baseline** | Comparar conexões visíveis via APIs com tráfego capturado no switch/firewall | Rootkits com network hiding | | **Secure Boot + TPM** | Atestar integridade da cadeia de boot antes de carregar o SO | Bootkits | **Regra de detecção - carregamento de módulo de kernel não assinado (Linux):** ```yaml title: Rootkit - Módulo de Kernel Carregado sem Assinatura status: experimental logsource: category: kernel_module product: linux detection: selection: type: 'module_load' filter_signed: module_signature_valid: true condition: selection and not filter_signed level: high tags: - attack.defense_evasion - attack.t1014 ``` **Regra de detecção - driver Windows não assinado ou com assinatura revogada:** ```yaml title: Rootkit - Driver Windows com Assinatura Suspeita status: experimental logsource: category: driver_load product: windows detection: selection_revoked: SignatureStatus: 'Revoked' selection_unsigned: Signed: 'false' condition: selection_revoked or selection_unsigned level: high tags: - attack.defense_evasion - attack.t1014 ``` **Regra de detecção - processo oculto (discrepância entre /proc e chamadas de API):** ```yaml title: Rootkit - Possível DKOM - Processo Ausente em /proc status: experimental logsource: category: process_anomaly product: linux detection: selection: type: 'hidden_process' detection_method: 'proc_vs_kernel_comparison' condition: selection level: critical tags: - attack.defense_evasion - attack.t1014 ``` **Ferramentas de detecção recomendadas:** - **Linux**: `rkhunter`, `chkrootkit`, `Volatility` (análise de memória), `LKRG` (Linux Kernel Runtime Guard) - **Windows**: `Autoruns` (Sysinternals), `WinPmem` + Volatility, `Process Hacker` (detecção de DKOM), drivers de kernel de EDR operando em Ring 0 - **Firmware/UEFI**: CHIPSEC, verificação de integridade via TPM e Secure Boot ## Mitigação Não existe mitigação perfeita contra rootkits - a estratégia é dificultar a implantação e detectar rapidamente. | Controle | Descrição | |----------|-----------| | **Secure Boot** | Valida assinatura do bootloader e kernel antes de executar - bloqueia bootkits não assinados | | **Kernel Module Signing (Linux)** | Requer que módulos de kernel tenham assinatura digital válida; módulos não assinados são rejeitados | | **Driver Signature Enforcement (Windows)** | Impede carregamento de drivers não assinados em Windows 64-bit (modo de boot seguro) | | **Least Privilege** | Rootkits de kernel requerem privilégios elevados - restringir `sudo`/Administrator reduz superfície | | **Patch Management** | Rootkits frequentemente exploram vulnerabilidades para escalar privilégios antes de se instalar | | **Monitoramento de integridade** | Soluções de FIM (File Integrity Monitoring) e EDR com proteção de kernel detectam modificações suspeitas | | **Imagens douradas (Golden Image)** | Re-implantar hosts comprometidos a partir de imagem limpa verificada - única garantia de remoção | > **Nota crítica:** uma vez que um rootkit de kernel ou bootkit bem-implementado é instalado, a remoção segura geralmente requer **reimplantação completa do sistema** a partir de mídia confiável. Tentativas de limpeza in-place podem deixar remanescentes do rootkit no sistema. ## Contexto Brasil/LATAM Rootkits têm presença documentada em ameaças que afetam o Brasil e a América Latina em diferentes contextos: **1. Banking malware brasileiro - user-mode rootkits** Famílias de banking trojans brasileiros como [[s0373-astaroth|Astaroth]] e [[s0531-grandoreiro|Grandoreiro]] utilizam técnicas de rootkit user-mode (injeção de DLL, hook de APIs de browser) para ocultar suas atividades e interceptar credenciais bancárias sem serem detectados por antivírus tradicionais. Essas técnicas são menos sofisticadas que rootkits de kernel, mas eficazes contra defesas básicas. **2. Cryptomining em infraestrutura cloud brasileira** Grupos como [[g0139-teamtnt|TeamTNT]] e [[g0106-rocke|Rocke]] têm alvejado específicamente instâncias Linux em provedores de nuvem com presença no Brasil (AWS São Paulo, servidores Locaweb, HostGator BR). O uso de rootkits LKM para ocultar mineração é recorrente - organizações descobrem a infecção por aumento inesperado na fatura de computação, não por alertas de segurança. **3. Espionagem em appliances de rede** O rootkit [[s1105-coathanger|COATHANGER]] do [[g1048-unc3886|UNC3886]], implantado em appliances Fortinet, representa uma ameaça relevante para organizações brasileiras de infraestrutura crítica, financeiro e governo que utilizam esses equipamentos como perímetro de segurança. A persistência em firmware os torna invisíveis a reinicializações e atualizações. **Recomendação para SOCs brasileiros:** - Priorizar monitoramento de carregamento de módulos de kernel em servidores Linux - Implementar verificação periódica de integridade de firmware em firewalls e appliances de rede - Incluir análise de memória volátil (Volatility) em playbooks de resposta a incidentes ## Referências - MITRE ATT&CK - T1014 (Rootkit) - NSA/FBI Advisory - Drovorub: A Russian GRU Malware Framework (2020) - Mandiant - UNC3886 e uso do COATHANGER em appliances Fortinet (2024) - Kaspersky GReAT - análise do Winnti Group e rootkits de driver assinados - CrowdStrike - relatório sobre Skidmap e rootkits de cryptomining em Linux - Volatility Foundation - guia de análise forense de rootkits em memória - CHIPSEC - framework de análise de integridade de firmware --- *Fonte: MITRE ATT&CK - T1014*