情報処理安全確保支援士(情報セキュリティスペシャリスト)試験に合格するためのサイトです。
過去問を多数引用しながら、基礎知識をしっかり学んでもらうように作ってあります。
また、情報処理安全確保支援士(情報セキュリティスペシャリスト)を楽しく学べるように工夫したいと思います。
カテゴリ:

9.サーバセキュリティ > 9.6 DNS

reflectionは反射で、ampは増幅器。
DNSの問い合わせにて、送信元のIPアドレスを攻撃対象にすることで、DDoS攻撃をしかける。
dns_reflection_情報セキュリティスペシャリスト試験
次の過去問(H21春SC午後1問1)を解いてみよう。
問14 DNSの再帰的な問合せを使ったサービス不能攻撃(DNS amp)の踏み台にされることを防止する対策はどれか。
ア キャッシュサーバとコンテンツサーバに分離し,インターネット側からキャッシユサーバに問合せできないようにする。
イ 問合せされたドメインに関する情報をWhoisデータベースで確認する。
ウ 一つのDNSレコードに複数のサーバのIPアドレスを割り当て,サーバヘのアクセスを振り分けて分散させるように設定する。
エ 他のDNSサーバから送られてくるIPアドレスとホスト名の対応情報の信頼性をディジタル署名で確認するように設定する。(H24SC春午前2)
正解はアだ。つまり、そもそも、攻撃者からのDNS問い合わせに回答しなければいいのだ。
もう一問。
K君 :パケットモニタZには, DNSクエリを伴わないDNSクエリレスポンスが多量に記録されていました。パケットモニタZのログを図3に示します。

-----図3の解説
送信元がDMZ上のDNSサーバのIPアドレスで、宛先がインターネット上のIPアドレスのログが大量に記録されている。

J主任:このようなログは,社内LAN上のPCがDNSクエリを送信するときに自身のIPアドレスを[ b ]のIPアドレスに[ c ]した場合に記録されます。
K君 :不正なDNSクエリが多量にDMZ上のDNSサーバに送りつけられたことで, Webページを閲覧するときの応答が遅くなったのですね。確かに,すべての社内PCからの名前解決を, DMZ上のDNSサーバが担っていますから。
J主任:こういった通信は[ d ]攻撃と呼ばれています。至急,不正なパケットを棄却する設定をすべての部門のルータに適用してください。
K君 :はい,分かりました。
J主任:こうした事象は,ウィルス感染によってよく引き起こされます。

設問1
(2)本文中の[ b ]に入れる適切な字句を解答群の中から選び,記号で答えよ。また,本文中の[ c ]に入れる適切な字句を、5字以内で答えよ。
bに関する解答群
ア DMZ上のDNSサーバ ウ インターネット上
イ DMZ上のWebサーバ

(3)本文中の[ d ]に入れる適切な字句を解答群の中から選び,記号で答えよ。
解答群
ア DNS cache poisoning  ウ 総当たり
イ DNS reflection   エ ファーミング
bはウ
cは詐称
dはDNS reflection

DNSキャッシュポイズニングとは、言葉のとおり、「DNSのキャッシュ」に「ポイズニング(毒を盛る)」ことだ。嘘のDNS情報を入れ込み、正規のサイトにアクセスしているつもりが、違うサイトにアクセスさせる。これで、ウイルスに感染させたり、個人情報を盗んだりする。DNS情報を偽装するDNSスプーフィングの代表的なものだ。

過去問(H27AP春午前問37)では、「DNSキャツシュポイズニングに分類される攻撃内容」として、「PCが参照するDNSサーバに偽のドメイン情報を注入して,偽装されたサーバにPCの利用者を誘導する」と述べられている。

具体的に見てみよう。以下のように、PCでは自社のDNSサーバにDNSの問い合わせをする。本来のDNSサーバから結果が返ってくる前に毒(偽装した回答)を入れ込むのだ。
情報セキュリティスペシャリスト試験を目指す図DNS
情報セキュリティスペシャリスト試験を目指す女性SE
偽りのDNS情報をキャッシュさせることなんて,本当にできるのですか?
DNSの回答までは1秒もかからないと思います。
そんな絶妙のタイミングで巧妙に偽装した回答を返せるわけがないと思います。
その疑問は自然だね。良く分かる。
では、以下のように、悪意のある攻撃者が自分で問い合わせをしたらどうだろう。本来のDNSからの回答を偽装したパケットまで準備しておけば、本来の解答より早く返すことは可能だ。これにより、DNSサーバに偽の情報をキャッシュさせる。
情報セキュリティスペシャリスト試験を目指す図dns 
情報セキュリティスペシャリスト試験を目指す女性SE 
たしかにDNSの問い合わせはUDPなので、3wayハンドシェークなどの処理がありません。でも、なんらかのID情報を持っていれば、このような攻撃は防げるのではないですか?

