DNS水責め攻撃、食らっちゃいました:こうしす! こちら京姫鉄道 広報部システム課 @IT支線(37)
情報セキュリティの啓発を目指した、技術系コメディー自主制作アニメ「こうしす!」の@ITバージョン。第37列車は「DNS水責め攻撃」です。※このマンガはフィクションです。
「こうしす!」とは
ここは姫路と京都を結ぶ中堅私鉄、京姫鉄道株式会社。
その情報システム(鉄道システムを除く)の管理を一手に引き受ける広報部システム課は、いつもセキュリティトラブルにてんてこ舞い。うわーん、アカネちゃーん。
「こうしす!@IT支線」とは
「こうしす!」制作参加スタッフが、@IT読者にお届けするセキュリティ啓発4コマ漫画。
第37列車:戦じゃ!
井二かけるの追い解説
マンガのテーマは、「DNS水責め攻撃」(DNS water torture attack)です。
システム課の祝園アカネが、「DNS水責め攻撃」により会社のWebサイトが閲覧できなくなったことに気付いた場面が描かれています。
「DNS水責め攻撃」とは何でしょうか。
もちろん、マンガの最後のコマに登場する「備中高松城の水攻め」とは全く関係ありません。日本語では同音異義語となるため紛らわしい表現ですが、「DNS水責め攻撃」の由来は、水を用いて包囲攻撃する「水攻め」ではなく、水責め拷問の「水責め」です。
この攻撃手法が、中国式の水責め(「Chinese water torture」)をほうふつとさせることから命名されたようです。より具体的な名前として、「ランダムサブドメイン攻撃」という別名も知られています。
「DNS水責め攻撃」は、DNSサーバを対象としたDDoS攻撃手法の一つです。そのドメインのWebサイトにアクセスできなくなる、というような結果を招くことがあります。
Lumen Technologiesの報告によると、2023年第1四半期で、前年の同じ四半期に対してDNS増幅攻撃が417%増加しており、その大半を「DNS水責め攻撃」が占めていたとされています。
このところTwitterでも、幾つかのWebサイトのダウンが「DNS水責め攻撃」の影響ではないかと話題となりました。
DNSとは
私たちはWebサイトを閲覧する際、「https://www.itmedia.co.jp/」といったURLを用いてアクセスします。その裏側で、WebブラウザがWebサーバにアクセスするために、さまざまなことが行われています。その一つが「名前解決」です。
Webサーバと通信するためには、「203.0.113.2」というような、WebサーバのIPアドレスが必要です。そのため、URLのドメイン名「www.itmedia.co.jp」から、IPアドレス「203.0.113.2」に変換するための電話帳のようなシステムが必要となります。
インターネットにおいて、その「名前解決」の役割を担っているのが、DNS(Domain Name System)です。
筆者の限られた理解のため非常に大ざっぱな説明となりますが、「DNS水責め攻撃」の仕組みを理解するためには、まずDNSには2種類のサーバがあることを知っておかなければなりません。「権威サーバ」(※1)と「キャッシュサーバ」(※2)です。
まずクライアントは、キャッシュサーバに問い合わせします。
クライアント キャッシュサーバさん、ドメイン名「www.itmedia.co.jp」のIPアドレスを教えてください
すると、キャッシュサーバは、初回は「www.itmedia.co.jp」の名前解決に必要な各権威サーバに問い合わせます(「再帰問い合わせ」「反復問い合わせ」については省略)。
キャッシュサーバ 「itmedia.co.jp」の権威サーバさん、ドメイン名「www.itmedia.co.jp」のIPアドレスを教えてください
すると、権威サーバがIPアドレスを応答します。
権威サーバ キャッシュサーバさん、ドメイン名「www.itmedia.co.jp」のIPアドレスは「203.0.113.2」です
この応答を権威サーバから受け取るとキャッシュサーバは、クライアントに応答すると同時に、その情報を一定期間キャッシュします。
キャッシュサーバ クライアントさん、ドメイン名「www.itmedia.co.jp」のIPアドレスは「203.0.113.2」です
次回以降の問い合わせでは、権威サーバに問い合わせせずに、キャッシュから応答します。
クライアント キャッシュサーバさん、ドメイン名「www.itmedia.co.jp」のIPアドレスを教えてください
キャッシュサーバ クライアントさん、ドメイン名「www.itmedia.co.jp」のIPアドレスは「203.0.113.2」です
これにより権威サーバの負荷を軽減します。
このようなキャッシュサーバは各インターネットサービスプロバイダー(ISP)などに用意されています。ISPから提供される接続情報などで目にする、私たちにとって身近な「DNSサーバ」は、キャッシュサーバの方であると考えて差し支えないでしょう。
DNS水責め攻撃の手法とは
では、キャッシュサーバに対して、キャッシュされていない架空のサブドメイン名を問い合わせ続ければどうなるでしょうか?
クライアント キャッシュサーバさん、「ababababa.itmedia.co.jp」のIPアドレスを教えてください
クライアント キャッシュサーバさん、「ohohohoho.itmedia.co.jp」のIPアドレスを教えてください
クライアント キャッシュサーバさん、「hahahaha.itmedia.co.jp」のIPアドレスを教えてください
キャッシュサーバは、あくまでキャッシュの役割を果たすものでしかありません。キャッシュに存在しなければ、権威サーバに問い合わせるまでは、そのサブドメイン名が架空か実在かを知る由がありません。そのため、架空か実在か分からなくても、いったんは「itmedia.co.jp」の権威サーバに問い合わせます。
そして、毎回毎回異なる架空のサブドメインで問い合わせ続けると、キャッシュが一切働かず、権威サーバに問い合わせ続けることになります。「DNS水責め攻撃」とは、たったこれだけのシンプルな攻撃手法です。
一見ショボい攻撃ですが、世界中には無数のキャッシュサーバがありますから、多くのキャッシュサーバに対して同じような問い合わせが続けられると、「水責め」の一滴一滴の水は濁流となり、権威サーバに押し寄せることになるのです。
原因と対策
オープンリゾルバ
原因の一つは、誰彼構わず問い合わせを受け付けるキャッシュサーバの存在です。
このようなキャッシュサーバは、「オープンリゾルバ」と呼ばれ、「DNS水責め攻撃」に限らずさまざまな攻撃の踏み台にされ得ることが知られています。
知らず知らずのうちに設定不備によってオープンリゾルバとなってしまい、管理者がそれに気付いていないというケースも多いようです。
インターネット全体において、こうした「オープンリゾルバ」を減少させることは重要な対策です。攻撃に加担してしまわないためにも、いま一度設定を確認し、キャッシュサーバが自ネットワーク以外からの問い合わせを許可しないように設定する必要があります。
送信元IPアドレス詐称パケット
送信元IPアドレスの制限だけでは不十分な場合があります。なぜならば、送信元IPアドレスは詐称可能だからです。
DNSはUDPとTCPの両方が使用可能であり、そのうちのUDPを用いた場合では、送信元IPアドレスを詐称したパケットでサーバに対してリクエストを一方的に送り付けることが可能です。そのため、キャッシュサーバが自ネットワーク以外の問い合わせを拒否していたとしても、送信元IPアドレスを自ネットワークのIPアドレスに詐称されてしまえば無力です。
そのため、ルーターやファイアウォールなどのパケットフィルターやACL(アクセス制御リスト)において、インターネット側のインタフェースから、自ネットワークのIPアドレスを送信元と詐称するIPパケットが入ってきた場合には、パケット棄却するように設定する必要があります。
日本国内のISPのネットワークや組織内ネットワークでは一般的に、インターネット側に向けて送信元IPアドレスを詐称したパケットを送信できないように制限されていますが、インターネット側から詐称パケットが侵入することまで防止しているとは限らないようです。
攻撃に加担してしまわないためというのはもちろんですが、詐称パケットによって自身が別の攻撃にさらされるリスクもありますから、いま一度、設定を確認しましょう。
ワイルドカードをキャッシュする仕組みがないこと
もう一つの原因は、現在のDNSにはワイルドカードをキャッシュする仕組みがないことが挙げられます。
理論上、もしキャッシュサーバが、「ドメイン名『*.itmedia.co.jp』は、IPアドレス『203.0.113.2』である」というようなワイルドカード情報をキャッシュできるようになれば、権威サーバへの問い合わせを抑制できるため、「DNS水責め攻撃」への対策となるかもしれません。
しかし、これを実現するためには、少なくとも権威サーバは「*.itmedia.co.jp」に該当する全てのサブドメインの情報を応答しなければならないと考えられるため、それが不要な情報開示となり、新たなセキュリティ上のリスクとなることも考えられます。幾つかのアイデアはありますが、「DNS水責め攻撃」のためだけに、別のリスクを誘発する仕様変更を行うべきかどうかと考えると、微妙なところがあります。
従って、現実にキャッシュサーバがワイルドカードをキャッシュできる仕組みが登場する可能性は低いと考えられます。
Webサイトなどの管理者が取れる対策は……
では、Webサイトなどの運営者が取れる対策はあるのでしょうか?
これは難しい問題です。Webサーバを増強したり、Webサイトに告知を掲載したりしても、利用者側からすると、Webサーバにアクセスする以前にWebサーバのIPアドレスすら分からないのですから、全く意味がありません。
DNS権威サーバへのアクセスを遮断するにしても、問い合わせ元は、正当なキャッシュサーバであることが多いため、正当な利用者までもが巻き添えになるかもしれません。
一般的には、権威サーバを増強したり、複数の権威サーバで分散させたり、あるいは他のドメインの巻き添えを食らわないように共用DNSサービスの利用を避けたりすることが緩和策となるかもしれません。しかし、それにも限界があります。結局のところ、その対策が機能するかどうかは、コストとの相談となるからです。
1時間のダウンも許されないWebサイトなのか、数週間ダウンしていても誰も気付かないようなWebサイトなのかによっても、どれだけのコストをかけるべきかの判断は変わってくることでしょう。攻撃が落ち着くまで、ひたすら耐え忍ぶしかない場合もあるかもしれません。
例えば、巻き添えを承知で一部アクセスを遮断するのか、コストをかけてでもサーバを増強するのか、何らかの方法でうまく受け流すのか、Webサイトのダウンを容認するのか、リスクアセスメントの際に検討できます。それだけでなく、攻撃により自社のドメインがアクセス不能になってしまった場合に備え、自社のWebサイト以外にも、TwitterなどのSNSを活用し、情報発信手段を確保しておくことも重要といえるでしょう。
Copyright 2012-2023 OPAP-JP contributors.
本作品は特に注記がない限りCC-BY 4.0の下にご利用いただけます
筆者プロフィール
原作:井二かける
アニメ「こうしす!」監督、脚本。情報処理安全確保支援士。プログラマーの本業の傍ら、セキュリティ普及啓発活動を行う。
著書:「こうしす!社内SE 祝園アカネの情報セキュリティ事件簿」(翔泳社)
「ハックしないで監査役!! 小説こうしす!EEシリーズ 元社内SE祝園アカネ 監査役編 [1]」(京姫鉄道出版)
dアニメストアにて、アニメ『こうしす!EE』配信中。
- Twitter:@k_ibuta
解説:京姫鉄道
「物語の力でIT、セキュリティをもっと面白く」をモットーに、作品制作を行っています。
原作:OPAP-JP contributors
オープンソースなアニメを作ろうというプロジェクト。現在はアニメ「こうしす!」を制作中。
- Twitter:@opap_jp、@kosys_pr
- 公式サイト:Open Process Animation Project Japan(OPAP-JP)
- 貢献者一覧:こうしす!/クレジット
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- イマドキの小学生は「多要素認証」を正しく使いこなすらしい
情報セキュリティの啓発を目指した、技術系コメディー自主制作アニメ「こうしす!」の@ITバージョン。第10列車は「多要素認証」です。※秋の特別列車、3両編成です。 - 「『一回転』でググれ」と言ったら、逮捕されますか?
情報セキュリティの啓発を目指した、技術系コメディー自主制作アニメ「こうしす!」の@ITバージョン。第13列車は「不正指令電磁的記録供用罪」です。※このマンガはフィクションです。実際の法解釈や法運用とは異なります - 21世紀の人類がZIPのパスワードを直後のメールで送るのは、なぜデスか?
情報セキュリティの啓発を目指した、技術系コメディー自主制作アニメ「こうしす!」の@ITバージョン。第11列車は「パスワード別送」です。