Day 15 - 把 agent 關在工作目錄:用 macOS Seatbelt 沙箱防堵 Shell 越權漏洞
高見龍實作防範 Agent 路徑跳脫與 symlink、將 Agent 關在工作目錄內的實戰教學。
• 由於應用層的字串檢查無法有效攔截透過 Python 或 Node.js 間接讀寫檔案的子行程,單靠白名單已不足以確保安全。
• 作者引入 macOS 內建的 Seatbelt 沙箱框架(sandbox-exec),透過作業系統層級來強制隔離 agent 的執行環境。
• 採用基於黑名單的 allow default 策略並逐項收緊,精準防堵工作目錄內的 .env、.git 等禁區,同時解決 dyld 因無法載入動態庫而導致 shell 崩潰的問題。
• 實作 工具鏈白名單與環境變數過濾,在封鎖家目錄與網路連線的同時,保留 uv、pyenv 等開發工具的正常運作。
• > 「你看不見的防護,不能算防護。」透過嚴格的沙箱驗收與邊界條件檢查,確保 agent 即使面對看似合理的指令請求,也無法越權存取敏感資料。
來源:高見龍
閱讀原文 ↗另見:高見龍、高見龍、高見龍