從 Zeabur 二次資安事件與停運,談 Good Aidea 如何保管你的金鑰與資料
資安觀點
台灣 PaaS 新創 Zeabur 在 10 月遭二次入侵,逾 321 萬筆環境變數被讀取並宣布年底停運。本文依 Zeabur 官方報告整理事件經過與根因,並說明 Good Aidea 在相同風險上的設計與尚待補強之處。
發布日期:2026 年 10 月 27 日 | 事件資訊以 Zeabur 官方初步報告(2026/10/19)與 iThome 報導為準;Zeabur 表示報告會持續更新。
先說結論
Zeabur 是台灣開發者熟悉的部署平台,也是 Good Aidea 在「讓創作者把程式變成網站」這件事上的同路人。它在 8 月底與 10 月中接連遭到入侵,10 月 17 日宣布年底停止營運。我們寫這篇不是為了評論同業,而是因為它的報告把「平台保管使用者金鑰」這件事的風險講得非常具體,而 Good Aidea 也保管著你的資料庫密碼與環境變數。你有權知道我們怎麼做、哪裡還不夠。
事件經過(依 Zeabur 官方報告,時間為 UTC)
- 2026/08 月底:第一次事件。Zeabur 當時表示「所有內部管理金鑰已停用或輪替」;10 月報告承認該聲明不完整。
- 10/14 01:36:攻擊者首次使用 Zeabur 的雲端金鑰;01:40 以管理 token 進入共用叢集;12:39 讀取共用叢集上所有服務的設定與秘密;13:40 起進入使用者資料庫容器並登入專屬主機。當日超過 16 小時的活動沒有觸發任何警報。
- 10/15 13:56:接獲使用者通報後開始調查;15:42 客戶資料庫備份被透過預簽網址下載;16:12–17:19 攻擊者冒用兩個帳號(含一名員工)呼叫 API;20:25 輪替登入簽章金鑰、全體登出;21:05 最後一次觀測到攻擊者活動。
- 10/16:透過狀態頁對外揭露。10/17:創辦人宣布 12 月 1 日起部分服務停止,12 月 31 日全面關閉。10/19:發布初步調查報告。
受影響範圍(官方確認數字)
- 服務環境變數 3,218,965 筆、帳號 321,810 個被讀取。
- zSend API 金鑰 566 把、平台 Access Token 11,536 把(以雜湊儲存)全部撤銷。
- 865 個資料庫服務被執行指令;211 個 PostgreSQL 資料庫被逐表讀取(每表最多 5 萬列)。
- 101 台專屬主機被以 root 登入,其中 50 台被植入 SSH 金鑰;736 個 n8n 實例中有 602 個的加密金鑰就放在環境變數裡。
根因(Zeabur 自述)
報告明言「根本原因在 Zeabur」:長效管理憑證以明文儲存,且可從公網使用。具體包括:2024 年 1 月建立、從未過期也未輪替的叢集管理 token;明文寫在設定儲存庫、程式碼與主機初始化設定裡的金鑰與 root 密碼(9 月 3 日已被發現,事發前未修);備份檔連同解密金鑰放在一起;一把能讀所有儲存桶的雲端金鑰;內部服務與使用者服務共用同一叢集;以及缺乏異常偵測。攻擊者最初如何取得憑證仍未確認。
Good Aidea 在同樣的風險上怎麼做
我們對照 Zeabur 報告列出的每一項根因,逐一說明 Good Aidea 的現況。有做到的直說,沒做到的也直說。
| Zeabur 的問題 | Good Aidea 的作法 |
|---|---|
| 內部服務與使用者服務共用同一叢集,一把 token 走遍全站 | 每個創作者的動態網站是各自獨立的容器服務,與平台本身及其他創作者的網站分開運行;資源上限(執行個體、記憶體、CPU、並行、逾時)依方案逐站套用,用量異常即自動暫停該站對外服務,不影響他人。 |
| 管理介面與主機可從公網直接連入 | 創作者網站的容器不對公網開放,只接受平台閘道以服務身分驗證後的轉發;訂閱與存取權限在閘道的伺服器端檢查,不依賴前端。創作者無法、也不需要 SSH 進主機。 |
| 資料庫密碼與金鑰明文存放 | 每個專案的資料庫採一庫一帳號;應用程式密碼以 AES-256-GCM 加密存放,金鑰由平台環境獨立保管,只在需要帶入環境變數的當下解密。自動部署權杖只保存 SHA-256 雜湊與前 8 碼,平台自己也看不到原始值。金流卡片權杖同樣加密存放,卡號與 CCV 不經過平台伺服器。 |
| 雲端金鑰權限過大、永不過期 | 平台服務帳號採最小權限設計:部署、儲存、日誌讀取各自授權;呼叫創作者網站的閘道身分只有「叫用」權限。正式金鑰存於雲端秘密管理服務,不進入程式碼儲存庫;設定檔範本不含真實密鑰。 |
| 16 小時無人察覺 | 部署、付款、權限變更等關鍵操作皆寫入審計紀錄;每個動態網站的用量由背景程序持續觀察,超限自動處置並記錄原因,恢復時還原原設定。 |
我們還沒做好的地方
Zeabur 事件最大的損失是 321 萬筆環境變數——因為使用者把第三方金鑰放在裡面。Good Aidea 同樣會保存你在部署時上傳的 .env 內容(為了重新部署與回滾),目前這份內容在平台資料庫內是以明文保存的。這與資料庫密碼的加密作法不一致,是我們要補的洞。
【待確認:以下承諾請工程端確認時程後再發布】
- 環境變數內容改為與資料庫密碼相同的 AES-256-GCM 加密儲存,解密只發生在部署當下。
- 平台管理憑證一律設定到期時間並定期輪替。
- 新增異常偵測:管理介面異常存取、大量讀取、雲端金鑰自陌生來源使用時發出告警。
給創作者的建議
- 不要把長效的第三方金鑰直接放進環境變數而不設到期;能用短效 token 或 OAuth 的就用。
- 曾在其他平台(含 Zeabur)部署過的專案,把當時環境變數裡的所有密碼與金鑰全部換掉,即使 8 月已經換過一次;Zeabur 官方也是這樣建議。
- 資料庫密碼與環境變數是兩件事:換了環境變數不等於換了資料庫裡的密碼。
- 定期在「網站監控」檢視流量與用量,異常時先到「網站建置」停用或回滾。
- 重要資料請自行保有備份,不要只依賴任何單一平台——包括我們。
參考資料
- Zeabur 官方,Zeabur October 2026 security incident (preliminary report),2026/10/19
- iThome,Zeabur 再遭駭後公布調查結果,攻擊者讀取逾 321 萬筆環境變數,2026/10/20
- 中央社,91APP 個資外洩、Zeabur 停運!企業資安自救懶人包
- 電腦王阿達,Zeabur Shuts Down: Announces December Service Termination After Second Hack
- iThome,資安週報(2026/10/19–10/22)
本文事件描述均引自 Zeabur 官方公開報告與新聞報導,不包含未經證實的推測;關於攻擊者最初取得憑證的方式,Zeabur 官方亦表示尚未確認。

