Cloudflare

インターネット・セキュリティ大手のクラウドフレアは、2024年11月14日、ログ収集サービスのバグにより、3.5時間の間に顧客にプッシュされた全ログの55%を失ったと発表した。

Cloudflareは、サイト上のトラフィックを監視し、特定の基準に基づいてそのトラフィックをフィルタリングできる広範なログ収集サービスを顧客に提供している。

これらのログにより、お客様はホストへのトラフィックを分析し、セキュリティインシデント、トラブルシューティング、DDoS攻撃、トラフィックパターンを監視および調査したり、サイトの最適化を実行したりすることができます。

外部ツールを使用してこれらのログを分析したいお客様のために、Cloudflareは様々なエンドポイントからログを収集し、Amazon S3、Elastic、Microsoft Azure、Splunk、Google Cloud Storageなどの外部ストレージサービスにプッシュする「logpush」サービスを提供しています。

Cloudflareは毎日50兆を超える顧客のイベントログを処理し、そのうち約4.5兆のログが顧客に送信されるため、これらのログは大規模に生成される。

フェイルセーフの連鎖

Cloudflareによると、logpushサービスにバグがあり、11月14日に3.5時間にわたって顧客ログが失われたという。

「2024年11月14日、CloudflareはCloudflare Logsを利用している顧客の大半に影響を与えるインシデントを経験した」とCloudflareは説明している

「これらのサービスが影響を受けた約3.5時間の間、通常お客様に送信するログの約55%が送信されず、失われました。

この事故は、Cloudflareのロギングパイプラインの主要コンポーネントであり、同社のネットワークから下流のシステムにイベントログを転送する役割を担うLogfwdrの設定ミスが原因でした。

具体的には、設定の更新で「空白の設定」を発行するバグが導入され、ログが転送されるように設定されている顧客が存在しないことをシステムに誤って伝え、ログが破棄されました。

Logfwdrは、データ損失を防ぐために、「空白」または無効な設定の場合、デフォルトですべてのログを転送するようにフェイルセーフを設計している。

しかし、このフェイルセーフシステムは、すべての顧客のログを転送しようとしたため、処理されるログの量が大量に急増した。

これは、下流のシステムがリアルタイムでログを処理できない場合に一時的にログを保持する分散バッファリングシステムであるBufteeを圧倒するもので、Bufteeはプロビジョニングされた容量の40倍以上のログを処理するよう要求された。

Volume spike recorded in Buftee
インシデント発生中にBufteeで記録されたボリュームの急増
ソースはこちら:クラウドフレア

Bufteeは、リソース上限やスロットリングといった独自のバッファ過負荷保護機能を備えているが、不適切な設定と事前のテスト不足により、これらは機能しなかった。

その結果、Logfwdrの設定ミスからわずか5分以内にBufteeはシャットダウンし、完全な再起動が必要となったため、復旧がさらに遅れ、さらに多くのログが失われる結果となった。

より強力な対策

このインシデントを受け、Cloudflareは今後の発生を防ぐためにいくつかの対策を実施しました。

これには、ログ転送設定の異常が発見された場合に即座にチームに通知する専用の設定ミス検出・警告システムの導入が含まれる。

さらにCloudflareは、ログ量の急増によるシステムの完全停止を防ぐため、現在Bufteeを正しく設定しているという。

最後に、同社はデータ量の予期せぬ急増をシミュレートする過負荷テストを定期的に実施し、フェイルセーフ・メカニズムの全ステップがこれらの事象に対処するのに十分堅牢であることを確認する予定である。