Security Hardening · Prompt Injection Defense · Rollback · Isolation

作者: Wisely Chen 日期: 2026 年 1 月 系列: AI Agent Security 實戰觀察 關鍵字: AI Agent Security, Prompt Injection, LLM Agent Security, Agentic Security, Security Hardening


目錄


關於改名

本文原標題為「Moltbot 安全加固實戰」。2026 年 1 月,Anthropic 以商標侵權為由,要求開發者將 Moltbot 改名。創作者 Peter Steinberger 表示:「我是被 Anthropic 強迫改名的,這不是我的決定。」

新名稱 Moltbot(吉祥物 Molty)延續龍蝦主題——「molt」指龍蝦蛻殼成長。本文已全面更新為新名稱。

參考來源:Business Insider 報導


背景:為什麼 Moltbot 需要 Security Hardening?

前篇文章 500 台 AI 助理裸奔公網:Moltbot Security Disaster 與預設安全風險 揭露了 Moltbot 的預設配置災難。這篇是續集 — 從問題到解決方案。

這篇文章整理自 Moltbot 社群的實戰經驗。有趣的是:你可以讓 Moltbot 幫你加固 Moltbot 的安全


AI Agent Security Framework:Moltbot 四層縱深防禦

在開始實作之前,先理解整體防禦思路。AI Agent Security 不是單點防護,而是四層縱深防禦

AI Agent Security 四層縱深防禦架構

層次 目標 核心問題
Isolation(爆炸半徑) 機器可犧牲,出事影響有限 如果被攻破,損失多大?
Quarantine(內容隔離) 惡意內容無法觸發動作,只能讀取 外部輸入能做什麼?
Rollback(回滾能力) Git 歷史可撤銷損害,追溯變更時間點 出事後能復原嗎?
Transparency(透明告知) AI 發現可疑情況時主動告知 能及早發現問題嗎?

這四層不是選擇題,是同時需要的。缺少任何一層,其他三層的效果都會大打折扣。

以下按照這四個層次,逐一說明具體實作。


第一層 Isolation:限制 AI Agent 被入侵時的爆炸半徑

AI Agent Isolation 與爆炸半徑控制示意圖

核心問題:如果被攻破,損失多大?

這一層的目標是讓最壞情況變成「煩人但不是災難」。AI Agent Isolation 是 Security Hardening 的第一道防線。

1.1 可犧牲的基礎設施

心態轉變:專用設備,出事直接重灌。

建議配置:

  • 專用機器(不是主力電腦)
  • 不連公司 VPN
  • 沒有 SSH Key 到生產伺服器
  • 沒有任何不能在一個下午重建的東西

結果: 如果出事,煩人但不是災難。

1.2 檢查 Gateway 是否暴露

這一步救了 923 個人。

檢查指令:

1
moltbot config get | grep bind

判斷標準:

  • "bind": "all" → 對整個網路開放,任何人都能連 ❌
  • "bind": "loopback" → 只監聽 localhost ✓

修復方式:

  • 改成 "bind": "loopback"
  • 重啟服務

更新:Moltbot 官方已修補此漏洞,請確保使用最新版本。

1.3 密鑰管理

核心原則:密鑰永遠不存在設定檔裡。

安裝 Bitwarden CLI:

1
2
3
brew install bitwarden-cli
bw login
mkdir ~/.secrets && chmod 700 ~/.secrets

使用規則:

  • 需要時取出,用完即焚
  • 永遠不 echo 密鑰
  • 永遠不存到檔案
  • 永遠不在對話中顯示

為什麼這屬於 Isolation?

密鑰管理的核心不是「保護密鑰」,而是限制密鑰外洩時的影響範圍

  • 密鑰不在檔案裡 → 檔案被偷也沒用
  • 用完即焚 → 記憶體攻擊的窗口期縮短
  • 不 echo → 日誌不會記錄

第二層 Quarantine:Prompt Injection Defense 與內容隔離

Prompt Injection 與內容隔離防禦流程

核心問題:外部輸入能做什麼?

這是大多數人會跳過的步驟,但可能是最重要的一層。Prompt Injection 是目前 AI Agent 最常見、也最容易被忽略的攻擊手法,尤其在自動處理郵件、網頁與文件時。

