第17章. 最新のウェブアプリケーションのセキュリティ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ここまで、ウェブアプリケーションの調査、分析、侵入に使えるテクニックの分析にかなりの時間を費やしてきた。これらの予備的なテクニックは、それ自体が重要であるだけでなく、本書の 3 番目、そして最後の部分である「防御」 に進むにあたって、重要な洞察を与えてくれます。
今日の ウェブ・アプリケーションは、以前のものよりもはるかに複雑で分散している。これは、旧来のモノリシックなウェブ・アプリケーション、特にサーバ側でレンダリングされ、ユーザとの対話がほとんどないウェブ・アプリケーションと比較すると、攻撃される可能性のある領域が広がっている。このような理由から、本書ではまず偵察、次に攻撃、最後に防御という構成にした。
私は、 、ウェブアプリケーションの表面積を理解し、その表面積がどのようにマッピングされ、潜在的なハッカーによって分析されるかを理解することが重要だと考えている。それ以上に、ハッカーがウェブ・アプリケーションに侵入するために使っているテクニックを理解することも、ウェブ・アプリケーションのセキュリティを考えている人にとって重要な知識であると私は信じている。ハッカーがあなたのウェブ・アプリケーションに侵入するために使う手法を理解することで、防御の優先順位を決め、悪意のある目からアプリケーションのアーキテクチャとロジックをカモフラージュする最善の方法を導き出すことができるはずだ。
ここまで説明してきたスキルやテクニックはすべて相乗効果がある。リコン(偵察)、オフェンス(攻撃)、ディフェンス(守備)のいずれかを極めることで、極めて効率的に時間を使うことができる。
しかし、本題のディフェンスに移ろう。
ウェブ・アプリケーションを守ることは、中世の城を守ることに似ている。城はいくつかの建物と城壁で構成され、それらはコアとなるアプリケーションコードを表している。城の外側には、アプリケーションの依存関係と統合を記述する方法で、城の所有者(通常は領主)と統合し、 サポートする多くの建物がある。城とその周辺の王国は表面積が大きいため、戦時においては、すべての潜在的な入口で防御要塞を最大化することは不可能であるため、防御に優先順位をつけることが不可欠である。
ウェブアプリケーションセキュリティの世界では、このような優先順位付けと脆弱性管理は、多くの場合、大企業のセキュ リティエンジニア、あるいは、中小企業のより一般的なソフトウェアエンジニアの仕事である。これらの専門家は、ソフトウェア工学のスキルと偵察やハッキングのスキルを組み合わせて、攻撃が成功する確率を減少させ、潜在的な損害を軽減し、そして、有効な損害や過去の損害を管理する、マスターディフェンダーの役割を担う。
ディフェンシブ・ソフトウェア・アーキテクチャ
、十分に安全なウェブ・アプリケーションを書くための最初のステップは、実際にソフトウェアを書く前に始まる。これはアーキテクチャの段階である。どのような新しい製品や機能のアーキテクチャの段階でも、細部への深い注意が、アプリケーション全体に流れるデータに費やされるべきです。
同様に、セキュリティ・エンジニアリングの大部分は、A地点からB地点への移動中、およびその移動の前、後、あるいは移動中のどこにあっても、データを効率的に保護することである。
実際にソフトウエアを書いてデプロイする前に、アーキテクチャ上の深いセキュリティ上の欠陥を発見し、解決することは、はるかに容易である。アプリケーションがユーザに採用された後では、セキュリティギャップを解決するためにアーキテクチャの再構築を行うことができる深さは、多くの場合限られている。 ...
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