Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense- — Neutralizando CVEs ativos do kernel Linux da CISA (CVE-2025-39964, CVE-2026-53266, CVE-2025-39682) por meio de eBPF moderno, desarmamento de módulos e namespaces de usuário do containerd. | Kitploit
Ferramentas/GitHubGitHub/mc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-
Ferramentas DefensivasSegurança de ContêineresAnálise de VulnerabilidadesDevSecOpsResposta a Incidentes
GitHubmc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

Neutralizando CVEs ativos do kernel Linux da CISA (CVE-2025-39964, CVE-2026-53266, CVE-2025-39682) por meio de eBPF moderno, desarmamento de módulos e namespaces de usuário do containerd.

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Ver Repositório
6há 1 diaAinda não revisado
Compartilhar

Defesa de Dia Zero do Kernel Linux com Zero Tempo de Inatividade: Controles Compensatórios em Camadas via Telemetria eBPF, Desarmamento de Módulos e Namespaces de Usuário

Quando a Cybersecurity and Infrastructure Security Agency (CISA) adiciona vulnerabilidades críticas do kernel Linux ao seu catálogo Known Exploited Vulnerabilities (KEV), um relógio operacional urgente começa a contar para equipes de infraestrutura e líderes de SRE:

A Lacuna de Correção Upstream:
A duração entre a weaponização pública de um dia zero in-the-wild e a disponibilidade de pacotes de kernel binários testados e assinados de distribuições empresariais (Ubuntu HWE, Debian, RHEL) normalmente varia de 7 a 21 dias.

Em clusters Kubernetes de produção, aguardar passivamente pelos pacotes do fornecedor expõe os sistemas à exploração ativa, enquanto upgrades de kernel prematuros ou reinicializações de emergência arriscam indisponibilidade operacional.

Este estudo de caso documenta um framework de controles compensatórios de defesa em profundidade projetado para gerenciar três vulnerabilidades concorrentes do kernel Linux (CVE-2025-39964, CVE-2026-53266, CVE-2025-39682) em espaços de usuário, no carregador do kernel e nas camadas de runtime sem exigir reinicializações do host.


Matriz de Ameaças e Taxonomia de Defesa

Para garantir precisão operacional, as defesas são categorizadas estritamente por suas propriedades de segurança (Prevenção, Detecção em Runtime e ):

Contenção
VulnerabilidadeSubsistemaMecanismo de AtaqueSeveridadeModo de DefesaMecanismo de Implementação
CVE-2026-53266Netfilter Bridging (ebtables)Overflow aritmético em regras de reescrita da tabela ARP de bridgeAlta (Corrupção de Memória)Prevenção (Desarmamento)Remoção da RAM (modprobe -r) + substituição do carregador (/bin/true)
CVE-2025-39964Crypto Netlink (AF_ALG)Truncamento de inteiro na alocação de socket netlink de criptografiaAlta (LPE / Breakout)Detecção (eBPF) / GatingeBPF moderno (sys_enter_socket, domínio 38) + SECCOMP
CVE-2025-39682Kernel TLS (kTLS)Falha no processamento de registros de comprimento zero em TCP ULPAlta (Kernel Panic / Heap)Detecção (eBPF)eBPF moderno (sys_enter_setsockopt, TCP_ULP 31 e SOL_TLS 282)

Arquitetura de Defesa em Profundidade em Camadas

