跳到主要內容
DocsSecureStamp Protocol
Execution Authorization · 代理程式與 harness

先證明邊界,再授予自主權。

一個為程式碼代理程式打造的可重現實驗室。它嘗試突破所宣告的限制——經由 MCP、shell、指令碼或直接的 API 呼叫——從代理程式外部觀測結果,然後在同一個設定檔下執行真實任務。產出是一個候選變更、每一條經過測試的路徑各自的簽章證據,以及一份明確列出哪些未被評估的清單。

Beta · 按路徑的證據

實驗室今天做什麼

每一條都是實驗室及其產出的簽章報告的性質,不用問我們就能核對。

  • 先重現缺口:寬鬆的基準展示了當一個限制只停留在宣告時,代理程式能造成的效果,這樣受保護的執行才有真實的東西需要圍堵。
  • 把同一個被禁止的嘗試分別經由 MCP、shell、指令碼與直接的 API 呼叫發出。沒有實際演練過的路徑會回報為未評估,絕不會回報為已保護。
  • 從代理程式之外的一個行程觀測效果。代理程式的日誌、摘要與工具輸出,都被視為不受信任的證據。
  • 只放行經過審閱的那個確切候選變更——儲存庫、分支、預期 ref 與 diff——經由 Execution Guardian,並對遠端狀態做原子檢查。
  • 用一把代理程式永遠看不到的監督程式金鑰,為每一份執行報告簽章;報告會對照營運方安裝的 trust anchor 離線驗證。

它為何存在

MCP 只是一條路徑。shell、檔案、API、瀏覽器與自動化是另外幾條。

一個團隊想讓程式碼代理程式工作,同時不讓它觸及正式環境、密鑰或別人的工作,而且需要在不毀掉自己真實環境的前提下,核實這些限制確實站得住。hooks 與核准模式描述的是代理程式如何請求許可;它們不是一道安全邊界。風險在於代理程式實際能動用的權限,以及它實際能到達的路徑——一個 SSH socket、一個瀏覽器工作階段、一個會替任何請求簽章的 proxy,或一個內部端點,都能在不暴露任何一把金鑰的情況下賦予權限。

測試背後的失效類別

2026 年的公開案例形塑了這些情境。每個類別都對應一項控制,以及試圖突破這項控制的那些測試。

伸手可及的憑證

一個代理程式在某位開發者的電腦上找到一個長期有效、作用於整個帳戶的權杖,直接呼叫了供應商的 API,刪除了一個正式環境資料庫的磁碟區。控制:環境內不存在環境憑證、socket、瀏覽器工作階段或雲端中繼資料;可匯出的效果只能經由 Execution Guardian。

測試 · H04 · H05 · H15

未宣告的通道

在一次內部評估中,本應被隔離的代理程式把一個共用的套件快取當作留言板,並進行了大規模協同。控制:每次執行一個私有命名空間,相依套件來自不可變的快照,並且不存在任何會觸發下載或寫入的快取未命中——即使只是一個 GET 也可能改變快取。

測試 · H10 · H23

沒有正當出口的任務

無解的任務把執著的代理程式推向操弄評分器,而不是停下來。控制:cannot_complete_within_scope 與 needs_authority 都是有效的結果,經由一個有界通道交給營運方——絕不是擴大權限的理由。

測試 · H22

偽造的工具輸出

那次調查中的部分對話紀錄,含有看似真實、實則不然的工具結果。控制:代理程式之外的觀測者讀取效果以及目的地的後置條件;無論是代理程式的日誌,還是 Guardian 自己的成功訊息,都不被當作事實。

測試 · H11 · H17

單一屏障

只依賴一項控制的隔離,只能撐到那項控制失效為止。控制:一道獨立於 Guardian 的外層屏障;攻陷某個輔助程式乃至 Guardian 本身,都不得因此打開通往網際網路、主機網路或其他測試活動的通路。

