APBSC公開邊界與安全閉包 English

APBSC · 對外整合版 · v1.0

AI Agent 與公開邊界

APBSC 研究計畫・對外整合版

版本 1.0 · 2026-10-13 · Neo.K,EveMissLab

計畫網站:privacy.evemisslab.com · 演算法、協定、釋出特徵與報告:github.com/EveMissLab/apbsc-rbpm · English:APBSC_Integrated_Public_Edition_v1.0.en.md

本版取代第一階段的十篇內部草稿(v0.1,2026-09-21),作為計畫的對外正式文本。它依據那十篇草稿與量測報告,在作者的指導下由 AI(Claude)協助撰寫。內容未經同儕審查。

摘要

告訴 coding agent 越多關於它所在機器的事,它就做得越好:專案放在哪裡、用哪個執行環境、認證怎麼設定、要呼叫哪個內部服務。這些脈絡會被寫進 CLAUDE.md、AGENTS.md、編輯器規則與代理設定檔,然後跟著專案一起被 commit。APBSC 計畫問的是:當這些檔案變成公開的,會發生什麼事。

第一階段(十篇論文,2026 年 9 月)建立了詞彙與論證:通過所有自動檢查,不等於守住公開邊界;agent 需要的脈絡本身就是資訊離開的出口;secret scanning 回答的問題比隱私窄;而這一切,都不能靠去讀別人的外洩來誠實地研究。第一階段以 RBPM 收束:一個研究者盲測的量測演算法,倉庫內容的第一個、也是唯一的觀察者,是一個封閉的機器程序,它只輸出編碼過的特徵。

第二階段(2026 年 10 月)把演算法用在新抽的公開樣本上:236 個同時帶有 agent 指示檔、README 與治理檔的倉庫,以及 400 個由個人帳號擁有、近兩年建立的倉庫。在每一個族群裡,演算法都看到了公開邊界的訊號。在個人倉庫中,2.75% 公開了 .claude/settings.local.json,那是 Claude Code 自己會排除在版本控制之外的檔案;10.5% 公開了 AI 代理設定檔;而最具體的發現,是寫在這些設定檔裡的家目錄路徑。

本計畫沒有任何人、也沒有任何 AI 模型讀過被量測的倉庫。數字是演算法回報的,可能失真;研究也刻意停在這裡,因為再往下就等於去讀人們不打算公開的東西。

1. 問題

一條交付流程可以生成程式碼、通過測試、通過 secret scanner、通過審查、成功 push。這些各是一個獨立的命題,其中沒有一個等於「公開出去的結果守住了它的隱私與安全邊界」。

計畫始於一個有紀錄的案例。一個交付流程有隱私規範,也有自動檢查器;檢查器回報 PASS。但被排除的私人值仍然可以被恢復:它就存在檢查器本身裡,被拆成幾個分開的字串常數,連續字串搜尋看不見,簡單串接就能重建。流程裡沒有任何東西壞掉,只是證據沒有覆蓋到真正重要的那個結果。

於是工作問題變成:當 AI agent 參與建造與發布軟體時,什麼東西離開了私人工作環境、經由哪些表面離開,以及要怎樣量測它,而不讓量測本身變成又一次外洩。

2. 詞彙

資訊鏈。 一則資訊會經過五個狀態:已觀察、已授權、已持久化、已公開、可外部取得。每一個箭頭都是一個獨立的權限。計畫的簡寫是:agent 可以觀察,不代表可以存下來;可以存下來,不代表可以公開。

公開邊界閉包。 當有證據顯示到達公開端的內容正是原本要公開的、而且沒有多出任何東西時,這次交付才算閉合。閉包是證據與覆蓋範圍的性質,不是檢查跑了幾次。

綠燈謬誤。 把各項檢查寫成 V₁ … Vₙ、真正的後置條件寫成 G:除非 G 被映射進它們的覆蓋範圍,否則 V₁ ∧ … ∧ Vₙ = PASS 推不出 G = PASS。讀同一個來源、共用同一個生成 oracle 的檢查彼此並不獨立,所以綠燈越多,增加的可能只是信心而不是保證。檢查看不到的表面,回傳 NOT MEASURED,永遠不是 PASS。

