Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 374

DNS キャッシュポイズニング

監修Cybersecurity entrepreneur & security researcher

DNS キャッシュポイズニング とは何ですか?

DNS キャッシュポイズニング偽造レコードを DNS リゾルバのキャッシュに挿入し、TTL が失効するまで以降のクエリが攻撃者の指定したアドレスを返すようにする攻撃。


DNS キャッシュポイズニングは再帰リゾルバを標的とし、偽造された応答を受け入れさせて、それを保存・提供させる攻撃です。信用されるためには、偽装した応答はクエリ名と一致し、正しい UDP ポートに届き、正しい 16 ビットのトランザクション ID(TXID)を持たなければなりません。したがって古典的な攻撃は、正規の権威応答が到着する前に、これらのフィールドを推測する、あるいは競争に勝つことに帰着します。

Dan Kaminsky が 2008 年に公表した脆弱性(CVE-2008-1447)は、これを実用的なものにしました。ランダムなサブドメインへのクエリを強制し、16 ビットの TXID への推測を大量に送りつけることで、攻撃者はキャッシュされた否定応答を待つことなく再試行を続けられ、親ドメインの NS レコードをポイズニングできました。緊急の修正策は送信元ポートのランダム化であり、推測空間を 16 ビットから約 32 ビットへ拡大しました。2020 年、UC リバーサイド校と清華大学の研究者らは SAD DNSCVE-2020-25705)を発表しました。これは Linux のグローバルな ICMP レート制限カウンタに存在するサイドチャネルであり、経路外の攻撃者が開いている一時的な送信元ポートを推定できるようにして、その利得を帳消しにするものでした。Linux はこれを、ICMP レート制限カウンタのランダム化(カーネル 5.10 以降)によって修正しました。

flowchart TD
  A[攻撃者が random.bank.com へのクエリを誘発] --> R[再帰リゾルバ]
  R -->|"UDP クエリ、ランダムな TXID + 送信元ポート"| NS[本物の権威 NS]
  A -.->|"偽造応答をフラッド: TXID + ポートを推測"| R
  R --> M{偽造応答が本物の応答より先に<br/>名前 + ポート + TXID に<br/>一致するか?}
  M -->|はい| P[汚染されたレコードを TTL 全期間キャッシュ]
  M -->|いいえ| L[正規の応答をキャッシュ]
  P --> V[リゾルバの全クライアントが攻撃者の IP へリダイレクト]

防御策: DNSSEC(RFC 4033–4035)はレコードを暗号署名するため、偽造応答は検証に失敗します。0x20 による大文字小文字のランダム化クエリ名の最小化はエントロピーを追加します。そして暗号化トランスポート(DoH/DoT)は平文 UDP の攻撃面を完全に取り除きます。短く控えめな TTL は、ポイズニングが実際に発生した場合の影響範囲を限定します。

  1. 01

    主要リゾルバのポート予測可能性の欠陥を突いた 2008 年の Kaminsky 攻撃(CVE-2008-1447)。

  2. 02

    ICMP レート制限のサイドチャネルを介してポイズニングを復活させた SAD DNS(CVE-2020-25705)。

よくある質問

DNS キャッシュポイズニング とは何ですか?

偽造レコードを DNS リゾルバのキャッシュに挿入し、TTL が失効するまで以降のクエリが攻撃者の指定したアドレスを返すようにする攻撃。 サイバーセキュリティの 攻撃と脅威 カテゴリに属します。

DNS キャッシュポイズニング とはどういう意味ですか?

偽造レコードを DNS リゾルバのキャッシュに挿入し、TTL が失効するまで以降のクエリが攻撃者の指定したアドレスを返すようにする攻撃。

DNS キャッシュポイズニング からどのように防御しますか?

DNS キャッシュポイズニング に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。

DNS キャッシュポイズニング の別名は何ですか?

一般的な別名: キャッシュポイズニング, DNS スプーフィング(キャッシュ)。

関連用語

関連項目