DNSサーバーがDDoSに悪用される!?/知って得するドメイン名のちょっといい話 #5
レンタルサーバーの利用者がDNSの運用に目を向ける機会は少ないかもしれないが、DNSがDDoSの道具となってしまうという危険性については、加害者・被害者の両方になり得るという観点から知っておいて損はないだろう。
「DoS」「DDoS」とは
最近「DoS」「DDoS」と呼ばれるサーバー攻撃にDNSが悪用される、ということに関する認識が高まっています。
「DoS」は「Denial of Service(サービス不能攻撃)」の略で、攻撃対象となるホストに対して大量のデータを送りつけ、そこで提供されているサービスを利用不能にしてしまうものです。レンタルサーバーの利用者にとって、攻撃が自分に向けられることは脅威であることはもちろん、サーバーに侵入され、「踏み台」にされて「加害者」となってしまうこともあります。
もう1つの「DDoS」とは「Distributed DoS(分散サービス不能攻撃)」の略で、攻撃元を分散させることでフィルタリングを困難にし、攻撃力も単なるDoSをはるかに上回るものです。最近ではウイルスやトロイの木馬と呼ばれる手法を用い、攻撃者の意のままに操ることができるようにされた多数のPCを使う「ゾンビPC」や「ボットネット」と呼ばれる仕組みを攻撃に利用する例がよく見られます。
DNSのトラフィック増幅機能
DNSを利用したDDoSを理解するためには、DNSの問い合わせと応答の通信データ量(トラフィック)の特性を知っておくことが必要です。
DNSの問い合わせはとても単純です(図1)。ドメイン名と、知りたい情報のタイプを指定しているだけなので、普通はわずか数十バイトです。これに対して応答のサイズは、要求した情報タイプにもよりますが、数百バイト、場合によっては数千バイトにもなることがあります。
小さなデータを送ると大きなデータが返ってくる、というのがDNSの性質で、言い換えるとトラフィックを増幅させている、ということになります。トラフィックだけ見れば、DNSは増幅器なのです。そして、この性質がDDoSに悪用されてしまうのです。
DNSリフレクション攻撃とは
DNSサーバーは、その役割によって2種類に分類される。1つはドメイン名の情報を格納している権威DNSサーバーで、ドメイン名の登録者や、その運用を預かるレンタルサーバー事業者などが運用する。もう1つは、ユーザーからの要求を受けて権威DNSサーバーを検索し、その情報を蓄積するDNSキャッシュサーバーで、ISPなどが会員ユーザーに提供するために運用する。
DNSを利用したDDoSを行う攻撃者は、まず管理下にある(もしくは不正に侵入した)権威DNSサーバー※に、大きな情報を登録しておきます。そして、ISPなどが運用するDNSキャッシュサーバー※に、その大きな情報を検索するように問い合わせを出します。普通なら問い合わせを出した攻撃者の元へ応答が返ってくるのですが、攻撃者は問い合わせをするときに、データの送信元IPアドレスを攻撃対象のIPアドレスに書き換えて送り出します(これを「送信元IPアドレスの詐称」と言います)。こうすることでDNSの応答は攻撃対象に向かって送られることになります。
増幅器となるDNSキャッシュサーバーの数を増やせば、攻撃力はその数に比例して増加し、非常に厄介なDDoSとなり、さらにボットネットなどを使ってDNSキャッシュサーバーへ問い合わせを出すことも考えられます。この場合は数百または数千といった攻撃側の性能限界まで実行されるため、その攻撃力は想像を超えたものになるでしょう。
このように、問い合わせデータをDNSキャッシュサーバーが増幅(amplify)・反射(reflection)して攻撃対象へ送るように見えることから、この攻撃は「DNSamp」や「DNSリフレクション攻撃」と呼ばれます(図2)。
どのように対策を立てたらいいか
さて、この攻撃を防ぐためにはどうしたらよいのでしょうか?
残念ながら、効果的な防衛策はありません。決定的なDDoS防衛対策がなかなか開発できないことは、多くの事業者の悩みの種の1つです。この問題には、攻撃そのものを防ぐという視点で、インターネット全体での対策が必要で、具体的には次のようなことが考えられます。
1. DNSキャッシュサーバーのアクセス制限
DNSキャッシュサーバーにインターネット全体からアクセスできるようになっていると、DNSリフレクション攻撃のように悪用される危険性が高まります。レンタルサーバー上でDNSキャッシュサーバーを運用している場合、必要な範囲からのアクセスのみを許可するようにしておかないと、ある日突然「あなたのDNSサーバーから攻撃が来ている」と言われかねません(図3)。
2. 送信元IPアドレス詐称を防ぐ
DNSリフレクション攻撃は、送信元IPアドレスの詐称により可能となります。そもそも、インターネットにおいて送信元IPアドレスを詐称することがあってはいけません。このため、ネットワークの運営者は、自分のネットワークとインターネットとの境界において、インターネットへ出て行こうとするデータの送信元IPアドレスを確認し、それが自分のネットワークのものでない場合は詐称していると判断してフィルタリング対象とすべきです。これを「イングレスフィルタリング」と言います(図4)。
これらの対策は、レンタルサーバー利用者ではなく、ISPやレンタルサーバー事業者が行うべきものであることが多いですが、DoSやDDoSは、今日のインターネットにおいてあらゆる人が認識すべき問題であり、対策に取り組まなければならない課題です。自分自身や自分が利用しているサービス事業者が、問題意識を持って対策しているかについて、考える機会を持ってみてはいかがでしょうか。
- DNSの再帰的な問い合わせを悪用したDDoS攻撃手法の検証について(警察庁)(PDF)
- DNSの再帰的な問合せを使ったDDoS攻撃の対策について(JPRS)
- RFC 2827:送信元IPアドレス詐称によるDDoSを防ぐためのイングレスフィルタリング
※この記事は、レンタルサーバー完全ガイドの発行する雑誌『レンタルサーバー完全ガイドVol.6』(2006年8月31日発売)に掲載されたものを再編集して掲載しているものです。
ソーシャルもやってます!