情報セキュリティスペシャリスト
情報技術者試験まとめへ

サーバセキュリ(4)

DNSサーバ

DNS(Domain Name System)

インターネットの重要な基盤技術の一つで、コンピュータの世界で通用する識別番号=IPアドレスと,人間の世界で通用する名前=ドメイン名を対応付けるしくみ

DNSの主な機能


リゾルバ(resolver)

DNSサーバにIPアドレスを問い合わせるプログラム。DNSサーバは,問い合わせメッセージを受け取ると,自分が持っている「ゾーン情報(ドメイン名とそれに対応するIPアドレスなどの登録情報を記した対応表)」を調べて答えを探す。

コンテンツサーバ(ゾーンサーバ)

自分が管理しているゾーンに対する問い合わせだけに回答する。名前解決ができなくてもほかのネームサーバへの問い合わせはせず、自らが管理しているデータベースに該当する情報がなければ「情報はない」と答える。

キャッシュサーバ(フルサービスリゾルバ)

スタブリゾルバから送られる「再帰(Recursive)検索」要求を受け、名前解決が完了するまで、それぞれの名前についてほかのネームサーバに「反復(Iterative)検索」という形で問い合わせをする。また、その結果をスタブリゾルバに返答する。
このとき、同じ問い合わせを何度も繰り返すという非効率を避けるため、一度名前解決をしたドメイン名を内部にキャッシュして再利用することから「キャッシュサーバ」とも呼ばれる

スタブリゾルバ

利用者側から出される要望を基にフルサービスリゾルバと交信し、調べたいドメイン名を渡して必要な情報を教えてもらう、端末側で動作する検索プログラム。単に「リゾルバ」と呼ばれることもある。

リソースレコードリソースレコード

DNSサーバに登録する情報のこと

DNSサーバに登録する主なリソースレコード
名称概要
Aアドレスホスト名に対応するIPアドレス(IPv4)
AAAAアドレスホスト名に対応するIPアドレス(IPv6)
CNAMEキャノニカルネームホスト名の別名
MXメールエクスチェンジメールサーバのホスト名
NSネームサーバDNSサーバのホスト名
SOAスタートオブオーソリティプライマリDNSサーバのホスト名、DNSサーバの動作に関する情報等
PTRポインタホストの別名逆引き用
TXTテキストホスト名に関するテキスト情報(SPFレコードの記述にも使用)
OPTEDNS0に関する情報等

DNSラウンドロビン

1つのドメイン名に複数のIPアドレスを割り当てて、クライアントPCなどからの問い合わせごとに順番に応答していく負荷分散技術
メリット

デメリット

ダイナミックDNS

RFC 2136として規格化されたDNSデータベースを動的に更新する技術。

DNSの脆弱性


代表的な攻撃

実行方法

ゾーン転送要求による登録情報の収集

ゾーン転送とは、ドメイン名とIPアドレスの対応付けなどを行うDNSにおいて、DNSサーバの管理するゾーン情報(あるドメインの中に含まれるホスト名とIPアドレスの対応などの情報を集積したひとまとまりのデータ)を別のコンピュータに一括して転送すること、そのようなDNSサーバの機能。通常は、セカンダリDNSサーバがプライマリDNSサーバの持つデータの複製を作るために利用する
DNSサーバはゾーン情報のマスターデータを保存・管理するプライマリDNSサーバのほかに、1台以上のセカンダリDNSサーバを置いて冗長化しなければならないため、定期的にデータの複製を作成するためにゾーン転送が使われる
ゾーン転送はそのドメインのセカンダリサーバ以外には使わせないようにするのが基本で、DNSサーバの設定が不適切な場合、第三者にゾーン転送されてしまい、漏洩したネットワークの構成情報などを元に攻撃を受けてしまう。

DNSキャッシュポイズニング(汚染)攻撃

あるドメインについて偽の情報を発信し、インターネット上のDNSサーバに伝播させることにより、一般の利用者がそのドメイン内のサーバに到達できないようにする、ドメイン所有者の意図しない別のサーバにアクセスを誘導する、手法。この手法を利用して、商取引サイトのドメイン情報を書き換えて詐欺サイトに誘導し、クレジットカード番号などを詐取する攻撃手法を「ファーミング詐欺」という。また、近年では、違法または反社会的な情報やサービスを提供しているWebサイトなどへの一般利用者のアクセスを遮断するため、ネットワーク事業者などが国の要請や法律の規定に従って、あえてそのドメインへのDNSキャッシュポイズニングを行なう場合がある
古いDNSサーバソフトの仕様では、あるドメイン情報を管理するサーバから送られてくる情報に別のドメインの情報が紛れ込んでいても、特に確認することなく受け取って保存してしまう。この脆弱性を悪用して、本来管理権限の無いドメインの情報をいろんなDNSサーバに勝手に送りつけて書き換えてしまうことにより、外部からのそのドメインへのアクセスを所有者に無断でコントロールする

不正なリクエストによりサービス不能状態を引き起こす攻撃

DNSサーバの使用上の脆弱性や実装上の脆弱性を突いて不正な要求を与えることで、サービス不能状態を引き起こす攻撃

DNSリフレクション(DNS amp)攻撃

多数のコンピュータから一斉に大量のデータを送りつけて対象を麻痺させるDDoS攻撃の一種で、DNSサーバのキャッシュ機能を悪用する手法

  1. 自分の管理するDNSサーバに大容量の無意味な文字列を並べたレコードを作成し、キャッシュ機能を持った公開DNSサーバにこれを送りつけてキャッシュさせる
  2. 管理の甘いコンピュータにこっそり遠隔管理ソフトを仕込んだゾンビPCを大量に用意する
  3. これを操って、キャッシュをコピーしたDNSサーバに大容量レコードの送信を要求するパケットを一斉に送信させる。このとき、送信元アドレスを偽って攻撃対象となるコンピュータのアドレスを設定することにより、DNSサーバからの応答(最初に作成した大容量レコード)が攻撃対象に送信される
  4. 対象となったコンピュータはこれを捌ききれずに通信不能に陥ったり、回線がパンクしたりしてしまう

対策

予防・防止
検知・追跡
回復

512オクテット制限への対応


DNSのUDPメッセージは、最大で512オクテット、とするのが元々の仕様で、512オクテットを超える場合、UDPではなくTCPを用いることになっていた(TCPフォールバック)。TCPフォールバックでは、512オクテット以下の複数のパケットに分割したTCPパケットにて結果を返す必要がある。だが、TCPによるDNSプロトコルに対応せず、このためTCPで値を返しても受け取ることができない実装が多かった。もって、DNSサーバから(UDPでの)応答がない→通信できない、という問題が生じた
また、しかしIPv4に加えてIPv6も使われるようになると、どうしてもリザルトの容量が多くなり、もって512オクテットに収まりきらないことが増えてきた
この対策として作られたのが、EDNS0である
近年、負荷分散や障害に対する耐性の向上を目的として、一つのドメイン名に多数のレコードを割り当てることがある。また、IPv6、ENUM、DNSSECをはじめとした新しい技術への対応などによって、DNSメッセージに含まれる情報は増加する傾向にある。IPv6やDNSSECのメッセージを取り扱うDNSサーバは、EDNS0をサポートすることが必須とされている

EDNS0で拡張される点
1.DNSメッセージヘッダ :RCODEやフラグの拡張
2.DNSラベルタイプ :ラベル型の拡張
3.DNSメッセージの
 UDPペイロードサイズ
:最大512オクテットの制限を通信可能であれば
 65535オクテットまでに拡張

 

ページトップへ 次へ