DNS(Domain Name System)とは
DNS攻撃とは何かを説明するために、まずDNSの仕組みを簡単に説明します。
ホスト名をIPアドレスに変換するDNS
Webブラウザなどからインターネットにアクセスするときには、通常ホスト名(例:www.example.com、この中の""example.com""をドメインという)で宛先を指定します。この宛先指定ではホスト名をIPアドレスに変換する必要があり、その変換の仕組みをDNSと呼びます。
DNSの根幹を担うリゾルバ
次にDNSの根幹を担うリゾルバについて解説していきます。リゾルバとは渡されたホスト名に対しIPアドレスを返すソフトウェアのことです。このリゾルバの仕組みを理解すると後に解説する攻撃がわかりやすくなるため、まずはリゾルバに対する知識を広げましょう。それではリゾルバの仕組みについて解説していきます。
リゾルバとは?
まずWebブラウザなどインターネットにアクセスするアプリケーションは、社内あるいはインターネット・プロバイダ内に存在するリゾルバと呼ばれるサーバに宛先のホスト名を渡します。
そしてリゾルバは自分のキャッシュにそのホスト名が存在すれば対応するIPアドレスを返します。このようにホスト名に対してIPアドレスを返すといった仕組みです。
またキャッシュにない場合には、権威DNSサーバと呼ばれる、世界中のドメインとIPアドレスの対応表を持つサーバ(実体は1つのサーバではなく複数サーバのツリー構造になっている)に問い合わせを行います。
リゾルバの種類
リゾルバの中にはキャッシュを持たず権威DNSサーバに問い合わせをするだけのものもありますが、一般的にはレスポンスの向上と無駄なパケット送信の削減のために、多くのリゾルバはキャッシュを持ちます。
キャッシュを持つリゾルバを「フルサービスリゾルバ」あるいは「キャッシュDNSサーバ」(以下「キャッシュサーバ」)と呼ぶことがあるので覚えておきましょう。
DNSサーバ攻撃の3つの代表的な攻撃手法とは
これまでDNSの仕組みについてみてきました。それでは次に、どのような攻撃が実際に行われるのかを確認していきましょう。
DNSキャッシュポイズニング攻撃
DNSの仕組みを悪用するセキュリティ攻撃の手法は、DNSキャッシュポイズニングと呼ばれています。悪意のある攻撃者が、キャッシュサーバに偽のDNS情報を送り込むことで、攻撃者のサーバにアクセスさせたりキャッシュサーバの機能を停止させたりします。
次にDNSキャッシュポイズニング攻撃の仕組みについてみていきましょう。まず攻撃者はキャッシュサーバに成りすましたいホストのIPアドレスを問い合わせます。また上述したようにキャッシュサーバはキャッシュにそのホスト名がない場合、権威DNSサーバに問い合わせに行きます。
攻撃者はその応答が返って来る前に、権威DNSサーバからの応答に見せかけた偽のDNS情報を同じキャッシュサーバに送り込みます。そして攻撃が成功した場合は、ホストのアクセス先が攻撃者のサーバになる、またはそのホストを見つけられなくなる、といった被害を受けます。
ゾーン転送要求による攻撃
DNSキャッシュポイズニングやそれから派生するDoS攻撃・DDoS攻撃の他に、ゾーン転送という仕組みを悪用したセキュリティ攻撃もあります。
負荷分散のために同じゾーン(ドメインを分割したうちの1つ、分割しなければドメインと同一)内に複数台のDNSサーバを設置することができるのですが、その際にはゾーン内でDNS情報を同期する必要があります。
その動機に発行される要求がゾーン転送要求です。このゾーン要求を外部から送り込むと、その応答を見て内部構成を把握し、不正なDNS情報を送り込むことが可能になります。これがゾーン転送要求により攻撃の仕組みです。
カミンスキー攻撃
キャッシュサーバはキャッシュにDNS情報が存在する限り権威DNSサーバに問い合わせをしないので、キャッシュの存在時間(TTL)を長く設定することが、DNS攻撃に対する有効な対策でした。ところが、008年にセキュリティ研究者のダン・カミンスキー氏により、新たなキャッシュポイズニング攻撃法が発表されました。
この攻撃の仕組みは、キャッシュサーバに対して、ドメインは実在するが、存在しないホスト名で問い合わせる(例:53uo21xx7.example.com)ことで、キャッシュサーバから権威DNSサーバに強制的に問い合わせをさせるというものです。
たとえキャッシュのTTLを長くしても強制的に問い合わせが発生するため、繰り返し攻撃すれば成りすましに成功する確率が高まってしまうためTTLを長くするだけでは対抗できなくなりました。またこの攻撃法は発表者の名前をとって「カミンスキー攻撃」と呼ばれています。
今すぐ対策するべき危険なサーバとは
これまでDNS攻撃の種類について解説していきました。それでは次にどのようなサーバが攻撃をうけやすいか、その危険性とともに紹介していきます。
古いバージョンのDNSサーバ
カミンスキー攻撃は、繰り返し攻撃することで成功率を高める攻撃方法なので、成功確率を下げることが有効な対策と言えるでしょう。
具体的な対策方法として、カミンスキー攻撃の発表後のDNSサーバソフト(BIND)にはソースポートランダマイゼーションという防御方法が採用されました。これはDNSサーバのポート番号をランダムに変化させる防御法で、ポート番号を固定しているDNSサーバと比較すると、カミンスキー型攻撃の成功率を大幅に低下させることができます。
しかし世界でも日本でも、古いバージョンのDNSサーバがかなり残っており、これらが標的になった場合には高い確率でカミンスキー攻撃が成功するので注意が必要です。
すべての検索要求に応えるオープンリゾルバ
さらに危険と言われているものが、オープンリゾルバという誰からの検索要求にも応答してしまうキャッシュサーバの存在です。これはBINDの不適切な設定によるものですが、世界中にかなりの数のオープンリゾルバが存在すると推測されています。
またオープンリゾルバは一度カミンスキー攻撃が成立してしまうと、その後はDNSリフレクタと呼ばれるDoS攻撃(不正リクエストによるサービス停止攻撃)の踏み台になる可能性もあると言われており、潜在的な脅威の存在として指摘されています。
DNSサーバ攻撃の被害とは
これまでDNSサーバ攻撃の手法についてみてきました。それでは次に実際の被害状況や実態とともに、DNSサーバ攻撃の被害について詳しく解説していきます。
最大の被害は社会的信用の失墜
現在DNSサーバ攻撃による被害はDoS攻撃やDDoS攻撃による業務停止や通信障害などですが、元来は成りすまし目的の攻撃のため、各種情報の盗難や改ざんなどの被害も起こり得ます。しかし何よりも大きい被害は自社のサーバがこれらの攻撃や犯罪の踏み台にされることによる社会的信用の失墜です。
国内・海外で発生した攻撃被害
オープンリゾルバへの攻撃として有名なのは、2013年3月に発生した、スパム対策組織のSpamhaus Projectと米Cloudflare社へのDDoS(分散DoS)攻撃です。
まずSpamhausのオープンリゾルバが攻撃され、そこからDDoS攻撃がはじまりました。そこでSpamhausは協力関係にあるCloudflareに支援を要請しましたが、Cloudflareのサーバも1週間にわたるDDoS攻撃を受け、一時期は300Gbps以上のトラフィックが観測されるなど、ヨーロッパを中心に遅延や通信障害が発生しました。
参照:電気通信事業におけるサイバー攻撃への適正な対処の在り方に関する研究会|総務省
BIND9のDos攻撃被害
また日本では2015年にDNSソフト「BIND 9」の脆弱性をねらったDoS攻撃で、レンタルサーバサービスを提供するクラウドサービス事業者のDNSサービスが停止する障害が発生しました。このように国内外問わずDNSサーバ攻撃の被害は広がっています。
参照:「セキュリティ関連の話題(脆弱性対応・攻撃対応)」2015年11月19日|Telecom-ISAC Japan
DNSサーバ攻撃への対策方法とは?
このようなDNSサーバ攻撃対策としては、DNSソフトであるBINDの最新版を入手し最新のセキュリティパッチを充当することが挙げられます。またソースポートランダマイゼーションを有効にすることも大切です。
同時に自社のDNSサーバがオープンリゾルバになっていないかを確認し、なっていれば無効化します。ただしこれらの対策を講じていても、100%安全ではありません。もちろん普段から不自然なアクセスがないか、既に攻撃を受けていないかを監視することも必要となります。
またセキュリティ対策の発展とともにサイバー攻撃も進化を遂げているのも事実です。今回はDNSサーバ攻撃しましたが、対策すべき脅威は日に日に増えてきています。なのでぜひこの機会に、DNSサーバ攻撃だけでなく不正アクセスやセキュリティ攻撃についても対策を進めてみましょう。
多層防御を実施して、より強固なセキュリティ対策
DNSサーバー攻撃やマルウェア、ゼロデイ攻撃や標的型メールなど、サイバー攻撃の脅威は今日多岐にわたり、至るところに存在します。
そうした脅威から重要なデータを守るには、「多層防御」が非常に有効です。
UTMやファイアーウォール、WAFやIPS・IDSを導入し何重にもセキュリティの層を作ることで、よりよいセキュリティ対策を実施することができるでしょう。特にUTMは、様々なセキュリティソフトウェアを一括導入・一括管理できるので、是非導入をご検討下さい。
サイバー攻撃対策には、セキュリティソフト導入を
DNSサーバー攻撃のような攻撃を防ぐには、総合的なセキュリティ対策が重要ですが、まずはセキュリティ対策ソフトを導入しなければいけません。
対策したい攻撃を明確にし、どんなソフトが有効なのかを把握し、ソフトが自社のシステムに合っているかや、費用対効果をきっちり把握して、快適なビジネス環境を整えましょう。