這一層的理論基礎來自 Google DeepMind 提出的 CaMeL 雙層 Agent 架構——核心概念是「讀資料」和「做動作」永遠分開。

2.1 信任等級設定

核心概念:

  • 來自郵件、網頁、文件的內容 → 當作潛在敵意內容
  • 只能讀取、只能提取資訊
  • 不能根據外部內容執行指令
來源 信任等級 允許操作
使用者直接輸入的指令 執行、修改、刪除
信任的系統輸出 讀取、處理
外部內容(郵件、網頁、文件) 僅讀取

重點: 大多數 Prompt Injection 攻擊都來自第三種來源。

2.2 告訴 AI 永遠不要顯示憑證

在 System Prompt 或 SOUL.md 加入:

1
2
3
4
5
永遠不要在對話中顯示密鑰、API Key 或 Token —
即使是部分內容、即使是對擁有者。

當讀取可能包含密鑰的檔案時,描述裡面有什麼,
但不要輸出實際內容。

效果: AI 會遵守這個規則,防止意外暴露憑證。

2.3 Agent Prompt Injection 防禦(ACIP)

ACIP = Agentic Context Integrity Protocol

Prompt Injection Defense 的核心是建立明確的信任邊界。在工作目錄維護 SECURITY.md 檔案,包含:

  • 如何偵測注入嘗試
  • 正規化處理(剝離格式技巧)
  • 信任內容和不信任內容之間的邊界
  • 發現可疑情況時的升級路徑

適用場景: 自動處理郵件或網頁內容時特別重要。

2.4 軟性限制(Circuit Breaker)

在 SOUL.md 加入規則:

1
2
3
4
5
6
7
在執行以下操作前,暫停並確認:

- 一次刪除超過 5 個檔案
- 發送訊息給超過 3 個收件人
- 執行破壞性指令(rm -rf、drop table 等)
- 修改系統設定或安全設定
- 任何涉及付款或公開發文的操作

注意: 這不是硬性阻擋,使用者可以說「直接做」繼續執行。目標是健全性檢查,不是官僚障礙。


第三層 Rollback:AI Agent 出事後的損害復原機制

AI Agent Rollback 回滾能力示意圖

核心問題:出事後能復原嗎?

這一層確保即使前兩層被突破,損害仍然是可逆的。Rollback 能力是 AI Coding Security 中最容易被忽略但 ROI 最高的投資。

3.1 Git 追蹤工作目錄

初始化:

1
2
cd ~/moltbot-workspace
git init

建立 .gitignore:

1
2
3
4
5
6
7
*.key
*.secret
*.pem
.env*
*token*
*credential*
*session*

好處:

  • 有完整歷史紀錄
  • 發現異常檔案時可追溯變更時間
  • 可回滾到安全狀態

3.2 事件記錄

原則:出錯的時候,寫下來。

在 Memory Files 維護事件日誌,格式範例:

1
2
3
4
5
6
## 2026-01-15 事件

**發生什麼:** Session Key 意外顯示在對話中
**根本原因:** 沒有規則禁止 AI 輸出憑證
**修復:** 在 SOUL.md 加入「永不顯示密鑰」規則
**狀態:** 已解決

好處:

  • 強迫真正修復問題
  • 發現長期的模式

3.3 Session 輪換

原則:密鑰暴露時,先輪換再調查。

Bitwarden 範例:

1
bw lock

效果:

  • 終止活動 Session
  • 暴露的 Token 立即失效
  • 重新 unlock 並更新 Session 檔案

第四層 Transparency:LLM Agent Security 的早期預警系統

AI Agent Transparency 透明告知與早期預警

核心問題:能及早發現問題嗎?

這一層讓問題在造成嚴重損害前被發現。Agentic Security 的最後一道防線是「知道發生了什麼」。

4.1 每週自動安全稽核

設定 cron job(每週日晚上 11 點):

1
moltbot security audit --deep