Agent 脈絡即出口面。 九個脈絡類別讓問題可以被量測,而不是被爭論:C1 工作站或本機路徑、C2 執行環境或工具拓撲、C3 認證或 session 脈絡、C4 私有網路或內部端點、C5 即時的營運安全狀態、C6 組織或專案關係拓撲、C7 個人或身分脈絡、C8 類 secret 內容、C9 生成的診斷脈絡。敏感度與風險是兩條獨立的軸:具體的路徑可能無害,認證的說明可能是必要的文件。

可恢復性。 「有或沒有」對隱私來說太粗。R0 不可恢復、R1 弱可推論、R2 強可推論、R3 可直接重建、R4 字面存在。

警示等級。 L0 一般;L1 操作性、非敏感;L2 具體脈絡,但尚未證明不應公開;L3 可能的邊界事件,即具體、公開、在其脈絡中必要性低,且經獨立確認;L4 嚴重,即疑似有效的憑證或金鑰,永遠不驗證。

知識狀態。 每個命題都帶一個:O 已觀察、H 假說、E 已確立、NM 未量測。截至本文,計畫中沒有任何命題達到 E。

3. 第一階段的論證

統合框架(論文 00)。 交付是否正確,看的是它留下的世界狀態,而不是程式是否正確。Hash 證明這些位元組就是被雜湊的那些,不說明它們揭露了什麼。私有倉庫不是保險箱,現行版本清乾淨也不代表歷史乾淨。

綠燈謬誤(論文 01)。 宣稱的保證不應超過已展示的覆蓋。不完整規格的正確實作,會通過它收到的每一個測試;生成出來的測試,與生成它的程式碼共用盲點。論文區分 detector 的偽陰性與「範圍偽 PASS」:detector 運作正確,卻被指向錯誤的表面。

Agent 脈絡即出口面(論文 02)。 專案根目錄、本機執行環境、瀏覽器 profile、內部端點與憑證載入慣例,會被寫進指示檔、設定、fixture 與生成的文件;一旦這些檔案被公開,它們就越過了原本不是為之而寫的那條線。規則檔與反例甚至可能暴露它們要守護的值。

從 Secret Scanning 到語義隱私(論文 03)。 模式偵測回答的是「有沒有已知形式的 secret」。交付物仍可能帶著本機身分、工作站路徑、網路配置或組織關係,卻沒有任何一處字面命中;也可能把一個值拆散在常數與檔案之間。論文同樣堅定地拒絕另一個極端:語義 AI detector 不是神諭,它自己的解釋也可能外洩。模式證據、語義證據、政策脈絡與獨立反證要合併使用,UNKNOWN 也要保留為一個答案。

組織層級的傳播(論文 04,假說)。 共用的規則、模板、skill 與 scanner 是供應鏈的根。一個脈絡錯誤可能被每一個複製它的倉庫繼承;被廣泛共用的 scanner,它的 PASS 看起來比它實際賺到的更有權威;同一份政策的各個副本,會以不同速度老化。

建造與攻擊的不對稱(論文 05,假說)。 AI 降低「做出能用的東西」的成本,快過降低「做出安全的東西」的成本,也可能降低找到弱目標的成本。這個假說很窄,論文也不主張現在的 AI 是萬能的攻擊者。

供應商與平台的責任(論文 08)。 觀察、執行、持久化、發布是四條不能合併的邊界:執行安全不等於發布安全,secret 安全不等於語義上的隱私。平台在前三者已經建立了實在的控制。審閱中沒有找到通用的、語義層的公開邊界治理層;審閱中沒找到,不等於不存在。責任分層落在供應商、平台、組織、倉庫與使用者身上。

4. 不看,也能量

方法為什麼重要(論文 06)。 可以公開取得,不等於可以毫無倫理摩擦地觀察、聚合、保存與再發布。為了證明路徑與身分外洩而去讀它們的研究者,就成了第二個觀察者與新的聚合點,而這正是被研究的那種失敗。

