午前I問題

DNS(Domain Name System)の基本的な名前解決の仕組みに関する記述として、適切なものはどれか。

ア)権威DNSサーバは、他の権威DNSサーバへの問い合わせ結果を一定期間キャッシュし、次回以降の問い合わせに応答する役割を担う。

イ)フルサービスリゾルバ(キャッシュDNSサーバ)は、クライアントに代わってルートDNSサーバ・TLDサーバ・権威DNSサーバへ順に問い合わせを行い、得られた結果をTTLの間キャッシュする。

ウ)ルートDNSサーバは世界に1台のみ存在し、すべての名前解決要求はそのサーバを経由しなければならない。

エ)TLD(Top Level Domain)サーバは、ドメイン名とIPアドレスの対応関係を直接保持しており、権威DNSサーバへの問い合わせを必要としない。

午前I の解答・解説を見る

正解: イ)

解説:

  • ア)不正解。キャッシュを行うのはフルサービスリゾルバ(キャッシュDNSサーバ)であり、権威DNSサーバは自身が管理するゾーン情報を回答するのみでキャッシュ機能は主目的ではない。
  • イ)正解。フルサービスリゾルバはクライアントからの問い合わせを受け、ルート→TLD→権威DNSサーバの順に反復的に問い合わせを行い(再帰的問い合わせ)、得られた回答をTTL(Time To Live)の期間だけキャッシュして応答を高速化する。
  • ウ)不正解。ルートDNSサーバは13系統のIPアドレスで運用され、Anycast技術により世界中に数百台規模で分散配置されている。単一障害点を避けるための設計である。
  • エ)不正解。TLDサーバは当該TLD配下のドメインを管理する権威DNSサーバのIPアドレス(委任情報)を保持するのみで、最終的なAレコード等は権威DNSサーバが保持する。

午前II問題

DNSSEC(DNS Security Extensions)に関する記述として、適切なものはどれか。

ア)DNSSECはDNS応答の通信経路を暗号化することで、問い合わせ内容の盗聴を防止する技術である。

イ)DNSSECは公開鍵暗号によるデジタル署名を用いて、DNS応答の完全性と送信元の真正性を保証するが、通信内容の機密性(盗聴防止)は保証しない。

ウ)DNSSECを導入すると、DNSキャッシュポイズニング攻撃だけでなくDNS増幅攻撃によるDDoSも自動的に防止できる。

エ)DNSSECの信頼チェーンは権威DNSサーバ単体で完結しており、親ゾーンとの連携(DSレコードの登録)は不要である。

午前II の解答・解説を見る

正解: イ)

解説:

  • ア)不正解。DNSSECは応答データへの電子署名(RRSIG)による完全性・真正性の保証が目的であり、通信路の暗号化(機密性の確保)は行わない。DNS通信自体を暗号化するのはDoH(DNS over HTTPS)やDoT(DNS over TLS)の役割である。
  • イ)正解。DNSSECはゾーン署名鍵(ZSK)・鍵署名鍵(KSK)による署名(RRSIG)と、NSEC/NSEC3による否定応答の証明を用いて、応答が改ざんされていないこと・正規の権威サーバが発行したものであることを保証する。ただし平文でやり取りされるため盗聴自体は防げない。
  • ウ)不正解。DNS増幅攻撃はDNSSECの署名データによってむしろ応答サイズが増大するため増幅率が上がる場合があり、「自動的に防止」は誤り。増幅攻撃対策にはレート制限やソースIP検証(BCP38)が必要。
  • エ)不正解。DNSSECの信頼チェーンは、親ゾーンが子ゾーンのKSKのハッシュ値をDS(Delegation Signer)レコードとして保持することで成立する。ルートゾーンを信頼のアンカーとして、親から子へ署名検証が連鎖する仕組みである。

午後問題

Y社は自社ドメイン y-corp.example でコーポレートサイトとメールサービスを運用している。ある日、利用者から「y-corp.exampleのサイトにアクセスしたら見慣れない広告だらけのページが表示された」という問い合わせが複数件寄せられた。情報システム部のC氏が調査したところ、社内で利用しているキャッシュDNSサーバの当該ドメインのAレコードキャッシュが、Y社が管理していないIPアドレスに書き換わっていることが判明した。C氏がキャッシュDNSサーバのログを確認すると、短時間に同一ドメインに対する大量のDNS応答パケットが、送信元ポート番号とトランザクションIDを変えながら送信されていた。

