Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense- — 零停机 Linux 内核零日漏洞防御案例研究。有关自动化 CLI 和双见证公证框架,请参见 mc493/kshield。 | Kitploit
工具/GitHubGitHub/mc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-
防御工具容器安全漏洞分析DevSecOps事件响应
GitHubmc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

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

零停机 Linux 内核零日漏洞防御案例研究。有关自动化 CLI 和双见证公证框架,请参见 mc493/kshield。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
21322天前尚未审核

零停机 Linux 内核零日漏洞防御:通过 eBPF 遥测、模块解除武装和用户命名空间实现分层补偿控制

CI Release License: MIT Kernel: Linux HWE Kubernetes: CRI v1.30+ eBPF: Falco modern_ebpf Engineered With: Antigravity CLI Views

当网络安全和基础设施安全局(CISA)将关键的 Linux 内核漏洞添加到其 已知被利用漏洞(KEV) 目录时,基础设施团队和 SRE 负责人面临的紧急运营倒计时便开始了:

上游补丁缺口:
从在野零日漏洞被公开武器化,到主要企业发行版提供经过测试、签名的二进制内核包,这一时间跨度通常为 7 到 21 天。

在生产 Kubernetes 集群中,被动等待供应商软件包会使系统暴露于主动利用的风险之下,而过早的内核升级或紧急重启则可能导致运营中断。

本案例研究记录了一个 纵深防御补偿控制框架,旨在跨用户空间、内核加载器和运行时层管理三个并发的 Linux 内核漏洞(CVE-2025-39964、CVE-2026-53266、CVE-2025-39682),且无需重启主机。

[!TIP]

自动化集群部署:项目 kshield

希望使用单一 CLI、Seccomp 沙箱和跨节点双见证 WORM 证明,在您的 Kubernetes 集群中应用自动化、声明式的零停机补偿控制?
部署 kshield(通用内核防御框架) —— 生产加固的参考 CLI,具备 60 秒交互式看门狗、实时 sysctl 强制执行(包括 CVE-2026-98432 MPTCP 解除武装)以及不可变的加密审计账本。


威胁矩阵与防御分类

为确保运营准确性,防御措施严格按其安全属性(预防、运行时检测和遏制)进行分类:

漏洞子系统攻击机制严重性防御模式实现机制
CVE-2026-53266Netfilter 桥接(ebtables)桥接 ARP 表重写规则中的算术溢出高(内存损坏)预防(解除武装)RAM 驱逐(modprobe -r)+ 加载器覆盖(/bin/true)
CVE-2025-39964加密 Netlink(AF_ALG)netlink 加密套接字分配中的整数截断高(LPE / 逃逸)检测(eBPF)/ 门控现代 eBPF(sys_enter_socket,域 38)+ SECCOMP
CVE-2025-39682内核 TLS(kTLS)TCP ULP 中的零长度记录处理缺陷高(内核恐慌 / 堆)检测(eBPF)现代 eBPF(sys_enter_setsockopt、TCP_ULP 31 和 SOL_TLS 282)

分层纵深防御架构

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 1000000\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 (security.alerts.kernel)"]
        
        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;

第 1 层:内核模块解除武装(预防性)

1. 操作细节:活动内存与未来探测

使用 /etc/modprobe.d/ 覆盖的一个常见陷阱是,install /bin/true 只会阻止后续的模块加载尝试。如果桥接网络(Docker、传统 CNI)在主机生命周期早期加载了 ebtables,那么易受攻击的代码仍在内核 RAM 中处于活动状态。

零停机解除武装需要两步序列:

  1. 驱逐: 从内核内存中卸载当前驻留的模块。
  2. 封存: 配置 /bin/true 加载器覆盖,以防止重新加载。

2. 实现

# Step A: Evict active ebtables modules with fail-closed inspection
for mod in ebtable_nat ebtable_filter ebtable_broute ebt_snat ebt_dnat ebt_arpreply ebtables; do
  if lsmod | grep -q "^${mod} "; then
    sudo modprobe -r "${mod}"
  fi
done

# Assert zero resident modules remain before installing loader overrides:
if lsmod | grep -q "^ebt"; then
  echo "FATAL: ebtables modules still resident in memory! Eviction failed." >&2
  exit 1
fi

# 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. 验证

# Test explicit loading (override must return exit code 0 without inserting code):
$ sudo modprobe ebt_snat
$ lsmod | grep ebt
# Output: (Empty - 0 modules resident in kernel memory)

第 2 层:eBPF 系统调用遥测与行为门控(运行时检测)

1. 同步门控与异步检测矩阵

纵深防御内核架构中的一个关键设计要求是严格区分异步检测与同步阻止:

防御平面主要技术延迟执行点对攻击向量的动作故障域
第 1 层:模块解除武装/bin/true 加载器覆盖0 msVFS 模块加载器同步阻止(阻止代码加载到 Ring 0)内核全局
第 2 层:系统调用门控SECCOMP-BPF 过滤器< 1 µsRing 3 $\to$ Ring 0 网关(rdi=38)同步阻止(SCMP_ACT_ERRNO / EACCES)每个 Pod / 容器
第 3 层:行为 eBPFFalco Modern eBPF(TCP_ULP、SOL_TLS)< 1 msRing 0 tracepoint异步检测与事件反射(NATS 告警)非侵入式
第 4 层:容器隔离用户命名空间(hostUsers: false)不适用DAC / UID 映射缩小影响范围(将 root UID 0 重映射为大于 100000 的非特权主机 UID)每个 Pod 边界
第 5 层:证据保管库单调 WORM 哈希链< 10 ms用户态守护进程 + NATS防篡改取证审计多节点集群

核心不变量: 异步检测规则(例如 Falco eBPF)会观察到正在进行的漏洞利用尝试并触发自动修复(例如动态 CrowdSec IP 封禁或 Pod 隔离),但其本身并不能阻止底层系统调用执行。同步阻止需要 SECCOMP 或 LSM 门控。

2. 修正后的 kTLS 系统调用机制(两阶段运行时检测与威胁分类)

在 TCP 连接上启用内核 TLS 会经历两个不同且顺序执行的阶段:

  1. 阶段 1(附加): setsockopt(fd, SOL_TCP=6, TCP_ULP=31, "tls", 4) 将上层协议(icsk_ulp_data)附加到已建立的 TCP 套接字(TCP_ESTABLISHED)。
  2. 阶段 2(配置): setsockopt(fd, SOL_TLS=282, TLS_TX=1/TLS_RX=2, crypto_info) 初始化加密上下文。

仅对 SOL_TLS (282) 进行过滤会完全遗漏阶段 1 的 ULP 附加。此外,生产环境检测工程必须区分尝试性 / 被拒绝的探测(攻击指标)与已确认的状态转换(漏洞暴露):

# 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]
下载工具