組織のネットワークをインターネットに接続する上で欠くことができない重要な要素の一つに名前解決を行うDNSサーバがある。重要なだけにDNSサーバは攻撃対象にもなりやすい。ここではDNSサーバに対する攻撃について、その仕組みや対策を解説する。
2.6.1 DNSサーバに対する攻撃の種類と実行方法
DNSサーバに対する攻撃としては、次の4つが代表的である。
- ゾーン転送要求による登録情報の収集
- DNSキャッシュポイズニング(汚染)攻撃(キャッシュに偽の情報を登録する攻撃)
- 不正なリクエストによりサービス不能状態を引き起こす攻撃
- DNSリフレクション攻撃(DNS amp 攻撃)
2番目のDNSキャッシュポイズニング(汚染)攻撃は古くから知られている攻撃手法の一つであるが、近年フィッシング詐欺に悪用されたことで、その危険性や影響の大きさが再認識されている。DNSサーバのキャッシュに偽の情報を登録することで、多くの一般ユーザーを次々に偽のサイトに誘導するこの手法は、フォーミング(Pharming)とも呼ばれており、個別のユーザーをターゲットにしたフィッシング(Phishing)よりも大きな被害をもたらす可能性がある。 上記の4つの攻撃はそれぞれ次のような手法で実行される。
- ゾーン転送要求による登録情報の収集
DNSサーバ(コンテンツサーバ)はプライマリ、セカンダリの二台構成で運用する必要があり、双方のサーバの登録内容を同期させるためにゾーン転送(登録内容の一括転送)という機能がある。DNSサーバに対する名前解決要求は53/UDPポートで行われるが、ゾーン転送要求は53/TCPポートで行われ、セカンダリのDNSサーバからプライマリのDNSサーバに対して定期的に実行される。特に制限をしていない場合、セカンダリDNSサーバ以外のホストからでもnslookupコマンドを使用して容易に実行可能である。ゾーン転送要求を行うことにより、ターゲットサイトのネットワーク構成やサーバの構成を知ることができ、これらは攻撃者にとって有用な情報となる。
ゾーン転送要求による情報収集イメージ |
---|
- DNSキャッシュポイズニング攻撃
DNSキャッシュポイズニング攻撃とは、DNSサーバから上位サーバ(権威DNSサーバ)へ名前解決要求に対し、悪意あるDNSサーバが、正当な上位サーバから応答がかえる前に、悪意あるサイトに誘導するための不正な名前解決情報を返すことでDNSキャッシュに登録させる攻撃である。そのようにしてキャッシュが汚染されたDNSサーバを利用してユーザーが悪意あるサイトに誘導され、機密情報が盗まれるなどの被害を受ける。 この攻撃を成立されるためには、次の条件を満たす必要がある。
- 標的となるDNSサーバのキャッシュに登録されていない名前解決要求であること
- 標的となるDNSsーばが上位サーバに問い合わせた際の送信元ポート番号宛に応答を返すこと
- 標的となるDNSサーバが上位サーバに問い合わせた際のトランザクションID(DNSのリクエストを一位に識別するためのID)と応答のIDを合致させること
- 正当な上位サーバからの応答よりも早く応答を返すこと
1.の条件があるため、当初はDNSキャッシュ情報のTTL(Time To Live:有効時間)を長く設定することが有効な対策の一つとされていたが、この後この攻撃をより強力にしたカミンスキー攻撃が公表されたことにより、この設定は対策と意味をなさなくなった。 2.については、標準的に53番固定としているDNSサーバが多数存在すること、3についてはIDが16bitであることが攻撃を容易にさせる要因となっている。
カミンスキー攻撃(Kaminsky's attack)
カミンスキー攻撃とは、セキュリティ研修者のDan Kaminsky氏によって考案・公表されたDNSキャッシュポイズニング攻撃の一種である。攻撃手法の概要を次に示す。
- 攻撃者は、標的となるDNSサーバにんたいし、汚染情報を登録したいドメイン名と同じドメインかつ存在しないFQDNの名前解決要求を行う
- 1の名前解決要求うを受けたいDNSサーバはキャッシュに登録されていないため、上位サーバに対して問い合わせる
- 攻撃者は2の応答がかえる前に「www.sample.poisoningdata.jpという権威DNSサーバが知っている」「www.sample.poisoningdata.jpのIPアドレスはaaa.bbb.ccc.ddd」というような偽の応答を任意のIDで返す(攻撃者は偽の権威DNS サーバ aaa.bbb.ccc.dddをあらかじめ用意しておく)
- 1のFQDNと3のIDを変化させながら1から3を繰り返すうちに、前述の条件が成立すると、汚染情報が標的となったDNSサーバのキャッシュに登録される
また、DNSキャッシュポイズニング攻撃と同じ目的行われる攻撃手法としてhostファイルの不正な書き換えがある。最近では一般ユーザーのPCに侵したマルウェアがここを実行し、不正なサイトにアクセスさせられるという事件も発生している。
- 不正なリクセストによりサービス不能状態を引き起こす攻撃
DNSサーバの仕様上の脆弱性や実装上の脆弱性をついて不正な要求うを与えることにより、サービス不能状態を引き起こす攻撃である。 2002年10月には、世界に13台あるルートDNSサーバが一斉にDDoS攻撃を受け、内9台が一時的に正常なサービスが提供できなくなるという事件が発生した。こうした問題は数多く報告されているが、いずれもDNSのバージョンアップや設定変更によって対処可能である。
- DNSリフレクション攻撃(DNS amp 攻撃)
DNSリフレクション(反射)攻撃(「DNSリフレクター攻撃」とも呼ばれる)とは、2.7.1項で解説する反射・増幅型DDoS攻撃の一種であり、他のサイトを攻撃するために、DNSサーバ(キャッシュサーバ)を攻撃パケットの踏み台として悪用する手法である。この攻撃により、踏み台となったDNSサーバ自体の負荷が高まり、サービス不能状態となる場合もある。応答メッセージを増幅させて負荷を高めることから「DNS amp 攻撃」とも呼ばれる。DNSリフレクション攻撃の仕組みを次に示す。
- 攻撃者は発信元アドレスを最終的なターゲットとなるホストのIPアドレスに詐称した上で、攻撃に加担させるDNSサーバあてにクエリを送る。この時、応答メッセージのサイズができるだけ大きくなるようにする。
- クエリを受け取ったDNSサーバは偽装された発信元アドレス(最終的なターゲットホスト)に対して応答を返す。
これを数多くのDNSサーバに対して一斉に行うと、反射・増幅型DDoS攻撃となる。 DMZ(De-Militarized Zone:非武装領域)等に設置されたDNSキャッシュサーバが、インターネット上の任意のホストからのクエリを無条件に受け付ける「オープンリゾルバ」になっていると、この攻撃に悪用される危険性が高まる。
- DNS水責め攻撃(ランダムサブドメイン攻撃)
オープンリゾルバとなっているDNSキャッシュサーバに対し、攻撃対象のドメインのランダムなサブドメイン名を大量に発生させ、不正な名前解決要求を行う手法である。これにより、攻撃対象ドメインの権威DNSサーバ(コンテンツサーバ)を過負荷にさせる。
2.6.2 DNSサーバに対する攻撃への対策
予防・防止
- DNSサーバのソフトウェアのバージョンを最新にする
- DNSの送信元ポート番号をランダムにする
- DNSSEC(DNS Security Extensions)を使用する
- ゾーン転送をセカンダリDNSサーバにのみ許可するよう設定するとともに、ゾーン転送するデータの範囲を最小限に設定する
- 脆弱性検査を実施し、DNS関連おセキュリティホールの有無を確認する
- DNSキャッシュサーバが不要なクエリを拒否するようアクセス制限を施す
検知・追跡
- ネットワーク監視型IDS、IPSを用いてDNSサーバに対する攻撃を検知する
回復
- 攻撃を受けた原因となった脆弱性を特定するとともに、予防・防止にあげた対策を実施する
Check!
- DNSサーバに対する攻撃はどのような種類があるか
- DNS キャッシュポイズニング攻撃によってどのような影響があるか
- DNSサーバに対する攻撃への対策としてはどのようなものがあるか
確認問題1
DNS水責め攻撃(ランダムサブドメイン攻撃)の手口と目的に関する記述のうち、適切なものはどれか。
ア ISPが管理するDNSキャッシュサーバに対して、送信元を攻撃対象のサーバのIPアドレスに詐称してランダムかつ大量に生成したサブドメイン名の問い合わせを送り、その応答の攻撃対象のサーバに送信されるようにする。
イ オープンリゾルバとなっているDNSキャッシュサーバに対して、攻撃対象ドメインのサブドメイン名をランダムかつ大量に生成して問合せ、攻撃対象の権威サーバDNSサーバを過負荷にさせる。
ウ 攻撃対象のDNSサーバに対して、攻撃者が管理するドメインのサブドメイン名をランダムかつ大量に生成してキャッシュさせ、正規のDNSリソースレコードを強制的に上書きする。
エ 攻撃対象のWebサイトに対して、当該ドメインのサブドメイン名をランダムかつ大量に生成してアクセスし、非公開のウェブページの参照を試みる。
DNS水責め攻撃とは、問合せ元のアドレスや問い合わせ対象ドメインの制限なく名前解決要求に応じた状態(オープンリゾルバ)となっているDNSキャッシュサーバに対し、攻撃大将のドメインのランダムなサブドメイン名を大量に発生させ、不正な名前解決要求うを行う手法である。これにより、攻撃対象ドメインの権威DNSサーバ(コンテンツサーバ)を過負荷にさせる。したがって「イ」が正解。
確認問題2
企業のDMZ上で1台のDNSサーバをインターネット公開用と社内用で共有している。このDNSサーバがDNSキャッシュポイズニングの被害を受けた結果、直接引き起こされ得る現象はどれか。
ア DNSサーバのハードディスク上のファイルに定義されたDNSサーバ名が書きかわり、外部からの参照者が、DNSサーバに接続できなくなる
イ DNSサーバのメモリ上にワームが常駐し、DNS 参照元に対して不正プログラムを送り込む
ウ 社内の利用者が、インターネット上の特定のWebサーバを参照しようとすると、本来とは異なるWebサーバに誘導される
エ 社内の利用者間で送信された電子メールの宛先アドレスが書き換えられ、正常な送受信ができなくなる
DNSキャッシュポイズニング(汚染)とは、DNSサーバからの名前解決要求に対し、悪意のあるサイトに誘導するための不正な名前解決情報を返すことで、当該DNS サーバのキャッシュに(不正な名前解決情報を)登録させる攻撃である。このようにしてキャッシュが汚染されてしまうと、社内の利用者がインターネットのWebサーバなどを参照する場合に、本来とは異なるサーバに誘導される可能性がある。 したがって「ウ」が正解。