root@kitploit:~
flowchart TD
    subgraph Ring3 ["User Space / Container Pod (Ring 3)"]
        Workload["Container Workload / Untrusted Process"]
        Probe["Exploit Vectors: socket(AF_ALG) or setsockopt(TCP_ULP)"]
        Workload --> Probe
    end

    subgraph Ring0 ["Linux Kernel (Ring 0)"]
        SyscallTrap["Syscall Trap (sysenter)"]
        Probe --> SyscallTrap
        
        Tracepoint["Kernel Tracepoint: sys_enter"]
        SyscallTrap --> Tracepoint
        
        subgraph eBPFEngine ["Modern eBPF Detection (CO-RE Ring Buffer)"]
            Filter{"Syscall Gating:\n- domain == 38 (AF_ALG)\n- SOL_TCP + TCP_ULP\n- SOL_TLS (282)"}
            Tracepoint --> Filter
        end
        
        Disarmed["Modprobe Hook: /bin/true\n(ebtables evicted & blocked)"]
        UserNS["containerd v2.2.4 User Namespace Remap\nContainer UID 0 -> Host UID 4050714624\n(Bounded Credential Containment)"]
        
        Filter -- "Match (<1ms)" --> AlertRingBuf["Ring Buffer Emission"]
        Filter -- "Pass" --> KernelExec["Normal Execution Path"]
        KernelExec --> UserNS
    end

    subgraph SecurityPipeline ["Reactive Event Pipeline"]
        Falcosidekick["Falco Daemon & Sidekick (:2801)"]
        Forwarder["Event Forwarder Daemon (:9876)"]
        NATSBus["NATS Security Bus (sovereign.security.alert)"]
        
        AlertRingBuf --> Falcosidekick
        Falcosidekick --> Forwarder
        Forwarder --> NATSBus
    end

    subgraph Enforcement ["Automated Remediation & Audit"]
        Remediator["Dynamic Bouncer (CrowdSec / nftables Drop)"]
        AuditLedger["Cryptographically Tamper-Evident Hash Chain\n(SHA-256 Chaining & Cross-Node Replication)"]
        
        NATSBus --> Remediator
        NATSBus --> AuditLedger
    end

    classDef danger fill:#ffdddd,stroke:#ff0000,stroke-width:2px;
    classDef safe fill:#ddffdd,stroke:#00aa00,stroke-width:2px;
    classDef arch fill:#f0f4f8,stroke:#0066cc,stroke-width:1px;
    class Probe danger;
    class Disarmed,UserNS,AuditLedger safe;

Camada 1: Desarmamento de Módulos do Kernel (Preventivo)

1. A Nuance Operacional: Memória Ativa vs. Sondagem Futura

Uma armadilha comum com substituições em /etc/modprobe.d/ é que install /bin/true bloqueia apenas tentativas subsequentes de carregamento de módulos. Se a rede bridge (Docker, CNI legado) carregou ebtables anteriormente no ciclo de vida do host, o código vulnerável permanece ativo na RAM do kernel.

O desarmamento com zero tempo de inatividade requer uma sequência de duas etapas:

  1. Remoção: Descarregar os módulos atualmente residentes da memória do kernel.
  2. Selagem: Configurar substituições do carregador /bin/true para impedir o recarregamento.

2. Implementação

root@kitploit:~
# Step A: Evict active ebtables modules from running kernel RAM
sudo modprobe -r ebtable_nat ebtable_filter ebtable_broute ebt_snat ebt_dnat ebt_arpreply ebtables 2>/dev/null || true

# Step B: Seal the loader via /etc/modprobe.d/blacklist-ebtables.conf
sudo tee /etc/modprobe.d/blacklist-ebtables.conf << 'EOF'
# Mitigation for CVE-2026-53266: Netfilter ARP table corruption
install ebtables /bin/true
install ebtable_nat /bin/true
install ebtable_broute /bin/true
install ebtable_filter /bin/true
install ebt_snat /bin/true
install ebt_dnat /bin/true
install ebt_arpreply /bin/true

blacklist ebtables
blacklist ebtable_nat
blacklist ebt_snat
blacklist ebt_arpreply
EOF

3. Verificação

root@kitploit:~
# Test explicit loading:
$ sudo modprobe ebt_snat
$ lsmod | grep ebt
# Output: (Empty - 0 modules resident in kernel memory)

Camada 2: Telemetria de Syscall eBPF e Gating Comportamental (Detecção)

1. Detecção vs. Prevenção Inline

  • Falco eBPF (EDR Assíncrono): Intercepta sys_enter via buffers circulares eBPF modernos, fornecendo alertas em menos de um milissegundo para SIEM/NATS. É otimizado para visibilidade sem overhead, sem modificar o fluxo de controle do kernel.
  • Bloqueio Inline (LSM Síncrono): Para ambientes que exigem rejeição síncrona (-EACCES), uma sonda eBPF LSM ou perfil SECCOMP pode descartar a syscall antes da execução.

2. Mecânica Corrigida de Syscall kTLS (Gating em Duas Fases)

Habilitar Kernel TLS em uma conexão TCP ocorre em duas fases distintas:

  1. Fase 1 (Anexação): setsockopt(fd, SOL_TCP=6, TCP_ULP=31, "tls", 4) anexa o Upper Layer Protocol.
  2. Fase 2 (Configuração): setsockopt(fd, SOL_TLS=282, TLS_TX/TLS_RX, ...) inicializa as chaves de criptografia.

