Anthropic 10 月 20 日公布,Claude 在 25 個開源專案找出 493 個問題
Anthropic 在 10 月 20 日發表研究,指旗下模型 Claude 掃描了 25 個開源專案,合共逾 500 萬行程式碼,找出 493 個問題。該公司表示,這次不是逐個漏洞去找,而是找出「本來不應該被攻擊者觸及、實際上卻觸及得到」的程式碼。The Next Web 報道,研究由 Anthropic 的 Frontier Red Team 進行,執筆的是保安工程師 Chris Rohlf。
Anthropic 指,Claude 為這 25 個專案整理出逾 17,000 個設定選項的清單,其中 3,842 個與保安控制或功能有關,涉及的語言包括 C、C++、Java、PHP 及 Python。

公司把 25 個專案分成三類,11 個需要登入的專案全部中招
Anthropic 把這批專案分為三類:Public 是設計給任何人連上的服務,Gated 是要先通過認證才提供功能,Private 是只在營運者自己環境裡運行的工具。該公司指,分類是為了解讀結果,例如 Public 專案在預設設定下有相當比例的程式碼可被觸及是預期之內,Gated 專案則相反。
Anthropic 表示,11 個 Gated 專案全部都有本來不應在登入前被觸及的程式碼。
Gated 專案的發現 | 數目 |
|---|---|
預設設定下多餘的認證前介面 | 93 個 |
認證前已執行程式碼或記錄狀態的位置 | 37 處 |
靜靜削弱管理員所設認證前控制的設定組合 | 61 個 |
162 個設定組合不會報錯,其中 94 個靜靜關掉保安控制
Anthropic 指,Claude 找出 162 個涉及保安的設定組合,軟件接受這些組合時既不報錯也不警告,文件亦沒有說明兩者互相作用後的行為。當中 94 個組合會靜靜關掉一項保安控制,其餘 68 個是同一保安機制內的不一致。
該公司舉出一個在四個互不相關的專案都獨立出現的模式:管理員用主機名稱或萬用字元而非 IP 位址寫存取規則,但伺服器是否知道客戶端的主機名稱,取決於另一個控制反向 DNS 查詢的選項,而大部分專案都把它關掉。伺服器於是把規則當成純文字與 IP 位址比對,主機名稱格式永遠不會對上 IP 位址,拒絕規則因此從不生效。
Anthropic 另指,有一組互相衝突的設定選項已在軟件中存在 21 年:一個選項要求每個連上來的客戶端用證書證明身分,另一個本意只是把檢查延後,實際上卻把檢查完全關掉,結果一台設定為只接受可信客戶端的伺服器會接受任何人的連線。
OpenSSH 10.4 有約 4,500 行認證前可觸及的後量子簽章程式碼
Anthropic 指,按佔整體程式碼的比例計算,減幅最大的專案是 OpenSSH。Claude 追蹤 10.4 版本 SSH 守護程序的輸入路徑,發現約 4,500 行屬於後量子簽章演算法 ML-DSA-44 的新程式碼及實驗性程式碼,未經認證的客戶端在預設設定下就能觸及,即使管理員明確排除了該演算法亦然。守護程序會先解析客戶端送來的金鑰類型,之後才檢查該類型是否獲准。
該公司表示,這 4,500 行程式碼約佔預設 sshd 本身認證前程式碼的 16%。Anthropic 連同修補方案一併通報 OpenSSH 開發者,10.5 版把檢查移到解析之前。
Claude 再在 10.5 的檢查找到兩個缺口,10.6 才修好
Anthropic 指,Claude 之後在 10.5 的檢查找出兩個缺口。第一個是客戶端聲稱的演算法與實際送出的不符:檢查看的是客戶端宣告的演算法名稱,但選用哪個解析器卻取決於金鑰內嵌的類型字串,客戶端可以宣告 ssh-ed25519 通過檢查,再送出一條會被解析的 ML-DSA 金鑰。
第二個缺口在證書。該公司指,證書金鑰類型預設啟用,面對攻擊者提供的證書,sshd 會先還原內嵌的 CA 公開金鑰並完成一次完整簽章驗證,之後才查看設定。Anthropic 表示已造出概念驗證,並與維護者反覆修改方案,最終把檢查放進解析器本身,維護者在 10.6 版推出有關改動。
Anthropic 指,這次修正令未經認證客戶端在預設組建中可觸及的 OpenSSH 程式碼減少約五分之一。該公司在文中寫道,「OpenSSH 是全世界最多人審計的程式碼之一」,若多餘的可觸及性在那裡都能留存,就可能在任何地方留存。




暫時未有留言
提交留言即表示你已閱讀我們的私隱政策。