はじめの情報処理安全確保支援士試験講座⑨カミンスキー攻撃について説明します!

インフラ

今回も、過去の試験問題を解きながら、試験合格に必要な知識を深めていきます。

今回は、カミンスキー攻撃について説明します。

是非、最後までご覧いただけると嬉しいです。

カミンスキー攻撃

DNSに対するカミンスキー攻撃(Kaminsky’s attack)への対策はどれか。

ア DNSキャッシュサーバと権威DNSサーバとの計2台の冗長構成とすることによって、過負荷によるサーバダウンのリスクを大幅に低減させる。

イ SPF(Sender Policy Framework)を用いてDNSリソースレコードを認証することによって、電子メールの送信元ドメインが詐称されていないかどうかを確認する。

ウ 問合せ時の送信元ポート番号をランダム化することによって、DNSキャッシュサーバに偽の情報がキャッシュされる確率を大幅に低減させる。

エ プレースホルダを用いたエスケープ処理を行うことによって、不正なSQL構文によるDNSリソースレコードの書換えを防ぐ。

引用:情報処理技術者試験 令和5年 春 午前Ⅱ問5

解答

カミンスキー攻撃の概要

カミンスキー攻撃(Kaminsky attack)は、DNS(Domain Name System)の脆弱性を悪用して、キャッシュポイズニングを行う攻撃手法です。この攻撃により、攻撃者はユーザーを意図しない、悪意のあるウェブサイトに誘導することができます。

キャッシュポイズニングとは

キャッシュポイズニング(Cache Poisoning)とは、キャッシュサーバに誤ったデータや悪意のあるデータを注入するサイバー攻撃の一種です。この攻撃は、ユーザーが正しい情報を得るはずのリクエストに対して、攻撃者が意図的に不正な情報を提供することを目的としています。

キャッシュサーバとは

キャッシュサーバは、DNS(Domain Name System)において、名前解決の応答を一時的に保存するサーバのことです。このキャッシュ機能により、同じ問い合わせに対する応答を再利用し、名前解決の速度を向上させ、ネットワークトラフィックを減少させる役割を果たします。

カミンスキー攻撃の背景と脆弱性

DNSは、ドメイン名をIPアドレスに変換する役割を担うインターネットの基幹技術です。DNSサーバは、ドメイン名に対応するIPアドレスを他のサーバに問い合わせ、その結果をキャッシュに保存します。

従来のキャッシュポイズニング攻撃では、攻撃者が特定のドメイン名に対して偽のDNS応答を送信し、キャッシュに偽情報を注入することを試みます。しかし、DNS応答にはトランザクションID(Transaction ID)という16ビットの識別子が含まれており、このIDがクライアントからのリクエストに対応していなければ応答は無視されます。そのため、トランザクションIDを正確に予測することが求められ、攻撃が成功する確率は低いと考えられていました。

カミンスキー攻撃の仕組み

カミンスキー攻撃は、このトランザクションIDの予測を回避し、攻撃の成功確率を劇的に高める手法です。

  1. 大量のクエリ送信:攻撃者は、ターゲットのDNSリゾルバ(DNSキャッシュサーバ)に対して、偽のクエリを大量に送信します。これにより、DNSリゾルバが外部の権威DNSサーバに問い合わせを行うよう促します。
  2. 偽のDNS応答の注入:攻撃者は、クエリに対する応答として、大量の偽のDNS応答を高速に送りつけます。この応答には、ターゲットのドメイン名に対する偽のIPアドレスが含まれており、かつトランザクションIDが異なる組み合わせで生成されます。
  3. トランザクションIDの一致:何度も繰り返されるリクエストと応答の過程で、偶然にも正しいトランザクションIDが一致することがあります。この瞬間、攻撃者の偽の応答がDNSリゾルバのキャッシュに保存されます。
  4. キャッシュの汚染:一度キャッシュに偽の情報が保存されると、そのDNSリゾルバを利用するユーザーは、ターゲットドメインにアクセスする際に偽のIPアドレスに誘導されます。これにより、攻撃者が管理する悪意のあるウェブサイトにユーザーがアクセスすることになります。

DNSリゾルバ

DNSリゾルバ(DNS Resolver)は、ドメイン名をIPアドレスに変換する役割を持つシステムの一部です。DNSは、インターネット上のホスト名(例: hajimenoit.com)を対応するIPアドレスに変換する仕組みで、DNSリゾルバはこの変換プロセスを担当します。

カミンスキー攻撃の巧妙さ

カミンスキー攻撃が特に巧妙なのは、以下の点にあります。

  • DNSプロトコルの脆弱性:この攻撃は、DNSプロトコルに存在する特定の脆弱性を悪用しています。
  • 効率性:従来のキャッシュポイズニング攻撃と比較して、非常に効率的に攻撃を実行できることが特徴です。
  • 検知の難しさ攻撃が成功すると、DNSサーバのログには偽のDNS応答が記録されるため、攻撃の痕跡を特定することが困難な場合があります。

カミンスキー攻撃の対策

カミンスキー攻撃に対処するためには、以下のようなセキュリティ対策が必要です。

  1. ソースポートランダマイゼーション:DNSリクエストのソースポートをランダムに選定することで、攻撃者が正しいトランザクションIDとポート番号の組み合わせを予測することを困難にします。これにより、キャッシュポイズニングの成功率を大幅に低下させることができます。
  2. DNSSECの導入:DNS Security Extensions(DNSSEC)は、DNS応答にデジタル署名を付加することで、応答が正当なものであることを検証できるようにします。DNSSECを利用することで、偽のDNS応答がキャッシュに保存されるリスクを排除します。
  3. パッチ適用とソフトウェア更新:DNSソフトウェアベンダーは、この脆弱性を修正するためのパッチをリリースしています。DNSサーバの管理者は、常に最新のパッチを適用し、ソフトウェアを最新バージョンに保つことが重要です。

今回の問題の答えは、「1. ソースポートトランダマイザーション」の解説を行っています。

カミンスキー攻撃のまとめ

カミンスキー攻撃は、インターネットの基盤を支えるDNSシステムに深刻な脆弱性を突いた攻撃です。この攻撃の発見により、DNSのセキュリティに対する認識が一段と高まり、DNSSECの導入促進や他のセキュリティ対策が進められました。インターネット全体の安全性を維持するためには、DNSに対する継続的なセキュリティ対策の強化が求められます。

まとめ

今回は、下記について説明しました。

  • カミンスキー攻撃

カミンスキー攻撃は、DNSの脆弱性を悪用してキャッシュポイズニングを行う手法で、攻撃者がユーザーを悪意のあるウェブサイトに誘導するものです。ソースポートランダマイゼーションやDNSSECの導入により、この攻撃を回避できます。

これからも、Macのシステムエンジニアとして、日々、習得した知識や経験を発信していきますので、是非、ブックマーク登録してくれると嬉しいです!

それでは、次回のブログで!

タイトルとURLをコピーしました