Skip to Content
Web アプリケーションセキュリティ
book

Web アプリケーションセキュリティ

by Andrew Hoffman
May 2025
Beginner to intermediate
330 pages
4h 34m
Japanese
O'Reilly Media, Inc.
Content preview from Web アプリケーションセキュリティ

第27章. サードパーティの依存関係を保護する

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

パートIの"Recon "では、ファーストパーティのウェブ・アプリケーションでサードパーティの依存関係を特定する方法( )を調査した。

第Ⅱ部「攻撃」では、サードパーティの依存関係がファーストパーティのウェブ・アプリケーションに統合される様々な方法を分析した。統合に基づき、潜在的な攻撃ベクトルを特定し、そのような統合を悪用する方法について議論することができた。

パートIIIは、ハッカーを阻止する防御テクニックがすべてなので、この章は、サードパーティの依存関係を統合するときに発生する可能性のある脆弱性から、アプリケーションを保護することがすべてである。

ディペンデンシー・ツリーを評価する

サードパーティの依存関係を考えるときに最も重要なことのひとつは、サードパーティの多くはそれ自身の依存関係を持っているということだ。このような依存関係のことをサードパーティ依存関係と呼ぶこともある。

サードパーティの依存関係を1つだけ手動で評価することは可能である。サードパーティの依存関係をコードレベルで手動評価することは、多くの場合において理想的である。

残念なことに、手作業によるコードレビューは特にうまくスケールしないし、多くの場合、サードパーティの依存関係を包括的にレビューすることは不可能だ。特に、それらのサードパーティの依存関係が、独自の依存関係を含んでいる場合などはなおさらだ。

サードパーティの依存関係、その依存関係、依存関係の依存関係(などなど)は、依存関係ツリーと呼ばれるものを構成する(図27-1を参照)。npmを使ったプロジェクトでnpm ls コマンドを使うと、依存関係ツリー全体をリストアップして評価することができる。このコマンドは、アプリケーションに実際にどれだけの依存関係があるのかを確認するのに便利である。

waps 2701
図27-1. npmの依存関係ツリー

依存関係ツリーは、ソフトウェアエンジニアリングにおいて重要である。なぜなら、依存関係ツリーは、包括的なアプリケーションのコードを評価することを可能にし、ファイルサイズとメモリサイズを劇的に削減することができるからである。

依存関係ツリーをモデリングする

次のような依存関係ツリーを持つアプリケーションを考えてみよう:

主要アプリケーション → JQuery

プライマリアプリケーション → SPAフレームワーク → JQuery

主要アプリケーション → UIコンポーネント・ライブラリ → JQuery

依存関係ツリーをモデル化できれば、アプリケーションは依存関係の連鎖の3つの部分がJQueryに依存していることを特定できる。その結果、JQueryを3回インポートする(ファイルとメモリの冗長性が生じる)のではなく、1回インポートして多くの場所で使用することができる。

依存関係ツリーのモデリングは、セキュリティ工学においても重要である。なぜなら、適切な依存関係ツリーのモデリングがなければ、ファーストパーティ・アプリケーションの各依存関係を評価することは非常に難しいからである。

理想的な世界では、(前述の例のように)JQueryに依存して機能するアプリケーションの各コンポーネントは、同じバージョンのJQueryに依存している。しかし現実の世界では、そうなることはほとんどない。ファーストパーティのアプリケーションは依存関係のバージョンを標準化することができるが、ファーストパーティのアプリケーションが依存関係の連鎖の残りの部分を標準化する可能性は低い。なぜなら、依存関係の連鎖の各項目は、バージョンごとに異なる機能や実装の詳細に依存している可能性があるからである。依存関係をいつ、どのようにアップグレードするかの哲学も、組織によって異なる。 ...

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

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

詳解 システム・パフォーマンス 第2版

詳解 システム・パフォーマンス 第2版

Brendan Gregg, 西脇 靖紘, 長尾 高弘
Linuxカーネルプログラミング 第2版

Linuxカーネルプログラミング 第2版

Kaiwan N. Billimoria, 武内 覚, 大岩 尚宏

Publisher Resources

ISBN: 9798341651111