
Anthropic将Claude模型应用于25个广泛使用的开源项目,执行了一项名为“攻击面缩减”(attack surface reduction)的安全研究。与传统的单点漏洞挖掘不同,该任务旨在识别攻击者在非授权状态下能够触及的代码路径。Claude共标记出493处此类隐患,其中一处甚至在软件中潜伏长达21年。
这项由安全工程师Chris Rohlf撰写并于周一发布的研究,是Anthropic前沿红队(Frontier Red Team)工作的预览。其核心逻辑并非逐个修复缺陷,而是映射部署实际暴露的代码,随后移动或限制那些无需对外公开的部分。Anthropic表示,这种方法能在未发现具体漏洞的情况下,有效降低未知漏洞的被利用风险及严重程度。
Claude的发现
Claude分析了超过500万行的C、C++、Java、PHP和Python代码,并建立了包含17,000多项配置选项的清单,其中3,842项涉及安全控制。研究对象被分为三类:完全开放的公共服务、需登录的门控服务,以及供内部使用的私有工具。
门控项目的检测结果最为显著。Anthropic指出,所有11个被测项目均存在用户在登录前即可访问的代码。Claude统计出93处不必要的预认证攻击面,发现37处代码在用户登录前运行或保存状态,并标记出61种会静默削弱管理员身份验证控制的配置组合。
配置冲突是主要问题所在。Claude发现了162种对安全敏感的配置选项组合,软件在未报错或警告的情况下接受了这些设置,其中94种情况静默关闭了某项安全控制。例如,在四个不相关的项目中均出现了一种模式:当服务器关闭反向DNS查找时,基于主机名的拒绝规则可能失效,从而放行本应被阻止的客户端。
那处潜伏21年的隐患正是源于两项设置的冲突:一项要求客户端通过证书证明身份,另一项旨在延迟检查的设置却将其完全关闭。这导致原本仅接受受信任客户端的服务器实际上接受了任何客户端,而文档从未提及证书要求已被放弃。
即便是OpenSSH
按规模衡量,OpenSSH的攻击面缩减幅度最大。作为全球审计最严格的代码之一,这款用于保护远程服务器访问的C程序也未能幸免。Claude追踪了OpenSSH 10.4版本中的SSH守护进程,发现即使管理员排除了相关算法,默认情况下未认证的客户端仍可访问约4,500行新的后量子签名代码,约占守护进程预认证代码的16%。
Anthropic报告了这一问题并提供补丁,维护者随后在10.5和10.6版本中发布了修复程序。Anthropic写道:“OpenSSH是全球审计最严格的代码之一。如果不必要的可达性在此处仍然存在,那么它可能在任何地方都存在。”
这一发现获得了外部研究人员的认可。Halvar Flake在社交媒体上评论称:“攻击面缩减是唯一可靠有效的方法。”Chris Rohlf也将该技术定位为AI防御代码的实用案例,而非仅用于破解代码。
局限性与时机
Anthropic坦诚指出了该技术的局限性:它并不能消除未知漏洞,只是增加了利用难度,从而降低其严重性。此外,这些结果来自Anthropic自身的预览版测试,而非独立第三方测试。不过,至少对于OpenSSH的修复,已在项目发行说明中公开,并感谢了Anthropic和Claude的工作。
目前,Anthropic已将这三种技术整合为一个可重用的Claude技能,并正努力将其添加到OSS扫描器中。这是AI发现漏洞系列研究的最新成果,此前Claude曾发现271个Firefox漏洞。在这一更广泛的AI网络防御竞赛背景下,就在本文发布前一天,一起由AI辅助发现的PHP漏洞刚导致大量网站紧急打补丁。