また、別の調査で、社内の一部端末から外部の不審なドメイン(a1b2c3d4e5f6.malicious-c2.example のような長いランダム文字列を含むサブドメイン)に対してTXTレコードの問い合わせが1分間に数百件発生していることも判明した。

設問1

キャッシュDNSサーバで発生した事象の攻撃名を答え、この攻撃が成立する技術的な理由を40字以内で説明せよ。また、この攻撃に対する根本的な対策を1つ、20字以内で答えよ。

設問1の解答・解説を見る

正解例:

  • 攻撃名:DNSキャッシュポイズニング(Kaminsky攻撃)
  • 成立理由:送信元ポートとトランザクションIDの組合せが16ビット程度で推測・総当たりが可能なため(38字)
  • 根本的対策:DNSSECの導入(応答の電子署名による検証)

解説: 攻撃者は正規の権威DNSサーバからの応答が到達する前に、送信元ポート番号とトランザクションID(16ビット、65,536通り)を変えながら大量の偽の応答パケットを送りつけ、先着した偽の応答をキャッシュDNSサーバに受理させることでキャッシュを汚染する。ソースポートのランダム化は緩和策にはなるが、組合せ空間が有限であるため理論上は総当たりが可能であり、根本的な対策としては応答の真正性を暗号学的に検証するDNSSECの導入が求められる。

解説・採点基準(計15点):

採点項目キーワード配点
攻撃名「DNSキャッシュポイズニング」(Kaminsky攻撃も可)5点
成立理由「トランザクションID」「送信元ポート」の推測・総当たりに言及5点
根本的対策「DNSSEC」の記載5点

設問2

社内端末から観測された不審な通信について、(a)この通信手法の名称を答えよ。また、(b)このような通信がファイアウォールで検知・遮断されにくい理由を40字以内で、(c)有効な検知手法を1つ30字以内で答えよ。

設問2の解答・解説を見る

正解例:

  • (a) DNSトンネリング
  • (b) 検知されにくい理由:DNS(UDP/53番ポート)は業務上必要な通信として多くのFWで許可されているため(41字)
  • (c) 検知手法:ドメイン名の文字列長・エントロピーやクエリ頻度を分析し異常を検知する(36字)(またはTXT/NULLレコードの異常な問い合わせ量を監視する)

解説: DNSトンネリングは、外部との通信が禁止された環境でもDNSクエリ(多くの場合ポート53は業務通信のため常時許可されている)を悪用し、ドメイン名やTXTレコードにデータを符号化して埋め込むことでC2(Command and Control)通信やデータ窃取を行う手法である。ランダムな英数字を含む長いサブドメイン名や、通常のWebブラウジングでは発生しない高頻度のTXT/NULLレコード問い合わせは典型的な兆候であり、DNSクエリログの統計分析(ドメインのエントロピー、クエリ長、単位時間あたりの問い合わせ数)による異常検知が有効な対策となる。

解説・採点基準(計15点):

採点項目キーワード配点
(a) 名称「DNSトンネリング」5点
(b) 理由「DNS(53番ポート)が業務上許可されている/例外的に通しているFWが多い」の趣旨5点
(c) 検知手法「クエリ長・エントロピー分析」または「異常な問い合わせ頻度の監視」等ログ分析に関する記述5点

重要キーワード

用語説明
DNSキャッシュポイズニング偽のDNS応答をキャッシュに注入し、利用者を不正なサイトに誘導する攻撃
DNSSECRRSIG等の電子署名によりDNS応答の完全性・真正性を保証する拡張仕様。機密性は保証しない
DoH / DoTDNSクエリをHTTPS/TLSで暗号化し、盗聴・改ざんを防止する技術
DNSトンネリングDNSクエリ(ドメイン名・TXTレコード等)にデータを符号化し、FWを迂回してC2通信やデータ窃取を行う手法
トランザクションIDDNSクエリと応答を対応付ける16ビットの識別子。総当たりされるとキャッシュポイズニングの糸口になる
DNS増幅攻撃送信元IPを偽装した小さなクエリで巨大な応答を被害者に送り付けるDDoS手法

まとめ

  • 午前I視点: フルサービスリゾルバ・ルート・TLD・権威DNSサーバそれぞれの役割分担と再帰的問い合わせの流れを正確に理解する
  • 午前II視点: DNSSECが保証するもの(完全性・真正性)としないもの(機密性)を区別し、DoH/DoTとの役割の違いを押さえる
  • 午後視点: ログの特徴(トランザクションID/ポートの変化、異常なドメイン文字列やクエリ頻度)から攻撃手法を特定し、根本対策・検知手法を具体的に記述できるようにする