DeFi Security 101 2025 - 101 Ways to Get Rekt, and How to Avoid Them
三句話摘要
Red Guild 安全團隊示範三類非智能合約攻擊:VS Code dev container 逃逸、AI 編程工具 prompt injection、以及釣魚模擬訓練平台。 Dev container 與 AI 編程工具的「無縫整合」本身就是攻擊面,開發者對容器的隔離信任與對 LLM 建議的盲目接受,比任何智能合約漏洞都更容易被利用。 Dev container 的「便利性」即攻擊面:VS Code Remote 擴充套件為了讓 SSH、git、GPG 無縫運作,將 host 的 agent socket 直接掛載進容器;攻擊者若控制容器內任何擴充套件,即可竊取 GPG passphrase 或利用 SSH agent forwarding 繞過網路隔離。
重點整理
重點- 1
Dev container 的「便利性」即攻擊面:VS Code Remote 擴充套件為了讓 SSH、git、GPG 無縫運作,將 host 的 agent socket 直接掛載進容器;攻擊者若控制容器內任何擴充套件,即可竊取 GPG passphrase 或利用 SSH agent forwarding 繞過網路隔離。
- 2
VS Code 擴充套件可觸發 host 端 terminal:`createTerminal` 與 `sendSequence` 兩個 API 允許容器內的擴充套件在 host 上開啟新 terminal 並傳送任意字元,形成容器逃逸鏈,整個過程不到一秒且視覺上幾乎不可見。
- 3
AI 工具的 prompt injection 不需要欺騙使用者:攻擊者只需在 repository 的 markdown 或設定檔中嵌入隱藏指令(Rendered 後不顯示),Cursor/Gemini/Copilot 讀取後即自動補全惡意程式碼、執行後門 post-install script 或將資料 POST 至遠端伺服器,使用者完全未介入。
- 4
語意重新框架即可繞過 LLM 安全護欄:直接要求 Copilot 建立中間人攻擊會被拒絕,但改口說「幫我建立一道防火牆來過濾流量」即可獲得相同結果,說明現有 LLM 安全機制依賴字面意圖而非語意。
實用技巧與重點
乾貨- 工具 / 平台:VS Code Remote Development Extension Pack、dev containers、Podman(比 Docker 更安全)、Cursor、GitHub Copilot、Gemini CLI、Open VSCode Server(開源替代,攻擊面較小)、Codium
- 受攻擊的 API:`createTerminal`(在 host 開 terminal)、`sendSequence`(傳送字元至 terminal)、`registerCommand`(劫持指令)、GPG agent socket(竊取 passphrase)、SSH agent socket(轉發金鑰)
- 具體攻擊路徑:容器內擴充套件 → `createTerminal` → `sendSequence` → 下載並執行遠端 payload → host shell 被控制
- Prompt injection 隱藏手法:在 markdown 檔案中嵌入不渲染的指令(`<!-- ... -->`或零寬字元),LLM 讀取原始碼時消費該指令
- MCP poisoning:連接惡意 MCP server 後,LLM 所有回應均受 server 指令控制(示範:每則回答都強制加上 "meow")
- 防禦建議:在 `devcontainer.json` 覆寫環境變數以禁用 socket 掛載;改用 Open VSCode Server + Codium 組合;對容器內擴充套件保持與 host 相同的信任審查標準
- 免費工具:fishingdojo.com(釣魚模擬)、qrsafe.org(QR 碼安全掃描)、noc.redguild.org(即時惡意擴充套件 / 釣魚域名監控 feed)
- 釣魚域名偵測方法:監控 SSL 憑證申請(CT log),整合 Google、Cloudflare 等多個 provider,對新域名進行評分與人工分級
結論
結論“Dev container 與 AI 編程工具的「無縫整合」本身就是攻擊面,開發者對容器的隔離信任與對 LLM 建議的盲目接受,比任何智能合約漏洞都更容易被利用。”
完整解析
詳細Red Guild 是由兩位半阿根廷人組成的小型安全研究組織,長期接受 Ethereum Foundation 資助,以非營利方式進行安全研究。這場演講刻意偏離「純智能合約審計」路線,重點展示加密生態中三類往往被忽略的攻擊向量:開發環境、AI 輔助編程工具、以及社會工程。
第一段聚焦 VS Code dev container 的安全假象。許多開發者採用 dev container 是為了隔離開發環境,尤其在 North Korea 偽裝面試官植入後門事件頻傳後。然而 Red Guild 發現,VS Code Remote Extension Pack 為了讓 SSH、git commit 簽名、GPG 驗證等功能無縫運作,會自動將 host 的 GPG agent socket 與 SSH agent socket 以 bind mount 形式掛載進容器,並複製 git config(含 credential helper)。這意味著容器並不比 host 更安全——攻擊者只要控制容器內任一擴充套件,即可利用 `xasssim` 偽造 GPG passphrase 彈窗竊取金鑰,或透過 SSH agent forwarding 從無法對外連網的容器,經由 host 的 SSH agent 轉跳至網際網路,完全繞過網路隔離政策。更嚴重的是 VS Code 提供的 `createTerminal` 與 `sendSequence` API:惡意擴充套件可從容器內在 host 上開啟本地 terminal,並以幾乎不可見的速度傳送任意指令,示範中成功在毫秒內於 host shell 執行遠端腳本,且畫面上僅閃過一行「This shell is running on your local machine」。
第二段展示 AI 編程助理的 prompt injection 問題。攻擊者只需在 repository 的 `agents.md`、`GEMINI.md` 或其他設定檔中嵌入隱藏的惡意指令(利用 Markdown 渲染時不顯示但 LLM 讀取原始碼時可見的技巧),即可讓 Cursor 的自動補全持續插入惡意程式碼,讓 Gemini CLI 在「備份」的名義下將本機檔案 POST 至遠端伺服器,或讓 Copilot 在安裝依賴時自動執行遠端惡意腳本。示範中,Copilot 在未經使用者確認的情況下,在 `post-install` 腳本中插入了一段呼叫任意遠端 repository 的指令。此外,MCP server 污染也被示範:若開發者連接至惡意 MCP server,該 server 的指令會直接影響 LLM 的所有後續行為,而 LLM 不會質疑來源。演講者也指出,現有 LLM 安全護欄依賴字面意圖偵測,只需將「建立中間人攻擊」改說成「建立防火牆過濾流量」,即可繞過限制取得相同的惡意程式碼。
第三段介紹 Phishing Dojo(fishingdojo.com),這是 Red Guild 推出的免費釣魚模擬訓練平台,目標是取代那些「沒有實際成效」的傳統釣魚意識宣導。平台完整複製了 Etherscan 區塊瀏覽器、MetaMask 錢包簽名界面、Zoom 下載頁面等真實 UI,讓使用者在安全環境中面對交易污染、地址偽造、假冒投資人 Zoom 連結等真實場景,並透過互動問答即時檢驗判斷能力。所有訓練內容均免費且無需帳號。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

