コンテンツにスキップ

概要

Random prefix attacks are when someone sends a lot of traffic to subdomains that are highly unlikely to exist (12345.example.com, abcdefg.example.com), but are still associated with your main domain (example.com).

Usually, a DNS query to each random subdomain (or prefix) is not repeated, so it cannot be cached by resolvers or any other proxies and always reaches the authoritative nameservers. Rate limiting or blocking queries based on source IP can introduce a high amount of false positives, since random prefix attacks commonly are conducted via public resolvers. This makes these attacks particularly effective and hard to mitigate.


攻撃の特徴

存在しないドメインへのクエリ

リクエストが存在しないドメインのみを含む場合、NXDOMAINエラーはcom.のトップレベルドメイン(TLD)ネームサーバーによってのみ提供されます。これは、クエリが権威あるネームサーバーに到達しないことを意味します。

    flowchart TD
      accTitle: ランダムプレフィックス攻撃の図
      A[エンドユーザーのクエリ <code>example.com</code>] --"1)"--> B[<code>1.1.1.1 リゾルバ</code>]
      B --"2)"--> C[<code>com.</code> TLD NS]
      C --"3)" <code>NXDOMAINエラー</code>--> B
      B --"4)" <code>NXDOMAINエラー</code>--> A
      D[権威あるNS]

存在しないサブドメインへのクエリ

これらの攻撃は、ドメインの権威あるネームサーバーからの応答を必要とするサブドメインをターゲットにするため、成功します。

    flowchart TD
      accTitle: ランダムプレフィックス攻撃の図
      A[エンドユーザーのクエリ <code>random.example.com</code>] --"1)"--> B[<code>1.1.1.1 リゾルバ</code>]
      B -- "2)" --> C[<code>com.</code> TLD NS]
      C -- "3)" クエリ 権威あるNS --> B
      B -- "4)" --> D[権威あるNS]
      D --"5)" <code>NXDOMAINエラー</code>--> B
      B --"6)" <code>NXDOMAINエラー</code>--> A

既存のドメインのサブドメインに対する攻撃では、リゾルバは権威あるネームサーバーに対して完全に解決することを強いられます。これは、これらのランダムなサブドメインがリゾルバや他のプロキシによってキャッシュされていない可能性が高いためです。攻撃者がこれらのクエリを十分に送信すると、権威あるネームサーバーがクエリの負荷に対処できなくなり、応答しなくなったり、ダウンしたりする可能性があります。これにより、攻撃されたゾーンだけでなく、ホストしているすべてのゾーンがダウンします。

この攻撃は、いくつかの理由から緩和が難しいです。権威あるネームサーバーの観点から見ると、攻撃者はCloudflare(1.1.1.1)のように見えます。これは、クエリの発信元だからです。Cloudflareをブロックすることは、正当なトラフィックをブロックすることになるため、選択肢ではありません。

解決策

ランダムプレフィックス攻撃の緩和を有効にすると、Cloudflareは潜在的なランダムプレフィックス攻撃のために受信クエリを監視します。

攻撃を検出した場合、Cloudflareはサブドメイン、サブサブドメインなどのために上流のネームサーバーへのクエリを一時的に停止します。その後、Cloudflareはキャッシュされた応答(TTLがまだ期限切れでない場合)で応答します。