OceanAltOceanAlt
latest2026-07-177 分鐘讀完

攻防實驗室 #3:我們的「身份歸因」是演戲——任何人都能用你的 Agent 花你的錢

KYA 閘只查「這個 Agent 有沒有被歸因」,從沒查過「你是不是它」。真實結果:攻擊者零憑證冒用受害者 agentId 付款,200 放行;還能篡改歸因實體汙染審計鏈。我們補上第七道閘 KYA/Proof。沒有證明的歸因,是演戲。

OOceanAlt 編輯部
分享:XLinkedInFacebookTelegramWhatsApp微博🖼 海報(英文)

攻防實驗室 · 第 3 期。上期我們說要去打"歸因"層。結果:地基是空的

第 1 期我們六發攻擊全擋下,第 2 期我們發現自己沒實現"單日累計"、補上了第六道閘。這一期,我們去打整個框架的支柱 1:身份與歸因(KYA)

它沒撐住。而且塌得比我們想的更徹底。

攻擊:我用你的 Agent 花你的錢

我們的 KYA 閘做了一件事:檢查這個 agentId 有沒有被歸因到一個已 KYC 的實體。歸因了,就放行。

問題是——它從沒檢查過:你是不是這個 Agent。

真實運行結果(線上網關):

1) 受害者歸因自己的 Agent
   → 已歸因:Victim Corp(已KYC)

2) 攻擊者(完全不同的人)直接用受害者的 agentId 發起支付,零憑證
   → 200 allow
   → KYA 閘原話:"已歸因:Victim Corp"

3) 攻擊者篡改受害者的歸因實體
   → 該 Agent 現在歸因到:"我是攻擊者冒充的"

第 2 步是致命的:我什麼都不需要知道,只要知道你的 agentId,就能用你的授權額度花錢。 而 KYA 閘會一邊放行、一邊向你保證"這筆支付已歸因到 Victim Corp"。

第 3 步更糟:攻擊者能把歸因指向任何人。審計鏈從根上被汙染了——事後追責時,日誌會指著一個無辜的實體。

病根:認證 ≠ 授權

我們把兩件事搞混了:

  • "這個身份存在嗎?"(我們做了)
  • "你是這個身份嗎?"(我們沒做)

只做第一件,等於在門口檢查"這張身份證是真的嗎",卻不看舉著它的人是不是本人

沒有證明的歸因,是演戲。 而支柱 1 是整個 RAP 框架的地基——地基是演戲,上面五道閘再漂亮也是裝飾。這句話不好寫,但它是這次最重要的結論。

補:第七道閘 KYA/Proof

註冊時簽發一枚一次性憑證(agentSecret),之後每一次調用都要出示它:

  • 付款不帶憑證 / 憑證不符 → 攔於 KYA/Proof
  • 想更新一個已歸因的 agentId → 必須出示原憑證,否則拒絕(防篡改歸因)

補完之後,同樣的三發攻擊:

| 攻擊 | 修復前 | 修復後 | |---|---|---| | 冒用他人 agentId 付款(零憑證) | 🔴 200 allow | ✅ 403 攔於 KYA/Proof | | 篡改他人歸因實體 | 🔴 成功 | ✅ 被拒絕 | | 本人帶憑證付款 | 200 | ✅ 200(不誤傷) |

第 4 行同樣重要:修完之後,合法的人必須照樣能過。 一道會誤殺好支付的閘,最終會被人關掉。

三個教訓

1. 最基礎的那一層,最容易沒人查。 我們花了很多力氣打磨額度、白名單、意圖比對——那些都是"看起來像安全"的東西。而地基上"你是誰"這個問題,我們默認它成立了。攻擊者不會挑我們打磨過的地方下手。

2. 一句"已歸因"可以是假的安慰。 更危險的不是沒有 KYA,而是有一個會撒謊的 KYA——它讓你以為查過了。沒有防線的人會小心;以為有防線的人不會。

3. 我們連續三期都打穿了自己。 第 1 期擋住了六發,像個好消息;第 2 期漏了累計限額;第 3 期地基是空的。這才是攻防實驗室存在的理由——如果我們不打自己,總有人會替我們打,而且不會告訴我們。

我們把每一次打穿都公開寫出來,包括這次難看的。一個標準的可信度,不來自它宣稱自己多完備,而來自它被自己人打穿時,是否敢把結果貼出來

下一期

我們會去打審計鏈:被攔下的攻擊,日誌能不能被偽造或抹掉?

親手打一次:oceanalt.com/firewall · 用你自己的 Agent 測:集成指南

(OceanAlt 攻防實驗室 · 研究筆記)

分享:XLinkedInFacebookTelegramWhatsApp微博🖼 海報(英文)

這篇內容的出處與狀態

署名
OceanAlt 編輯部
首次發佈
2026-07-17
最後更新
2026-08-14
原始資料
未標註來源

引用這篇內容

OceanAlt 編輯部(2026)。《攻防實驗室 #3:我們的「身份歸因」是演戲——任何人都能用你的 Agent 花你的錢》。OceanAlt。https://oceanalt.com/zh/articles/attack-lab-3-attribution-is-theater(訪問日期:2026-09-16)

本文遵循 編輯準則與事實核查標準。發現錯誤請告訴我們,核實後會在此處公開更正。

先試一下 · 免費、不用註冊

付款前把收款地址粘進去,看它有沒有上過制裁名單、混幣器或詐騙標籤。

這套判斷也可以放進你自己的產品

一行代碼,不碰你的樣式和 JS。同一套結算前風險判斷可以出現在你的文章、你的錢包確認頁,或者作為接口供你的 Agent 在付款前調用。

組件不收集讀者身份。接入不代表 OceanAlt 對你的產品或頁面上的地址作安全背書。