當我們討論網路安全時,傳統的攻擊路徑通常分為兩個階段:第一步是獲取初步進入權限(Initial Access),第二步則是後滲透(Post-Exploitation),也就是在進入系統後進行橫向移動、尋找敏感資料並將其外洩。過去,後滲透階段通常依賴於攻擊者手寫的腳本或預先定義好的 Playbook(攻擊劇本)。但最近一起針對 Marimo 筆記本工具的攻擊事件揭示了一個令人不安的趨勢:攻擊者開始利用 LLM Agent(大語言模型代理)來自動化地在受害環境中「即興」操作。
這次事件的起點是一個被標記為 CVE-2026-39987 的嚴重漏洞。Marimo 是一個反應式筆記本(Reactive Notebook),類似於 Jupyter Notebook,常用於數據分析與科學計算。該漏洞屬於 Pre-authenticated Remote Code Execution(預認證遠端程式碼執行),意思是攻擊者不需要任何帳號密碼,就能直接從網路端對受影響的伺服器發送指令並執行任意系統命令。
在成功利用漏洞進入系統後,這次攻擊最值得關注的是其後續的自動化行為。攻擊者並非執行死板的腳本,而是部署了一個 LLM Agent。這個 Agent 的運作邏輯是:執行指令 $\rightarrow$ 讀取輸出結果 $\rightarrow$ 根據結果決定下一步 $\rightarrow$ 再次執行指令。
具體攻擊鏈條如下:Agent 首先在受害主機中搜尋雲端憑證,發現 AWS 存取金鑰後,立即調用 AWS Secrets Manager(AWS 的秘密管理服務,用於儲存 API 金鑰或密碼)獲取 SSH 私鑰。接著,Agent 利用該私鑰對內網的 SSH Bastion Server(跳板機,一種用於安全管理內部伺服器的中繼伺服器)發起攻擊,並在短短兩分鐘內平行開啟八個 SSH 會話,將內部 PostgreSQL 資料庫的結構與完整內容全部竊取。
安全公司 Sysdig 透過分析發現了四個關鍵跡象,證明這背後是由 LLM Agent 而非人類或傳統腳本在操作。
首先是強大的適應力。攻擊者在完全不知道資料庫結構(Schema)的情況下,能迅速定位到包含憑證的資料表。傳統腳本如果遇到未知的資料庫名稱或結構,通常會直接報錯停止,但 Agent 能透過不斷嘗試與分析輸出結果來調整策略。
其次是出現了 AI 規劃的痕跡。在指令流中,安全研究員發現了一句中文註釋「看还能做什么」(看看還能做什麼),這明顯是 LLM 在規劃下一步行動時洩漏的思考過程。
第三是指令格式的機器化。所有的指令都經過優化,以便讓 AI 容易解析。例如,每個指令之間使用特定分隔符號(---)區分,並刻意禁用 less 等分頁指令(因為分頁指令會導致輸出掛起,讓 AI 無法獲取完整結果),同時捨棄 stderr(標準錯誤流)以減少噪音,確保 AI 接收到的回饋是最乾淨的資訊。
最後是數值的動態傳遞。Agent 會將前一個指令的輸出直接作為下一個指令的輸入。例如,它會先執行 ls 指令確認 SSH 私鑰檔案是否存在,確認後才執行 cat 指令讀取內容。這種「觀察 $\rightarrow$ 確認 $\rightarrow$ 執行」的循環是 Agent 的典型特徵。
對於工程師而言,這次攻擊揭示了一個核心風險:攻擊的門檻從「編寫劇本的工程時間」轉化為「模型推理的預算成本」。過去,攻擊者需要針對不同的目標環境撰寫不同的 Playbook;現在,只要給予 Agent 泛化的知識(例如知道一般的 Linux 系統或 AWS 環境如何運作),它就能在進入環境後即時合成攻擊鏈。
面對這種具有高度適應力的 AI 攻擊,傳統的防禦手段需要更嚴格的實作。首先是及時更新軟體版本(Marimo 已在 0.23.0 版本修復此漏洞)。其次,必須審視所有對公網開放的實例,並實施最小權限原則(Least Privilege),避免單一憑證能存取過多敏感資源(如 Secrets Manager)。最後,應定期輪轉(Rotate)所有 API 金鑰與 SSH 私鑰,縮短憑證的有效生命週期,讓即便被竊取的資訊在 Agent 反應過來之前就失效。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。