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

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

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

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

工具目录

分类

查看所有分类
Loading categories
copyfail-guard — 快速、可审计的 Linux 缓解措施,针对 CVE-2026-31431 Copy Fail:algif_aead 阻塞、验证和 AF_ALG seccomp 加固。 | Kitploit
工具/GitHubGitHub/juliosuas/copyfail-guard
防御工具容器安全漏洞分析配置审计云安全DevSecOps事件响应
GitHubjuliosuas/copyfail-guard

copyfail-guard

快速、可审计的 Linux 缓解措施,针对 CVE-2026-31431 Copy Fail:algif_aead 阻塞、验证和 AF_ALG seccomp 加固。

查看仓库
221个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CopyFail Guard

CI License: MIT Platform Shell No exploit code

root@kitploit:~
   ______                 ______      _ __   ______                     __
  / ____/___  ____  __  _/ ____/___ _(_) /  / ____/_  ______ __________/ /
 / /   / __ \/ __ \/ / / / /_  / __ `/ / /  / / __/ / / / __ `/ ___/ __  /
/ /___/ /_/ / /_/ / /_/ / __/ / /_/ / / /  / /_/ / /_/ / /_/ / /  / /_/ /
\____/\____/ .___/\__, /_/    \__,_/_/_/   \____/\__,_/\__,_/_/   \__,_/
          /_/    /____/

快速、可审计的 Linux 暴露评估与缓解工具,用于 CVE-2026-31431 “Copy Fail”,在内核修补完成前提供防护。

CopyFail Guard 是一款面向 Linux 系统管理员、DevSecOps 工程师、平台团队及事件响应人员的防御性运维工具。它通过以下方式帮助降低 Linux algif_aead / AF_ALG 问题的暴露风险:

  • 安全评估暴露情况(不含漏洞利用代码)
  • 检查 algif_aead 是否可用、已加载、内建或已被阻止
  • 安装持久化的 modprobe.d 阻止规则,并在安全时卸载模块
  • 向 Docker、Podman 和 Kubernetes 的 seccomp 配置文件中添加 AF_ALG 拒绝规则
  • 验证 AF_ALG 的可达性(不包含漏洞利用代码)

最终修复:安装供应商打过补丁的内核并重启。 本工具覆盖了从漏洞披露到全面补丁部署之间的运维空白。

为什么运维人员可以信任它

  • 无漏洞利用代码: 检查暴露情况和 AF_ALG 可达性,无需页面缓存写入、splice、setuid 变更、提权或破坏性探测。
  • 可审计的主机变更: 主机缓解措施仅写入一个受管理的文件 /etc/modprobe.d/99-copyfail-guard.conf,回滚时仅删除该文件。
  • 基线保留的 seccomp: seccomp-patch 在现有的 Docker/Podman/Kubernetes seccomp 配置文件中添加 AF_ALG 拒绝规则,而不是替换您的运行时加固措施。
  • 自动化就绪: assess --json 以及文档化的退出码支持大规模扫描、SIEM 捕获和变更管理证据。
  • CI 覆盖: shell 语法、seccomp 配置文件生成、JSON 输出以及冒烟测试在常见的 Linux 发行版容器中运行。

30 秒快速上手

如果您在 Linux 主机上,需要快速获得答案:

root@kitploit:~
git clone --depth 1 https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess

如果判定为已暴露且 algif_aead 为模块化:

root@kitploit:~
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify

对于可重复安装,请固定一个发布标签:

root@kitploit:~
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git

当新版本发布时,请将 v0.3.0 替换为最新的标签版本。

我是否受影响?

首先运行安全暴露检查:

root@kitploit:~
sudo ./bin/copyfail-guard.sh assess

结果解读说明:

如果您运行不受信任的容器、CI 任务、沙箱或多用户工作负载,还需测试在该运行时内 AF_ALG 套接字创建是否被阻止:

root@kitploit:~
python3 tools/afalg-socket-test.py

PERMITTED 并不证明成功利用,但它证明相关用户空间密码学 API 是可访问的。对于防御性运维而言,这足以在您确认修补内核部署之前应用缓解措施。

这能证明漏洞存在吗?

不包含破坏性的概念验证代码。这不是缺陷,而是一个特性。

