トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

V1 アーキテクチャ、設計、脅威モデリングの要件 のバックアップ(No.2)


セキュアコーディングガイド?

管理目標

セキュリティアーキテクチャは多くの組織で失われた芸術となっています。エンタープライズアーキテクトの日々は DevSecOps の時代を通過しています。アプリケーションセキュリティの分野では、最新のセキュリティアーキテクチャの原則をソフトウェア実務者に再導入しながら、アジャイルセキュリティの原則をキャッチアップし採用する必要があります。アーキテクチャは実装ではなく、潜在的に多くの異なる答えを持ち、唯一の「正しい」答えがない問題について考える方法です。多くの場合、開発者がその問題を解決するはるかに優れた方法を知っている可能性がある場合には、セキュリティは柔軟性がなく、開発者が特定の方法でコードを修正することを要求するものとみなされます。アーキテクチャに対して唯一で単純な解決策はありません。そして、そうではないフリをすることはソフトウェアエンジニアリング分野への害となります。
ウェブアプリケーションの特定の実装はそのライフタイムを通じて継続的に改訂される可能性がありますが、全体的なアーキテクチャはほとんど変更されず、ゆっくりと進化します。セキュリティアーキテクチャも同様です。私たちは今日認証が必要ですし、明日も認証が必要でしょうし、五年後にも必要でしょう。今日、妥当な判断を下して、アーキテクチャに準拠したソリューションを選択して再利用すれば、多くの労力、時間、費用を節約できます。例えば、一昔前には、多要素認証はほとんど実装されていませんでした。
開発者が SAML フェデレーションアイデンティティなどの単一のセキュアなアイデンティティプロバイダモデルに注力した場合、元のアプリケーションのインタフェースを変更することなく、NIST 800-63 コンプライアンスなどの新しい要件を組み込むためにそのアイデンティティプロバイダを更新できることでしょう。多くのアプリケーションが同じセキュリティアーキテクチャ、つまり同じコンポーネントを共有している場合、すべてのアプリケーションが同時にこのアップグレードの利を得られます。但し、SAML は常に最良ないし最適な認証ソリューションとして残るわけではありません。要件変更に応じて他のソリューションと交換する必要があるかもしれません。このような変更は互いに入り組んでおり、完全な書き直しが必要になるほどコストがかかるか、セキュリティアーキテクチャなしではまったく不可能となります。
本章では、ASVS は妥当なセキュリティアーキテクチャの主要な側面である可用性、機密性、処理の完全性、否認防止、プライバシーをカバーしています。これらの各セキュリティ原則はすべてのアプリケーションに組み込まれ、本質的に備わったものでなければなりません。「シフトレフト」が重要です。セキュアコーディングチェックリスト、メンタリングとトレーニング、コーディングとテスティング、構築、展開、構成、運用で開発者の強化を開始します。そして、すべてのセキュリティコントロールが存在し機能していることを保証するために、フォローアップの独立テストで終了します。かつては業界として私たちが行うすべての作業が最後のステップでしたが、開発者が一日に数十回または数百回コードをプロダクションにプッシュするようになると、それだけでは不十分です。アプリケーションセキュリティの専門家はアジャイル技法に遅れずついていく必要があります。つまり、開発者ツールを採用し、コードを学び、開発者と協力することを意味します。他の全員が移動してから何か月も後にプロジェクトを批判するのではありません。

V1.1安全なソフトウェア開発ライフサイクル要件

