第18章. セキュアアプリケーションアーキテクチャ
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
ウェブアプリケーションをセキュリティで保護するための最初のステップは、アーキテクチャの段階である。
製品を構築する際、ソフトウェアエンジニアとプロダクトマネージャーからなるクロスファンクショナルチームは通常、非常に具体的なビジネス目標を効率的に達成する技術モデルを発見するために協力する。ソフトウェアエンジニアリングにおいて、アーキテクトの役割は、モジュールを高いレベルで設計し、モジュール同士の最適な通信方法を評価することである。これは、データストアの最適な方法、依存するサードパーティ、コードベース全体で優位に立つべきプログラミングパラダイムなどを決定することにも拡張できる。
建築アーキテクトと同様に、ソフトウェアアーキテクトはデリケートなプロセスであり、アプリケーションを一度構築してしまうと、再アーキテクチャやリファクタリングは高価なプロセスであるため、大きなリスクを伴う。セキュリティアーキテクチャには、ソフトウェアアーキテクチャや建築アーキテクチャと同様のリスクプロファイルが含まれる。多くの場合、脆弱性は、慎重な計画と評価によって、アーキテクチャの段階で容易に防ぐことができる。しかし、計画があまりに不十分だと、アプリケーションコードを再アーキテクトし、リファクタリングしなければならない。
NISTは、一般的なウェブ・アプリケーションの調査に基づき、「設計段階でアプリケーション・セキュリティの脆弱性を除去するコストは、製造段階で除去する場合の30~60分の1である」と主張している。それゆえ、アーキテクチャ段階の重要性に関して、私たちが抱いている疑念は確固たるものとなる。
機能要件を分析する
製品や機能が安全にアーキテクトされることを確実にするための最初のステップは、その製品や機能が実装することが期待されるすべてのビジネス要件を収集することである。ビジネス要件は、ウェブアプリケーションへの統合が検討される前に、リスクを評価することができる。
チップ
セキュリティ担当と研究開発担当のチームが分かれている組織では、両者間のコミュニ ケーション経路を開発プロセスに組み込むべきである。また、そのような分析には、製品開発だけでなく、エンジニアリングの利害関係者も参加すべきである。
このビジネスケースを考えてみよう。コードベースの複数のセキュリティホールを一掃した後、メガバンクは独自のマーチャンダイジング・ブランドを発見し、新たに発見した人気を活用することにした。メガバンクの新しいマーチャンダイジング・ブランド「MegaMerch」は、MegaMerch(MM)のロゴが入った高品質のコットンTシャツ、着心地の良いコットン/伸縮性のあるスウェットパンツ、メンズとレディースの水着のコレクションを提供する。
メガバンクは、新ブランド「MegaMerch」の商品を流通させるため、以下の要件を満たすeコマース・アプリケーションをセットアップしたいと考えている:
-
ユーザはアカウントを作成し、サインインすることができる。
-
ユーザーアカウントには、ユーザーのフルネーム、住所、生年月日が含まれる。
-
ユーザは、商品を表示する店のフロントページにアクセスすることができる。
-
ユーザは特定のアイテムを検索することができる。
-
ユーザはクレジットカードや銀行口座を保存し、後で使用することができる。 ...
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