「防機器人機制」反變事故源頭:Cloudflare 全球宕機全解析
2025 年 11 月 18 日,全球不少使用 Cloudflare 服務的網站在同一時間「集體當機」,使用者看到的不是原本的網頁,而是 Cloudflare 自家的 5xx 錯誤訊息。事件一度引發外界以為 Cloudflare 正遭遇史無前例的網路攻擊。然而,真正的原因並不是駭客,而是 Cloudflare 自己的一項資料庫權限更新,無意間讓一份關鍵設定檔膨脹到系統無法承受的程度。
機器人偵測特徵檔倍增,源自資料庫權限設定失誤
Cloudflare 使用 ClickHouse(ClickHouse)資料庫產生機器人管理系統(Bot Management)所需的「自動化流量偵測特徵檔」。這份檔案每隔幾分鐘就會更新一次,並快速傳送到 Cloudflare 全球節點,用來判斷每一條連線究竟來自真人,還是自動化程式或網路機器人。
這次事故的起點,是 Cloudflare 在 11:05 進行的一項權限更新,讓 ClickHouse 查詢開始額外回傳原本不會出現的內部資料欄位。這使偵測特徵檔出現大量重複項目,整體檔案大小瞬間膨脹到原先的兩倍以上。
問題在於:Cloudflare 的 Bot Management 模組對特徵數量設有上限(200 個),而平時只需約 60 個特徵。一旦膨脹後的檔案突破這個上限,系統就會直接進入 panic 狀態、當場崩潰——這正是 5xx 錯誤大量湧現的主因。
故障傳播:檔案每 5 分鐘更新一次,「有時好、有時壞」
由於 ClickHouse 集群正在逐步更新,每次生成檔案時,有時會跑到已更新的節點(產生壞檔案)、有時跑到未更新的節點(產生正常檔案)。
這讓 Cloudflare 網路在一段時間內呈現「忽好忽壞」的狀態,看似像是在遭受高強度 DDoS 攻擊。直到所有節點都開始產生壞檔案後,Cloudflare 全球網路全面進入失效狀態。
影響範圍:從核心 CDN 到驗證服務全面受挫
Cloudflare 大量服務都依賴 core proxy(Frontline/FL、FL2),因此出現連鎖反應,包括:
-
CDN 與安全服務:大量 5xx 錯誤,網站直接無法載入。
-
Turnstile:驗證機制無法工作,導致使用者登入 Cloudflare 帳號受阻。
-
Workers KV:出現高比例錯誤,依賴 KV 的服務跟著受影響。
-
Cloudflare Access:大多數使用者無法通過身份驗證。
-
Email Security:垃圾郵件偵測短暫降低精準度。
值得注意的是 Cloudflare 當時新舊代理系統並行:
-
舊系統 FL:沒當機,但所有 bot score 都變成 0,造成誤判。
-
新版 FL2:直接回傳 5xx 錯誤,影響最明顯。
更添混亂的巧合:連 Cloudflare 狀態頁也掛掉
此時更添混亂的是:Cloudflare 的官方狀態頁(完全架在外部供應商,不依賴 Cloudflare)竟然同時出現錯誤。雖然後來證實純屬巧合,但這讓內部團隊一度認為公司正遭受複合式攻擊。
修復過程:從誤判到找到根因,花了三小時才止血
Cloudflare 的回應時序如下:
-
11:28 客戶開始大量出現 HTTP 5xx
-
11:32–13:05 團隊以為問題出在 Workers KV
-
13:05 先讓 Workers KV 與 Access 暫時繞過 core proxy
-
13:37 確定問題源自 Bot Management 特徵檔
-
14:24 停止生成壞檔案
-
14:30 正確版本檔案推送成功,主要影響解除
-
17:06 所有系統完全恢復
整起事件從發生到全面恢復,歷時近六小時。
事後檢討:Cloudflare 承認是 2019 年後最嚴重事故
Cloudflare 執行長 Matthew Prince(Matthew Prince)在文末表達深切歉意,並表示這次是 Cloudflare 自 2019 年後最嚴重的事故。
公司承諾將進行系統強化,包括:
-
強化內部設定檔與使用者輸入同等等級的驗證
-
增設更多級別的全球「緊急停用開關」
-
改善錯誤回報系統,避免 debug 資訊耗盡資源
-
重新檢視各模組的失效模式
對網路依賴度越高,基礎服務越成關鍵
Cloudflare 是全球網路流量的重要通道之一,服務數百萬網站。這次事件凸顯出當網際網路的依賴度愈高,基礎架構供應商就愈容易成為「單點失效」風險。
對台灣等高度依賴網際網路運作的社會來說,這類事件提醒我們,不只要關注安全攻擊,也要面對「系統自身錯誤引發的大規模事故」的可能性。
Cloudflare 雖然已恢復服務,但這次事件會成為全球雲端業者重要的教材:不是駭客、不是攻擊,一次看似簡單的資料庫權限調整,也可能瞬間讓世界多數網站邁入黑暗數小時。