DNSリバインディングは、2006年頃からある古典的なサイバー攻撃の一つだ。この攻撃では、DNS(Domain Name System)の仕組みを悪用してユーザーのブラウザを経由し、内部ネットワークに不正アクセスを行う。対策の強化が進んだことで一時は沈静化していたが、ネットワークを取り巻く環境の変化により、2022年頃から再び注目されるようになった。
本稿では、EGセキュアソリューションズ 取締役 CTO / 情報処理推進機構(IPA)非常勤研究員 / 技術士(情報工学部門)の徳丸浩氏にDNSリバインディングの特徴や、講じておくべき対策について伺った。
DNSリバインディングとは
DNSリバインディングとは、DNSを悪用したサイバー攻撃を指す。この攻撃では、攻撃者が偽のWebサイトとDNSサーバを用意し、ユーザーがウェブブラウザ経由で取得するIPアドレスを巧妙に変更することで、SOP(Same-Origin Policy:同一生成元ポリシー)を回避して内部ネットワークへの不正アクセスを行う。これにより、攻撃者は通常外部からはアクセスできないサーバやデバイスに侵入し、不正な操作を行ったり、データを窃取したりするのである。
SSRFとの関連
DNSリバインディングは2006年頃から確認されており、「昔からある、それなりに有名な攻撃」(徳丸氏)だったが、その後、対策が進んだことや他のより深刻なセキュリティ脅威が登場したことで、しばし人々の関心は薄れていた。それが2022年頃から再び注目されるようになった要因の1つは「SSRF(Server-Side Request Forgery)との関連」だと同氏は話す。
SSRFとは、Webアプリケーションの脆弱性を利用し、外部公開されているサーバから、外部に公開されていないサーバにリクエストを送信して設定情報や認証情報を取得する攻撃手法だ。SSRFによる被害事例として有名なのは、2019年に発生した米金融大手・Capital Oneによる1億件以上の個人情報漏えいだろう。 このSSRFの初手として、DNSリバインディングと組み合わせてSSRF防御機能を回避する手口がある。こうしたことから、再びDNSリバインディングの注目度が高まっているのだ。
Ruby on Rails、Googleによるリバインディング対策
DNSリバインディングが注目を集める昨今、各所でもDNSリバインディング対策が強化されている。例えば、オープンソースのウェブアプリケーションフレームワーク「Ruby on Rails」では、「Rails6」からDNSリバインディングから開発環境を保護する機能が追加されており、デフォルトで有効になっている。また、Googleも無線ルーター「Google Nest Wi-Fi」にDNSリバインディング保護機能を搭載。さらにGoogle Chromeでは「More Private」と呼ばれる概念に基づき、プライベートネットワークの保護強化に取り組んでいるという。
DNSリバインディングの流れ
DNSリバインディングが行われる際の基本的な流れは、以下の通りだ。
- 攻撃者はまず、悪意のあるウェブサイトを作成する。
- 被害者がこのウェブサイトにアクセスすると、攻撃者のDNSサーバを介してDNSリクエストが行われる。なお、DNSキャッシュの有効期間(TTL:Time to Life)は非常に短い時間に設定されている(ここでは仮に5秒とする)。
- 初回のDNSレスポンスは悪意のあるウェブサイトのIPアドレスを返す。
- ブラウザがこのIPアドレスに基づいて接続を確立すると、攻撃用のJavaScriptコードがダウンロード・実行される。
- 攻撃用JavaScriptは5秒以上間隔を開けた後に悪意のあるウェブサイトのホスト名に再度アクセスすると、キャッシュが切れているので再び攻撃者のDNSサーバを介してDNSリクエストが行われる。
- 攻撃者のDNSサーバはローカルIPアドレスを返すことで、被害者のブラウザ上のJavaScriptはSOPを回避して、被害者の内部ネットワークへの不正アクセスを試みる。
「DNSのTTLを非常に短く設定することで生まれる『時間差』を突いた攻撃です」(徳丸氏)
クラウド化による影響
同氏は、DNSリバインディングについて「昔と比べ、実行されやすくなった面がある」と指摘。その要因の一つは「ウェブの使われ方の変化」だという。例えば、ブラウザの設定だ。従来、物理的なサーバを使用していた頃であれば、サーバのIPアドレスはあまり変化しなかった。
「サーバは一度設置したら、ある程度長い期間使うことが前提でした。そのため、DNSのTTLは1日ほどあり、ブラウザ側の設定も短期間では変わらなかったのです」(徳丸氏)
そこでDNSリバインディングへの対策として用いられていたのが「DNS Pinning」と呼ばれる対策だ。これは、DNSのTTLが短い場合も、ブラウザ側がDNSの参照結果を一定時間保持する仕組みだ。
しかし、現在は多くの企業がサーバをクラウド上で管理している。ウェブサイトへのアクセス数などに応じて、サーバの台数をフレキシブルに増減させることも可能だ。必然的に、IPアドレスも頻繁に変更される。これに対応するため、DNS Pinningの時間もどんどんと短くなっている。つまり、DNSリバインディングの対策として、十分に機能しなくなりつつあるのだ。
DNSリバインディングへの対策
では、DNSリバインディングを回避するには、どのような対策が考えられるのか。徳丸氏は情報システム部門などが講じるべき対策として、2つを挙げた。
1つは攻撃の対象となるIT機器、IoT機器に対して、IDとパスワードでの認証機能を確実に付与することだ。IDとパスワードの管理が着実になされていれば、「DNSリバインディングでは突破できない」と同氏は説明する。
もう1つはドメイン名指定による対策だ。DNSリバインディングでは、攻撃者は攻撃対象のIPアドレスにアクセスすることはできるが、ドメイン名を同一にすることはできない。そのため、内部ネットワークに接続できるドメイン名を指定することで、内部ネットワークへの侵入を防ぐことが可能になる。「仮に、指定したドメイン名以外からの接続があった場合はエラー表示をする、あるいは無害なコンテンツを返すといった方法がある」と同氏は話した。
最後に同氏は、「DNSリバインディングへの対策は、実施することで何か不便になるものではない。たとえ内部ネットワークであってもIDとパスワードをしっかりと設定する、社内サーバであっても、特に重要なものはしっかりと対策するといった基本的なことを行うことが大切だ」と説いた。
* * *
DNSリバインディングは比較的古典的な攻撃手法でありながら、ウェブを取り巻く環境の変化から現在も注目を集めている。とくにSSRFと組み合わせて実行された場合、大きな被害をもたらす可能性もある。本稿を参考に、改めてDNSリバインディング対策について見直してはいかがだろうか。
セキュリティ関連の注目ホワイトペーパー
東亞合成が見据える次世代のセキュリティ対策~マイクロセグメンテーション技術とは~SASEを導入した組織が直面する課題とは。なぜSWGやCASBの機能を最大限に生かせないのか
セキュリティを確保するためのヒント57を公開。あらかじめ十分な防御体制を敷いておくには
自治体が業務でクラウドサービスを利用するにあたり、求められるセキュリティ対策とは
セキュリティの基本を知る! オススメ記事
ランサムウェアにどう対応すべきか、実践方法をレクチャー【マルウェア対策ガイド】感染経路やリスク、予防策を指南
EDR、MDR、XDRとは? 押さえておきたいセキュリティのキーワードを解説
エンドポイントセキュリティの基本を解説 - リスクを減らすためにすべきこととは
ゼロトラストを基本から解説! “誰も信頼しない”セキュリティとは?
ネットワークセキュリティを高めるには? 押さえておきたいSASEの基本
セキュリティ強化のために知っておきたいサイバー攻撃 - 動向と対策
知っておきたいサイバー攻撃 - 動向と対策
情報資産を守るために必要なネットワークセキュリティの基本
今、製造業が考えるべきセキュリティ対策とは?
ランサムウェア対策の基礎知識 - 感染経路、対策、発覚後の対応
AIを悪用したサイバー攻撃にいかに対処すべきか
フィッシング攻撃とは - 主な手法やリスク、最新の対策方法を徳丸氏が解説
OWASP Top 10からひも解くリスクを専門家が解説 - Webセキュリティ担当者必見!
OWASP Top 10 for LLM Applicationsから見る、LLMにおけるセキュリティリスクとは
DDoS攻撃とは - 攻撃手法から対策まで、セキュリティの専門家が解説