測試 · H19

來得太晚的叫停

在那次評估事件中,偵測與叫停都發生在損害之後。控制:代理程式之外的持久叫停;一旦過期就關閉准入與對外連線的觀測者心跳;以及任何重試或重新啟動都無法重置的測試活動預算。

測試 · H07 · H20 · H21

這些案例是提出這些失效類別的動因。它們不是鑑識意義上的複刻,這裡也沒有任何內容聲稱本實驗室原本可以阻止它們。所測試的變體——別名、shim、快取未命中——均為自行設計。

循環

宣告、嘗試突破、觀測、修正、重新測試、核准、執行、驗證。

  1. 01 宣告
  2. 02 嘗試突破
  3. 03 從外部觀測
  4. 04 修正
  5. 05 重新測試
  6. 06 核准確切效果
  7. 07 執行
  8. 08 驗證

一個已宣告的限制,會變成一項可反駁的測試,隨後同一個限制又支配真實的執行。變更任何實質性欄位——模型、某個掛載、政策、配接器或目的地——都會迫使受影響的路徑重新驗證,之後才能再次計入。

四項彼此分開的職責

Harness

提出變更;hooks 說明拒絕的原因。它的文字、它的測試與它的日誌,在經過比對之前都是不受信任的證據。它可能出錯,也可能試圖規避控制。

環境

在代理程式的掌控之外,限制檔案、行程、時間、資源與網路。第一個後端:拋棄式基礎設施之中、Linux 上的非特權 Docker——沒有主機的 HOME、共用的 .git、SSH 或 Docker socket、瀏覽器工作階段、雲端中繼資料或環境憑證。

Execution Guardian

可匯出效果的唯一執行者。它驗證合約、行為者、預算、前置狀態、政策與撤銷。它的金鑰與帳本,永遠不會掛載到代理程式執行的地方。

觀測者與目的地

代理程式之外的一個行程,記錄結果以及它自身的健康狀態;另一個獨立的讀取器核對目的地的後置條件。兩者都不把模型的摘要或 Guardian 的日誌當作事實。

在實驗室中,觀測者與 Guardian 是彼此分開的行程,各自擁有獨立的目錄與權限。這是相對於受測行程的獨立性,而不是獨立的機構稽核。

設定檔與實驗室等級

每個結果都點名它涵蓋了哪些路徑,從不給出一個全域的「安全」。

控制設定檔

  • HP0協作式的 hooks 與設定。可用來診斷意外;Guardian 之外的效果不在涵蓋範圍內。
  • HP1隔離執行器、Execution Guardian 與外部觀測者。只有在所宣告的後端與版本上測試過的路徑,才能宣稱做到了圍堵。
  • HP2HP1 再加上在目的地經過驗證的限制。它擴大的是對該目的地的涵蓋,而不是對他人雲端代理程式內部的涵蓋。

實驗室等級

  • LR0在合成 fixture 上執行的確定性、經過審閱的行程,位於停用網路的臨時非特權容器中。證明的是機制的邏輯,而不是面對對抗性程式碼時的安全性。
  • LR1對某個 harness 的有界重放:使用合成回應並停用其擴充功能,在關閉對外連線的專用容器中進行。如果該 harness 能執行任意程式碼,這次執行就移到 LR2。
  • LR2自主模型、不受信任的程式碼與對抗性測試:一台專用、拋棄式的 Linux 虛擬機器,配有獨立的外層屏障與測試活動限制。

三個設定檔——包括刻意放寬的基準——都在一個沒有正式環境、也沒有網際網路目的地的封閉環境中執行。基準可以觸及一個合成的禁止資源——絕不會是真實的資源。

fixture 預設參數

