Black Hat Europe:AWS API Gateway を回避する脆弱性が公開された

Researcher Details Vulnerabilities Found in AWS API Gateway

2021/11/10 DarkReading — Black Hat Europe 2021:London:Web 研究者の Daniel Thatcher は、文字と文字の間にスペースを入れ、ランダムな文字を数個入れるだけで、Amazon API Gateway に送信される HTTP ヘッダーを変更できた。AWS API Gateway は、開発者が Web 環境で API を記述/管理/保護するためのマネージド・サービスとして人気を得ている。

今週に開催された Black Hat Europe において、Intruder の研究者兼ペネトレーション・テスターである Daniel Thatcher が、このサービスの欠陥を発見した状況を示した。いわゆる HTTP header-smuggling を用いることで、API Gateway の IP アドレス制限の回避が可能になり、キャッシュ・ポイズニング攻撃を仕掛けられるのである。

HTTP header-smuggling とは、攻撃者がフロントエンド・サーバーを騙して、バックエンド・サーバーに対する悪意/偽の情報を、HTTP ヘッダー内も忍び込ませる手法である。 HTTP (HTTPS) ヘッダーは、たとえばクライアントのブラウザー/クッキー/IP アドレスに加えて、リクエストされた Web ページなどの情報を伝達してしまう。

Thatcher は Dark Reading に対して、ヘッダー名にスペースを入力した後に、ランダムな文字を入力するだけで、簡単に HTTP ヘッダーを変更できたと語っている。具体的には、HTTP リクエストのヘッダーに、”X-Forwarded-For abcd: z “を追加し、AWS API Gateway の AWS IP アドレス制限ポリシーを回避していた。

彼は、”フロントエンド・サーバーは、無効なヘッダーを除去しようとしるが、修正されたヘッダーを見ることができないため、バックエンド・サーバーに滑り込ませてしまう」と説明している。

HTTP header-smuggling を利用した、IP アドレス制限バイパスは比較的簡単に実行できたが、ターゲットのホワイト・リストに登録されている IP アドレスについて、攻撃者は何らかの知識や洞察力を持つ必要があるため、悪用することは難しいと述べている。Thatcher からの報告を得た後に、AWS は IP 制限バイパスの欠陥を直ちに修正したという。

しかし、その後に Thatcher は、AWS API Gateway における2つ目の欠陥を発見した。それは、HTTP header-smuggling を用いて、偽のヘッダーをバックエンドに忍び込ませ、サーバーに対してキャッシュ・ポイズニング攻撃を行うというものだ。

それにより攻撃者は、独自の API を作成し、悪意のコンテンツを返すことができると説明している。攻撃者は、被害者のサーバーのキャッシュのエントリを上書きし、API のコンテンツをコントロールできるという。その後に AWS は、この2つ目の脆弱性も修正したと Thatcher は言う。なお、この記事の投稿時点で、API Gateway の脆弱性と修正について、AWS にコメントを求めているが、まだ回答はない。

無料のハッキング・ツール

今日、Thatcher は、Web サーバーにおける脆弱性の有無をテストするための、無料のオープンソース・ツールを公開する。このツールは、研究者の James Kettle が開発した、Param Miner Burp Suite ツールキットを利用して作られたものであり、HTTP header-smuggling のドアを開く可能性のある、ヘッダ変異を探し出すものだ。

これが、研究者に提供されることで、ヘッダーをバックエンド・サーバーに忍び込ませる、さまざまな方法を調査できるという。HTTP header-smuggling の脆弱性をスキャンする以外にも、この攻撃から保護する方法がある。Thatcher が示したような、型破りなフォーマットのヘッダーをフロントエンド・サーバー転送できないようにすることや、バックエンド・サーバーが受け入れる HTTP リクエストを、より慎重に選ぶようにすることなどが挙げられる。

Thatcher は、HTTP header-smuggling の研究は、 Web の脆弱性を根絶する方法の表面をなぞったに過ぎないと警告している。したがって、他の脆弱性も発見されるだろうと指摘している。

この記事を読んで思い出したのは、「Black Hat 2021:クラウドの脆弱性にも CVE アプローチが必要なのか?」で指摘されていた、「クラウド事業者と研究者が脆弱性情報を共有するための、CVE タイプのリポジトリの必要性が明らかになった」という点です。脆弱性を特定し、顧客やベンダーが、その問題を追跡できるようにするために、適切な追跡番号や、脆弱性ごとの深刻度スコアなどが必要になるはずです。

%d bloggers like this: