Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-31431-detection-defense — CVE-2026-31431 的研究与检测指南,该漏洞是基于 io_uring 的系统调用监控绕过。提供针对 Tetragon、Falco 和 Wazuh 的检测规则,以及加固策略。 | Kitploit
工具/GitHubGitHub/detect-defenselab/cve-2026-31431-detection-defense
防御工具容器安全漏洞分析漏洞利用入侵检测
GitHubdetect-defenselab/cve-2026-31431-detection-defense

CVE-2026-31431-detection-defense

CVE-2026-31431 的研究与检测指南,该漏洞是基于 io_uring 的系统调用监控绕过。提供针对 Tetragon、Falco 和 Wazuh 的检测规则,以及加固策略。

查看仓库

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
3个月前尚未审核

CVE-2026-31431:针对 io_uring 绕过现有检测的检测与防御

作者:fz0x00、qiwuSEC

研究

针对 CVE-2026-31431(“Copy Fail”),我们通过组合三种绕过策略,展示了主流安全产品的系统性弱点:io_uring 异步 I/O 路径、进程拆分(fork + SCM_RIGHTS) 以及套接字复用。通过实证测试,我们证明这些技术可以规避几乎所有基于系统调用的检测工具。

关键发现

1. io_uring 可绕过几乎所有基于系统调用的检测

io_uring 通过共享内存环形缓冲区提交请求,绕过了传统的系统调用入口点。这意味着:

  • auditd / Wazuh / Elastic Security Agent 以及其他依赖系统调用审计的产品,在攻击者使用 io_uring 路径时完全失明——零事件、零告警
  • io_uring 工作线程(iou-wrk-XXXXX)在内核内部执行操作,不会触发 audit_syscall_entry()
  • 仅阻止 socket(AF_ALG) 的 Seccomp 策略可通过 IORING_OP_SOCKET 绕过——seccomp 仅在系统调用入口处检查,而 io_uring 操作不经过该入口

2. 进程拆分破坏 PID 级关联

通过使用 fork + SCM_RIGHTS(Unix 域套接字 fd 传递),套接字创建和 splice 操作可以放置在不同的进程中:

  • Wazuh 的 same_field(audit.pid) 关联被破坏——套接字 PID ≠ splice PID,CRITICAL 规则不会触发
  • Falco libsinsp 的进程级 fd 跟踪在 SCM_RIGHTS 场景下完全失效

3. 套接字复用绕过计数阈值规则

原始 PoC 每次迭代创建一个新套接字(产生 40+ 次 socket(AF_ALG) 调用)。套接字复用仅创建一个监听套接字;循环调用 accept(),不会产生新的套接字事件。基于 count >= N 的规则被完全击败。

4. 最难检测的变体组合

root@kitploit:~
io_uring 路径 + splice + /etc/passwd + authenc 算法 + SCM_RIGHTS 拆分 + 套接字复用

在此组合下:基于系统调用的工具完全失明,进程级关联被破坏,计数阈值失效。只有 kprobe 汇聚点检测才能捕获此组合。

5. LSM 级监控可以完美检测利用行为

__sock_create(family=38) 是所有路径(系统调用和 io_uring)的不可绕过的汇聚点——AF_ALG 是 Linux 内核中唯一的用户空间加密 API。无论攻击者如何变换手法,都必须创建 AF_ALG 套接字。在 LSM 级别监控此函数可实现 100% 召回率,且不受任何变体影响。

各产品测试结果

Falco 需要 krsi 插件

Falco 原生的 modern_ebpf 驱动仅捕获系统调用路径。必须使用 krsi 插件——它利用 fexit 跟踪 io_socket() 和 __sys_socket() 内核函数退出,以覆盖 AF_ALG 套接字创建的 io_uring 路径。推荐的备用规则:

root@kitploit:~
- rule: AF_ALG Socket Created
  condition: >
    (evt.type = socket and evt.args contains AF_ALG) or
    (evt.type = krsi_socket and krsi.domain = 38)
  output: >
    AF_ALG socket created (source=%evt.type domain=%evt.arg.domain
    krsi_domain=%krsi.domain proc=%proc.name pid=%proc.pid)
  priority: WARNING
  tags: [cve-2026-31431, crypto, container_escape]

推荐规则的检测方法:同时覆盖 socket 事件(系统调用路径,使用 evt.args contains AF_ALG 字符串匹配以绕过 ENUMFLAGS32 类型限制)和 krsi_socket 事件(io_uring 路径,使用 krsi.domain = 38 整数比较)。不依赖计数阈值(已被套接字复用击败),不依赖 PID 关联(已被多进程拆分击败)。

注意:社区 ThreatBear 规则的三层防御均可被绕过——ENUMFLAGS32 类型不匹配(evt.arg[0]=38 始终为 false)、套接字复用击败计数阈值(count=1 < 40)、多进程拆分破坏 PID 关联。参见规则绕过分析。

Wazuh / Elastic Security Agent 无法检测 io_uring 利用

Wazuh 完全依赖 auditd 的系统调用审计事件。io_uring 操作不经过系统调用入口,因此 auditd 产生零事件,所有 7 条 Wazuh 规则均失效。Elastic Security Agent 同样如此——依赖系统调用入口的产品在结构上对 io_uring 路径失明。参见Wazuh 局限性分析。

绕过演示

bypass_demo/ 目录包含检测绕过方法的理论描述。实际 PoC 代码仅供内部使用,不公开发布。

文档索引

理论

文档内容
VULNERABILITY.md根本原因——三项内核变更的叠加、9 步攻击链、页缓存写入特性
EXPLOIT_VARIANTS.md

检测方案

加固

文档内容
defense/HARDENING.md3 层防御模型:内核配置 → seccomp → 用户命名空间;Docker 29.4.2 安全性分析
下载工具
产品检测层传统系统调用io_uring 路径多进程拆分套接字复用评估
Tetragon (kprobe)内核函数✅✅✅✅唯一全链路覆盖
Falco + krsi 插件fexit/fentry✅✅✅✅需要 krsi 支持 io_uring;仅入口
Falco (modern_ebpf)系统调用 tracepoint✅❌✅✅io_uring 完全不可见
auditd / Wazuh系统调用审计✅❌❌ PID 被破坏⚠️io_uring 盲区 + PID 关联被破坏
Elastic Security Agent系统调用✅❌⚠️⚠️与 Wazuh 相同;依赖系统调用 = 盲区
6 个利用变体维度——I/O 路径 × 数据提交 × 目标文件 × AEAD 算法 × 进程拆分 × 套接字复用
DETECTION_THEORY.md检测理论——汇聚点与发散点、4 层检测架构、多信号时间关联
文档内容
detection/tetragon.md推荐——Tetragon kprobe,5 个探针覆盖传统 + io_uring,唯一全链路检测
detection/falco.mdFalco 0.40.0 + krsi 0.1.0 配置指南、krsi 内部原理、故障排查
detection/wazuh.mdWazuh + auditd 三大局限性:io_uring 盲区、PID 关联失效、页缓存不可见
detection/rule_bypass.mdThreatBear 规则绕过原理、推荐规则防绕过的实证验证