本頁譯自英文文件。指令、識別名稱與範例保持原樣。執行環境 7.24.4 · SDK 2.6.7。 英文原文
安全性原則
受支援的版本
只有最新的次要版本線會收到安全性修補。在針對較舊版本線回報弱點之前,請先升級到目前的次要版本。
| 版本 | 受支援 |
|---|---|
| 7.24.x | 是 |
| < 7.24 | 否 |
回報弱點
我們認真看待安全性。若你發現弱點,請負責任地回報:
- 私下聯絡:使用 AutomatosX 聯絡管道 要求機密的安全性回報路線。不要在公開社群訊息中包含漏洞利用細節或憑證。
- Discord:在我們的 Discord 回報:https://discord.gg/gf9UyPxaN2
我們會在 6 個工作天內確認你的回報,並讓你知道修正進度。
**注意:**我們不接受 AI 產生的安全性報告。提交這類報告會導致被禁止參與專案。請確保報告包含具體的重現步驟,並展示真實影響。
威脅模型
概觀
ax-code 是在你的電腦上本機執行的 AI 程式開發助手。它提供 agent 系統,可使用包括 shell 執行、檔案操作與網頁存取在內的強力工具。
執行環境隔離的預設是 full-access(沙盒關閉),檔案系統寫入與網路存取不受限。這是給受信任本機專案的方便態勢,不是安全邊界。在把 AX Code 用於不受信任的儲存庫或無人值守工作負載之前,請選擇 workspace-write 或 read-only。
執行隔離沙盒
ax-code 內建執行隔離沙盒,限制 AI agent 可以存取的範圍。有三種模式:
| 模式 | 行為 |
|---|---|
| 完整存取(預設) | 完全停用隔離並啟用網路存取 |
| 工作區寫入 | 只允許在工作區內寫入;.git 與 .ax-code 一律受保護;網路預設停用 |
| 唯讀 | 阻擋所有檔案變更與 shell 指令 |
關鍵性質:
- 預設行為 — AX Code 以
full-access啟動,除非--sandbox、AX_CODE_ISOLATION_MODE或設定指定不同模式 - 建議的受限模式 — 對不受信任或團隊儲存庫使用
workspace-write;它把寫入限制在工作區,並預設停用網路 - 工具層強制執行 — 所有變更工具(bash、edit、write、apply_patch)與網路工具(webfetch、websearch、codesearch)都會在執行前檢查隔離原則
- 受保護路徑 —
.git與.ax-code目錄一律受寫入保護,即使在工作區寫入模式也是如此 - 升級提示 — 在受限模式中,隔離違規會顯示核准對話框,而不是安靜失敗;使用者可以允許被阻擋的操作一次,而不更改設定
- CLI 控制 —
--sandbox read-only、--sandbox workspace-write、--sandbox full-access - 環境變數 —
AX_CODE_ISOLATION_MODE
隔離後端
| 後端 | 行為 |
|---|---|
| app(預設) | 每個工具上的可攜應用程式層檢查 |
| os | 應用程式檢查加上 bash 的核心沙盒(macOS 透過 sandbox-exec 使用 Seatbelt,Linux 在安裝了 bwrap 時使用 bubblewrap)。若缺少作業系統工具則失敗即關閉 |
| auto | 可用時偏好作業系統的 bash 包裝;否則退回僅應用程式層 |
{
"isolation": {
"mode": "workspace-write",
"network": false,
"backend": "auto"
}
}
或設定 AX_CODE_ISOLATION_BACKEND=os|auto|app。
bash 的作業系統隔離會拒絕工作區根目錄以外的寫入,並在 network: false 時拒絕網路。應用程式層檢查仍然始終執行。在沒有 Seatbelt/bubblewrap 的平台上,請使用 backend: "app" 或容器/虛擬機器。
伺服器安全性
- 預設只限 localhost — 伺服器繫結到
127.0.0.1,無法從網路存取 - 網路存取需要密碼 — 繫結到
0.0.0.0或任何非 localhost 位址時,必須設定AX_CODE_SERVER_PASSWORD;沒有它伺服器會拒絕啟動 - 強制基本驗證 — 設定
AX_CODE_SERVER_PASSWORD時,所有 API 端點都需要 HTTP Basic Auth - CORS 可設定 — 可透過
--cors指定額外允許的來源
憑證儲存
供應商 API 金鑰在靜態時以 AES-256-GCM 加密,使用 PBKDF2 金鑰衍生,並存在本機 AX Code 資料目錄(~/.local/share/ax-code/),檔案權限僅限使用者(0600)。
加密金鑰衍生自本機機器屬性(主機名稱、平台、架構)。這可防止隨意的離線揭露(例如意外分享檔案),但不能防止能存取主機的堅決攻擊者。它不等於作業系統鑰匙圈或硬體支援的祕密儲存。
MCP OAuth 權杖、用戶端祕密,以及帳號存取/重新整理權杖也以相同機制在靜態時加密。非敏感中繼資料(伺服器 URL、到期時間戳、電子郵件、帳號 ID)仍為明文。
發行成品驗證
Bash 安裝程式(install)與 Windows PowerShell 安裝程式(install.ps1)都會在解壓縮前用 minisign 驗證下載的 GitHub 發行封存。發行封存與 PowerShell 安裝程式指令稿本身都帶有分離簽章。釘選的 AX Code 發行公開金鑰是:
RWSlDu++afxCz01OqhYWhfo8+L8pVbSYXJBEb2zoWBuK0WACIzbGVZRO
每個安裝程式都會為所選封存下載相符的 .minisig 資產,並在驗證失敗時失敗即關閉。若 minisign 尚未在 PATH 上,安裝程式會從 https://download.ax-code.com/vendor/minisign/0.12/ 下載釘選的官方 minisign 0.12 封存,檢查封存 SHA-256,並在快取前再次檢查解出的可執行檔。PATH 上已有的 minisign 二進位檔是操作者的工具,不會重新計算雜湊。只有在你刻意接受無法驗證的發行下載時,才設定 AX_CODE_SKIP_MINISIGN_VERIFY=1。
方便的一行指令 irm …/install.ps1 | iex 不會在執行前驗證安裝程式指令稿。對於安全敏感的安裝,請下載 install.ps1 與 install.ps1.minisig,用 minisign 驗證指令稿,然後在本機執行(見安裝與執行環境通道)。
維護者應保持 minisign 祕密金鑰加密。在 macOS 上進行本機發行簽署時,請把通行片語存在 Keychain,而不是明文檔:
security add-generic-password -U -a ax-release -s ax-minisign -w
當未設定 AX_CODE_MINISIGN_PASSWORD 時,發行工具會自動讀取該 Keychain 項目。
由標籤驅動的 GitHub 發行工作流程會在上傳前簽署封存。它需要 這些儲存庫祕密:
AX_CODE_MINISIGN_SECRET_KEY_B64
AX_CODE_MINISIGN_PASSWORD
AX_CODE_MINISIGN_SECRET_KEY_B64 必須是已加密的 ax.minisign.key minisign 祕密金鑰內容的 base64 編碼(本機路徑可以是指向 ax.sec 的符號連結)。工作流程會把它寫到
暫存的 0600 金鑰檔,驗證釘選的公開金鑰,簽署每個發行
封存,並把相符的 .minisig 資產與封存一起上傳。
對於 macOS CLI 封存,工作流程需要並匯入 Apple Developer ID 憑證,使用這些儲存庫祕密:
APPLE_CERTIFICATE
APPLE_CERTIFICATE_PASSWORD
APPLE_TEAM_ID
APPLE_API_KEY_B64
APPLE_API_KEY_ID
APPLE_API_ISSUER
在該路徑中,隨附的原生程式庫會以匯入的 Developer
ID Application 身分簽署,macOS ZIP 會提交到 Apple 的公證服務,
然後未變更的 ZIP 再由分離的 minisign 簽章保護。ZIP
封存無法裝訂公證票,因此公證必須發生在成品上傳之前,
也必須在產生 .minisig 之前。任何 Apple
簽署或公證憑證缺少時,發行建置會失敗即關閉。
發行簽署金鑰歷史
| 生效日期 | 金鑰 ID | 公開金鑰 | 狀態 |
|---|---|---|---|
| 2026-07-19 | CF42FC69BEEF0EA5 |
RWSlDu++afxCz01OqhYWhfo8+L8pVbSYXJBEb2zoWBuK0WACIzbGVZRO |
目前 |
| 2026-07-19 | 2D5140E0904E48B3 |
RWSzSE6Q4EBRLeUmabk1YM6bzP/wn54tXE09il3d2srulrCfaB4Uyt1n |
已輪替退出 |
| 2026-06-16 | 5B7AB63CD6D674BE |
RWS+dNbWPLZ6W9TH486c9zdH84NiiuFnm4VpVTRlXoMHClyQx/fY7W2A |
已輪替退出 |
| 2026-06-16 之前 | 8138FAD32CAD95BA |
RWS6la0s0/o4gdFUZ0Bk/BkrnN8qC2CFOfLXVP5OtQTrvm1BQeOvXgao |
已輪替退出 |
發行簽署金鑰最近一次輪替是 2026-07-19。安裝程式
與發行工作流程只釘選目前金鑰,因此用已退役
金鑰簽署的封存會無法通過簽章驗證。輪替之後,維護者必須用 script/resign-release-assets.ts 重新簽署
歷史發行封存,使每個
已發布的發行都能對釘選金鑰驗證,而不信任已退役的金鑰。
若要以目前金鑰重新簽署並重新上傳既有發行的 .minisig 資產:
tsx script/resign-release-assets.ts --tag v5.5.0 --key-dir ~/signkey
範圍
範圍內
| 類別 | 範例 |
|---|---|
| 沙盒繞過 | 在允許邊界之外執行指令或寫入檔案 |
| 驗證繞過 | 在伺服器模式中規避 AX_CODE_SERVER_PASSWORD |
| 金鑰外洩 | 在沒有本機機器存取的情況下取出已儲存的 API 金鑰 |
| 路徑遍歷 | 工具在預定工作目錄之外讀取/寫入 |
| 指令注入 | 精心構造的輸入執行任意指令並繞過隔離 |
| 相依性弱點 | 隨附相依性中已知的 CVE,且有可行的攻擊路徑 |
範圍外
| 類別 | 理由 |
|---|---|
| LLM 供應商的資料處理 | 送到你所設定供應商的資料由其原則管轄 |
| MCP 伺服器行為 | 你設定的外部 MCP 伺服器在我們的信任邊界之外 |
| 惡意設定檔 | 使用者控制自己的設定;修改它需要本機存取 |
| 社交工程 | 透過不受信任儲存庫的提示注入是已知的 LLM agent 限制 |
| 作業系統層沙盒逃逸 | 隔離沙盒運作在應用程式層,不是作業系統行程層 |
企業安全性能力
AX Code 為企業使用而設計,具有下列強化功能:
- 細緻權限:依 agent 與模式的規則集(
allow/deny/ask)。安全性 agent 預設唯讀。規則會跨專案、agent 與已核准清單評估。 - 工作階段稽核軌跡:每次工具呼叫、權限決定與檔案變更都記錄在 SQLite 中並附快照。支援重放、分叉與匯出,供合規檢閱。
- 確定性重構(DRE):
impact_analyze、refactor_plan與refactor_apply(影子 worktree 加上 lint/型別檢查/測試)提供可稽核、可還原的變更。 - 憑證管理:所有金鑰/權杖都使用 AES-256-GCM 加密。透過
InstanceState做依目錄隔離。 - 選擇加入的沙盒強制執行:應用程式層隔離,並解析 bash 指令(tree-sitter)。選擇
workspace-write或read-only以強制沙盒邊界;受保護路徑(.git、.ax-code)適用於沙盒模式。 - 伺服器強化:預設只限 localhost;遠端存取以密碼保護並使用 Basic Auth。
- 程式碼情報與掃描:內建祕密/硬編碼偵測,以及相依性影響分析。
CodeQL 輔助的程式開發回饋
儲存庫把 CodeQL 當作提取請求、推送到 dev、排程掃描與手動分派的背景安全性分析層來執行。CodeQL 不是
即時 LSP 或程式碼情報路徑的一部分;它是較慢、較深的證據
來源,適合在來源變更穩定之後處理資料流、汙點與安全性品質發現。
目前的工作流程分析:
- JavaScript 與 TypeScript 的執行環境、TUI、SDK、整合與指令稿程式碼。
- GitHub Actions 工作流程與本機複合動作。
crates/下的 Rust crate,並以手動 Cargo 建置,使原生附加元件與 TUI 程式碼被一致地擷取。
預定的開發者體驗是:
- 提取請求作者在 GitHub 程式碼掃描中收到 CodeQL 警示,與既有的 型別檢查、確定性測試、OSV 相依性掃描與儲存庫結構 防護並列。
- 維護者在把 CodeQL 當成硬性合併 閘門之前,先分類最初結果,使新發現有用而不是吵雜。
- 未來的 AX Code 檢閱/除錯流程可以把 CodeQL SARIF 或 GitHub 程式碼
掃描警示當作明確的安全性證據納入,並帶有來源欄位,例如
source: "codeql"、規則 id、嚴重性、檔案、行、資料流追蹤,以及 已分析的提交 SHA。 - CodeQL 證據應顯示在本機
security_scan、hardcode_scan、LSP 診斷與圖支援的影響分析旁邊,而不是 悄悄取代其中任何一項。
加入自訂 CodeQL 查詢時,偏好儲存庫專屬的安全 邊界,而不是廣泛的 lint 風格檢查。高價值目標包括沙盒 逃逸路徑、帶有未清理引數的指令執行、圍繞工作區侷限的路徑遍歷、 祕密/環境傳播到子行程, 以及缺少的伺服器路由驗證。
完整的企業治理(RBAC、原則即程式碼、SIEM 匯出、密碼學稽核)請與 AX Trust 整合(路線圖項目)。
隔離設定與執行環境行為見 沙盒指南。