AI News HubLIVE
站内改写2 分鐘閱讀

當後台AI代理成為安全邊界問題

本文探討了Claude Code等AI代理工具的安全隱患,特別是後台會話功能、監控進程及CLAUDE_CONFIG_DIR環境變量可被利用來創建隱蔽的持久化C2代理,僅通過一次本地代碼執行即可實現。

來源Hacker News AI作者: lucasluitjes

現代開發環境中充斥着強大的AI代理工具,但安全團隊尚未完全理解其風險。Claude Code是其中最具能力的工具之一——它可以運行代碼、讀取文件、從互聯網獲取內容、執行命令,並支持持久化後台會話,這些會話的生命週期超越終端,由監控進程管理。這些對開發者有用的功能同樣吸引攻擊者。本文展示瞭如何利用Claude Code的多種特性,在目標機器上一次性本地代碼執行後,僅通過Markdown和JSON文件創建幾乎不可見的持久化C2代理。

Claude Code的後台會話功能自v2.0.60引入,允許用户設置長期運行的任務並在後台繼續。自v2.1.139版本起,後台會話由監控進程管理,關閉終端、結束SSH連接或啓動新shell都不會影響運行中的後台會話。作者通過逆向工程分析了v2.1.144版本的守護進程,該進程充當小型本地控制平面,通過Unix域套接字或Windows命名管道與客户端通信。控制套接字管理會話列表、附加、停止等操作,而rv和pty套接字分別處理生命週期事件和終端傳輸。通信協議使用換行分隔的JSON,包含版本號和操作名稱。例如,操作包括list、dispatch、attach等。

更關鍵的隱蔽機制來自CLAUDE_CONFIG_DIR環境變量。通過設置該變量為自定義路徑,後台會話的數據、日誌和狀態將存儲在此路徑下,而非默認的~/.claude。當用户運行claude agents時,只能看到~/.claude下的會話,從而完全隱藏攻擊者的會話。目前該變量存在一些不一致性,例如Claude期望在目錄中找到.claude.json文件,但默認情況下該文件位於~,這已被社區發現並討論。

攻擊的真正“載荷”並非惡意代碼,而是一組用純英文編寫的指令,定義了代理的行為。示例中展示了一個偽裝成個人任務助理的C2代理,它從遠程服務器獲取任務、執行本地操作(如搜索文件、提取密碼、讀取瀏覽器書籤),並將結果回傳。這種語義化的載荷使得檢測非常困難,因為沒有傳統的惡意二進制文件。

這一發現凸顯了AI代理工具帶來的安全邊界問題。傳統的安全措施側重於可執行文件或腳本檢測,而忽略了基於文本指令的代理行為。安全團隊需要重新評估這些工具的威脅模型,並考慮如何監控和限制代理的敏感操作。隨着AI代理工具在開發環境中的普及,此類攻擊可能成為新的常態,企業必須提前防範。