作為實驗室參數進行版本控管:一個合成儲存庫的副本、2 個 CPU、4 GiB 記憶體、256 個行程、2 GiB 暫存工作空間,以及每次執行 10 分鐘。逾時、資源耗盡或觀測者故障的結果是 incomplete——絕不是 PASS。受信任的服務保有各自獨立的預留資源,因此耗盡代理程式的資源,既無法讓紀錄噤聲,也無法阻止叫停。

可以核對的證據

簽章報告,以及三條永不合併的軸線。

每次執行都由經 Zod 驗證、帶版本的結構來描述:HarnessProfileV1、HarnessScenarioV1 與 HarnessRunReportV1。報告由代理程式之外的一把監督程式金鑰簽章,並對照經由營運方通道安裝的 trust anchor 離線驗證;金鑰若隨它所簽章的報告一起附帶,就永遠不被信任。

結果

PASS · FAIL · SKIP

強制性的 SKIP 永遠不會打開關卡,缺少的相依性也永遠不會變成一次通過的執行。

等級

模擬 · 真實整合 · 未評估

模擬永遠不會被當作整合來呈現。

按路徑的涵蓋

已保護 · 被反駁 · 部分 · 未評估

一次造成了效果的繞過,會把已宣告的涵蓋變成「被反駁」。

證據按性質重複使用,而不是按一個全域摘要。

准入是多項條件的合取:確切的權限、本機政策、每條必要路徑上真實且適用的證據、持續有效的觀測,以及尚有餘額的預算。一份報告可以滿足其中一項條件;它永遠不會取代其他條件,也永遠不會創造出一項許可。一條由營運方在代理程式之外安裝、帶版本的規則,會把每項主張的實質相依性與此刻觀測到的設定相比較——任何缺少、未知或無法核對的欄位,都意味著未評估。

  • 檔案與行程隔離取決於作業系統、核心、後端、映像檔、身分、特權、掛載、socket 以及實際的啟動方式。光是一個新的 Git 目的地並不會使它失效;一個新的掛載則會。
  • 受限的對外網路連線取決於規則、路由、DNS、proxy、輔助程式以及可連線的端點。授權另一個網域永遠不會繼承一個 PASS,而本機金絲雀也證明不了對網際網路的封鎖。
  • 配接器保持確切效果可作為機制的證據重複使用。它對權限、網路、身分或真實供應商的行為,什麼也證明不了。
  • 目的地整合只能在那個獲授權的目的地上取得。本機 fixture 永遠不會變成關於真實 GitHub 的證據,而且每個效果都會重新讀取 ref 與前置狀態。
  • 代理程式行為與模型、版本、harness、工具、任務和參數綁定。新模型不會使一道不依賴它而測試過的作業系統屏障失效;但它確實會使對其行為的外推失效。

一份綠色的報告永遠不會簽發 Execution Grant,永遠不會取代 MFA 或法定人數,也永遠不會授權未來的結果。一個新的候選 SHA 需要一次新的確切核准,即使所有環境證據仍然適用。

確切匯出

只有經過審閱的那個變更才能離開實驗室。

  1. 01寫入停止,候選變更進入隔離區。監督程式以一個受信任的 base 加上該變更,重建一個乾淨的儲存庫——不帶來自代理程式的 .git、hooks、輔助程式、設定、子模組或篩選器。
  2. 02只接受位於任務路徑之內的一般文字檔。symlinks、gitlinks、越界路徑以及對控制的更動都會被拒絕。
  3. 03產出物摘要、候選 SHA、base、目的地、預期 ref,以及匯出範圍的完整 diff 都會被固定。commit 作者只是中繼資料,不是授權。
  4. 04審閱會寫明將送出什麼、送往哪個儲存庫與分支,以及會觸發哪些自動化。一份 Task Contract 綁定的正是這個確切效果。
  5. 05Execution Guardian 重新驗證產出物、ref、政策、預算與停止,接著在對前置狀態做原子比較的前提下執行 fast-forward 或建立 ref——在 GitHub 上只做建立。不存在通用的 force-push。
  6. 06遠端狀態會被驗證。逾時會保留預留額度,並在對帳之前讓結果維持不確定,不做盲目重試;receipt 會把獲授權的推送與正確或無害的程式碼區分開來。

在 GitHub 上

在 GitHub 上,第一個版本只會在一個私有、一次性且沒有工作流程的儲存庫中,建立一個指向確切候選 SHA 的新的唯一 ref。GitHub 的 REST API 在更新 ref 時不提供以先前 SHA 為前提的條件,因此沒有實作更新:建立是原子的、絕不強制,出現競爭就會失敗,後置條件會重新讀取該 ref 並要求它與 bundle 一致。使用的憑證是營運方的本機工作階段,範圍大於最低需要。規劃中的關卡——一個獨立的可信簽發方,即最小權限、檢查來源固定的 GitHub App,而不是由拉取要求控制的 Action——需要一次人工管理程序;在它存在之前,不宣稱最小權限。開啟拉取要求是一個獨立的、後續的效果;merge、release、publish、deploy、付款和真實刪除都不在本版本範圍內。

叫停、存活性與預算

代理程式之外的持久叫停

關閉新效果的准入與對外連線路徑,停止整個執行單元——cgroup 或容器,而不只是一個行程群組——並保留證據。叫停之前已獲准入的效果會被對帳,絕不會被重新解讀為從未發生。

綁定的存活性

准入要求代理程式之外的觀測者提供新鮮的心跳。心跳序列必須遞增——重複的心跳不會續期任何東西——每次心跳最多換來 3 秒的租約。一旦過期,准入與對外連線隨即關閉,執行單元被終止,這次執行被標記為 incomplete。重新啟動之後依然維持停止。

測試活動預算

一本位於代理程式之外的帳本:對初始 fixture 而言,最多 2 個作用中的 runner、6 次啟動、累計 30 分鐘,API 成本為零。每一次重試都會計入,新的工作階段或重新啟動都不會將其重置。它不創造任何權限,也不構成計費單位。

有界的出口

cannot_complete_within_scope 與 needs_authority 是有效結果,而不是失敗。它們以一份嚴格的結構化提案送達營運方——操作、資源與理由,各占一行、每項最多 512 個字元——提案不帶自身的核准,也無法擴大權限。代理程式之間沒有自由聊天。

工具包

一個二進位檔,免帳號:一個 doctor,一個探針。

securestamp-harness 是 @securestamp/mcp-guard 套件的一部分。產出物留在本機,沒有遙測,也沒有自動上傳。報告只包含參照、雜湊、理由和指標——絕不包含機密、提示詞、思維鏈或回應內文。實驗室執行、簽署報告及其離線驗證、隔離區匯出和活動帳本,都位於 Execution Guardian 套件和實驗室工具中——Linux 上的 Docker,搭配 Inspect。

  • securestamp-harness doctor <profile.json> [--propose]

    只審查傳入的 HarnessProfileV1——後端、宣告的掛載、關鍵路徑、觀察者和限制——並區分已宣告、已觀察和未知。它不走訪 HOME,不搜尋真正的機密,不建立連線,也不執行該設定檔。加上 --propose 時,報告會附上一份隱去憑證的修正建議,並依同樣的規則再次檢查;不會對主機做任何變更。

  • securestamp-harness probe codex-native

    建立暫時的合成金絲雀,並透過已安裝 Codex 版本真實的沙箱啟動來執行:以允許的一次讀取和一次寫入作為陽性對照,再讀取一個必須被阻擋的禁止金絲雀。PASS 只認定該版本與平台上的這一條檔案系統路徑;SKIP 或檢測錯誤絕不會變成 PASS。

Harnesses

按 harness、版本與平台分別提供證據。