Filtrar apenas por SOL_TLS (282) ignora a fase de anexação do ULP. A regra avalia ambas as fases:

root@kitploit:~
# falco-rules-kernel-cve.yaml
customRules:
  rules-kernel-cve.yaml: |-
    - rule: Detect AF_ALG Crypto Socket Creation (CVE-2025-39964)
      desc: Detects creation of Crypto API Netlink sockets used in local privilege escalation
      condition: evt.type = socket and evt.rawarg.domain = 38
      output: "Active Exploit Probe: AF_ALG socket requested (domain=%evt.rawarg.domain type=%evt.rawarg.type user=%user.name proc=%proc.name container=%container.id)"
      priority: WARNING
      tags: [cve, zero-day, cve-2025-39964, crypto, container_escape]

    - rule: Detect Container Kernel TLS Activation (CVE-2025-39682)
      desc: Detects container workloads attaching kTLS TCP_ULP or configuring SOL_TLS
      condition: container.id != host and evt.type = setsockopt and 
                 ((evt.rawarg.level = 6 and evt.rawarg.optname = 31) or (evt.rawarg.level = 282))
      output: "Container kTLS Activation Detected (level=%evt.rawarg.level optname=%evt.rawarg.optname user=%user.name proc=%proc.name container=%container.name)"
      priority: WARNING
      tags: [cve, zero-day, cve-2025-39682, ktls, tcp_ulp]

3. Estabilidade em Produção: Invariante de Filtro ABI do Linux 7.0

Em kernels Linux modernos (Linux 7.0+ HWE), o motor de inspeção em espaço de usuário do Falco (sinsp) encontra incompatibilidades de análise de registradores em parâmetros de openat (sinsp_exception: could not parse param 2 (name)).

Para garantir estabilidade contínua do DaemonSet sem loops de falha:

root@kitploit:~
falco:
  base_syscalls:
    custom_set: ['!openat']

4. (Opcional) Bloqueio Inline Síncrono via SECCOMP

Se cargas de trabalho em contêineres devem ser estritamente proibidas de chamar AF_ALG, aplique um perfil SECCOMP retornando SCMP_ACT_ERRNO:

root@kitploit:~
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ"
        }
      ]
    }
  ]
}

Camada 3: Isolamento de Namespace de Usuário (Contenção)

1. Escalação Limitada vs. Escrita Arbitrária em Ring-0

  • Escalação de Privilégio Limitada: A maioria dos LPEs de Netlink/socket explora falhas de lógica do kernel para adquirir root dentro da estrutura de credenciais do processo (current->cred).
  • A Defesa UserNS: No containerd v2.2.4 com Kubernetes CRI v1.30 (hostUsers: false), o root do contêiner (UID 0) é mapeado para um intervalo de host sem privilégios (UID do host 4050714624). Escalações de credencial limitadas permanecem restritas dentro do namespace não-root.
  • Limite Realista: Vulnerabilidades de escrita arbitrária completa em ring-0 (controle direto do ponteiro de instrução do kernel ou tabelas de páginas) podem contornar os limites de namespace de usuário; tais ameaças exigem isolamento em nível de microVM ou hipervisor (por exemplo, Firecracker, Kata).

2. Configuração da Carga de Trabalho

root@kitploit:~
apiVersion: v1
kind: Pod
metadata:
  name: hardened-workload
spec:
  runtimeClassName: runc
  hostUsers: false  # Remaps container root away from host root
  containers:
  - name: app
    image: app:latest

3. Verificação no Host

root@kitploit:~
$ cat /proc/$(pgrep -f hardened-workload)/uid_map
         0 4050714624      65536

Camada 4: Encadeamento de Auditoria Criptograficamente à Prova de Adulteração

1. Prova de Adulteração vs. WORM de Hardware

Arquivos de log locais em um host comprometido podem, teoricamente, ser modificados se um atacante obtiver execução irrestrita em ring-0. Imutabilidade verdadeira requer mídia física write-once ou distribuição criptográfica:

  1. Encadeamento Sequencial SHA-256: Cada registro compromete-se com o hash do registro anterior: $$\text{Hash}n = \mathcal{H}\left(n \parallel \text{Timestamp} \parallel \text{Topic} \parallel \text{Payload} \parallel \text{Hash}{n-1}\right)$$
  2. Replicação Entre Nós: Os logs são transmitidos via NATS e replicados para um nó de atestação independente (192.0.2.52), impedindo a reescrita unilateral de logs por um único host comprometido.

