ニュース

18日のCloudflare大規模障害、原因は「ボット対策」の肥大化 サイバー攻撃を否定

 米Cloudflare(クラウドフレア)は、11月18日20時20分頃(日本時間、以下同じ)から発生した同社ネットワークの大規模な障害に関する詳細レポートを公表した。

 障害は顧客サイトへのアクセス遮断や各種サービスの不具合を引き起こした。原因は、サイバー攻撃によるものではなく、内部システムのデータベース設定変更に起因するという。

データベース変更が引き金、設定ファイルが「想定外の倍サイズ」に

 障害の根本原因は、同社が使用するデータベースシステム「ClickHouse」における権限設定の変更作業にある。

 変更作業は同日20時05分に実施されたが、これによりボット管理システム(Bot Management)が参照する「機能設定ファイル」の生成プロセスにおいて、データの重複が発生した。

 通常このファイルにはサイズ制限があり、事前にメモリリソースが割り当てられているが、重複によりファイルサイズが想定の2倍に肥大化してしまった。

 制限を超過した設定ファイルを受け取ったことでメモリ処理に失敗し、システムがクラッシュする事態となった。不正な設定ファイルはネットワーク全体に急速に伝播し、広範囲なサービス停止を招くこととなった。

 5分ごとに機能設定ファイルは生成されるようになっており、異常発生後、不正なファイルと正常なファイルが生成され、ネットワークが一時的に回復することもあった。

 そのため、正常と異常が入れ替わることになり、事象として何が起きたのか、当初はわからなくなったという。一時は、DDoSなど不正な攻撃も疑われたが、やがて不正な設定ファイルばかりとなって、障害がいわば“安定”したことで、原因を把握できた。

5xxエラーが多発、管理画面や認証サービスも機能不全に

 システム不全により、CloudflareのCDNやセキュリティサービスを利用するWebサイトでは、サーバー内部エラーを示す「HTTP 5xx」ステータスコードが多発した。

Cloudflareネットワークで処理された5xxエラーHTTPステータスコードの量

 また、認証機能の「Turnstile」が読み込めなくなったことで、これを利用するログインページなどが機能しなくなった。

 同社の管理画面(ダッシュボード)についても、Turnstileの不具合やWorkers KVの障害、さらには復旧時のアクセス集中による負荷増大が重なり、長時間にわたりログインや操作が困難な状況が続いた。当初、社内ではDDoS攻撃の可能性も疑われたが、調査により内部の設定ミスであることが特定された。

発生から約6時間で完全復旧

 障害発生から復旧までの経緯は以下の通り。

 11月18日20時20分にトラフィック配信の失敗が始まり、エンジニアチームによる調査が開始された。

 原因となっていた肥大化した機能ファイルの生成と自動配信を停止し、正常な旧バージョンのファイルへ手動で差し替える措置を実施したことで、同日23時30分頃には主要なトラフィックフローが正常化した。

 その後、影響を受けた残りのサービスの再起動や負荷対策を行い、翌19日2時06分にすべてのシステムが正常稼働に戻った。

 同社は、再発防止策として、ユーザー入力と同様に内部生成ファイルに対しても厳格な検証を行う仕組みの導入や、機能ごとの緊急停止(キルスイッチ)機能の拡充、エラー報告処理がシステムリソースを圧迫しないための改善を進める方針だ。