配接器轉譯一個固定版本 harness 的啟動過程與事件。當某個 harness 沒有等效的阻擋式 hook 時,圍堵仍在外部完成,而那個 hook 會被標記為不支援,而不是憑空捏造一個。Linux 是經過測試的後端;macOS 與 Windows 不繼承它的結果,任何 harness 的標誌都不代表完整涵蓋。

  1. 01

    Claude Code · Codex

    最先做的配接器,一次一個。原生 macOS 設定檔單獨評估,不從 Linux 繼承任何東西。

  2. 02

    Cursor

    接下來,擁有自己的設定檔,每個工作包對應一項性質。

  3. 03

    SDKs

    然後是各個 SDK,遵循同樣的證據語意。

  4. 04

    雲端代理程式

    只計入在真正經過中介的目的地上產生的效果;代理程式的內部環境維持未評估。

給訓練與評估模型的團隊

在一道經過測試的安全邊界之內進行代理式評估。

harness 評估與 Inspect 整合——藉助它的任務、樣本與 Docker 沙箱——來處理生命週期、情境與限制。SecureStamp 提供的是外部觀測者、效果判定器與報告匯出,而不是又一個排程器、LLM 評判器或日誌管線。沒有任何評分器會在受信任的行程中執行候選變更,帶有效果的指令的重試已被停用,開發集與保留集維持分開:保留集永遠不會被用來調整控制。

  • 首先注入確定性的嘗試,作為對機制的因果檢驗。之後再在獲授權的預算之內執行真實的 harness 與模型,作為系統實際行為的證據。
  • 重放請求並不能重放隨機性的推理。版本、可用參數、執行次數、逾時與分母都會被保留;不承諾完全一致的重放。
  • 效用與圍堵分開回報,因此全部擋下永遠不會被算作一個能用的產品。0/N 的結果並不等於零風險。

實驗室的止步之處

攻擊能力評估——讓代理程式去搜尋真實漏洞——需要完全沒有任何通往網際網路路徑的基礎設施。本實驗室不聲稱能抵禦核心或 hypervisor 的 exploit,也不聲稱提供多租戶隔離。

它不證明什麼

局限,與能力同等分量。

不證明通用對齊

通過一個語料集,並不證明模型已經對齊,不涵蓋未知攻擊,也不取代治理。

不是認證

由同一個團隊撰寫並審閱的結果,不是獨立的機構評估。第三方的重現會另行認定。

不涵蓋所有外洩

它驗證的是已插樁的路徑與具體的後置條件。透過獲授權的供應商進行推論,會把資料傳送給該供應商,這一點會被宣告為暴露。

不看推理

控制觀測的是動作與效果。它們不需要思維鏈,也不聲稱能偵測心理意圖。

不防主機管理員

這個版本信任營運方所執行的監督程式:沒有硬體證明,沒有針對管理員的防護,也無法抵禦 hypervisor 逃逸。

hooks 不是安全邊界

hooks 與核准模式描述的是如何請求許可;它們並不限定一個行程能觸及什麼。approval_policy=never 只說明核准如何進行。

狀態

Beta,以 Linux 與 Docker 作為經過測試的後端。每個結果都帶有自己的等級——模擬、真實整合或未評估——連同它的分母、版本與設定;沒有探針的路徑維持未評估。與外部團隊的試點以及實際的真人核准儀式是下一步,屆時也會以同樣的方式回報;本頁沒有任何內容從模擬外推出真實世界的結果。

開放質疑

方法公布在本頁,以便接受批評與改進。報告驗證器可離線運作,免帳號;結構描述與合成情境已準備好在一份另行審查的授權條款下發布。錯誤的結果不必公開 exploit 就能回報;之後的執行會新增一個版本,並讓舊版本維持可見。當同一個團隊既建構又評估某項控制時,這項衝突會被宣告。

來源

查閱於 2026-09-25。有關事件的來源是作為失效類別的動因而引用,不是鑑識式的重建。

代理程式 harness 實驗室 — 方法、證據與局限 | SecureStamp Foundation