# 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*