苹果首次在漏洞致谢中点名 Claude 与 Codex:AI 安全研究走进 CVE 流程

2026-07-29 23 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

苹果最新一轮系统更新覆盖 iOS、iPadOS、watchOS、tvOS、visionOS 和 macOS Tahoe,并修复了大量安全漏洞。比补丁数量更值得关注的是官方安全公告中的归因方式:苹果首次在 CVE 漏洞致谢列表里直接写出 AI 模型名称,其中 Anthropic 的 Claude 与 OpenAI 的 Codex Security 分别协助发现了 3 项漏洞。

这并不意味着 AI 已经可以独立完成漏洞研究,但它释放了一个清晰信号:大模型辅助代码审计正从实验性工具进入可追踪、可验证、能够获得正式署名的安全研究流程。

从“研究人员使用了 AI”到“AI 出现在归因列表”

传统漏洞公告通常感谢个人研究员、安全团队或企业实验室。现在模型名称被直接列入归因信息,说明 AI 在部分漏洞的发现过程中扮演了足够明确的角色。

这里需要区分三个概念:

  • 发现线索:模型找出可疑的数据流、边界条件或危险 API 调用。
  • 确认漏洞:研究人员构造输入,稳定复现越界访问、权限绕过或其他安全影响。
  • 完成披露:团队整理影响范围、受影响版本、复现条件,并通过厂商渠道提交报告。

官方致谢能够证明 AI 参与了发现工作,却不等于模型独立完成了后续全部步骤。真正进入 CVE 修复流程的结果仍然需要可复现证据、人工判断和厂商验证。

AI 为什么适合辅助代码审计

大型代码库中的漏洞往往不藏在某一行明显错误里,而是出现在多个函数、状态和权限边界的组合中。AI 工具可以快速阅读上下文,并围绕一些高风险模式提出检查方向,例如:

  • 长度检查与实际内存访问使用了不同变量;
  • 解析器在异常分支中保留了不完整状态;
  • 权限判断发生在路径规范化之前;
  • 错误处理遗漏资源释放或重复释放;
  • 调用方假设与被调用函数的真实约束不一致。

相比只匹配固定规则的静态扫描器,大模型更擅长解释跨函数关系,并生成用于验证假设的测试代码。但它也可能误读生命周期、忽略编译条件,或者生成无法触发问题的输入。因此,更可靠的组合是“静态分析筛选目标、AI 提出假设、测试工具验证结果”。

可以这样搭建一个最小审计工作流

下面是一个可改造的本地流程:先用 Semgrep 寻找危险调用,再把命中位置及其上下文交给 AI 复核。示例假设项目以 C/C++ 为主,运行前需要安装 Python 3,并把 src 改成实际源码目录。

python3 -m venv .venv
. .venv/bin/activate
pip install semgrep

semgrep scan \
  --config p/c \
  --json \
  --output semgrep-results.json \
  src

不要把整份仓库直接发送给模型。可以先提取报告中的文件位置,再由工程师挑选必要上下文:

python3 - <<'PY'
import json
from pathlib import Path

report = json.loads(Path("semgrep-results.json").read_text())
for item in report.get("results", []):
    path = item["path"]
    line = item["start"]["line"]
    rule = item["check_id"]
    message = item.get("extra", {}).get("message", "")
    print(f"{path}:{line}\t{rule}\t{message}")
PY

随后可以把筛选出的函数交给具备代码分析能力的模型,并使用约束明确的提示词:

你是一名协助审计 C/C++ 代码的安全工程师。

任务:
1. 只分析下面给出的代码,不假设未展示函数的行为。
2. 检查越界访问、整数溢出、释放后使用、双重释放和权限检查顺序。
3. 对每个疑点列出:触发条件、可控输入、危险操作和需要补充的上下文。
4. 不确定时明确标记“待验证”,不要把推测写成已确认漏洞。
5. 给出一个最小测试思路,但不要声称测试已经成功。

代码:
<在这里粘贴经过脱敏的函数及必要调用方>

模型返回的内容应被当作审计假设,而不是漏洞结论。下一步需要使用 AddressSanitizer、UndefinedBehaviorSanitizer、模糊测试或单元测试进行验证。例如,Clang 项目可以先打开常用运行时检查:

clang -O1 -g \
  -fsanitize=address,undefined \
  -fno-omit-frame-pointer \
  parser.c test_parser.c \
  -o test_parser

ASAN_OPTIONS=detect_leaks=1 ./test_parser

只有当测试能够稳定触发问题,并且堆栈、输入与受影响代码路径都能对应起来时,线索才接近可提交的漏洞报告。

引入团队流程时要守住边界

AI 安全审计的主要风险不只是误报,还包括源码泄露、依赖许可冲突和不可复现的推断。团队落地时至少应检查以下事项:

  • 确认代码是否允许发送到外部模型,敏感项目优先使用获批环境;
  • 保存模型版本、提示词、提交哈希和扫描器版本,避免结果无法追踪;
  • 要求每项发现附带触发条件和验证方法;
  • 使用编译器、测试或人工数据流分析确认漏洞,不以模型回答作为证据;
  • 对自动生成的修复执行回归测试,特别关注错误路径和平台差异;
  • 按厂商的协调披露流程提交,不公开尚未修复的利用细节。

苹果在官方归因中点名 Claude 和 Codex Security,重要之处并非给模型增加一次曝光,而是让 AI 辅助安全研究获得了更明确的工程坐标。对开发团队而言,合理目标不是追求“自动找到所有漏洞”,而是缩短代码筛查时间、提高验证效率,并把每一个模型判断重新落到可重复执行的测试上。


相关推荐