Anthropic近日利用Claude对25个主流开源项目进行了安全分析,涵盖C、C++、Java、PHP和Python语言。研究团队在超过500万行代码中发现了近500处安全问题,包括因配置冲突导致的安全控制失效、认证前敏感代码暴露,以及一个潜伏长达21年的漏洞。

Anthropic指出,传统寻找单个漏洞的方式效率低下且难以扩展,无法保证绝对安全。防御策略应转向限制对潜在可利用代码的不必要访问,从而缩小软件攻击面。“通过减少代码中不必要的攻击面,可以一次性降低所有未知漏洞的风险,包括那些正在被悄悄利用的漏洞。”Anthropic表示。

聚焦错误配置与攻击面

此次扫描中,Claude生成了超过17,000项配置选项清单,其中3,842项与安全控制相关。研究重点聚焦于三种代码不必要暴露的情形:默认配置下无需即可访问的功能、相互结合会削弱安全性的设置组合,以及在安全检查前运行的高敏感度代码。

分析显示,所有11个旨在服务于已认证用户的项目中,均存在本不应被访问的代码。具体包括93个默认配置下的预认证攻击面、37处认证前执行的代码实例,以及61种削弱预认证控制的配置组合。总体而言,25个项目中共有162种配置组合的预期行为未在文档中说明,部分安全控制被禁用或存在不一致。

其中一个配置缺陷已潜伏二十多年:某项设置要求客户端通过证书证明身份,但另一项设置却完全禁用了该功能。尽管两者冲突,系统仍接受配置且未发出警告。

OpenSSH案例与工具落地

报告以OpenSSH为例,指出其守护进程在服务器配置允许之前,可执行多达4,500行实现后量子签名算法的实验性代码。虽然该算法默认禁用,但其解析代码对未认证客户端可见。Anthropic向OpenSSH披露后,后者在10.6版本中推出修复方案,使约20%的代码不再对未认证客户端开放。

目前,Anthropic已将上述技术整合为可复用的Claude技能,即将集成到OSS-Scanner中。这是Anthropic为开源项目提供的免费、自愿参与的安全扫描服务,将检查默认配置、认证前可达代码及冲突设置。系统还将通过动态程序跟踪验证结果,并对可能具有破坏性的更改交由人类审查。

研究人员总结称,虽然难以准确衡量代码库中的未知漏洞数量,但数据表明,只要时间充足且配备前沿AI模型,攻击者总能找到并利用这些漏洞。因此,借助AI系统地限制不必要的代码暴露,是提升软件安全性的有效路径。