真正的 Copy Fail 漏洞利用验证需要验证内核内存/页面缓存影响或权限提升。在公开的缓解仓库中包含此类代码会使项目变得更不安全,且在生产环境中更难部署。

CopyFail Guard 证明了运维人员可以安全采取行动的内容:

  • 风险组件是否可用、已加载、内建或已被阻止
  • 在目标运行时中是否允许 AF_ALG 套接字创建
  • 主机是否已有临时缓解措施
  • 剩余需要执行的操作:卸载、重启、seccomp 或供应商补丁

关于最终漏洞状态,请将此工具与供应商公告/软件包清单及重启证据结合使用。

解决模型

CopyFail Guard 是 缓解措施,而非治愈手段。它减少暴露并验证临时控制措施。持久的修复仍是供应商修补内核并重启。

该工具有意设计为“克隆即运行”模式用于事件响应:核心主机工作流无需编译器、内核头文件、漏洞利用代码或第三方包管理器。python3 用于 --json 输出、seccomp-patch 以及非利用性的 AF_ALG 套接字测试。

快速开始

克隆并运行:

root@kitploit:~
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
chmod +x bin/copyfail-guard.sh

sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify

可选系统安装:

root@kitploit:~
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status

安装器支持固定源和目标路径,用于受控部署:

root@kitploit:~
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh

当新版本发布时,请使用最新的标签版本作为 COPYFAIL_GUARD_REF。

容器 / CI 加固:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE

验证在受保护的容器内 AF_ALG 已被阻止:

root@kitploit:~
docker run --rm \
  --security-opt seccomp=./copyfail-seccomp.json \
  -v "$PWD/tools:/tools:ro" \
  python:3.12-alpine \
  python /tools/afalg-socket-test.py

预期的受保护结果:

root@kitploit:~
BLOCKED: socket(AF_ALG) denied by policy (...)

有关预期的判定、JSON 格式及容器验证结果,请参见 示例输出。

为什么这很重要

Copy Fail 是 Linux 内核 algif_aead 组件中的一个本地权限提升漏洞,该组件属于 AF_ALG 用户空间密码学 API。公开公告描述了一种可通过非特权本地用户访问的页缓存写入原语,在共享内核系统上尤其危险:Kubernetes 节点、CI/CD 运行器、多租户主机、代理沙箱及开发人员机器。

正确的修复是供应商的内核更新(包含上游的回退/修复)并重启到修补后的内核。CopyFail Guard 是一个防御性运维助手,用于填补重启完成之前的窗口期。

工具功能

安装要求

核心主机命令:

  • Linux
  • bash
  • kmod 工具:modinfo、modprobe、lsmod、rmmod(可用时)
  • grep、awk、mktemp、install

可选可见性工具:

  • lsof 或 ss 用于检查 AF_ALG 使用者

Seccomp 配置文件修补:

  • 需要 python3 用于 --json、seccomp-patch 和 tools/afalg-socket-test.py

不需要漏洞利用代码、编译器、内核头文件或第三方包。

安全评估 vs 概念验证

CopyFail Guard 不包含漏洞利用概念验证代码。这是有意的设计。参见 这能证明漏洞存在吗?。

相反,assess 执行安全运维检查:

  • 检测 algif_aead 是否可用、已加载、内建或已被阻止
  • 区分“临时缓解”与“实际解决”
  • 推荐主机缓解、seccomp 或补丁/重启
  • 返回用于大规模自动化的退出码

自动化 JSON:

root@kitploit:~
sudo ./bin/copyfail-guard.sh assess --json
./bin/copyfail-guard.sh doctor --json

退出码:

主机缓解详情

mitigate 写入:

root@kitploit:~
/etc/modprobe.d/99-copyfail-guard.conf

内容:

root@kitploit:~
# Managed by CopyFail Guard for CVE-2026-31431
install algif_aead /bin/false
blacklist algif_aead

然后尝试:

root@kitploit:~
sudo rmmod algif_aead

如果模块正在使用中,rmmod 可能会失败。在这种情况下,持久阻止规则仍然保留;请停止 AF_ALG 使用者或在应用缓解措施后重启。

脚本拒绝覆盖其管理的 modprobe 路径中的符号链接,并以安全权限原子性地写入文件。

容器和 CI 加固

对于不受信任的工作负载,在修补主机的同时,使用 seccomp 阻止 AF_ALG 套接字创建。

