
Estrutura de preparação de contêineres endurecida com lista de permissões de chamadas de sistema seccomp e telemetria eBPF para detectar e bloquear tentativas de escape de contêineres e corrupção de ULP do kernel.
Um framework de contenção de contêineres e telemetria de segurança de tempo de execução de nível empresarial, com defesa em profundidade. Projetado da perspectiva de um Arquiteto Líder de Cibersegurança da Cisco, a Arquitetura Charantej isola ambientes de preparação, restringe superfícies de chamadas do sistema e instrumenta telemetria do kernel em tempo real usando auditoria em nível de host para proteger implantações modernas de contêineres Linux.
A Arquitetura Charantej impõe isolamento, contenção de privilégio mínimo e monitoramento fora de banda para garantir que os limites de segurança permaneçam resilientes contra vetores de comprometimento do kernel do host.
flowchart TD
subgraph HostOS ["Host OS (Secured Linux Node)"]
subgraph Docker ["Docker Container Runtime"]
App["Audited App Namespace"]
end
subgraph Auditor ["Host Auditor (Falco Engine)"]
eBPF["eBPF Probes"]
end
Kernel["Host Linux Kernel"]
end
SIEM["SIEM / Log Repository"]
App -->|System Calls| Kernel
Kernel -->|Trace Events| eBPF
eBPF --> Auditor
Auditor -->|Telemetry Logs| SIEM
style HostOS fill:#1e1e1e,stroke:#333,stroke-width:2px
style Docker fill:#2a2a2a,stroke:#007bff,stroke-width:2px
style Auditor fill:#2a2a2a,stroke:#dc3545,stroke-width:2px
style Kernel fill:#333,stroke:#ffc107,stroke-width:2px
style SIEM fill:#1e1e1e,stroke:#28a745,stroke-width:2px,stroke-dasharray: 5 5CAP_SYS_ADMIN, CAP_NET_ADMIN, CAP_NET_RAW, etc.) para bloquear manipulações de rede de baixo nível no sistema.O Design de Baixo Nível define a lógica operacional de validação de chamadas do sistema, caminhos de filtro e endpoints de monitoramento dentro do limite do kernel.
flowchart TD
subgraph ContainerSpace ["Container Namespace (User Space)"]
App["Audited Process"]
end
subgraph SeccompBoundary ["Seccomp Syscall Filter Boundary"]
Syscall["Syscall Invocation"]
Filter{"Syscall in Whitelist?"}
Block["SCMP_ACT_ERRNO (Block & Fail)"]
Allow["Allow & Pass"]
end
subgraph KernelSpace ["Linux Host Kernel Space"]
Handler["System Call Handler"]
Subsystem["Target Subsystem (e.g., Network/Memory)"]
end
subgraph TelemetryLayer ["Host Auditing Layer"]
eBPF["eBPF Probe Instrumentation"]
Falco{"Event Matches Rule?"}
Alert["Log syslog / SIEM Alarm"]
end
App -->|1. Invokes Syscall| Syscall
Syscall --> Filter
Filter -->|No: e.g., setsockopt/socket| Block
Filter -->|Yes: e.g., read/write| Allow
Allow --> Handler
Handler --> Subsystem
Handler -->|2. Traces Execution| eBPF
eBPF --> Falco
Falco -->|Yes| AlertA Arquitetura Charantej é composta por três camadas de configuração interconectadas para impor limites de segurança.
A configuração de orquestração implementa os seguintes controles de segurança diretamente por meio de flags de tempo de execução:
--cap-drop=ALL: Remove todas as capacidades padrão do kernel Linux, impedindo o contêiner de obter privilégios administrativos de baixo nível.--security-opt no-new-privileges:true: Impede que processos filhos obtenham mais privilégios que seu processo pai por meio de binários setuid ou setgid.--security-opt seccomp=seccomp-profile.json: Implementa filtragem de chamadas do sistema com base em lista de permissões.seccomp-profile.json)Por padrão, o filtro seccomp do Docker permite uma ampla lista de chamadas do sistema. A Arquitetura Charantej restringe isso ao mínimo absoluto necessário para a execução básica de processos:
SCMP_ACT_ERRNO): Bloqueia todas as chamadas do sistema, a menos que explicitamente permitidas no perfil.read, write, exit, exit_group, futex, nanosleep, mmap, munmap, mprotect e close).socket, alterações de rede setsockopt, junções de namespace (setns) e conjuntos de capacidades (), neutralizando tentativas não autorizadas de escalada de privilégio local (LPE).Regras de rastreamento em nível de host monitoram conceitualmente os limites de processos e chamadas do sistema:
Det_Anomalous_Networking: Audita opções de soquete e sinaliza um ALERTA CRÍTICO imediato se qualquer processo conteinerizado tentar modificar protocolos de camada superior ou propriedades ULP (optname TCP_ULP).Container_Privilege_Escalation_Attempt: Alerta sobre tentativas não autorizadas de ingressar em namespaces (setns) ou modificar conjuntos de capacidades (capset).Este repositório inclui uma simulação ao vivo de exploração para CVE-2026-46300 para demonstrar praticamente a eficácia da Arquitetura Charantej. A exploração tenta dois vetores:
setns().setsockopt(TCP_ULP).Um script auxiliar é fornecido para construir automaticamente a exploração e executá-la contra um contêiner não mitigado (representando um sistema vulnerável) e o contêiner protegido pelo Charantej.
bash run_exploit.sh
A exploração executará com sucesso tanto setns() quanto setsockopt(), relatando um status "VULNERÁVEL".
sequenceDiagram
participant App as Unprivileged App (Fragnesia Payload)
participant Cap as Capability Check (Kernel)
participant NS as /proc/self/ns/mnt (Host Namespace)
participant Sys as Syscall Interface
participant ULP as Kernel ULP Memory
Note over App,ULP: STAGE 1: Namespace Hijacking
App->>Cap: 1. setns(FD, 0)
Cap-->>App: Allowed (No cap_drop)
App->>NS: Hijack Host Namespace
NS-->>App: SUCCESS: Container Isolation Bypassed
Note over App,ULP: STAGE 2: ULP Memory Corruption (CVE-2026-46300)
App->>Sys: 2. socket(AF_INET, SOCK_STREAM, 0)
Sys-->>App: FD allocated
App->>ULP: 3. setsockopt(FD, IPPROTO_TCP, TCP_ULP, "tls")
Note right of ULP: Attempts unauthorized memory modification
ULP-->>App: SUCCESS: Malicious payload injected
Note over App,ULP: IMPACT: Host Kernel Memory Compromised!A exploração é interceptada. setns() é bloqueado pelas remoções de capacidades (EPERM), e socket() / setsockopt() são explicitamente neutralizados pelo limite do filtro de chamadas do sistema Seccomp (ou remoções de capacidade, dependendo do perfil de execução), relatando um status "BLOQUEADO". Isso confirma que, mesmo se o payload Fragnesia for executado, a arquitetura Charantej isola com segurança o host da exploração.
sequenceDiagram
participant App as Unprivileged App (Fragnesia Payload)
participant Cap as Capability Drop (ALL)
participant NS as /proc/self/ns/mnt (Host Namespace)
participant Sec as Seccomp Filter Boundary
participant ULP as Kernel ULP Memory
Note over App,ULP: STAGE 1: Namespace Hijacking Attempt
App->>Cap: 1. setns(FD, 0)
Cap-->>App: BLOCKED (EPERM - Operation not permitted)
Note left of Cap: Defense Triggered: Namespace escape neutralized
Cap-xNS: Cannot reach Host Namespace
Note over App,ULP: STAGE 2: ULP Memory Corruption Attempt
App->>Sec: 2. socket() / setsockopt(TCP_ULP)
Sec-->>App: BLOCKED (EPERM - Operation not permitted)
Note left of Sec: Defense Triggered: Socket operations neutralized
Sec-xULP: Cannot reach Kernel ULP Context
Note over App,ULP: IMPACT: Exploit completely contained. Host is Safe!capset