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镜像, 安全渗透, 客户端加密, 请求拦截