推荐路径:修补现有的运行时 seccomp 基线,而不是替换它:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json

与 Docker 一起使用:

root@kitploit:~
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE

与 Podman 一起使用:

root@kitploit:~
podman run --security-opt seccomp=./copyfail-seccomp.json IMAGE

如果您没有基线配置文件,仅限紧急情况下使用:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-docker ./copyfail-afalg-seccomp.json

生成的紧急配置文件会阻止 AF_ALG,但允许其他系统调用。将其视为有针对性的权宜之计,而非 Docker 正常默认 seccomp 加固的替代品。

对于 Kubernetes,将配置文件放在 kubelet seccomp 根目录下,通常是:

root@kitploit:~
/var/lib/kubelet/seccomp/profiles/copyfail-seccomp.json

然后在 Pod 配置中引用它:

root@kitploit:~
securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: profiles/copyfail-seccomp.json

参见 examples/kubernetes-seccomp-pod.yaml。

安全验证

本项目包含一个非利用性的 AF_ALG 可达性测试:

root@kitploit:~
python3 tools/afalg-socket-test.py

它仅尝试创建并关闭一个 AF_ALG 套接字。不会绑定密码学操作、调用 splice、操作 setuid 二进制文件、破坏页面缓存或尝试提权。

结果:

  • BLOCKED:策略对该进程拒绝了 AF_ALG。
  • PERMITTED:该进程仍被允许创建 AF_ALG 套接字。
  • UNSUPPORTED:该运行时中 AF_ALG 不可用。

社区验证

CopyFail Guard 需要来自 Linux 主机、容器运行时、CI 运行器和 Kubernetes 节点的真实世界兼容性报告。如果您能安全测试,请使用经过脱敏处理的 doctor、assess --json、verify 或 AF_ALG 套接字测试输出,打开一个 兼容性报告 问题。

有用的报告有助于回答:

  • 哪些发行版/内核/运行时的组合易于缓解
  • 哪些情况下 algif_aead 是内建的,只能通过补丁/重启解决
  • 哪些 seccomp 基线需要特定运行时的注释
  • 文档对于事件响应使用是否足够清晰

参见 社区验证指南。

命令

root@kitploit:~
copyfail-guard assess                 安全暴露评估,不进行利用尝试
copyfail-guard status                 检查主机暴露指示器
copyfail-guard doctor                 检查依赖项和运行时就绪状态
copyfail-guard mitigate               持久禁用 algif_aead 并卸载
copyfail-guard verify                 验证主机缓解是否生效
copyfail-guard rollback               移除 CopyFail Guard 的 modprobe 缓解
copyfail-guard seccomp-docker [文件]  生成紧急 AF_ALG 拒绝配置文件
copyfail-guard seccomp-patch 基础 输出  安全地修补现有 seccomp 配置文件
copyfail-guard k8s-example            打印 Kubernetes seccomp 示例

标志可以放在命令之前或之后:

root@kitploit:~
--dry-run      显示计划中的更改,而不写入文件或卸载模块
--yes          非交互式确认
--no-logo      禁用 ASCII 横幅
--json         对支持的命令(assess、doctor)输出 JSON

不应破坏的部分

在典型配置中,禁用 algif_aead 预计不会影响:

  • LUKS / dm-crypt
  • SSH
  • OpenSSL、GnuTLS、NSS 默认构建
  • kTLS / 内核内 TLS
  • IPsec / XFRM
  • 正常的内核内密码学使用者

它可能影响明确配置使用 AF_ALG 引擎的应用程序,或直接创建 AF_ALG 套接字的应用程序。请先检查:

root@kitploit:~
sudo lsof | grep AF_ALG || true
ss -xa | grep -i alg || true

运维人员文档

  • 事件响应手册
  • 大规模部署指南
  • 社区验证指南
  • 示例输出
  • 发布检查清单
  • Seccomp 验证说明
  • 安全评估模型
  • 安全策略
  • 支持策略
  • 贡献指南
  • 变更日志

项目成熟度

  • 当前范围:防御性评估、模块化 algif_aead 的主机缓解、针对不受信任工作负载的 seccomp 加固、以及回滚。
  • 支持用户:熟悉 Linux 主机和容器加固的运维人员。
  • 发布风格:标签发布、变更日志条目、GitHub Actions 冒烟测试、以及用于可重现报告的问题模板。
  • 社区信号:兼容性报告是最强的信任信号;现实现场证据可以成为文档、测试和示例。
  • 稳定性承诺:避免利用行为,保持主机写入范围狭窄,文档化退出码语义,并保留现有运行时 seccomp 基线。

