三种方法,25 个项目

Claude 找三类暴露面:出厂默认配置下可访问、但没有任何默认功能用到的代码;单独看没问题、一起配置就出问题的选项组合;在认证等安全控制之前就运行的复杂且敏感的代码。研究覆盖 25 个开源项目,总计 500 多万行代码,语言包括 C、C++、Java、PHP 和 Python。Claude 整理出 17,000 多个配置项,其中 3,842 个与安全相关,共找出 493 个问题。

主要发现

  • 11 个本应只服务已认证用户的项目全部存在意外可访问的代码:默认配置下有 93 处不必要的认证前入口,37 处在认证前就执行代码或记录状态,61 组配置组合会悄悄削弱管理员设置的认证前控制。
  • 有 162 组与安全相关的配置组合既不报错也不警告,也没有文档说明,其中 94 组会悄悄关掉某项安全控制。
  • 4 个互不相关的项目里出现同一种问题:用主机名写的拒绝规则在关闭反向 DNS 查询时永远不会生效,名单形同虚设。
  • 在一个项目中,本应把客户端证书校验推迟到需要时再做的选项,实际上把校验整个关掉了,任何客户端都能访问本应在校验之后的请求处理代码。这组冲突在软件里存在了 21 年。

OpenSSH

按占代码总量的比例算,收窄幅度最大的是 OpenSSH。在 10.4 版中,约 4,500 行实验性的 ML-DSA-44 签名代码在默认配置下可被未认证客户端访问,即使管理员已排除该算法也一样,约占默认 sshd 认证前代码的 16%。与维护者反复修改后,允许列表检查现在会在解析和签名验证之前进行,未认证客户端原本能访问的代码少了约五分之一。这些改动已随 OpenSSH 10.6 发布。

接下来

Anthropic 已把这几种方法整合成一个 Claude 技能,对代码库跑三轮,每个发现都用动态追踪确认。Anthropic 表示正在把它接入面向开源项目、需主动申请的漏洞发现服务 OSS-Scanner,没有给出时间。会改变非默认行为的关卡交由人来决定。

这项研究属于 AI 安全测试中的防御一侧;进攻一侧可以看我们写的 DeepSeek V4.1 Flash 1017 在 Vals AI 进攻型网安测试中超过 GPT-6 Sol。团队用的 Claude 代码检查,见 Claude Code Review 在 Team 和 Enterprise 上的费用。