# DS0008 — Kernel ## Descrição O **Kernel** é o núcleo do sistema operacional — um programa residente em memória que atua como intermediário entre o hardware (CPU, memória, dispositivos) e o software (aplicações, serviços). Ele gerencia recursos do sistema, escalonamento de processos, acesso a memória e comunicação entre componentes de hardware e software. Do ponto de vista de segurança, o kernel é uma das fontes de dados mais sensíveis e relevantes disponíveis para analistas de SOC. Atividades maliciosas como rootkits, exploits de elevação de privilégio e técnicas de evasão de defesa frequentemente atuam diretamente no espaço do kernel para contornar controles de segurança em nível de usuário. Monitorar eventos de kernel — especialmente carregamento de módulos e chamadas de sistema suspeitas — é fundamental para detectar adversários que operam com persistência profunda no sistema. Em ambientes Linux e macOS, a telemetria de kernel é gerada principalmente via módulos como **Auditd**, **eBPF**, **kprobes**, e ferramentas de EDR que instrumentam chamadas de sistema. A visibilidade em nível de kernel oferece detecção de alta fidelidade, porém com custo de volume e processamento significativos — exigindo estratégia de filtragem cuidadosa em SIEMs e pipelines de coleta. ## Visão Geral ### Integração com SIEM ``` # Splunk — detectar carregamento suspeito de módulo Linux index=linux sourcetype=linux_audit syscall=init_module OR syscall=finit_module | eval modname=if(isnull(modname), "desconhecido", modname) | stats count by host, modname, uid, exe | where count > 0 ``` ## Pipeline de Coleta ```mermaid graph TB A["🐧 Kernel Linux / macOS<br/>Chamadas: init_module<br/>finit_module · delete_module"] --> B["🔍 Auditd<br/>syscall init_module / finit_module"] A --> C["⚡ eBPF / Falco<br/>kprobe:do_init_module"] A --> D["🔍 Sysmon for Linux<br/>Event ID 19 (Kernel Module)"] B --> E["📡 Agente SIEM<br/>Coleta e normalização"] C --> E D --> E E --> F["🗄️ SIEM<br/>Splunk · Elastic · Sentinel"] F --> G["🚨 Alerta<br/>Módulo fora do baseline<br/>LKM / rootkit detectado"] ``` ## Componentes de Dados | Componente | ID | Descrição | |---|---|---| | Kernel Module Load | [[dc0031-kernel-module-load\|DC0031]] | Carregamento de módulos no espaço do kernel (LKMs no Linux, kexts no macOS) | ## Como Coletar ### Linux | Ferramenta | Configuração | Eventos gerados | |---|---|---| | **Auditd** | Regra `-a always,exit -F arch=b64 -S init_module,finit_module` | Carregamento de módulos de kernel | | **eBPF / bpftrace** | Probe em `kprobe:do_init_module` | Rastreamento em tempo real de cargas de módulo | | **Syslog / dmesg** | Monitorar `kernel:` facility | Mensagens de módulos carregados/descarregados | | **Sysmon for Linux** | Event ID 19 (Kernel Module Load) | Compatível com formato Windows Sysmon | | **osquery** | `SELECT * FROM kernel_modules;` | Inventário periódico de módulos ativos | **Exemplo de regra Auditd para módulos de kernel:** ``` -a always,exit -F arch=b64 -S init_module -S finit_module -S delete_module -k kernel_modules ``` ### macOS | Ferramenta | Configuração | Eventos gerados | |---|---|---| | **Endpoint Security Framework** | `ES_EVENT_TYPE_NOTIFY_KEXTLOAD` | Carregamento de kernel extensions (kexts) | | **Unified Log (syslog)** | Subsistema `com.apple.kext` | Mensagens de carga/descarga de kexts | | **osquery** | `SELECT * FROM kernel_extensions;` | Inventário de kexts carregados | > **Nota para SOCs brasileiros:** A partir do macOS 11 (Big Sur), Apple restringe kexts não assinadas via System Extensions. Alertas de carregamento de kexts não assinadas são indicadores de alta prioridade. ## Técnicas Detectadas | ID MITRE | Técnica | Relevância | |---|---|---| | [[t1547-006-kernel-modules-and-extensions\|T1547.006]] | Kernel Modules and Extensions | Persistência via módulo de kernel malicioso (rootkit LKM) | | [[t1014-rootkit\|T1014]] | Rootkit | Rootkits que se injetam no kernel para ocultar processos e arquivos | | [[t1611-escape-to-host\|T1611]] | Escape to Host | Escape de container para kernel do host via módulo malicioso | | [[t1068-exploitation-for-privilege-escalation\|T1068]] | Exploitation for Privilege Escalation | Exploits de kernel para obter ring-0 / capabilities elevadas | | [[t1562-001-disable-or-modify-tools\|T1562.001]] | Disable or Modify Tools | Módulos de kernel que desabilitam agentes de segurança (EDR, Auditd) | ## Gaps de Cobertura Brasil/LATAM **Problemas comuns observados em SOCs brasileiros:** - **Auditd desabilitado ou mal configurado:** A maioria dos servidores Linux corporativos no Brasil não possui regras Auditd para `init_module`/`finit_module`. Atacantes como o [[g0032-lazarus-group|Lazarus Group]] e grupos de ransomware utilizam módulos de kernel maliciosos para desabilitar EDRs sem disparar alertas. - **Falta de visibilidade em ambientes containerizados:** Ambientes Kubernetes/Docker sem monitoramento de kernel do host são pontos cegos críticos. O namespace de kernel é compartilhado — uma fuga de container expõe o host inteiro. - **Ausência de inventário de módulos:** Sem baseline de módulos legítimos, é impossível detectar carregamento de módulos anômalos via alertas de delta. **Recomendações:** 1. Habilitar Auditd com regras para syscalls `init_module`, `finit_module` e `delete_module` em todos os servidores Linux 2. Implementar `osquery` para inventário periódico de módulos — criar alerta para qualquer módulo não presente no baseline 3. Em macOS, monitorar o log unificado para eventos `kextload` de bundles não assinados ou não presentes no baseline corporativo 4. Considerar soluções EDR com telemetria eBPF (ex: Elastic Agent, Falco) para visibilidade de kernel em tempo real ## Referências - [[dc0031-kernel-module-load|DC0031 — Kernel Module Load]] — componente de dados gerado por esta fonte - [[t1547-006-kernel-modules-and-extensions|T1547.006 — Kernel Modules and Extensions]] — técnica de persistência detectável - [[t1014-rootkit|T1014 — Rootkit]] — técnica de evasão via kernel - [[m1049-antivirusantimalware|M1049 — Antivirus/Antimalware]] — mitigação complementar - [[m1038-execution-prevention|M1038 — Execution Prevention]] — mitigação para bloquear módulos não assinados - [[ds0009-process|DS0009 — Process]] — fonte complementar para correlação de processos que carregam módulos --- *Fonte: [MITRE ATT&CK — DS0008](https://attack.mitre.org/datasources/DS0008)*