演算法(論文 09,RBPM)。 倉庫當下的公開狀態,依序經過正規化、detector 組合、敏感值壓制、特徵抽取與裁決,得到研究安全的輸出:X → N → D → S → F → A → O。O 之前的一切都在封閉程序內執行;離開的只有封閉詞彙中的類別、等級、計數與級距。

不可放寬的規則:

研究協定(論文 07)。 一份可預先登錄的設計,有配對對照、以不重複倉庫為單位抽樣、保留 UNKNOWN 狀態,用來回答 pilot 回答不了的盛行率與差異問題。計畫沒有執行這份驗證性設計,第 7 節說明原因。

第二階段怎麼套用它。 每一輪的協定都在抓取任何資料之前提交凍結。候選來自 GitHub 程式碼搜尋。篩選、抓取與分類都在同一個封閉程序裡完成,主控台只印計數。每一輪都有中性識別碼、記錄釋出檔雜湊的鎖定檔、一份對鎖定資料的書面判讀,以及一個完全不匯入執行器程式碼的獨立稽核器。之後才接上擁有者類型或 AI 工具組合等分組屬性。

5. 演算法看到了什麼

所有樣本都是探索性、非機率的。區間是精確 95%(Clopper–Pearson)。以下沒有任何數字是盛行率。

5.1 第一階段,2026 年 9 月

量測結果
程式碼搜尋 pilot,2026-09-20含 /Users/ 前綴的檔案原始搜尋比例:CLAUDE.md 3.55%、AGENTS.md 2.13%、.cursor/rules 1.45%。是搜尋數,不是外洩率。
AI 原生公司存在性檢查,N = 1211 家有公開的 AI 協作面;2 家出現有界的脈絡訊號;沒有升級。
兩次極小盲測,N = 6 + 6盲化邊界在真實資料上連續兩次成立。
60 個倉庫的橋接量測,三個商業分層L0 43、L1 15、L3 2;兩個 L3 都在 AI 原生公司的 agent 指示檔上。
同一組樣本,三種表面高警示:agent 指示檔 40 格中 2 格,README 59 格中 0 格,治理檔 51 格中 0 格。

5.2 第二階段:組織與個人,三種表面(N = 236)

四輪倉庫都同時帶有根目錄的 AGENTS.md 或 CLAUDE.md、README 與治理檔,讓任何表面都不會在結構上缺席。規則為第一輪凍結時的版本。

表面高警示格比例95% 區間L3
README233 格中 8 格3.4%1.5–6.7%2
Agent 指示檔236 格中 7 格3.0%1.2–6.0%4
治理檔235 格中 2 格0.9%0.1–3.0%1

236 個倉庫中有 16 個(6.8%,3.9–10.8%)至少有一格高警示。各輪約 60 個倉庫,高警示格從 1 格到 9 格不等。

5.3 第二階段:帶有 AI 協作標記的個人倉庫(N = 400)

兩輪各 200 個由個人帳號擁有、近兩年建立的公開倉庫,從五種 AI 指令檔平均抽樣:CLAUDE.md、AGENTS.md、GEMINI.md、.github/copilot-instructions.md、.cursorrules。其中 292 個沒有任何星數。每個倉庫的 AI 協作輪廓(檔案樹中的工具家族、目前 head commit 上的 AI 共同作者標記、README 中的聲明)都在封閉程序內記錄,標籤鎖定後才接上。

觀察倉庫比例95% 區間
.claude/settings.local.json 被公開400 個中 11 個2.75%1.4–4.9%
AI 代理設定檔被公開400 個中 42 個10.5%7.7–13.9%
AI 對話紀錄被公開400 個中 0 個0%0–0.9%
至少一格高警示,個人時期規則400 個中 34 個8.5%6.0–11.7%
至少一格高警示,企業時期規則400 個中 17 個4.25%2.5–6.7%

.claude/settings.local.json 是 Claude Code 存放使用者個人專案設定的檔案,「不再詢問」的權限核准也寫在裡面;Claude Code 建立它時會自己把它排除在 git 之外。它被公開,是工具自己的文件所定義的越界,不是這個演算法的判斷。在 192 個帶有任何 Claude 標記的倉庫中,有 11 個(5.7%)公開了它。

