正しいウェブページの代わりにエラーページを強制表示させる新型サイバー攻撃「CPDoS」が発見される
ケルン工科大学の研究チームが、コンテンツ・デリバリ・ネットワーク(CDN)で配信されているウェブページの代わりにエラーページを強制的に表示させる新型のサイバー攻撃「Cache Poisoned Denial of Service(キャッシュ汚染型DoS攻撃、CPDoS)」の存在を明らかにしました。
CPDoS: Cache Poisoned Denial of Service
https://cpdos.org/
CDNは、ウェブ上で表示されるコンテンツのデータ(キャッシュ)を世界中のサーバー上に分散させ、ユーザーが地理的に近い場所に存在するサーバーからデータにアクセスすることが可能にすることで、データ転送を高速化・安定化させるというシステムです。CDNはデータがサーバー上に分散して保存されるため、元のサーバーがダウンしていても別のサーバーからデータにアクセスできようになります。
そんなCDNのシステムを逆手に取ったサイバー攻撃がCPDoSで、そのメカニズムを簡単に説明すると以下のような6つのステップとなります。
1:攻撃者は、まず悪意のあるヘッダを挿入したHTTPリクエストをCDNのキャッシュサーバーに送信します。
2:次に、キャッシュサーバーが最新のキャッシュを保存するために、元サーバーに対してリクエストを送信します。すると、悪意のあるヘッダが原因で元サーバーはキャッシュサーバーに対して「エラーページ」を返信します。
3:キャッシュサーバーに正しいページの代わりにエラーページが保存されます。
4:キャッシュサーバー上にエラーページが保存されたことを確認して、攻撃完了。
5:通常のユーザーがウェブページを見ようとすると、CDNのシステムによって元ページの代わりにキャッシュサーバーにアクセスします。
6:しかし、キャッシュサーバー上には正しいウェブページの代わりにエラーページが保存されてしまっているため、ユーザー側にはエラーページが表示されます。
CPDoSは、CDNやプロキシサーバーによってホスティングされているいかなるウェブリソースでもブロック可能。研究チームによると、1つの悪意のあるHTTPリクエストですら、対象となったコンテンツに対するアクセスを全て妨害することができるとのことです。
今回の発表では、CPDoSを引き起こす悪意のあるヘッダを、「HTTPヘッダオーバーサイズ(HHO)」「HTTPメタ文字(HMC)」「HTTPメソッドオーバーライド(HMO)」として分類し、それぞれについても解説を行っています。
◆HTTPヘッダーオーバーサイズ(HHO)
HTTPリクエストヘッダのサイズは、ReDoSなどの攻撃を予防するため、大半のウェブサーバーでは「8192バイトまで」といった制限が課されています。しかし、Amazon CloudFrontなど一部のCDNでは、その制限が「20480バイトまで」となっており、「何バイトで制限するか」はサービスによりまちまちです。
HHOは、キャッシュサーバーと元サーバーの間の「制限バイト数の差」を突く攻撃です。例えば、攻撃者がキャッシュサーバーの制限より小さく元サーバーの制限より大きいサイズのリクエストを送信したとします。この場合、このリクエストはキャッシュサーバーの制限を満たしているので、キャッシュサーバーはリクエストを受理します。しかし、キャッシュサーバーが元サーバーに対してリクエストを送信すると、元サーバーのサイズ制限に引っかかってしまうため、キャッシュサーバーにはエラーページが返信されてしまいます。
HHOによるCPDoSを実演したの様子は以下のムービーでチェックできます。最初に表示されていたウェブページが、実験の最後で「Bad Request」のページに代わっています。
◆HTTPメタ文字(HMC)
HMCもHHOとほぼ同様の手口です。HMCでは、元サーバーが「有害」だと判定しうる「\n」「\r」「\a」などの制御文字を含んだリクエストを送信します。元サーバーがこれらの制御文字を「有害」と判定するとキャッシュサーバーに対してエラーページを返します。
◆HTTPメソッドオーバーライド(HMO)
HTTPサーバーは「GET」「POST」「DELETE」「PUT」などのHTTPメソッドに対応していますが、プロキシサーバーやキャッシュサーバーなどは「GET」「POST」にしか対応していない場合がほとんどとのこと。
HMOはHTTPメソッドを置換するようなヘッダを含んだリクエストです。途中で「POST」に置き換わるようにヘッダに書き込まれた「GET」リクエストを送信したとすると、キャッシュサーバーはこのリクエストは「GET」だと扱います。しかし、元サーバーでは「POST」として実行されるため、「POST」リクエストを処理することができるアプリケーションが埋め込まれていない場合には、404 Not Foundのエラーページを返してしまいます。
HMO攻撃を実行しているのが以下のムービー。「Welcome to the start page」と表記されていたウェブページが、「POST」リクエストを処理できずに攻撃実行後はエラーページに代わります。
研究チームはどのサーバーとCDNの組み合わせがどの手法のCPDoSに脆弱性を有しているのか、表を使って示しています。○はCPDoSには対策済みの組み合わせです。
研究チームはCPDoSに対して、緩和策を複数講じています。1つ目の緩和策は「デフォルトでHTTPエラーページをキャッシュしないようにCDNを設定する」という手法で、2つ目は「各エラーページのヘッダに『Cache-Control:no-store』を追加する」という手法とのこと。研究チームはCDN利用者側に対して緩和策を促すだけではなく、CDNサービスを提供する事業者に対しても対策の必要性を訴えています。
・関連記事
ChromeとFirefoxを改変する「目的不明」の攻撃手法が新たに発見される - GIGAZINE
DDoSなどの攻撃が発生する根本的な原因はIPを偽装する「IPスプーフィング」が可能なことにある - GIGAZINE
毎秒1テラビットという史上空前のDDoS攻撃が発生、攻撃元はハッキングされた14万5000台ものウェブカメラ - GIGAZINE
世界地図で今まさにどこで大規模なDDoS攻撃が起きているかがわかる「Digital Attack Map」 - GIGAZINE
「史上類を見ないレベル」のDDoS攻撃を引き起こしたマルウェア「Mirai」を作成し逮捕されたハッカーがFBIに協力していたと判明 - GIGAZINE
・関連コンテンツ