インターネットを影で支えている技術の1つである「DNS(Domain Name System)」。IPアドレスとホスト名の変換を行う重要なシステムですが、DNSに対して攻撃をしかけてインターネットの機能を停止させることを目的とした攻撃者がいることが知られています。
今回紹介する「DNS水責め攻撃」はDNSに対する攻撃の1つです。DNS水責め攻撃とはどのような攻撃なのでしょうか。危険性と対策方法について徹底解説します。
この記事の目次
DNS水責め攻撃(ランダムサブドメイン攻撃)とは
DNS水責め攻撃(ランダムサブドメイン攻撃)とは攻撃対象に大量のランダムなサブドメインを問い合わせて、DNSの機能停止を狙う攻撃手法のことです。
この攻撃が初めて観測されたのは2014年の初頭のことでしたが、当初はこの攻撃の真の目的は明らかになりませんでした。その後2014年5月から7月の間に、多数のドメインがDNS水責め攻撃を受け、サービス停止の状態になりました。この時の攻撃パターンや攻撃対象を分析することで、DNS水責め攻撃の目的は、DNSサーバーに大量の問い合わせを送り付けてサービス不能の状態にして、アクセスできない状態にすることであると考えられるようになりました。
DNS水責め攻撃(ランダムサブドメイン攻撃)の仕組み
DNS水責め攻撃を成立させるために、まず攻撃者は「オープンリゾルバ」のリストを用意します。オープンリゾルバとはDNSの名前解決を行うコンピュータの中でも、不特定のクライアントからのDNSの問い合わせに対して、最終的な回答が得られるまで問い合わせを繰り返すDNSサーバーのことです。
このオープンリゾルバには脆弱性を持つホームルータも含まれます。なぜなら脆弱性を持つホームルータはWANからの問い合わせに対しても処理を受け付けてしまうからです。つまり外部から見た場合、このようなホームルータもオープンリゾルバとして動作していることになります。
そしてボットネットからリスト内のオープンリゾルバに対して、攻撃対象のドメイン名にランダムなサブドメインをDNSに問い合わせるようにリクエストを送ります。例えば「example.net」というドメイン名に対して、「abcdedf123456.example.net」のようにランダムなサブドメインを大量に作りDNSに問い合わせます。この問い合わせはボットネットから送信されるため、大量な問い合わせがオープンリゾルバに届きます。
しかしランダムなサブドメインは実際には存在していません。存在していないということは、キャッシュDNSサーバーにもキャッシュされていないため、ランダムなサブドメインごとに権威DNSサーバーへ問い合わせが毎回発生します。
このように権威DNSサーバーやキャッシュDNSサーバーに対して問い合わせが集中することで、”過負荷”となりDNSサーバーのサービスが停止してしまいます。これがDNS水責め攻撃の仕組みです。
このようにDNS水責め攻撃はDNS本来の仕組みを利用してキャッシュ機能を無効化します。そのため根本的な対策を取ることが難しいという特徴を持ちます。
DDoS攻撃とは
「DDoS攻撃(Distributed Denial of Service Attack)」とは標的となるコンピュータに対して大量の処理負荷を与えることで、サービス機能を停止に追い込む攻撃のことです。
DDoS攻撃はDoS攻撃を分散攻撃へと発展させた攻撃のことです。DoS攻撃が1台のコンピュータからの攻撃であるのに対して、DDoS攻撃では攻撃者によって制御されている大量のコンピュータを一斉に操って、単一の標的に攻撃を仕掛けます。
DDoS攻撃に参加するコンピュータはトロイの木馬などが仕込まれた普通のコンピュータであることがほとんどです。これらのコンピュータはDDoS攻撃のための踏み台として利用され、通常のユーザーや管理者に気づかれないように攻撃に参加しています。そのため、真に悪意を持つコンピュータの特定が難しいことが特徴です。
ボットネットから分散して攻撃を仕掛けるという点では、DDoS攻撃はDNS水責め攻撃に似ていると言えるでしょう。
DNS水責め攻撃(ランダムサブドメイン攻撃)の危険性
DNS水責め攻撃には以下の2つの危険性があります。
事前の検知は困難
DNS水責め攻撃では存在しないサブドメインをリクエストする攻撃ですが、このリクエストが正規のものか攻撃されているものなのか見分けることが難しい点があげられます。機械的に判別することが難しいため、最終的には人間の目で攻撃の傾向を見極めて、IPアドレスの情報や通信量の制御などの対策を取ることが必要でした。
サービスが継続出来なくなるリスク
DNSはインターネットで通信を行うための重要なシステムです。DNS水責め攻撃によりDNSサーバーに過負荷がかかるとサービスの停止につながります。
DNSサーバーが停止した場合、ユーザーからの正規の問い合わせに対してレスポンスを返せなくなります。つまりサービスの継続が停止してしまい、通信不能の状態となってしまいます。
DNS水責め攻撃(ランダムサブドメイン攻撃)へのセキュリティ対策
根本的な対策が難しいDNS水責め攻撃ですが、有効な対策方法として以下の2点があげられます。
DNSログを解析し攻撃をいち早く検知する
DNS水責め攻撃は予兆に気づきにくい攻撃ですが、DNSログを解析して異常な数の不審な問い合わせがあった場合はDNS水責め攻撃としていち早く検知して対策を取ることが可能です。例えば特定のドメインに対して、一定数以上の問い合わせがあった場合は、DNSの名前解決を停止するなどです。
このような対策により、DNSが過負荷になる前にDNSサーバーを攻撃から守ることができます。
対応する製品を導入する
DNS水責め攻撃に対応した製品もいくつかあります。例えばDNSログを高速に保管し、解析するための専用のシステムや、DNS問い合わせの秒間問合数(QPS)を計算して、予め設定した閾値を超えると、処理を制限するシステムなどです。
まとめ
DNS水責め攻撃はDNSの仕組みそのものを利用した攻撃であり、根本的な対策は困難です。さらにDNSに対する攻撃は他にも多数存在しています。このようなDNSに対する攻撃が止まない理由の1つとして、DNS自体が未熟な技術であることが要因の一つです。
今回、DNS水責め攻撃の対策方法として、ログを解析する方法と、攻撃に対応する製品を導入する方法の2つを紹介しましたが、攻撃そのものを停止させる対策ではありません。
DNSに限らずインターネットの世界には悪意を持つ攻撃者が様々な方法で攻撃を仕掛けています。1つ1つの攻撃に対して、防御する側は個別に対策するしかありません。インターネットの世界の攻撃者と防御者のいたちごっこの攻防はこれからも長く続きそうです。