雲端資安公司 Sysdig 近日披露一起高度自動化的攻擊事件,攻擊者利用開源互動式 Python 筆記本工具 Marimo 的重大漏洞取得初始存取權限後,疑以大型語言模型(LLM)代理程式驅動後滲透(post-exploitation)行動,在短短一小時內完成憑證竊取、橫向移動與資料庫外洩全鏈攻擊。
攻擊鏈始末
事件發生於 2026 年 5 月 10 日,攻擊者首先利用 CVE-2026-39987 漏洞取得初始存取權限,接著自受害主機擷取兩組雲端憑證,並透過 egress pool 重放憑證,進而自 AWS Secrets Manager 取得 SSH 私鑰。隨後,攻擊者使用該私鑰對下游 SSH 跳板伺服器發起八次短暫的連線工作階段。根據 Sysdig 報告,跳板伺服器階段在兩分鐘內即完成一個內部 PostgreSQL 資料庫的結構描述(schema)與完整內容外洩,整體攻擊鏈歷時略超過一小時。
CVE-2026-39987 為重大未驗證遠端程式碼執行(RCE)漏洞,影響 Marimo 0.20.4 及以下所有版本,允許未經驗證的攻擊者執行任意系統指令。該漏洞已於上月發布的 0.23.0 版本中修補,但目前已出現威脅行為者的主動利用。
四項跡象指向 LLM 代理程式介入
Sysdig 在分析過程中觀察到四項指標,據此研判此次後滲透行動可能由 LLM 代理程式驅動。
- 第一,攻擊者在事前未掌握資料庫結構描述的情況下,仍能即席建立資料庫傾印(database dump)流程。
- 第二,在執行憑證搜尋指令時,指令串流中直接出現一段簡體中文規劃性註解「看还能做什么」(意為「看還能做什麼」),研判為 LLM 代理程式在決策過程中留下的推理痕跡。
- 第三,所有指令均以「機器可讀」為設計目標:每條指令以「-」分隔,並限制輸出範圍、停用 less,同時捨棄錯誤串流(stderr)以降低雜訊。
- 第四,指令間的數值傳遞明顯取自前一步工具的輸出結果——例如,擷取資料庫密碼的手法顯示,代理程式會將讀取 ~/.pgpass 的 cat 指令輸出直接作為下一步行動的輸入;在執行 cat ~/.ssh/id_ed25519 前,亦先以 ls -la ~/.ssh/id_ed25519* 確認 SSH 金鑰是否存在,顯示代理程式會在行動前先驗證前提條件。
代理程式攻擊者的適應性
Sysdig 在報告中指出,腳本式攻擊者需要事先為每個目標撰寫攻擊腳本,擴大攻擊規模的成本主要在於工程時間。相較之下,代理程式式攻擊者對特定類型的應用程式具備通用的先備知識,能即時組合出最適合當前目標的攻擊鏈;擴大規模的成本多半來自推論運算預算,而非腳本撰寫。
Sysdig 也強調,從防禦角度來看,代理程式攻擊者最關鍵的特性是「適應性」。當腳本式攻擊者遇到缺少檔案、非預期的結構描述或驗證失敗等情況時,往往會中止或退回預設行為;而代理程式則會解讀這些意外狀況,決定下一步的嘗試方向並持續推進。
防護建議
Sysdig 建議組織採取以下措施降低風險:
- 將 Marimo 更新至最新版本(0.23.0 或以上)
- 稽核環境中是否存在可從外部網際網路直接存取的 Marimo 執行個體
- 輪換相關憑證、API 金鑰與 SSH 金鑰
本文轉載自 TheHackerNews。