V11 ビジネスロジック検証の要件
Last-modified: 2020-08-10 (月) 14:28:24
Top/V11 ビジネスロジック検証の要件
管理目標 †
検証対象のアプリケーションが次の高次の要件を満たすことを確認します。
- ビジネスロジックが正しい順序で処理
- ビジネスロジックに自動攻撃を検知し防止する制限が実装されている。自動攻撃の例としては,連続的な少額の送金や1度に100万人の友人を追加する,などがある
- 高い価値を持つビジネスロジックにおいて悪用ケースや悪用する人を想定している。また,なりしまし (spoofing),改ざん (tampering),否認 (repudiation),情報の漏えい (information disclosure),権限昇格 (elevation of privilege) 攻撃の対策を行っている
V11.1 ビジネスロジックのセキュリティ要件 †
ビジネスロジックセキュリティは、すべてのアプリケーションごとに固有なため、どのチェックリストも適用はできません。そして外部からの脅威から保護するように設計されている必要がありますが、それはWebアプリケーションファイアウォール(firewalls)や安全な通信を使用しても保護することはできません。OWASP Cornucopiaなどのツールを使用して、デザインスプリント中に脅威モデリングを使用することを推奨します。
項番 | 説明 | L1 | L2 | L3 | CWE No | タイトル | 概要 |
11.1.1 | アプリケーションが同じユーザのビジネスロジックフローを手順通り、省略せずに処理する。 | ✓ | ✓ | ✓ | 841 | 行動ワークフローの不適切な施行 | このソフトウェアは、アクターが複数のビヘイビアを実行しなければならないセッションをサポートしていますが、アクターが必要な順序でビヘイビアを実行することを適切に保証していません。 |
11.1.2 | アプリケーションは、すべてのステップが人間の実際に処理する時間で処理されたビジネスロジックフローのみ処理する。(送信されるのが早すぎるトランザクションは処理されない。) | ✓ | ✓ | ✓ | 779 | 不十分なロギング | セキュリティ上重要なイベントが発生した場合、ソフトウェアはイベントを記録しないか、ログを記録する際にイベントに関する重要な詳細を省略します。 |
11.1.3 | アプリケーションに適切な制限が実装されており、特定のビジネス活動やトランザクションに対し、ユーザごとに適用されている。 | ✓ | ✓ | ✓ | 770 | 制限やスロットルのないリソースの割り当て | ソフトウェアは、アクターのために意図されたセキュリティポリシーに反して、割り当て可能なリソースのサイズや数に制限を課すことなく、アクターに代わって再利用可能なリソースまたはリソースのグループを割り当てます。 |
11.1.4 | データの流出、ビジネスロジック要求、過剰なファイルのアップロード、DoS攻撃(denial of service attacks)を検出および保護するために、アプリケーションに充分な自動攻撃を検知し防止する制限がある。 | ✓ | ✓ | ✓ | 770 | 制限やスロットルのないリソースの割り当て | ソフトウェアは、アクターのために意図されたセキュリティポリシーに反して、割り当て可能なリソースのサイズや数に制限を課すことなく、アクターに代わって再利用可能なリソースまたはリソースのグループを割り当てます。 |
11.1.5 | アプリケーションは脅威モデリング(threat modelling)または類似の方法を使用して特定されたビジネスリスクから保護するために、ビジネスロジックの制限またはバリデーションがある。 | ✓ | ✓ | ✓ | 841 | 行動ワークフローの不適切な施行 | このソフトウェアは、アクターが複数のビヘイビアを実行しなければならないセッションをサポートしていますが、アクターが必要な順序でビヘイビアを実行することを適切に保証していません。 |
11.1.6 | アプリケーションの機密性の高い処理が「Time of Check to Time of Use」TOCTOU問題や、その他の競合状態の影響を受けない。 | ✓ | ✓ | 367 | チェック時間使用時間(TOCTOU) レースコンディション | ソフトウェアはリソースを使用する前にリソースの状態をチェックしますが、チェックと使用の間にリソースの状態が変化し、チェックの結果が無効になる可能性があります。このため、リソースが予期せぬ状態にある場合に、ソフトウェアが無効なアクションを実行してしまうことがあります。 | |
11.1.7 | アプリケーションはビジネスロジックの観点から異常なイベントまたはアクティビティを監視している。例えば、順序がおかしい行為や通常のユーザが決して試みない行為の試行が該当する。 (C9) | ✓ | ✓ | 754 | 異常な状態や例外的な状態のチェックが不適切な場合 | ソフトウェアは、ソフトウェアの日常的な動作中に頻繁に発生するとは予想されない異常な状態や例外的な状態をチェックしていないか、または正しくチェックしていません。 | |
11.1.8 | アプリケーションは、自動攻撃または異常なアクティビティが検出されたときにアラートする設定機能がある。 | ✓ | ✓ | 390 | アクションなしのエラー状態の検出 | ソフトウェアは特定のエラーを検出しますが、そのエラーを処理するためのアクションを取りません。 |
参考情報 †
詳しくは以下の情報を参照してください。
- OWASP Testing Guide 4.0: Business Logic Testing : https://www.owasp.org/index.php/Testing_for_business_logic
- OWASP Cheat Sheet : https://www.owasp.org/index.php/Business_Logic_Security_Cheat_Sheet
- 対自動処理はこれらを含む、多くの方法で対応できる。
- OWASP AppSensor : https://www.owasp.org/index.php/OWASP_AppSensor_Project
- OWASP Automated Threats to Web Applications : https://www.owasp.org/index.php/OWASP_Automated_Threats_to_Web_Applications
- OWASP AppSensor : https://www.owasp.org/index.php/OWASP_AppSensor_Projectは、攻撃検知と対応に役立つ。
- OWASP Cornucopia : https://www.owasp.org/index.php/OWASP_Cornucopia