Cloudflare の DDoS プロテクション:Cloudflare の機能によりバイパスされてしまう

Cloudflare DDoS protections ironically bypassed using Cloudflare

2023/09/30 BleepingComputer — Cloudflare のファイアウォール/DDoS 防御だが、クロステナントのセキュリティ制御におけるロジックの欠陥を悪用する、特定の攻撃プロセスによりバイパスされる可能性があるという。このバイパスにより、Cloudflare の顧客は大きな負担を強いられることになり、同社の保護システムの価値が損なわれる可能性が生じている。さらに悪いことに、この攻撃における唯一の条件は、ハッカーが Cloudflare の無料アカウントを作成することである。そのアカウントが、攻撃の一部として使用される。ただし、これらの欠陥を悪用する攻撃者にとっては、標的となる Web サーバの IP アドレスを知っていることが前提となる。

Cloudflare 対 Cloudflare

Certitude の研究者である Stefan Proksch は、この問題の原因が、すべてのテナントからの接続を受け入れる、Cloudflare の共有インフラ戦略にあることを発見した。具体的に言うと、彼が特定したのは、Cloudflare の “Authenticated Origin Pulls”と “Allowlist Cloudflare IP Addresses” に影響を与える、システム内の2つの脆弱性である。

Authenticated Origin Pulls は、Cloudflare が提供するセキュリティ機能であり、オリジン・サーバに送信された HTTP(s) リクエストが、攻撃者からのものではなく、Cloudflare を経由したものであることを保証するものだ。

この機能を設定する顧客は、API を介した証明書のアップロード、もしくは、Cloudflare を介した証明書の生成を行う。

Cloudflare origin certificate installation
Cloudflare origin certificate installation
Source: BleepingComputer

コンフィグレーションが行われると、Cloudflare は SSL/TLS 証明書を使用して、サービスのリバース・プロキシと顧客のオリジン・サーバ間の HTTP(S) リクエストを認証し、不正なリクエストによる Web サイトへのアクセスを防止する。

しかし、Proksch の説明によると、 Cloudflare はテナント固有の証明書ではなく、すべての顧客に対して共有の証明書を使用しているため、この保護は攻撃者によりバイパスされ、 その結果として、Cloudflare を起点とする全ての接続が許可されることになる。

Proksch は、「この攻撃者は Cloudflare でカスタム・ドメインを設定し、DNS の A レコードを被害者の IP アドレスに向けることができる。続いて、テナント内のカスタム・ドメインの保護機能を全て無効化し、Cloudflare のインフラを経由して攻撃をトンネリングする。したがって、このアプローチにより、攻撃者は被害者が設定した保護機能をバイパスできる」と指摘している。

Exploiting shared Cloudflare certificates
Exploiting shared Cloudflare certificates (Certitude)

このロジック・ギャップから生じる問題は、Cloudflare アカウントを持つ攻撃者に対して、悪意のトラフィックを他の Cloudflare クライアントに向けることや、同社のインフラを介した攻撃を許すことになる。Proksch によると、この弱点を緩和する唯一の方法は、Cloudflare が生成した証明書ではなく、カスタム証明書を使用することだという。

2つ目の問題は、Cloudflare の Allowlist Cloudflare IP アドレスに影響するものだ。それにより、Cloudflare の IP アドレス範囲から発信されたトラフィックのみが、クライアントのオリジン・サーバに到達できるというセキュリティ対策に危殆化が生じる。

この場合も、攻撃者は Cloudflare でドメインを設定し、そのドメインの DNS A レコードを標的の被害者のサーバーの IP アドレスに向けることで、ロジックの欠陥を悪用できる。

続いて、攻撃者は、カスタム ドメインの全ての保護機能をオフにし、悪意のトラフィックを Cloudflare のインフラ経由でルーティングする。それにより、被害者の観点からは信頼されているとみなされ、許可されてしまう。

Exploiting Cloudflare shared IP address range
Exploiting Allowlist Cloudflare IP (Certitude)

さらに Proksch は、この欠陥を利用することで Cloudflare の保護を容易に回避する方法を示すための、詳細なコンフィグレーションを用いた PoC エクスプロイトを共有している。

Certitude は、これらの攻撃に対して、以下の防御策を提案している:

  1. Cloudflare の共有証明書ではなく、カスタム証明書を使用して “Authenticated Origin Pulls” メカニズムを設定する。
  2. Cloudflare Aegis (利用可能な場合) を使用して、各クライアント専用の出力 IP アドレスを、より具体的な範囲で定義する。

このロジック欠陥を発見した研究者である Florian Schweitzer と Stefan Proksch は、2023年3月16日に HackerOne 経由で Cloudflare に報告したが、この問題は「参考情報」としてクローズされたという。

BleepingComputer は Cloudflare に連絡し、追加の保護メカニズムを実装する予定について、また、潜在的に危険な設定を持つクライアントに警告を発する予定について尋ねたが、現時点では返答が得られていない。