先前我們才報導過有開發者分享 Gemini API 金鑰遭竊,48 小時帳單超過台幣 260 萬的慘劇,沒想到最近又有類似狀況上演。這次的苦主是一位澳洲 AI 顧問,原本帳戶裡只設了約 10 澳幣(約台幣 210 元)的預算上限,結果一覺醒來發現帳單直接衝到 25,672 澳幣(約台幣 58 萬),讓他整個嚇到,而且更重要的是,這次攻擊者沒有偷走他的 API 金鑰,而是透過他幾個月前用 Google AI Studio 做測試時,部署成 Cloud Run 公開服務的專案網址,只要朝這個網址發請求,服務就會自動使用存在裡面的 API 金鑰去呼叫 Gemini。
Google Cloud 用戶一覺醒來帳單暴衝台幣 58 萬!預算只設 7 美元、公開 Cloud Run 服務被攻擊者狂刷 6 萬次請求
根據外媒 Tom’s Hardware 的報導,一位 AI 新創公司創辦人 Jesse Davies,他在 LinkedIn 與 Reddit 的 r/googlecloud 版上分享這起事件,希望其他人能引以為戒。
Davies 表示,他前陣子用 Google AI Studio 做了一個小專案測試,並透過「Deploy to Cloud Run」一鍵部署功能丟到雲端,之後就沒再理它。他對 Google AI Studio 也相當熟悉,並且已經採取一些安全措施,像是為每專案使用不同的 API 金鑰、分開的計費帳戶、雙重驗證,以及 Cloud 稽核日誌等等。沒想到,最後還是出事。
Went to bed with a $10 budget alert. Woke up to $25,672.86 in debt to Google Cloud.
byu/venturaxi ingooglecloud
他的 Google Cloud 帳戶預算通知設定 10 澳幣(約 7 美元),某天早上起床一看,信用卡已經被扣了 10,000 澳幣。他趕快聯絡 Google 客服,但就在等待客服回覆的過程中,帳戶又被多刷了 15,000 澳幣,最後合計 25,672.86 澳幣(約 18,391 美元),相較原本設定的 10 澳幣預算,暴增超過 2,500 倍。
更關鍵的是,Davies 強調攻擊者完全沒有偷他的 API 金鑰,對方只是在某個地方找到部署在 Cloud Run 上的公開網址,直接朝這個網址送請求,而 Google 自家代理服務就會用容器裡以「明碼」形式存放的 API 金鑰,一筆一筆幫攻擊者簽好請求丟到 Vertex AI 上去跑。短短一個晚上的時間,攻擊者就送出了超過 60,000 次請求。
除此之外,他的帳戶原本是 Tier 2,這等級上限大約落在 2,000 美元,當消費額超過 1,000 美元時,會自動把帳戶升級到更高等級,新的上限直接跳到 20,000 至 100,000 美元之間,這過程 Google 完全沒有通知用戶。
Davies 後續整理還發現,Google Cloud 有內建 9 項安全機制可擋下這種攻擊,但它們全部預設關閉,需要自己逐一進設定頁面打開。
結局算是還不錯,最後 Google 同意把這筆費用撤銷,已經被銀行扣掉的部分也有退刷回來,Davies 本人也跟 Google 管理層約了會議進一步檢討。
事實上不只是 Davies 碰到,這篇貼文也不少網友出來分享他的案例。
像這位 juanpare 就提到,Google 的 Cost Anomaly Detection 異常用量偵測系統其實有偵測到他的 Gemini API 出現 975 美元異常消費,也主動寄一封警示信,但當下他已經睡了,等到隔天早上 6 點看到信、立刻把外洩的兩組金鑰刪掉時,帳單已經從 975 美元暴衝到 18,596 美元(約台幣 58 萬),短短 7 小時內翻了 19 倍:
Google Cloud detected $975 of API key fraud on my account, sent one email at 11 PM, then let the bill grow to $18,596 — 5 support agents have refused to help (case 70257996)
byu/juanpare ingooglecloud
所以說,使用 API 真的要小心,尤其是 Google Cloud,如果有不再使用的 Cloud Run、App Engine、Cloud Functions 等服務,記得進後台徹底刪除,不要只是停用。很多時候只要網址還存在、API 還沒停掉,就有被找到並濫用的風險。
再來,也不要把 API 金鑰以明碼形式放進容器的環境變數,改用 Google Secret Manager 或短期憑證(OAuth 2.0、服務帳號短期 token)來取代長期金鑰。

