AID-H-022.001
極高
Sandboxed Dependency Installation
把相依套件安裝放進短生命週期、網路受限的沙箱容器,避免初始化命令和設定腳本直接使用開發者的真實環境。
0DIN 展示一條看似正常的專案啟動流程,如何引導 Claude Code 類型的 agent(能讀專案、執行開發命令的 AI 程式開發 agent)執行設定步驟,最後建立反向 shell。攻擊者不必把惡意程式碼寫進程式碼儲存庫;他可以讓套件先製造初始化錯誤,引導 agent 執行 python3 -m axiom init,再由設定腳本從 DNS TXT 記錄取回並執行真正的惡意指令。防守方因此不能只審查程式碼儲存庫內容,還要在隔離環境中安裝套件、要求高風險命令核准、限制對外連線,並檢查執行時才取回的程式碼。
python3 -m axiom init。這些內容單獨看都像一般專案設定流程,不像明顯的惡意程式碼。python3 -m axiom init。程式開發 agent 可能把這當成一般除錯建議,自動執行這個命令。init 會呼叫設定腳本;設定腳本再查詢攻擊者控制的 DNS TXT 記錄,把查到的值當成 shell 命令執行。真正的惡意程式碼不在程式碼儲存庫 裡,而是被放在攻擊者控制的 DNS 記錄中,再由設定腳本取回並執行。0DIN 案例顯示,乾淨的程式碼儲存庫內容不代表啟動流程安全。這條攻擊鏈真正利用的是 agent 的除錯習慣與 shell 權限:專案先讓 agent 遇到一個看似正常的初始化錯誤,再引導它執行會查詢 DNS TXT 並執行回傳內容的設定腳本。結果不是單純跑錯命令,而是攻擊者可能取得開發者權限下的互動 shell、讀取 secrets,並留下持續存取方式。套件安裝要放進沙箱,高風險命令要取得明確核准,而執行期取回的程式碼在確認安全前一律視為不可信。