Anthropic用Claude自动削减代码攻击面
时间:2026年10月20日(Anthropic 前沿红队(Frontier Red Team)在官方研究博客发布《Using Claude to reduce the attack surface of code》,作者为安全研究员 Chris Rohlf;该文当日被推上 Hacker News 首页,10月21日仍在社区讨论中;OpenSSH 10.6 版本于10月6日发布,其中已包含针对该研究两个发现的修复)
地点:美国旧金山(Anthropic 总部);OpenSSH 社区(OpenBSD 旗下,全球审计最严的 C 语言安全代码库之一);案例涉及 25 个跨语言开源项目
人物:Chris Rohlf(Anthropic 安全研究工程师,本文作者);Anthropic 前沿红队(Frontier Red Team);OpenSSH 维护者 Damien Miller 等开源社区开发者
事件详情:Anthropic 10月20日发布研究博客,公开了一项用 Claude 自动完成"攻击面分析与削减"(attack surface analysis and reduction)的初步研究成果。与以往主打"逐个挖出零日漏洞"不同,这项研究换了个思路:先用模型把部署环境中"本不该被触达"的代码找出来,再把它挪到一道门禁之后(如把代码从认证前挪到认证后、从"零点击"改为"需一次点击"、从默认开启改为显式选择启用),从而让所有未知漏洞——包括正被悄悄利用的那些——的严重性整体下降。Anthropic 强调,逐个修漏洞扩展性极差,修好一个严重漏洞并不意味着其余漏洞减少了;而降低代码可达性可以一次性压低全部未知漏洞的风险,无需找到或修复任何单个漏洞。研究团队用 Claude 跑遍了 25 个开源项目,代码总量超过 500 万行,语言涵盖 C、C++、Java、PHP 与 Python。Claude 为这些项目梳理出超过 17000 个配置项,其中 3842 个与安全相关的控制项或功能有关。25 个项目按暴露面被分为三类:Public(任何人都能访问,如 DNS 解析器、代理,共 10 个)、Gated(需认证后才提供功能,共 11 个)、Private(仅供运营方自身内部使用,共 4 个)。Gated 一组的 结果最出人意料——11 个项目全部存在"本不该可达却可达"的代码。Claude 在 Gated 组的默认配置下找出 93 处不必要的预认证暴露面、37 处在认证之前就已执行代码或记录状态的位置、61 组会静默削弱管理员预认证控制的配置组合。在配置交互层面,Claude 找出 162 组"既不报错也不告警、文档里也没有说明预期行为"的安全敏感配置组合,其中 94 组会静默关掉某项安全控制,另外 68 组则是同一套安全机制内部的不一致(例如监听器或登录路径在配置显示已禁用的情况下仍然可达;两个设置互相冲突时生效优先级取决于配置文件中的先后顺序;管理员配置的保护措施实际不起作用但代码依然可达)。Anthropic 特别强调这些发现单独看"多数不具备立即可利用性",但它们共同造就了一个远大于必要值的攻击面。文中还披露了两类可复现的经典模式:一是"主机名 + 反向 DNS 关闭"导致拒绝规则永远不触发、名单 fail open,该模式在 4 个互不相关的项目中各自独立出现;二是两个配置项组合会静默丢弃一次证书校验——一个本应只接受受信客户端的服务器因此会接受任何人连接,而这组冲突配置在该软件中已存在 21 年;还有一类是 TLS 客户端证书选项因命名空间不同在少数端点上被静默忽略,且文档中更常用的短写法恰好是被忽略的那个。OpenSSH 是研究中的重点案例。按代码行数占比计算,Claude 在 OpenSSH 上取得的攻击面削减幅度最大。团队追踪 OpenSSH 10.4 版本 sshd 的输入路径,发现约 4500 行 ML-DSA-44(美国 NIST FIPS 204 标准化的后量子签名算法)的新增实验性代码,在默认配置下可被未认证客户端触达——即使管理员已显式排除该算法,代码依然可达,因为守护进程总是先解析客户端发来的任意密钥类型、再去检查该密钥类型是否被允许。这 4500 行约占默认 sshd 预认证代码的 16%。Anthropic 随后向 OpenSSH 开发者报告并提交补丁,10.5 版本(8月11日)把检查前移到了解析之前,Claude 随即又找出该修复的两个缺口:客户端可以宣称一种算法却实际发送另一种(检查依据的是客户端通告的算法名,而解析器由密钥块内嵌的类型串决定),以及证书场景下 CA 签名验证路径未被设限,导致任何能完成密钥交换的客户端都能触达二进制里的全部公钥签名验证器。最终修复把检查直接放进解析器内部,10.6 版本(10月6日)发布后,未认证客户端在默认构建下可触达的 OpenSSH 代码减少了约五分之一,几乎全部来自 ML-DSA 代码,且即便客户端谎报密钥类型或在看似合法的证书里藏入 ML-DSA CA 密钥也已无法触达。
背景:Anthropic 过去一年已多次披露前沿模型在发现和利用安全漏洞上的能力,但这次明确把重点从"发现漏洞"移向"削减暴露面"。研究的核心假设是:防御方无法测量任意代码库里究竟藏着多少未知漏洞,而攻击者只要有足够时间(尤其配上前沿 AI 模型)迟早会找到它们;因此防守方降低不必要的可达性,就能一次性降低全部未知漏洞的风险。OpenSSH 的案例之所以有说服力,是因为它是全球受审计程度最高的 C 代码之一,却依然出厂就带着约 4500 行认证前可达的实验性签名解析代码——Anthropic 的结论是"如果在 OpenSSH 这种地方不必要的可达性都还存在,它在任何地方都存在"。Anthropic 已把这三种方法打包成一个可复用的 Claude skill,正在整合进其 OSS-Scanner 工具。该 skill 分三遍运行,每遍都以空上下文重新开始(仅从上一遍继承一小段上下文):第一遍检查默认配置允许触达、但没有任何预期功能会用到的代码;第二遍检查在硬门禁(如认证)或协议状态机入口之前运行的代码;第三遍评估哪些配置组合会静默关闭安全控制或削弱其效力。每项发现都用程序的动态执行轨迹加以确认;针对默认配置的门禁必须保证项目自身测试套件(连同一套黑盒回归套件)与基线结果完全一致,任何会改变非默认配置的门禁则一律搁置交由人工决定。OpenSSH 侧的背景同样值得注意:维护者在 10.6 发布公告中表示,近期团队收到大量安全漏洞报告,其中许多是 AI 模型发现的或借助 AI 完成的,并遇到过"AI 工具先发现、另一位研究者随后独立发现同一漏洞"的情况,因此判断"不向开源项目报告漏洞的对手很可能也能发现这些漏洞",并决定暂时提高发版频率以更快推送修复。10.6 同时还禁用了 LZ77 字典编码以缓解侧信道泄漏、拒绝命令行中含美元符号或反斜杠的用户名、把 GSSAPI 凭据改为仅在认证成功后才保存、收紧了 sftp 的路径校验、修复了 ssh-keygen 的夏令时处理错误,并弃用了存在安全风险的 scp -R 选项。此外,Anthropic 也在文中说明,Claude 还能把运行时日志与配置做比对来确认只有必需功能被启用——关掉不用的解析器、旧协议和管理面板,"以极低成本降低安全风险"。
影响:一、这是"AI 攻防"叙事的一个转向。此前主流的量化叙事是模型挖出了多少个零日漏洞(Anthropic 此前披露 Project Glasswing 计划 4 月至 7 月间核实 129000 个漏洞、自有开源扫描工作 4 月至 10 月间另发现 5500 个,33000 多个被评为严重或高危),本项研究给出的是另一条杠杆——不去猜有多少未知漏洞,而是把"能触达未知漏洞的入口"整体关小,对防守方而言成本更低、覆盖面更广。二、对开源项目维护者而言,这套方法论可被直接复用:Anthropic 已把三遍流程做成 Claude skill 并推进 OSS-Scanner 集成,虽然 skill 的发布时间未定,Anthropic 也未公开分析消耗了多少模型时间,但它同时强调"即便不使用这个具体 skill,文中这套广义方法论大概率同样有效",并鼓励各组织用 Claude 分析和削减所依赖软件的攻击面。三、OpenSSH 案例提供了可核对的落地证据:10.6 版本(2026年10月6日发布)发布后,未认证客户端在默认构建下可触达的代码减少约五分之一;该版本同时启用了混合式后量子签名算法 ssh-mldsa44-ed25519,并因 AI 辅助发现的安全报告增多而宣布暂时提高发版频率。四、也有需要保留的判断:Anthropic 自己声明这些发现"多数单独看并不具备立即可利用性",研究也确实没有公开其余 24 个项目的名称及其问题是否已修复,anomalous 的"21 年冲突配置"等案例亦未披露具体项目,因此"493 个问题"更应理解为可被模型规模化发现的一类系统性配置缺陷样本量,而非同等数量的可直接利用漏洞。
总结:Anthropic 用一篇研究博客给出了一条与"AI 挖漏洞"互补的新路径——与其逐个修补已知或未知漏洞,不如让模型先画出代码的可达图,再把不必要暴露的部分挪到门禁之后。它在 25 个开源项目、逾 500 万行代码上跑出 493 个问题,最惊人的是 11 个需认证服务的项目全部存在本不该可达的代码;它在 OpenSSH 上找到约 4500 行认证前可达的 ML-DSA-44 实验代码(占默认 sshd 预认证代码约 16%),推动 10.5、10.6 两个版本连续修复,最终让未认证客户端在默认构建下可触达的代码减少约五分之一。Anthropic 已把方法打包为 Claude skill 推进 OSS-Scanner 集成,并强调这套思路的核心并不依赖专用工具——关掉用不到的解析器、旧协议和管理面板,本身就是最便宜的版本。
参考来源:
1. Anthropic 官方研究博客:Using Claude to reduce the attack surface of code https://www.anthropic.com/research/attack-surface-reduction
2. CellCog 深度解读:Claude Cut OpenSSH's Attack Surface — Anthropic's Method https://cellcog.ai/blog/anthropic-attack-surface-reduction/
3. Hacker News 社区讨论:Using Claude to reduce the attack surface of code https://news.ycombinator.com/item?id=50175779
4. OpenSSH 官方版本发布说明(10.6 / 10.5 修复记录)https://www.openssh.org/releasenotes.html
5. OpenSSH 10.6 官方发布公告 https://www.openssh.com/txt/release-10.6
6. oss-security 邮件列表公告:Announce: OpenSSH 10.6 released(Damien Miller 谈 AI 辅助漏洞报告与提高发版频率)https://seclists.org/oss-sec/2026/q4/58
7. LWN.net:OpenSSH 10.6 released https://lwn.net/Articles/1098980/
8. Help Net Security:OpenSSH 10.6 enables a post-quantum signature algorithm, so experimental keys need replacing https://www.helpnetsecurity.com/2026/10/07/openssh-10-6-released/
9. iThome(中文):OpenSSH 10.6 调整压缩机制防侧通道攻击,并启用混合式后量子签章 https://www.ithome.com.tw/news/179472
10. Linux.org.hk(中文):OpenSSH 10.6 Released with Post-Quantum Signatures https://www.linux.org.hk/archive/20261006-7125-openssh-10-6-released-with-post-quantum.html