項番説明L1L2L3NoタイトルSTIGsIPAガイドライン
1.1.1すべての開発ステージにおいてセキュリティに対処するセキュアなソフトウェア開発ライフサイクルの使用を検証します。 (C1)
1.1.2脅威の特定、対策の計画、適切なリスク対応の促進、セキュリティテスティングのガイドを行うために、すべての設計変更またはスプリント計画ごとに脅威モデリングの使用を検証します。1053デザインのドキュメントがありません非該当
1.1.3すべてのユーザーストーリーと機能に、「ユーザーとして、自分のプロファイルを閲覧および編集できる必要があります。他のユーザーのプロファイルを閲覧および編集できてはいけません」などの機能的なセキュリティ制約が含まれていることを検証します。1110不完全な設計ドキュメント非該当
1.1.4アプリケーションのすべての信頼境界線、コンポーネント、重要なデータフローのドキュメントと正当性を検証します。1059不完全なドキュメント非該当
1.1.5アプリケーションの上位レベルアーキテクチャと接続されているすべてのリモートサービスの定義とセキュリティ分析を検証します。 (C1)1059不完全なドキュメント非該当
1.1.6重複、欠落、無効、非セキュアなコントロールを回避するために、一元化され、シンプル (経済的な設計) であり、承認され、セキュアであり、再利用可能なセキュリティコントロールの実装を検証します。 (C10)637保護メカニズムの不要な複雑さ(「メカニズムの経済」を使用しない)非該当
1.1.7全ての開発者およびテスト担当者に対するセキュアコーディングチェックリスト、セキュリティ要件、ガイドライン、ポリシーの可用性を検証します。637保護メカニズムの不要な複雑さ(「メカニズムの経済」を使用しない)非該当
1.1.8アプリケーションのルートまたは .well-known ディレクトリにあり、セキュリティ上の問題について所有者に連絡するためのリンクや電子メールのアドレスを明確に定義した、公開されている security.txt ファイルの可用性を検証します。1059不完全なドキュメント


V1.2認証のアーキテクチャ要件

認証を設計するとき、攻撃者がコールセンターを呼び出して一般的に知られている質問に答えることによってアカウントをリセットできる場合、ハードウェア対応の強力な多要素認証があるかどうかは重要ではありません。IDを証明する場合、すべての認証パスは同じ強度でなければなりません。

項番説明L1L2L3NoタイトルSTIGsIPAガイドライン
1.2.1API、ミドルウェア、データ層などのアプリケーションコンポーネント間の通信が認証され、個々のユーザーアカウントを使用していることを検証します。 (C3)306重要な機能の認証がありませんV-69527非該当
1.2.2アプリケーションが、セキュアであることが確認されており、強力な認証を含むように拡張でき、アカウントの悪用や違反を検出するための十分なログ記録と監視を備えている、単一の承認済み認証メカニズムを使用していることを検証します。306重要な機能の認証がありませんV-69527非該当
1.2.3アプリケーションのリスクごとに脆弱な代替手段がないように、すべての認証経路と ID 管理 API が一貫した認証セキュリティコントロール強度を実装していることを検証します。306重要な機能の認証がありませんV-69527非該当


V1.3セッション管理のアーキテクチャ要件

これは、将来のアーキテクチャ要件のプレースホルダーです。

V1.4アクセス制御のアーキテクチャ要件

項番説明L1L2L3NoタイトルSTIGsIPAガイドライン
1.4.1アクセス制御ゲートウェイ、サーバー、サーバーレス機能などの信頼できる実施ポイントがアクセス制御を実施していることを検証します。クライアントでアクセス制御を実施してはいけません。602サーバー側のセキュリティのクライアント側の実施非該当
1.4.2選択したアクセス制御ソリューションがアプリケーションのニーズを満たすのに十分な柔軟性を備えていることを検証します。284不適切なアクセス制御V-69329 V-69527・DC 管理用テンプレート
1.4.3機能、データファイル、URL、コントローラ、サービス、およびその他のリソースにおける最小特権の原則の実施を検証します。これはなりすましや権限昇格に対する保護を意味します。272最小権限違反V-69339・Windows の 管理者の設定
1.4.4API、ミドルウェア、データ層などのアプリケーションコンポーネント間の通信が最小限の権限で実行されていることを検証します。 (C3)272最小権限違反V-69339非該当
1.4.5保護されたデータおよびリソースにアクセスするために、アプリケーションが単一で十分に吟味されたアクセス制御メカニズムを使用していることを検証します。コピー&ペーストやセキュアではない代替パスを回避するために、すべてのリクエストはこの単一のメカニズムを通過する必要があります。 (C7)284不適切なアクセス制御V-69329 V-69527・Windows の 管理者の設定 ・DC 管理用テンプレート
1.4.6属性または機能ベースのアクセス制御が使用されていることにより、コードが単に役割ではなく機能やデータ項目に対するユーザーの認可を確認していることを検証します。権限は役割を使用して割り当てる必要があります。 (C7)275許可の問題