実はID情報を持っている。DNSで問い合わせするときに、問合せのID情報を付けて送っている。回答のIDが違ったら、偽の情報と分かる仕組みだ。
しかし、IDは16ビットであり、65536通りしなない。なので、攻撃者は65536通のIDを付けた回答を全て送り付けるのだ。これであれば、DNSサーバはIDが一致したものを信じてしまうのである。
以下がとても詳しく解説されている。
https://www.nic.ad.jp/ja/newsletter/No40/0800.html

過去問を解いてみよう。

問19 企業のDMZ上で1台のDNSサーバをインターネット公開用と社内用で共用している。このDNSサーバが,DNSキャッシュポイズニングの被害を受けた結果,引き起こされ得る現象はどれか。
ア DNSサーバで設定された自社の公開WebサーバのFQDN情報が書き換えられ,外部からの参照者が,本体とは異なるWebサーバに誘導される。
イ DNSサーバのメモリ上にワームが常駐し,DNS参照元に対して不正プログラムを送り込む。
ウ 社内の利用者が,インターネット上の特定のWebサーバを参照する場合に,本来とは異なるWebサーバに誘導される。
エ 電子メールの不正中継対策をした自社のメールサーバが,不正中継の踏み台にされる。(H21NW午前Ⅱ問19)(H25SC春午前Ⅱ問12)
もうお分かりだと思うが、正解はウ

■対策法
サーバの要塞化を図るとともに、以下の設定を行う。
1)コンテンツサーバ 
 キャッシュを無効にする。つまり、再帰検索を無効にする。設定は、recursion no
 結果的に、自分が持っている(権威ある)ゾーン情報のみを回答する。
2)キャッシュサーバ兼コンテンツサーバ
 コンテンツサーバとキャッシュサーバの分離を図り、それぞれの対策を実施する。
3)キャッシュサーバ
 再帰問い合わせは許可されたセグメント(一般的には内部セグメント)のみから許可する。
11d7b807


その設定で、運用上は問題ないのです?



キャッシュサーバは、企業の内部セグメントからの問い合わせだけに答えればよい。なので、問い合わせのIPアドレスは内部に制限できる。
プロバイダのDNSサーバであっても同じだ。自分のプロバイダにて払い出しているIPアドレスからの応答のみを答える。
 
※コンテンツサーバとキャッシュサーバに関しては、以下を参照いただきたい。
http://nw.seeeko.com/archives/50312179.html


まず、どうやってキャッシュポイズニングを実現するのか。そこから理解が必要である。
キャシュサーバがコンテンツサーバに再帰問い合わせを実施したとき、正規のコンテンツサーバが回答するより先に回答をすることで、キャッシュポイズニングを実現する。

 コンテンツサーバ
 再帰問い合わせをしなければ、キャッシュしない。よって、キャッシュポイズニングが発生しない。

キャッシュサーバ
 DNSキャッシュポイズニングに攻撃は、キャッシュサーバに問い合わせを実施し、正規のサーバから回答が来る前に偽りの回答を送りこんでいる。よって、このような攻撃をさせなければよい。そこで、問い合わせを受けつけるのを、安全な内部セグメントに限定する。
内部セグメントであれば、(ボットなどによる攻撃を受ける可能性はあるが、)攻撃を受けにくいことは間違いない。

詳しくは以下も参照いただきたい。
http://nw.seeeko.com/archives/50312179.html

過去問の以下の空欄にあてはまる言葉を考えよう。
 M主任とNさんは、DNSキャッシュポイズニング対策について検討した。根本的な対策として、[  a  ]というDNSのセキュリティ拡張方式の導入が考えられた。[  a  ]は、DNSのレコードに公開鍵暗号方式による[  b  ]を付加し、応答を受け取った側ではその[  b  ]を検証する方式である。しかし、[  a  ]には、鍵の管理をどのように行うかなど、今までのDNSサーバにはない運用手順が必要であること、Y社だけでなく大多数の組織が対応していなければならないことから、すぐには採用できない。(H22SC春午後Ⅱ問1) 