2. Exemplo de Registro da Cadeia

root@kitploit:~
{
  "index": 386200,
  "timestamp": "2026-09-22T08:58:36.564478+00:00",
  "topic": "sovereign.security.alert",
  "prev_hash": "b2f6ef1e467cf8402da283f58e470ee64993a479a957a0914ec8c351be7fa83d",
  "hash": "cece8f9bd8839d3753232dd7e504c538a0f58fe0bcf2e260fbefb7d27e77b8cf",
  "data": {
    "output": "Active Exploit Probe: AF_ALG socket requested (domain=38 type=5 user=root ...)",
    "priority": "Warning",
    "rule": "Detect AF_ALG Crypto Socket Creation (CVE-2025-39964)"
  }
}

Verificação Empírica e Telemetria

A validação foi conduzida usando uma alocação sintética de socket AF_ALG em um contêiner de teste sem privilégios:

root@kitploit:~
import socket
# Requests AF_ALG Netlink family (domain 38, SOCK_SEQPACKET 5)
s = socket.socket(38, socket.SOCK_SEQPACKET, 0)

Ciclo de Vida do Evento:

  1. Syscall do Kernel: socket(38, 5, 0) invoca sys_enter_socket.
  2. Avaliação eBPF (< 1ms): O tracepoint eBPF moderno avalia domain == 38 e envia o evento para o buffer circular.
  3. Despacho do Pipeline (2ms): O Falco emite alerta para o webhook do Falcosidekick (:9876).
  4. Distribuição NATS (4ms): O daemon forwarder transmite o evento para sovereign.security.alert.
  5. Selagem do Ledger (12ms): O daemon de auditoria anexa o registro à cadeia criptográfica SHA-256.
  6. Validação Criptográfica:
    root@kitploit:~
    $ python3 fsm_audit_vault.py --verify
    # Verified 386,213 records. Zero tampering detected.
    

Estrutura do Repositório e Artefatos Implantáveis

Este repositório inclui configurações prontas para produção para implantação imediata:

root@kitploit:~
|-- etc/
|   \-- modprobe.d/
|       \-- blacklist-ebtables.conf     # Modprobe loader override
|-- helm/
|   |-- falco-rules-kernel-cve.yaml     # Falco modern eBPF rules (CO-RE)
|   \-- README.md                       # One-line Helm deployment guide
|-- k8s/
|   \-- pod-userns-hardened.yaml        # containerd v2.2.4 UserNS manifest
|-- scripts/
|   |-- evict-and-harden.sh             # Two-step module eviction & sealing
|   \-- verify-mitigation.sh            # Automated verification & CI test suite
|-- seccomp/
|   \-- seccomp-block-af-alg.json       # Inline SECCOMP blocking profile (EACCES)
|-- vault/
|   \-- audit_vault.py                  # Cryptographic SHA-256 hash-chain engine
|-- README.md
\-- LICENSE

Conclusões para SRE e Arquitetos de Sistemas

  1. Controles Compensatórios Preenchem a Lacuna de Correção: Quando dias zero ativos do kernel são weaponizados, implante controles de carregador e runtime imediatamente enquanto aguarda a verificação de pacotes upstream da distribuição.
  2. A Remoção Ativa de Módulos é Obrigatória: Substituições do modprobe afetam apenas solicitações futuras do carregador; sempre verifique a memória em execução via lsmod e remova explicitamente os módulos residentes (modprobe -r).
  3. Gating em Duas Fases para kTLS: Regras de segurança para kTLS devem avaliar tanto a anexação de TCP_ULP (SOL_TCP=6, optname=31) quanto a inicialização de opções (SOL_TLS=282).
  4. Namespaces de Usuário Limitam a Escalação de Privilégio: Emparelhar cargas de trabalho Kubernetes com namespaces de usuário do containerd (hostUsers: false) impede que a escalação de privilégio em nível de contêiner reivindique trivialmente o root ring-0 do host.
  5. Desacople o EDR da Aplicação Inline: Use eBPF assíncrono (Falco) para observabilidade de cluster com baixo overhead, e LSM / SECCOMP síncronos quando a terminação em microssegundos for obrigatória.

Mantido pela Sovereign Systems & Security Architecture Team.
Testado em Produção no Linux HWE e Kubernetes CRI v1.30 (containerd v2.2+).

Baixar ferramenta