返回首頁

AI 安全與評測

SWEADV 以惡意 issue 誘導修復代理:逾半成功修好功能並植入弱點

新基準把 150 個 SWE-bench Verified 任務改寫成 750 個帶有安全陷阱的 issue,測試自動修復代理會否交付功能正確但不安全的程式碼。三種模型後端平均有 51.7% 的案例同時完成修復與攻擊目標,而常見的模型審查及靜態分析仍漏掉大量惡意 patch。

Steffen Prößdorf · CC BY-SA 4.0 · Image source
zh-Hant

自動程式修復代理通常以測試是否通過衡量成功,但新研究 SWEADV 顯示,攻擊者可以利用代理對 issue 描述的信任,讓「修好 bug」與「加入漏洞」同時成立。研究團隊從 SWE-bench Verified 選出 150 個真實修復任務,為每題製作五種對抗描述,分別誘導命令執行、不安全反序列化、路徑穿越、阻斷服務及弱雜湊,共形成 750 個案例。

實驗使用 mini_swe 代理,後端包括 GPT-5-Mini、MiniMax-M2.5 與 DeepSeek-R。論文報告,代理平均在 51.7% 的案例中既通過原有功能測試,又產生符合攻擊者目標的行為。這表示只檢查 regression test 或任務完成率,無法判斷 patch 是否擴大了攻擊面;惡意需求甚至不必直接要求加入後門,只要提供看似合理、但會把修復方向推向危險實作的重現步驟即可。

既有防線的效果同樣有限。修復前以 LLM 判斷 issue 是否惡意,平均準確率為 62.3%;修復後使用靜態分析,偵測準確率僅 39.4%,LLM reviewer 則為 55.4%。對工程團隊而言,這支持把不受信任的 issue 內容視為供應鏈輸入:代理應在隔離環境工作,patch 必須接受資料流與權限變更檢查,並限制自動合併及 CI 憑證。

不過,SWEADV 是由既有任務合成的對抗基準,只測試一種代理框架與三個模型後端;偵測率也會受規則、靜態分析器與提示設計影響。下一步應觀察資料集與生成流程是否完整公開、其他 coding agent 能否重現結果,以及加入專案專屬威脅模型後能否顯著降低攻擊成功率。

來源

  1. Adversarial Testing of Automated Program Repair Agents for Security Vulnerabilities
  2. Adversarial Testing of Automated Program Repair Agents for Security Vulnerabilities