DNSSECであるが、以前は対応していないDNSサーバが多かったため、あまり普及していなかったと思う。
最近は少しずつ普及しだしたと思うが、それでも、対応していないDNSサーバに対して、きちんと問い合わせができるかがあやしいと思っているSEは多いのではないだろうか。
普及にはもう少し時間がかかるのではないかと思う。
この問題の解答は以下だ。

a DNSSEC
b ディジタル署名

DNSSECについて、違う過去問では、「ディジタル署名によってDNS応答の正当性を確認できる(H22秋SC午前2問19)」ものと述べられている。

違う過去問(H27SC春午前Ⅱ問14)を見てみよう。
問14 DNSSECで実現できることはどれか。
ア DNSキヤツシュサーバからの応答中のリソースレコードが,権威DNSサーバで管理されているものであり,改ざんされていないことの検証
イ 権威DNSサーバとDNSキヤツシュサーバとの通信を暗号化することによる,ソーン情報の漏えいの防止
ウ 長音“-”と漢数字“一”などの似た文字をドメイン名に用いて,正規サイトのように見せかける攻撃の防止
エ 利用者のURLの打ち間違いを悪用して,偽サイトに誘導する攻撃の検知

正解はア

問8 DNSサーバに格納されるネットワーク情報のうち、第三者に公開する必要のない情報が攻撃に利用されることを防止するための、プライマリDNSサーバの設定はどれか。
ア SOAレコードのシリアル番号を更新する。
イ 外部のDNSサーバにリソースレコードがキャッシュされている時間を短く設定する。
ウ ゾーン転送を許可するDNSサーバを登録する
エ ラウンドロビン設定を行う。
  (H22春SC午前2問8)
アは、DNS情報を変更した場合に必要な作業。シリアル番号の数字が増えていると、情報が書き変わったとみなされ、セカンダリDNSサーバへゾーン転送される。
イは、移転などにより、IPアドレスを変更する場合に行う作業。例えば、xxx.comのIPアドレスが1.1.1.1から3.3.3.3に変更した場合、多くのDNSサーバのキャッシュに古い1.1.1.1が保持されている場合、古いIPアドレスにアクセスし続けるため、利用者がアクセスできない。
ウは、正解。DNSの設定において、allow-transferでゾーン転送を許可するサーバを指定する。
15863853

ということは、DNSのゾーン転送はデフォルトでは誰でも受けられるということですか?



そう。セカンダリDNSサーバは、typeをslaveにして、mastersにプライマリDNSサーバのIPアドレスを入れるだけ。もっというと、セカンダリDNSサーバを立てる必要もなく、コマンドでゾーン情報を取得することもできる。
dcf52feb

あ、でも。
そもそも、DNS情報は公開する情報ですよね。
だから、第三者に見られてもいいのでは?


まあ、そうだ。しかし、全部の情報のリストを見られると、その組織のネットワーク情報が分かってしまう。なので、セキュリティ上あまり好ましくないだろう(あくまでもだろう)というものである。
公開することが、セキュリティ上大きなリスクにつながるというものでもない。

15863853

宛先ポート番号は53ですよね。
送信元のポート番号も53なんですか?



古いバージョンの場合はそうだった。宛先ポート番号だけでなく、送信元ポート番号も53という時代があった。
しかし、これには問題があった。過去問を見てみよう。
DNSソフトの製品サポート窓口からは,現時点でとり得る対策として,  DNSサーバで,②名前解決の問合せにおいてDNSキャッシュポイズニング攻撃を受けやすい不適切な設定を行わないという解決策が提示され,それに従い設計書を修正した。念のため,現在のDNSサーバの設定を確認したところ,設定は適切であった。

設問2(3)本文中の下線②について,  DNSキャッシュポイズニング攻撃を受けやすいDNSサーバの不適切な設定とはどのような設定であるか。 25字以内で述べよ。 (H22春SC午後2問1)
正解は「送信元ポート番号を固定する設定」である。
これは、送信元ポート番号が、古いDNSサーバの場合は53に固定されていることが問題ということだ。DNSキャッシュポイズニングでは、一瞬のスキで偽装パケットを送る必要がある。ポート番号が固定されていれば、応答パケットを作りやすいので、攻撃を受けやすい。
最近というか、かなり前のDNSサーバから、送信元ポート番号は固定ではなくなった。まだ、変えていないことろがあるとすると、変えた方がいい。その際、FWの設定変更が必要なこともあり、注意が必要だ。送信元ポートを53固定で許可している可能性があるからだ。

このページのトップヘ