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