カミンスキー攻撃|情報処理安全確保支援士試験 令和5年春期午前Ⅱ 問5

出典:令和5年春期 午前Ⅱ 問5 分野:セキュリティ / 情報セキュリティ
DNSに対するカミンスキー攻撃(Kaminsky's attack)への対策はどれか。
  • ア:DNSキャッシュサーバと権威DNSサーバとの計2台の冗長構成とすることによって,過負荷によるサーバダウンのリスクを大幅に低減させる。
  • イ:SPF(Sender Policy Framework)を用いてDNSリソースレコードを認証することによって,電子メールの送信元ドメインが詐称されていないかどうかを確認する。
  • ウ:問合せ時の送信元ポート番号をランダム化することによって,DNSキャッシュサーバに偽の情報がキャッシュされる確率を大幅に低減させる。
  • エ:プレースホルダを用いたエスケープ処理を行うことによって,不正なSQL構文によるDNSリソースレコードの書換えを防ぐ。
解説

カミンスキー攻撃は、DNSキャッシュポイズニングを成功させやすくする攻撃手法です。DNSキャッシュサーバに偽の情報を覚え込ませ、利用者を偽サイトへ誘導することを狙います。

カミンスキー攻撃

通常のDNSキャッシュポイズニングでは、キャッシュサーバが権威DNSサーバへ問い合わせている間に、攻撃者が先に偽の応答を返す必要があります。ただし、DNS情報がキャッシュに残っている間は再問い合わせが行われないため、攻撃できる機会は多くありません。

そこでカミンスキー攻撃では、攻撃者が存在しないサブドメインへの問い合わせを大量に発生させます。たとえば、a.example.com・b.example.comのような未キャッシュの名前を問い合わせさせることで、キャッシュサーバに何度も再帰問い合わせを行わせます。

攻撃のポイント 内容
通常の攻撃 キャッシュの有効期限切れを待つ必要があり、攻撃機会が少ない
カミンスキー攻撃 未キャッシュのサブドメインを使い、再帰問い合わせを何度も発生させる
狙い 偽のDNS応答をキャッシュサーバに登録させる

攻撃が成功すると、正しいドメイン名を入力しても、攻撃者が用意した偽のIPアドレスへ誘導されるおそれがあります。

対策としては、DNS問い合わせ時の送信元ポート番号をランダム化するソースポートランダマイゼーションが有効です。ポート番号を固定せずランダムにすることで、攻撃者が正しい応答を偽装しにくくなります。また、DNS応答の正当性を検証できるDNSSECの導入も有効です。

つまりカミンスキー攻撃は、「存在しないサブドメインを使ってDNS問い合わせの機会を増やし、偽のDNS情報をキャッシュさせようとする攻撃」と考えると分かりやすいです。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:DNSキャッシュサーバと権威DNSサーバとの計2台の冗長構成とすることによって,過負荷によるサーバダウンのリスクを大幅に低減させる。
⇒冗長構成による可用性向上の説明です。DNSキャッシュポイズニングへの対策ではありません。
イ:SPF(Sender Policy Framework)を用いてDNSリソースレコードを認証することによって,電子メールの送信元ドメインが詐称されていないかどうかを確認する。
⇒SPFはメール送信元ドメインの詐称を確認するための仕組みです。カミンスキー攻撃への対策ではありません。
エ:プレースホルダを用いたエスケープ処理を行うことによって,不正なSQL構文によるDNSリソースレコードの書換えを防ぐ。
⇒SQLインジェクション対策の説明です。DNSキャッシュサーバに偽情報をキャッシュさせる攻撃への対策ではありません。
TSUNAGARU-ADVICE

まず押さえたいこと

カミンスキー攻撃は、DNSキャッシュサーバに偽のDNS応答を受け入れさせ、誤った名前解決情報をキャッシュさせる攻撃です。

迷ったときの判断軸

対策では、攻撃者が偽応答を的中させにくくすることが重要です。DNS問合せ時の送信元ポート番号をランダム化すると、トランザクションIDだけでなくポート番号も一致させる必要があるため、偽応答が成功する確率を下げられると判断できます。

科目Bにつなげるために

科目Bでは、DNSの攻撃対策について、可用性対策なのか、メール送信元確認なのか、キャッシュ汚染対策なのかを切り分ける力が問われます。カミンスキー攻撃は、DNSキャッシュポイズニングを成立しにくくする対策として、送信元ポート番号のランダム化を押さえておきましょう。