三種方法,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 上的費用。