Dozens of web apps vulnerable to DNS cache poisoning via ‘forgot password’ feature
2021/07/23 DailySwig — Web サイトにおいて、電子メールのドメイン解決に脆弱性が存在するため、多くのサイトが DNS 攻撃を受ける可能性があり、また、アカウントの乗っ取りにつながる可能性があることが、新たな調査で明らかになった。SEC Consult のセキュリティ研究者である Timo Longin が、146種類の Web アプリケーションを調査した結果、パスワード・リセットのためのメールを、悪意の行為者たちのサーバーにリダイレクトするために、悪用が可能なコンフィグレーション・ミスを発見した。
DNS キャッシュ・ポイズニング
ほとんどの Web サイトには「パスワードを忘れた」という機能があり、ユーザーの電子メールにリンクやワンタイム・パスコードが記載されたメッセージが送信され、パスワードのリセットや、アカウントへのアクセス回復などが可能になる。この研究の目的は、攻撃者がアプリケーションを騙し、こうした電子メールを、任意のサーバーに送信させることができるかどうかを調べることだった。そのためには、攻撃者は DNS キャッシュ・ポイズニングを実行する必要がある。このポイズニングでは、対象となるユーザーのドメイン名 (gmail.com や example.com など) が、攻撃者が制御するサーバーの IP アドレスへと解決される。
今回の研究では、著名な3つの攻撃に注目した。1つ目の手法は Kaminsky 攻撃と呼ばれるもので、この攻撃手法を 2008年に発見/報告した、セキュリティ研究者である故 Dan Kaminsky にちなんで名付けられている。Kaminsky 攻撃は、Web サーバーの低エントロピーのポート割り当てを利用して、DNS の解決リクエストを傍受し、偽のレスポンスを送信するものだ。
2つ目の手法は、2013年に初めて報告された IP フラグメンテーション攻撃と呼ばれるものだ。この手法とは、サーバーのレスポンス・バッファサイズが限られていることを、攻撃者が利用することで悪意のパケットを送信するものだ。Longin は、「我々のセキュリティ評価において、内部の Web アプリケーションの「パスワードを忘れましたか?」機能を悪用して、電子メールに記載されたパスワード・リセット用 URL を取得することは、普通に実現できている。
これは、ARP (Address Resolution Protocol) スプーフィングを利用して、Web アプリケーションから送信されたパスワード・リセット・メールを、攻撃者にリダイレクトさせる悪意の中間者攻撃が可能なため、ローカル・ネットワークでは簡単に行える。この攻撃ベクトルに基づき、また、壊滅的な結果になりかねないことを念頭に、このコンセプトをインターネット上の Web アプリケーションに適用する試みが行われた」と The Daily Swig に述べている。
悪意の DNS レスポンスを試す
Longin は、146種類の Web アプリケーションにおける、DNS 解決プロセスを分析した。彼は、独自のドメインと権威 DNS サーバー (ADNS) を設定し、ドメイン名を解決するための独自の DNS プロキシと、DNS レスポンスを記録するためのツールを開発した。そして、カスタム・ドメインのサブ・ドメインを使って、それぞれの Web サイトに手動でユーザーを登録し、さまざまな攻撃手法に対する応答を記録した。ユーザー登録に 20時間をかけ、ログ分析に数百時間かけた結果、Kaminsky 攻撃が可能なアプリケーションが2件、IP フラグメンテーション攻撃が可能なアプリケーションが 62件見つかったという。
Longin は、「IP フラグメントによる DNS 攻撃は、Kaminsky 攻撃のようには知られていないだろう。IP フラグメント攻撃が存在することを確認するために、このテーマについて深く調べる必要があった。IP フラグメント攻撃は非常に複雑であり、それほど簡単に攻略できるものではない。また、IP フラグメンテーション攻撃への対策は、ほとんどの場合、すぐにはできない。つまり、多少の設定作業が必要になる場合がある」と述べている。脆弱性のあるサーバーに共通する問題点は、DNSSEC や DNS Cookie といったセキュリティ機能がないこと、または、誤ってコンフィグレーションされていることだった。興味深いことに、これらの機能は何年も前から存在しているのだが、サーバー管理者たちに無視され続けている。
Web サーバーを保護するために
SEC Consult は、現時点で進行している情報開示とパッチ適用のプロセスを調整するため、脆弱性のある Web サイトの名前を公表していない。今回の調査では、146種類の Web アプリケーションが対象としたが、その他にも、数多くのアプリケーションが脆弱であることに間違いないと、Longin は警告している。大手の DNS プロバイダーである Google / Cloudflare / Cisco などは、Web サイトを保護するためのセキュリティ対策を実施している。
しかし、信頼できる DNS プロバイダーだけでは、この攻撃は阻止できない。DNS の解決プロセスには数多くの関係者が関わっており、さまざまな問題が発生する可能性がある。SEC Consult は、Web アプリケーションの DNS リゾルバのセキュリティを評価する、オープンソース・ツール DNS Reset Checker を公開している。Google やDNS Flag Day のガイドラインを利用し、DNS 解決プロセスを安全にすることも、Longin は提案している。
パスワード・リセットのタイミングで、この攻撃を仕掛けられると、大半の人は騙されると思います。受信したメールに貼られたリンクを、むやみにクリックする人はいないでしょうが、このパスワード・リセットのように、それを待っているときに、ぴったしのタイミングで届く場合には、誤った対応の確率が大幅に上昇するはずです。それにしても、SEC Consult の Timo Longin さんには頭の下がる思いです。こうして、入念なテストを行い、その結果を共有すてくれるのですから。このような研究者がいて、私たちのセキュリティは守られているのですね。