Lab 9 學習導引與技術解析#

本 Lab 介紹了如何在不需要人類介入的沙盒環境中,讓多個不同目標/性格的 Agent 相互對抗(Adversarial Loop),快速逼出設計規格書的安全與邏輯極限。

💡 核心學習重點#

1. 多 Agent 沙盒對抗拓撲 (Adversarial Loop Topology)#

  • 概念:定義三個獨立配置、持有不同 System Instructions 的 Agent:
    • 藍軍 (Blue Agent):系統架構設計師。目標是撰寫與修改規格書,封堵任何被點出的漏洞。
    • 紅軍 (Red Agent):白帽駭客/安全評估員。目標是挑刺,找出規格書中最致命的一個漏洞。
    • 裁判官 (Auditor Agent):中立審計裁判。評估紅軍挑戰是否合理。如果合理給予 FAIL 退回修正,如果不合理或完美防禦則給予 PASS 終止對抗。

2. 非同步攻防迴圈控制#

  • 概念:藉由 Python 非同步 while 迴圈來編排對抗的流向。
    • 藍軍生成初始規格 $\rightarrow$ 紅軍寫漏洞挑戰 $\rightarrow$ 裁判官評判。
    • 迴圈一直持續到裁判官給出 PASS,或者達到最大對抗輪數(如 3 輪限制)。

3. 多節點分散式系統安全攻防成果#

在此 Lab 模擬的 「API 金鑰發放與驗證系統」 對抗中,紅軍與裁判官逼出了藍軍規格書的數個致命漏洞,藍軍對應演進出極佳的安全防禦:

  • 第一輪(快取投毒):網關直接信任 Redis 中的明文 Scopes。藍軍升級為 Ed25519 快取密碼學數位簽章,防止內網篡改。
  • 第二輪(憑證吊銷重放):網關本地離線驗章,無法阻斷已被主資料庫吊銷的長效簽章。藍軍升級為 短效期 5 分鐘簽章,並引入 即時 gRPC 吊銷通知寫入網關本地 Blocklist
  • 第三輪(分散式時鐘漂移):若網關時鐘比 Auth 服務慢 $\Delta$ 秒,本地 5 分鐘 Blocklist 記錄將提早過期失效,造成過期簽章重放時間差。藍軍升級引入 $\Delta$-Guard 漂移強校驗,並給出數學嚴格證明的 阻斷清單壽命時間補償公式: $$\text{Blocklist Entry TTL} = T_{\text{signature_TTL}} + 2 \times \Delta = 360\text{ 秒}$$ 將重放漏洞空間在數學維度上降維歸零。