多数のWebサイトにJavaScriptプロトタイプ汚染の脆弱性あり、セキュリティ研究者が発見:公開情報が少なく対策が不十分
サイバーセキュリティツールベンダーのPortSwiggerは、セキュリティ研究者「s1r1us」氏のブログで発表された調査報告を紹介した。広く使われている18のJavaScriptライブラリに、プロトタイプ汚染の脆弱性があることが明らかになったという。
サイバーセキュリティツールベンダーのPortSwiggerは、2021年10月5日(米国時間)、セキュリティ研究者s1r1us氏のブログで2021年9月に発表された調査報告を紹介した。広く使われている18のJavaScriptライブラリに、プロトタイプ汚染の脆弱(ぜいじゃく)性があることが明らかになったという。
プロトタイプ汚染はプロトタイプをベースにしたJavaScriptオブジェクトの構造を標的にした攻撃手法を指す。
Apple.comにもこの脆弱性あり
s1r1us氏とBlackFan氏を中心とした研究チームが調査を行い、18のJavaScriptライブラリにプロトタイプ汚染の脆弱性が80件以上存在し、これらの脆弱性の影響を受けるWebサイトが1000以上あることを発見した。
例えばApple.comや、「Jira Service Management」「HubSpot Analytics」「Segment Analytics」をはじめとするさまざまな有名サイトも含まれている。研究チームはこの80件以上の脆弱性を脆弱性開示プログラムに報告し、合計4万ドルのバグ発見報奨金を得た。
PortSwiggerはJavaScriptの利便性と危険性を次のように説明している。「JavaScriptはWebのフロントエンド開発などに使われる。開発者はJavaScriptにより、プログラムの基本要素であるオブジェクトのプロパティと関数を動的に変更できる。だが、この柔軟性にはトレードオフがある。プログラマーが注意を怠ると、攻撃者がアプリケーションのセキュリティホールを突いて、オブジェクトのプロトタイプに悪意あるコードを注入する恐れがある」
プロトタイプ汚染の脆弱性発見に使われたツールと技術
プロトタイプ汚染を利用した攻撃はどこから始まるのだろうか。
攻撃対象はユーザー入力フィールドや、Webサイトに渡されるクエリパラメーターなどだ。サイトのJavaScriptコードがクエリパラメーターをサニタイズする、すなわち攻撃につながる文字列を無効化せずに反復処理した場合、オブジェクトのプロトタイプを変更するコマンドが実行される危険がある。
s1r1us氏とBlackFan氏は、この分野に精通した13人の研究者の協力を得て、調査に必要なツール群の開発に取り組んだ。
まず、巨大なサブドメインデータベースで動作し、プロトタイプ汚染攻撃に脆弱なJavaScriptコードパターンを探す「Selenium bot」を作成した。併せて「PPScan」というWebブラウザ拡張機能も開発した。これはバックグラウンドで動作して、botと同様の機能を提供する。
最後にプロトタイプ汚染を利用してクロスサイトスクリプティング(XSS)攻撃を仕掛けることができる、JavaScriptコードの断片である「スクリプトガジェット」を見つけるためのツールも使用した。Webブラウザの開発者向け機能と検索パターンを組み合わせることで、今回の調査に向けた探索が可能になった。
研究チームは最終的に、プロトタイプ汚染攻撃に悪用され、XSS攻撃を可能にする恐れがある正当なJavaScriptコードフラグメントを見つけるためのツールを使用するのに至った。
見過ごされている危険性とは
プロトタイプ汚染の脆弱性は、必ずしも悪いコーディングプラクティスに起因するものではないと研究チームは考えているものの、プロトタイプ汚染は見過ごされているのではないかとも懸念している。
研究チームは次のように述べている。「JavaScriptやJavaScriptコーディングプラクティスの落とし穴を調べようとしても、プロトタイプ汚染に関する情報源はあまり見つからない。この脆弱性の影響を受けるWebサイトがこれだけ多いのは、それが理由だと考えられる。われわれの調査報告がこの攻撃対象領域に光を当て、この問題の緩和対策に役立つことを願っている」
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
OSSのサプライチェーン、脆弱性に課題あり
オープンソースソフトウェアは供給、需要のどちらも大幅な伸びを見せている。しかし脆弱性の管理に弱点がある。ソフトウェアサプライチェーン管理プラットフォームを手掛けるSonatypeが発表した年次調査の報告書によれば、人気の高いプロジェクトでより多くの脆弱性が見つかっている。Webアプリなどが依然として主要な攻撃対象――Forresterの年次アプリセキュリティレポート
WhiteSourceは調査会社Forrester Researchのアプリケーションセキュリティに関する年次レポートの内容を公式ブログで紹介した。組織がオープンソースソフトウェアやサードパーティーのコンポーネントにますます依存し、より多くのAPIを外部に開放している中、どのような対策が望ましいのかが示されている。JavaScript関連プロジェクトのランキング「2020 JavaScript Rising Stars」が公開
「Best of JavaScript」プロジェクトは、2020年に最も注目を集めたJavaScriptプロジェクトなどのランキング「2020 JavaScript Rising Stars」を発表した。総合ランキングでは、過去5年間首位を維持した「Vue.js」を抜いて、「Deno」が首位を獲得した。