舊系統停用中,金鑰仍在計費:OpenCode 外洩事件的三本帳
以OpenCode遭蒸餾攻擊、1.4%的Console使用者API金鑰可能外洩為座標,拆解自帶金鑰模式下盜用費用在四方之間的歸屬、計費端先於工具端偵測異常的結構原因,與金鑰管理模式的三種收場。
1.4% 的通報規模,全額的計費風險
2026 年 10 月 17 日上午,OpenCode 透過電子郵件通知受影響使用者:前一晚,一起被該公司定性為大規模「蒸餾攻擊」的入侵,觸及 1.4% 的 OpenCode Console 使用者,範圍限於曾綁定外部服務供應商的帳號。入侵點是一套正處於停用流程中的舊系統,而存放在使用者工作區內的 API 金鑰,包括 OpenAI 與 Anthropic 的憑證,可能已經外洩。
1.4% 的佔比容易讓人低估事件的計費後果。API 金鑰的性質接近無記名支付憑證:取得金鑰的一方,能以帳戶持有人的身分發起模型請求,費用全額記入原帳戶。社羣討論串裡,一位使用者的 Anthropic 帳戶出現 400 美元(約 2,679 元人民幣)的未經授權扣款;另一位使用者的 Google 服務費用增加約 200 歐元(約 1,505 元人民幣),所屬專案隨後因「過度濫用」被暫停。損害因此有兩層:現金帳單,以及帳戶信任額度被耗盡後的服務中斷。
計費身分與使用身分,在自帶金鑰模式下拆開
這張帳單為何會寄到使用者手上,答案在 AI 編程工具普遍採用的金鑰模式裡。OpenCode 是開源的 AI 編程代理,Console 為其託管服務;使用者若接入自己的 OpenAI、Anthropic 帳戶,便是把自備金鑰貼進工作區。此後代理發出的每一次模型呼叫,都以使用者本人的計費身分執行,OpenCode 經手的只有指令調度。
自帶金鑰(BYOK)對新創工具商是理性的成本設計:平臺不必墊付算力、不必處理轉售用量的毛利與匯率,使用者沿用既有帳戶的額度與折扣。代價是安全邊界跟著外移:金鑰存入服務端工作區的那一刻,工具商的資安防護等級,就等於使用者計費帳戶的風險等級。
入侵點讓這個結構缺口更清楚。遭到存取的是一套除役途中的舊系統:系統已在停用軌道上,持有的金鑰卻仍有效、仍可計費。資產生命週期與憑證生命週期脫鉤,是憑證管理沿用多年的老問題。2024 年 Snowflake 客戶帳戶入侵案,Mandiant 的調查認定 165 個帳戶因憑證未輪換、未啟用多因素驗證而遭登入,攻擊者利用的同樣是「有效憑證即有效存取」。至於憑證散布的規模,資安公司 GitGuardian 統計,2023 年公開 GitHub 儲存庫新增約 1,280 萬組外洩憑證,年增 28%;公開程式碼還只是可掃描的一層,託管服務工作區裡的金鑰存量更難估計。
蒸餾攻擊的算術:拿走樣本,留下帳單
OpenCode 把事件定性為蒸餾攻擊,這個用詞指向攻擊者的收益結構。蒸餾指的是以大量提示詞餵給領先模型,蒐集輸入與輸出的配對,用於訓練另一個模型。攻擊者要的主要是帳戶背後近乎無上限的推理產能,帳戶本身只是入口。
這筆生產對攻擊者的邊際成本為零,每一個 token 的費用都記在金鑰持有人帳上。以主流模型每百萬輸出 token 十餘美元的區間推估,400 美元約可換到千萬 token 級的輸出,對樣本蒐集而言已具規模。訓練資料的取得成本被外部化給被盜帳戶,模型輸出在這類攻擊裡被當成可掠奪的原料。近年 AI 產業的注意力集中在訓練帳單,推理支出卻始終按日滾動,這與先前拆解過的訓練成本省下、推理端按日計帳的結構互為表裡:誰拿到金鑰,誰就能把這份日結成本轉嫁給別人。
帳單先到,通報後到:偵測能力長在計費端
時間軸裡有一個結構性細節:多名使用者反映,收到 OpenCode 的通知之前,就先收到了 OpenAI 與 Anthropic 的用量異常提醒。先發現盜用的是計費端,託管工具端當時尚無感知。
順序有其必然。自帶金鑰模式下,模型供應商看得到完整計費流量,用量暴增會直接觸發風控;工具商只看得到自家系統內的呼叫行為,金鑰一旦被取出後在外部使用,工具商的日誌裡不會留下一筆紀錄。偵測能力與計費利益綁在同一端,與信用卡盜刷由發卡行先於持卡人察覺,是同一套結構。
補救權限的分布也相同。OpenCode 表示正與 Anthropic、OpenAI、谷歌合作補救,因為金鑰撤銷與費用沖銷的權限都在模型供應商手上;OpenCode 未曾經手這些帳單,自然無從直接退款。供應商處理這類爭議的常用工具是帳單沖銷或贈金,先認列、再遞延消化,與DeepSeek 停機後按七日消耗返還贈金的賠付設計屬於同一個科目,差別在本次的帳單由第三方攻擊者生成。
誰承壓,誰接到需求
承壓最直接的是 OpenCode。1.4% 的通報佔比可控,信任折價卻按全體使用者計算:未受影響者同樣會重新評估是否把計費憑證留在工作區,而開源工具的替代品切換成本極低。其次是整個長尾的中小工具商,自帶金鑰是他們繞開算力墊付進入市場的路徑,單一事件折損的信任由整個模式分攤。
使用者的成本分現金與工時兩塊。盜用帳單待供應商裁定,金鑰輪換與支出上限重設則是立即投入;Google 專案遭暫停的案例說明,帳戶的信任額度被攻擊者消耗後,中斷損失可能大於帳單本身。
需求端的受惠者位置明確。以範圍限縮的 OAuth 授權取代長效 API 金鑰的訂閱制服務,事件後的比較位置改善:權杖可單點撤銷,計費風險留在平臺端。金鑰管理與祕密掃描工具的需求同步上升;模型供應商既有的用量上限、預算警示與金鑰分級功能,也從選配項轉為使用者接入外部服務前的檢查清單。
三種收場情境
情境一,供應商吸收。Anthropic、OpenAI、谷歌以沖銷或贈金處理盜用費用,比照雲端產業處理盜用憑證挖礦的前例,使用者帳單歸零,事件以 OpenCode 信譽受損收場。單一受害者金額在數百美元量級、總量可控,此路徑機率最高。
情境二,責任爭議。多數服務條款把金鑰保管責任歸於使用者,若供應商認定帳單有效,盜用費用由使用者吸收,自帶金鑰模式的隱含成本首次大規模顯性化,長尾工具商將面臨使用者逐條檢視條款的壓力。
情境三,結構調整。長效金鑰逐步被可單點撤銷的短期權杖與硬性支出上限取代,憑證生命週期管理從使用者端移回平臺端,託管服務的除役流程納入強制金鑰輪換與銷毀。
三種情境在時間軸上可疊加:短期對應供應商沖銷,中長期對應條款爭議與金鑰模式的替換。這次事件真正定價的項目,是自帶金鑰模式過去省下的算力墊付與轉售毛利之外,一直掛著一筆未列帳的安全擔保。1.4% 的使用者收到了通知;所有以金鑰接入外部服務的開發者,收到的是這筆擔保的對帳單。