Cloudflareがバグによって3時間半にわたりユーザーに送信するはずだったログの約55%を喪失
CDNやDDoS防御などのサービスを提供するCloudflareは、ユーザーのウェブサイトに対するHTTPリクエストの詳細ログを提供するサービス「Cloudflare Logs」があります。2024年11月24日、Cloudflare Logsで発生したバグによりログの送信処理に障害が発生し、3時間半にわたってユーザーに送信するはずだったログの約55%が失われたとCloudflareが報告しました。
Cloudflare incident on November 14, 2024, resulting in lost logs
https://blog.cloudflare.com/cloudflare-incident-on-november-14-2024-resulting-in-lost-logs/
Cloudflare says it lost 55% of logs pushed to customers for 3.5 hours
https://www.bleepingcomputer.com/news/security/cloudflare-says-it-lost-55-percent-of-logs-pushed-to-customers-for-35-hours/
Cloudflare broke its logging-service, causing data loss • The Register
https://www.theregister.com/2024/11/27/cloudflare_logs_data_loss_incident/
Cloudflare Logsはウェブサイト上のトラフィックログを収集・送信するサービスであり、ユーザーはこのログを使ってセキュリティインシデントを特定したり、ウェブサイトの最適化を行ったりすることができます。
ユーザーは複数のサーバーからのログを要求することが多いため、ログファイルは冗長で膨大なサイズになる可能性があります。そこでCloudflareは、ログを予測可能なサイズにまとめ、適切な頻度でプッシュするために「Logpush」というシステムを使用しているとのこと。
以下の図は、Logpushのシステムを簡単にまとめたものです。まず、「Logfwdr」というサービスがCloudflareシステムからのイベントログを受け取り、バッチ処理を行って適切なサイズにまとめます。次に「Logreceiver」がバッチ処理されたデータを受け取って、イベントの種類とその目的に応じて並び替えます。「Buftee」はLogpushにおける各ジョブのバッファを提供しており、最後に「Logpush」がBufteeのバッファからログを読み取って、顧客が設定した宛先にデータを送信しています。
11月24日、CloudflareはLogpushで追加のデータセットをサポートするための変更を加えました。これにはLogfwdrの設定のアップデートが含まれていましたが、バグによって「空白の設定」が発行されてしまう事態が発生。誤って「ログが転送されるように設定された顧客がいない」とシステムに伝えられてしまいました。
Cloudflareのチームはすぐにバグに気が付き、5分以内に変更を元に戻しました。ところが、Logfwdrには問題が発生して個々のホストが設定を取得できない場合、「すべての顧客にイベントを送信してログの損失を防ぐフェイルオープンな保護機能」が設定されていたとのこと。
そのため、わずか5分の間にLogfwdrによって大量の顧客にログが送信されることとなり、顧客ごとにバッファを作成するBufteeの負荷が急増。通常時と比べて40倍ほどのバッファが必要となり、過負荷状態に陥ってシステムに障害が発生してしまったというわけです。以下のグラフを見ると、15時10分頃にバグを含む変更が行われ、Bufteeが作成するバッファが激増している様子がわかります。
修正には完全なリセットと再起動が必要となっため、リカバリーが遅れて長時間にわたり影響が継続しました。その結果、Cloudflare Logsのサービスが影響を受けていた3時間30分の間に、通常であれば送信されていたログの約55%が失われてしまいました。
Cloudflareは、Logfwdrのバグ自体はいつか発生する可能性があると予想されていたものの、バグに対応するための「フェイルオープン」な保護システムに問題があったと指摘。また、Bufteeにもバッファの急増による障害の連鎖を防ぐメカニズムがあったにもかかわらず、正しく設定されていなかったとのこと。Cloudflareは一連の問題について、「これは車にシートベルトがあるのに、それを締めていないようなものです」と表現しています。
今後の再発防止策として、Cloudflareは設定ミスを見逃さないためのアラートを作成し、データ量の予期しない急増をシミュレートする過負荷テストを定期的に実施することで、システムの安全性を確認していくと約束しました。
・関連記事
Cloudflareが社内Wikiなどをホストするサーバーへ不正アクセスされたことを発表、分析・対応済みでユーザーデータやシステムへの影響はなし - GIGAZINE
Cloudflareで隠しているIPアドレスが見えてしまっていないかを一発でチェックしてくれるツール「CloakQuest3r」を使ってみた - GIGAZINE
Cloudflareがコードの最適化を行うことで毎秒3500万回動作する処理のCPU使用率を1%削減できたと発表 - GIGAZINE
CloudflareがAI用にウェブサイトのスクレイピングを許可する権利を取引できるプラットフォームを立ち上げへ - GIGAZINE
Cloudflareがパテント・トロールを返り討ちにして逆に賠償金を払わせた上で二度とパテント・トロール行為を行えないように特許を公開させる事に成功 - GIGAZINE
Cloudflareが「24時間以内に1800万円の支払いに応じなければサイトを閉鎖する」とユーザーに通知後、実際に全ての設定を削除してしまう - GIGAZINE
Cloudflareに目を付けられたせいで仕事で使うサイトにアクセスできなくなってしまった事例が報告される - GIGAZINE
・関連コンテンツ