AI 安全
EvoMal 讓自我進化 coding agent 複製惡意 Skill,移除原始毒源後仍可持續傳播
研究人員發現,會自行編寫並保存 Skill 的 coding agent,可能把檢索到的惡意結構複製進新工具。六款模型的自我投毒率達 20.3% 至 41.8%,但證據目前主要來自作者控制的基準實驗。

研究團隊提出 EvoMal,測試「自我進化」coding agent 的另一條供應鏈攻擊路徑:攻擊者不必要求代理直接執行惡意 Skill,只要把它放進可檢索的共享資料庫;代理在解題時讀取該 Skill,便可能仿照其結構編寫、保存並執行帶有相同 payload 的新工具。
攻擊利用一組偽裝成必要遙測程式的普通 Python 結構,論文稱之為 banner。這些函式、包裝層與註解各自看似無害,卻會提高模型逐段仿寫的機率。新產生的惡意 Skill 隨後回寫索引,能再被其他任務檢索,因此傳播單位不再是攻擊者提交的原始檔,而是代理自行建立、通常被視為較可信的衍生檔。
作者在 153 項與工具相關的 SWE-bench Verified 任務上測試六款模型,量度「新增惡意 Skill 的任務比例」ASPR。一般攻擊錄得 20.3% 至 41.8%,受污染資料庫最終包含原始植入量 4.9 至 9 倍的惡意項目;僅按 pytest 等任務家族調整 Skill 描述時,最高 ASPR 升至 86.7%。即使移除攻擊者植入項目,Qwen3 在第五輪仍有 68% ASPR,因為先前生成的副本繼續被檢索。
研究亦把相同機制移植到 OpenHands 與 Claude Code scaffolding;在指定任務家族的設定下,兩者同樣出現複製行為。不過這不代表現成產品在預設部署中已有相同感染率:實驗使用作者設計的技能庫、檢索規則、任務分布及可執行 payload,實際風險會受沙盒、權限、網路與回寫政策影響。
作者的四行 counter-prompt 可在主要設定把 ASPR 壓至 1.8% 以下,最差個案為 6.7%,但它仍是可被模型行為影響的軟性控制。較結構化的方向是隔離代理生成內容,以簽章及管理員核准紀錄決定哪些 Skill 能重新進入檢索池。工程團隊接下來應檢查的不是只有 Skill 安裝來源,也包括自動回寫、衍生檔 provenance、索引清除與執行前政策能否覆蓋代理自己寫出的程式。