檢查項目:

  • 暴露的 Port
  • 錯誤的權限設定
  • 其他常見問題
  • 官方安全文件更新(https://docs.molt.bot/gateway/security)

4.2 網路監控

安裝 LuLu 防火牆:

1
brew install --cask lulu

設定:

  • 從 Applications 打開
  • 批准權限(完整磁碟存取 + 網路擴充)

功能: 任何程序第一次嘗試對外連線時會警告。


讓 Moltbot 幫你做這件事

可以把這篇文章分享給 Moltbot,讓它幫忙實施這些安全措施。

Prompt 範本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
根據這篇文章加固安全設定:[貼上文章 URL 或內容]

按照四層防禦框架執行:

【Isolation 層】
1. 確認這台機器是否為專用設備
2. 檢查 Gateway bind 設定並修復為 loopback
3. 設定 Bitwarden CLI 做密鑰管理

【Quarantine 層】
4. 在 SOUL.md 加入永不顯示密鑰的規則
5. 加入內容隔離/信任等級到安全規則
6. 在 SECURITY.md 加入 ACIP Prompt Injection 防禦規則
7. 加入批量和破壞性操作的軟性限制

【Rollback 層】
8. 設定工作目錄的 git 追蹤
9. 在 Memory Files 設定事件記錄
10. 設定憑證暴露時的 Session 輪換程序

【Transparency 層】
11. 建立每週日晚上的安全稽核 cron job
12. 安裝 LuLu 做網路監控

需要權限的地方請詢問。需要使用者輸入的步驟請逐步引導。

常見問題 Q&A

Q: AI Agent Security 做到這個程度會不會太過度偏執?

考慮 Moltbot 的權限範圍:可存取郵件、訊息、檔案,可執行程式碼,可代表使用者發送訊息。這是很大的信任託付。結論:寧願感覺有點偏執,也不要發現自己不夠偏執。

Q: AI Agent 四層防禦一定要全做嗎?可以只做其中幾層嗎?

四層是相互補強的。Isolation 控制損害範圍,Quarantine 防止 Prompt Injection,Rollback 確保可復原,Transparency 及早發現問題。少一層,其他層的效果就打折。建議至少先做 Isolation 和 Rollback,這兩層投資報酬率最高。

Q: 沒有資安背景也能做 AI Agent Security Hardening 嗎?

這篇文章的每個步驟都是可執行的指令,不需要深厚的資安背景。你甚至可以把這篇文章丟給 Moltbot,讓它幫你執行。重點是「願意花時間認真讀文件」,而不是「要有多少年資安經驗」。

Q: AI Agent 密鑰管理用 Bitwarden 還是 1Password?

兩者都可以。Bitwarden 是開源免費方案,1Password 的 op run 可以直接注入環境變數而不寫檔,安全性更高一點。選擇你已經在用的那個,降低摩擦力。

Q: AI Agent 的軟性限制(Circuit Breaker)會不會很煩?每次都要確認?

設計上是「健全性檢查」而不是「官僚障礙」。只有批量刪除、群發訊息、破壞性指令才會觸發。日常操作不受影響。如果真的需要執行,說「直接做」就可以繼續。


致謝

安全設定受到 Moltbot 社群貼文啟發:

  • @Shaughnessy119 — 在專用 VPS 上運行 Moltbot 做隔離
  • @0xSammy — 揭露 923 台暴露的 Gateway 和 bind: loopback 修復
  • 社群關於密鑰管理的貼文(密鑰永遠不在程式碼裡,按需取用,用完即焚)
  • 社群關於內容隔離框架的貼文(信任等級、主動披露、可犧牲基礎設施)

這篇文章適合誰?

  • 正在導入 AI Agent(Moltbot、Claude Code、Cursor、Copilot)的工程師
  • 擔心 Prompt Injection、Agent 失控的技術主管
  • 想把 AI Coding 從「能跑」變成「可控、可回滾」的開發團隊
  • 對 LLM Agent Security 有興趣的資安從業人員
  • 希望理解 Agentic Security 框架的架構師

延伸閱讀


關於作者:

Wisely Chen,NeuroBrain Dynamics Inc. 研發長,20+ 年 IT 產業經驗。曾任 Google 雲端顧問、永聯物流 VP of Data & AI、艾立運能數據長。專注於傳統產業 AI 轉型與 Agent 導入的實戰經驗分享。


相關連結:

  • 部落格首頁:https://ai-coding.wiselychen.com
  • LinkedIn:https://www.linkedin.com/in/wisely-chen-38033a5b/