按表面看,代理狀態檔的高警示比例最高(66 格中 6 格,9.1%,3.4–18.7%),README 為 360 格中 21 格(5.8%),指示檔為 400 格中 12 格(3.0%)。代理狀態檔的 6 格高警示中有 5 格是 L3:具體的家目錄路徑被寫在 .cursor/mcp.json(兩格)、.gemini/settings.json(兩格)或 .vscode/mcp.json(一格)裡。沒有任何星數的倉庫,至少一格高警示的比例最高(292 個中 30 個,10.3%)。

為個人而寫的規則,找到的高警示倉庫大約是企業時期規則的兩倍,因為舊規則看不到聯絡用語之外的個人電子郵件、操作行上的私有網路位址,以及設定檔裡的路徑。

5.4 重現

凍結的第一階段套件被重新執行:212 項測試通過(1 項跳過),它自帶的六個獨立稽核器全部通過,上述表面矩陣的主要數字也只用它釋出的格子就重算回來。

6. 成立的、不成立的,以及演算法做錯的

成立。 在量測過的每一個族群裡,都出現了與 agent 相關的公開邊界訊號:企業、組織與個人。個人會公開自己的工具視為私人的檔案。代理設定檔帶著具體的本機路徑。

不成立。 第一階段「高警示集中在 agent 指示檔」的現象,在表面平衡的第二階段樣本上沒有重現;README 一樣高。第一輪個人樣本看起來像是「同時用三種以上 AI 工具的人洩漏更多」,這在打開第二輪之前就被寫成預測,結果第二輪不支持。擁有者類型之間的差異,始終落在彼此重疊的區間裡。

公開處理的缺陷。

有三格符合憑證的形狀。它們從未被測試;定位紀錄一直封存、從未被打開,並於 2026-10-13 刪除。整個過程沒有聯絡任何個人或組織。

第二階段後的知識狀態。 三個族群中都存在這個現象,屬於 O。所有比較性與因果性的陳述(AI 輔助對非 AI 倉庫、組織層級的放大、建造與攻擊的不對稱、轉型期風險)仍是 H。盛行率與治理落差仍是 NM。沒有任何命題達到 E。

7. 倫理,以及研究為什麼停在這裡

我們沒有直接去看他們的 GitHub,是用演算法的,所以數據可能是失真的。我必須承認。但我絕不會為了數據跟資訊的完整性,真的去看他們不想讓人看到的。——Neo.K

計畫要證明的是:這個問題在個人、組織與企業都存在,而且研究者盲測的演算法能把它呈現出來。兩者現在都已觀察到。下一個自然的步驟,是直接以代理狀態檔為抽樣對象,看看公開的設定與對話紀錄裡寫了什麼;那等於去讀人們不打算公開的東西,而他們當中很多人也可能已經自己處理好了。所以計畫停在間接觀察。

同樣的理由也決定了發布的方式。標籤鎖定後才接上的逐倉庫屬性(擁有者類型、AI 工具組合、星數級距)只以彙總形式公開,因為罕見的組合可能指向某個特定倉庫。代價是兩份合併計算無法從公開版完整重跑,這個代價是有意接受的。

數據為什麼可能失真。

  1. 沒有任何發現經過人工確認,偽陽性(刻意的範例、公開的聯絡地址)與偽陰性都還在。
  2. 「疑似祕密」指的是形狀,沒有任何東西被測試過。
  3. 抽樣框架不是隨機樣本:程式碼搜尋會排序結果、每個查詢最多只開放一千筆,而且每個框架都要求特定檔案。
  4. 儀器有已知缺陷,而修補其中一部分的後續規則,本身也是未經人工驗證的啟發式方法。
  5. 60 個倉庫一輪,各輪之間波動很大。
  6. 後續規則由同一個 AI 系統設計並判讀輸出;還沒有另一套獨立撰寫的儀器在同一個框架上執行過。
  7. 每個倉庫只在它當下的狀態被觀察一次,之後可能已經改變。
  8. 程式碼搜尋給的檔案總數是索引的近似值,不是外洩的數量。

8. 這意味著什麼

以下各點都來自觀察本身,不依賴任何盛行率數字。

