CloudflareにホストされたウェブサイトがCatoファイアウォールをバイパスします

問題

Catoファイアウォールは、Cloudflareにホストされたウェブサイトでファイアウォールルールを適用できません。 例えば、research.cloudflare.comというウェブサイトはデータベースとして分類されていますが、このカテゴリをブロックするルールがあるにもかかわらず許可されています。

 

関連するイベントは異なるドメイン名cloudflare-ech.comを示しており、意図されたサイトと一致せず、ファイアウォールのルールをバイパスします。 このイベントはウェブサイトの宛先IPアドレスをフィルタリングして見つけることができます。

環境

  • 特定のカテゴリをブロックするファイアウォールルール。
  • TLSインスペクションは有効化されていません。

トラブルシューティング

イベントの中でドメイン名cloudflare-ech.comが存在することは、暗号化されたクライアントハロー(ECH)プロトコルが使用されていることを示唆しています。

ECHとは何ですか?

Cloudflareのドキュメンテーションで記述されているように、ECHはサーバー名インディケーション(SNI)をマスクするなど、TLSクライアントハローパケットの一部を暗号化します。これにより、通常はTLSセッションの確立に使用されます。 これは、CatoがCloudflareへの接続を見ていても、特定のウェブサイトを識別できないことを意味します。 これが機能するには、クライアントとサイトの両方でECHをサポートしている必要があります。

ECHの仕組み

  1. 公開キー配布: サーバーは、ECH構成内で公開キーをDNSを介して共有します(これには、通常、DoH(HTTPS上のDNS)やDoT(TLS上のDNS)のような安全なDNSプロトコルを使用します)。 しかし、UDP経由での暗号化されていないDNSも使用できます。 このキーは、クライアントがクライアントハローメッセージを暗号化するために使用されます。 以下はECH構成を含むHTTPSタイプのDNS返信の例です。
  2. クライアントハロー暗号化: 接続時に、クライアントはSNIなどクライアントハローの敏感な部分をサーバーの公開キーを使用して暗号化します。 この情報を復号できるのはサーバーのみです。 暗号化されていない外部クライアントハローも送信され、デフォルトのSNIなどの一般情報が表示され、実際のターゲットを明らかにしない可能性があります。 以下の例では、デフォルトのSNIはcloudflare-ech.com
  3. フォールバックメカニズム: ECHがサポートされている場合、サーバーは暗号化されたクライアントハローを処理し、接続を続けます。 サポートされていない場合、フォールバックメカニズムは暗号化されていないクライアントハローで接続を再試行し、従来のTLS 1.3サーバーとの後方互換性を維持します。

解決策

Catoは現在ECHをサポートしていないため、ネットワーク設定に基づいて暗号化されていないSNIのTLS接続にフォールバックを強制するための以下の回避策をお勧めします:

  • インターネットファイアウォールでDoH、DoT、QUICプロトコルをブロックします。 これにより、ECH設定を交換するための安全なDNSプロトコルの使用が防止されます。
  • ブラウザによっては、クライアントがUDPベースのDNSにフォールバックしてECH設定を交換する可能性があります。 その場合は、影響を受けるサイトやユーザーについてはTLSインスペクションを有効にします。 ECHは中間者攻撃(MITM)技術をサポートしていないため、接続は暗号化されていないSNIにフォールバックします。
  • 最後の手段として、インターネットファイアウォールでcloudflare-ech.comドメインをブロックします。 これにより、ブラウザが暗号化されていないSNIにフォールバックし、正しいファイアウォールルールを適用できるようになります。

この記事は役に立ちましたか?

2人中2人がこの記事が役に立ったと言っています

0件のコメント