第6章. サードパーティの依存関係を特定する
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
今日、ほとんどのウェブアプリケーション( )は、社内のコードと、多くの統合テクニックのいずれかによって内部で統合された外部コードの組み合わせで構築されている。外部の依存関係には、特定のライセンスモデルの下で統合を許可している他社の独占的なものもあれば、OSSコミュニティから無料で提供されているものもある。アプリケーションコードにこのようなサードパーティの依存性を使用することは、リスクがないわけではなく、多くの場合、サードパーティの依存性は、社内のコードほど堅牢性のあるセキュリティレビューの対象にはならない。
偵察中、 、多くのサードパーティの統合に遭遇する可能性が高く、依存関係と統合のメソッドの両方に多くの注意を払いたい。そのような依存関係の脆弱性はよく知られており、自分自身で攻撃を準備する必要すらなく、代わりに Common Vulnerabilities and Exposures(CVE)データベースから攻撃をコピーすることができるかもしれない。
クライアント側フレームワークを検出する
多くの場合、複雑なUIインフラを構築するよりも、むしろ 、開発者はよくメンテナンスされ、よくテストされたUIフレームワークを利用する。これらはしばしば、複雑な状態を処理するためのSPAライブラリ、ブラウザ間のJavaScript言語の機能的な穴を修正するためのJSのみのフレームワーク(Lodash、JQuery)、Webサイトのルック&フィールを改善するためのCSSフレームワーク(Bootstrap、Bulma)の形で提供される。
通常、これら3つのフレームワークはすべて簡単に検出できる。バージョン番号を突き止めることができれば、ウェブ上で(特にアップデートされていない旧バージョンで)該当するReDoS、プロトタイプ汚染、XSS脆弱性の組み合わせを発見できることが多い。
SPAフレームワークを検出する
2023年現在、ウェブ上で最大のSPAフレームワークは以下の通りである(順不同):
-
EmberJS(LinkedIn、Netflix)
-
Angular (Google)
-
リアクト(フェイスブック)
-
VueJS(Adobe、GitLab)
これらのフレームワークはそれぞれ、DOM要素をどのように管理し、開発者がフレームワークとどのようにやりとりするかについて、非常に特殊な構文と順序を導入している。すべてのフレームワークがこのように簡単に検出できるわけではない。 、フィンガープリンティングや高度なテクニックを必要とするものもある。バージョンを教えてもらったら、必ずメモしておこう。
エンバーJS
EmberJSは 、EmberJSがBootstrapするときに、ブラウザのコンソールで簡単に発見できるグローバル変数Ember をセットアップするので、検出は非常に簡単である(図6-1を参照)。
図6-1. EmberJS のバージョンを検出する
EmberJSはまた、内部で使用するために、すべてのDOM要素にember-id 。つまり、Developer tools ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access