給使用 coding agent 的人。 把工具的本機檔案當成永不提交:.claude/settings.local.json、CLAUDE.local.md、本機的 agent 對話紀錄。如果檔案是工具建立的,它可能已經被排除;如果是你自己建立或複製的,請自己把它加進 .gitignore。MCP 與編輯器設定請用環境變數或專案相對路徑,而不是你的家目錄。公開之前,看一看實際要離開的檔案,而不只是 scanner 的結論。

給團隊。 把本機與共享的 agent 脈絡放在不同檔案。描述認證怎麼運作,永遠不要寫出 token 或 session 在某台機器上的位置。回讀實際到達遠端的內容:本機 PASS 不是遠端證據。檢查看不到的地方,記為 NOT MEASURED。

給工具與平台的開發者。 把某個檔案定義為本機專用的那個工具,最有條件在那個檔案即將被提交或公開時察覺。只比對 key = value 的祕密偵測,會漏掉 JSON 設定裡帶引號的鍵值形式。執行沙盒與 secret scanning 保護的是真實的邊界;agent 脈絡的公開,是另一條自成一格的邊界。

9. 限制

本版是整合,不是經同儕審查的論文。它所依據的第一階段草稿仍是內部文件。它的量測只在特定框架中、以探索性強度確立「存在」,對盛行率什麼也沒說。第一階段設計的驗證性研究,經決定不執行。凍結的 v0.8.3 核心之外的儀器規則,是在研究過程中撰寫的;每一輪之前都有文件、版本並先凍結,但沒有經過外部驗證。

10. 取得、作者與授權

附錄 A:第二階段後的命題帳

編號狀態命題
O1OAI 協作檔本身可能成為公開出口。
O2O至少在一個有紀錄的流程中,檢查器回報 PASS,而可被恢復的排除資訊就存在檢查器本身裡。
O3O公開的 AI 協作檔可能含有具體的工作站、執行環境、session 與內部網路脈絡。
O4O真實的公開檔案可以被化約成有界的研究特徵,過程中不輸出倉庫身分或原文。
O5O在凍結的 60 個企業倉庫樣本中,兩個高警示結果都在 agent 指示檔上。
O6O個人會公開自己的 AI 工具視為本機專用的檔案,例如 .claude/settings.local.json。
O7O被公開的代理設定檔可能帶有具體的家目錄路徑。
O8O與 agent 相關的公開邊界訊號,同樣出現在個人、組織與企業。
H1HAI 輔助的倉庫比配對的非 AI 倉庫外洩更多。
H2H組織共享的脈絡,會把同一種外洩模式放大到許多倉庫。
H3H共用證據根的多個 AI 審查者,高估了驗證的獨立性。
H4H傳統 secret scanning 的統計,低估了語義層的隱私外洩。
H5HAI 輔助建造讓低成熟度目標增加的速度,快過防禦自動化讓它減少的速度。
HTH正在轉向 AI 的組織,比 AI 原生組織風險更高。橋接量測沒有支持,也沒有否定。
NM1NM任何外洩類別的母體盛行率,以及它的趨勢。
NM2NM脈絡表面與其周圍控制之間的治理落差。

附錄 B:第一階段論文

皆為 v0.1,2026-09-21,內部研究草稿。摘要見計畫網站。

編號標題
00AI Agent 公開邊界與安全閉包:統合框架
01綠燈謬誤:代理驗證成功與真實安全後置條件的落差
02AI 協作物即出口面:Agent Context 的資訊外逸問題
03從 Secret Scanning 到 Semantic Privacy:模式檢測無法覆蓋的公開邊界
04組織尺度的 Agent Context 傳播:共享規則、模板與供應鏈風險猜想
05AI 建造—攻擊不對稱:Vibe Coding、低垂果實與自動化攻擊面
06研究隱私外洩而不重演隱私外洩:Researcher-Blind Privacy Measurement
07AI 協作公開邊界的實證研究協議:Sampling、Matched Control 與 Prevalence Estimation
08供應商與平台責任:AI Coding Tool 的 Publication-Boundary Governance
09Researcher-Blind Publication-Boundary Measurement Algorithm