AzDevops143/FRAGNESIA-Charan-cve-2026-46300

GitHub: AzDevops143/FRAGNESIA-Charan-cve-2026-46300

Charantej 是一个企业级容器隔离和运行时安全遥测框架。

Stars: 0 | Forks: 0

# Charantej 架构:加固容器构建阶段与系统调用遥测实验室 一个企业级、多层次防御的容器隔离和运行时安全遥测框架。从思科首席网络安全架构师的角度设计,Charantej 架构隔离构建阶段运行时、限制系统调用表面,并使用主机级审计实时内核遥测来确保现代 Linux 容器部署的安全性。 ## 高级设计(HLD) Charantej 架构强制执行隔离、最小权限隔离和带外监控,以确保安全边界对主机内核妥协向量保持弹性。 ``` 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 5 ``` ### 信任边界 1. **容器运行时沙箱:** 容器命名空间严格以非特权用户身份运行,移除所有默认 Linux 能力(`CAP_SYS_ADMIN`、`CAP_NET_ADMIN`、`CAP_NET_RAW` 等),以阻止原始系统级网络操作。 2. **系统调用白名单:** 一个自定义的安全计算模式(seccomp)配置文件充当容器化进程和主机内核之间的守门人,阻止访问危险的套接字或命名空间更改系统调用。 3. **带外仪器:** 事件审计在主机级别通过 eBPF 跟踪探针带外运行。这确保即使容器运行时被入侵,遥测日志也无法在容器上下文中被篡改或禁用。 ## 低级设计(LLD) 低级设计定义了内核边界内的操作系统调用验证逻辑、过滤器路径和监控端点。 ``` 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| Alert ``` Charantej 架构由三个相互关联的配置层组成,以强制执行安全边界。 ### 1. 加固容器构建阶段(容器运行时) 编排配置通过运行时标志直接实施以下安全控制: - **`--cap-drop=ALL`**:移除每个默认 Linux 内核能力,防止容器获得低级管理权限。 - **`--security-opt no-new-privileges:true`**:防止子进程通过 `setuid` 或 `setgid` 二进制文件获得比父进程更多的权限。 - **`--security-opt seccomp=seccomp-profile.json`**:实施白名单系统调用过滤。 ### 2. 系统调用白名单守门人(`seccomp-profile.json`) 默认情况下,Docker 的 seccomp 过滤器允许广泛的系统调用列表。Charantej 架构将其限制为基本进程执行所需的最小绝对值: - **默认操作(`SCMP_ACT_ERRNO`)**:除非在配置文件中明确列出白名单,否则阻止所有系统调用。 - **允许的系统调用**:仅允许基本操作原语(如 `read`、`write`、`exit`、`exit_group`、`futex`、`nanosleep`、`mmap`、`munmap`、`mprotect` 和 `close`)。 - **阻止向量**:明确阻止 `socket` 操作、`setsockopt` 网络更改、命名空间加入(`setns`)和能力设置(`capset`),消除未经授权的本地权限提升(LPE)尝试。 ### 3. eBPF 遥测跟踪(概念) 主机级跟踪规则在概念上监控进程和系统调用边界: - **`Det_Anomalous_Networking`**:审计套接字选项,如果任何容器化进程尝试修改上层协议或 ULP 属性(`TCP_ULP` optname),则标记为立即 `CRITICAL ALERT`。 - **`Container_Privilege_Escalation_Attempt`**:对未经授权尝试加入命名空间(`setns`)或修改能力设置(`capset`)发出警报。 ## 实时漏洞演示(CVE-2026-46300 "Fragnesia") 此存储库包含 CVE-2026-46300 的实时漏洞模拟,以实际演示 Charantej 架构的有效性。 漏洞尝试两个向量: 1. **命名空间逃逸**:尝试使用 `setns()` 劫持主机挂载命名空间。 2. **内核 ULP 污染**:尝试通过 `setsockopt(TCP_ULP)` 未经授权的 ULP 内存操作。 ### 运行漏洞测试 提供了一个辅助脚本,用于自动构建漏洞并对其运行未经缓解的容器(代表易受攻击的系统)和 Charantej 加密的容器进行测试。 1. 确保 Docker 正在运行。 2. 执行测试脚本: bash run_exploit.sh ### 预期结果 #### 1. 未缓解环境(漏洞阶段) 漏洞将成功执行 `setns()` 和 `setsockopt()`,报告“易受攻击”状态。 ``` 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! ``` #### 2. Charantej 加密环境(缓解阶段) 漏洞被拦截。`setns()` 被能力下降(EPERM)阻止,`socket()` / `setsockopt()` 被显式中和,报告“已阻止”状态。这证实了即使 Fragnesia 有效负载被执行,Charantej 架构也能安全地将主机与漏洞隔离。
标签:Docker镜像, 安全渗透, 客户端加密, 请求拦截