局限性

CopyFail Guard 不会:

  • 修补您的内核
  • 证明您的确切内核构建是否可被利用
  • 包含漏洞利用代码
  • 保护已受入侵的 root 用户
  • 替代 EDR、大规模资产清单、供应商公告或重启规划

主机模块缓解仅适用于模块化的 algif_aead。如果 algif_aead 内建于您的内核中,modprobe.d 和 rmmod 无法禁用;必须进行补丁/重启,并且在补丁期间应使用 seccomp 保护不受信任的工作负载。

Seccomp 仅保护使用该配置文件启动的工作负载。现有正在运行的容器或 Pod 必须使用加固的配置文件重启。

回滚

root@kitploit:~
sudo ./bin/copyfail-guard.sh rollback --yes

回滚仅删除此工具管理的文件。不会重新加载模块。仅当您明确需要它并且已接受风险或已修补内核时,才需手动 modprobe algif_aead。

常见问题

这能替代修补吗?

不能。修补并重启仍然是最终解决方案。

这能测试利用吗?

不能。该项目有意避免利用行为。tools/afalg-socket-test.py 仅检查 AF_ALG 套接字创建是否可达。

为什么即使主机已经缓解,还要在容器中阻止 AF_ALG?

纵深防御。容器和 CI 工作是未受信任代码在共享内核上运行的常见场所。Seccomp 使此类攻击的第一步对该工作负载不可达。

为什么修补现有的 seccomp 配置文件而不是生成一个新的?

因为默认运行时配置文件包含许多加固决策。用最小的紧急配置文件替换它们可能会意外移除保护。seccomp-patch 保留您的基线并添加 AF_ALG 拒绝规则。

我能否在整个大规模环境中使用这个工具?

可以。从 doctor 和 assess --json 开始,在少量 Linux 样本上暂存缓解措施,然后分别推出主机缓解和 seccomp 配置文件更改。参见 大规模部署指南。

参考

  • NVD: CVE-2026-31431
  • CERT-EU 公告:Linux 内核高危漏洞 (“Copy Fail”)
  • CISA 已知被利用漏洞目录
  • copy.fail 公开技术公告
  • Linux 稳定版修复:crypto: algif_aead - Revert to operating out-of-place

作者

由 Julio César Suástegui Calderón 构建。

专注于安全工程、Linux 系统及实用的防御性自动化。

许可证

MIT

下载工具
判定系列含义操作
EXPOSED_*algif_aead / AF_ALG 似乎可达或可加载立即缓解,然后修补并重启
PARTIALLY_MITIGATED_*存在阻止规则,但已加载的模块或重启状态仍有关联安全地重启或卸载,然后验证
INTERIM_MITIGATED_*本地缓解措施已生效保留该措施,但仍需修补并重启
LOW_OBVIOUS_EXPOSURE_*本地检查未发现明显的 algif_aead 暴露仍应确认供应商补丁状态
领域命令用途
安全评估assess给出非利用性的暴露判定、后续操作以及自动化友好的退出码
依赖检查doctor检查必需/可选工具,并解释运行时限制
主机检查status显示操作系统/内核、模块可用性、加载状态、内建警告、modprobe 阻止规则及明显的 AF_ALG 使用者
主机缓解mitigate写入 /etc/modprobe.d/99-copyfail-guard.conf 并尝试卸载 algif_aead
验证verify如果模块已加载、内建或未被阻止,则明确报告失败
回滚rollback仅删除 CopyFail Guard 管理的 modprobe 文件
容器seccomp-patch修补现有的 seccomp 配置文件,拒绝 socket(AF_ALG, ...),同时保留正常的套接字使用
紧急配置seccomp-docker生成用于紧急情况的针对性 AF_ALG 拒绝配置文件
Kubernetesk8s-example打印一个使用 Localhost seccomp 的 Pod 示例
码含义
0本地检查未发现明显暴露
1临时缓解已生效,但仍需补丁/重启
10已暴露,可获得缓解
11部分缓解;需要重启或卸载
12内建模块路径;需要补丁/重启
20未知评估状态