Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

概要

最終更新 Markdown で表示Agent セットアップ

ランダムプレフィックス攻撃(random prefix attack)とは、存在しそうにないサブドメイン(12345.example.comabcdefg.example.com など)に大量のトラフィックを送りつける攻撃です。これらのサブドメインは、メインのドメイン(example.com)に紐づいています。

通常、各ランダムサブドメイン(またはプレフィックス)への DNS クエリは繰り返されないため、リゾルバーやほかのプロキシではキャッシュされず、常に権威ネームサーバーに届きます。送信元 IP に基づくレート制限やクエリのブロックは、誤検知を多く招きがちです。ランダムプレフィックス攻撃は、公開リゾルバー経由で行われることが多いためです。そのため、この攻撃は特に効果的で、緩和が難しくなります。


攻撃の特徴

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

リクエストが存在しないドメインだけを対象にする場合、NXDOMAIN エラーは com. のトップレベルドメイン(TLD)ネームサーバーだけが返します。つまり、クエリは権威ネームサーバーまで到達しません。

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

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

こうした攻撃が成立するのは、サブドメインを狙うからです。サブドメインへの応答には、そのドメインの権威ネームサーバーが必要です。

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

既存ドメインのサブドメインを狙う攻撃では、ランダムなサブドメインはリゾルバーや他のプロキシにキャッシュされていないことが多いため、リゾルバーは権威ネームサーバーまで完全に解決せざるを得ません。攻撃者が十分な数のクエリを送り、権威ネームサーバーが負荷に耐えられないと、応答不能になったりダウンしたりします。その場合、攻撃対象のゾーンだけでなく、そのネームサーバーがホストするすべてのゾーンが影響を受けます。

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

対策

ランダムプレフィックス攻撃の緩和を有効にする と、Cloudflare は受信クエリを監視し、ランダムプレフィックス攻撃の兆候を探します。

攻撃を検知すると、サブドメイン、サブサブドメインなどへの上流ネームサーバーへの問い合わせを一時的に止めます。その後 Cloudflare は、TTL がまだ切れていなければキャッシュ済みの応答を返します。

役に立ちましたか?