V5 検証、サニタイズ、エンコーディング検証の要件 のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- V5 検証、サニタイズ、エンコーディング検証の要件 へ行く。
- 1 (2020-07-17 (金) 13:06:28)
- 2 (2020-07-17 (金) 17:02:04)
管理目標 †
最も一般的なウェブアプリケーションセキュリティ脆弱性は、出力エンコーディングなしで直接使用する前に、クライアントまたは環境からの入力を正しく妥当性確認できていないことです。この脆弱性は、クロスサイトスクリプティング (XSS) 、SQL インジェクション、インタプリタインジェクション、ロケール/Unicode 攻撃、ファイルシステム攻撃、バッファオーバーフローなど、ウェブアプリケーションにおける重大な脆弱性のほとんどすべてにつながります。
検証されるアプリケーションが以下の上位レベルの要件を満たしていることを確認します。
入力妥当性確認と出力エンコーディングアーキテクチャはインジェクション攻撃を防ぐために合意されたパイプラインを持っています。
入力データは厳密な型付け、妥当性確認、範囲や長さのチェック、または最低でもサニタイズまたはフィルタリングされています。
出力データは可能な限りインタプリタに近いデータのコンテキストごとにエンコードまたはエスケープされています。
現代のウェブアプリケーションアーキテクチャでは、出力エンコーディングがこれまで以上に重要です。特定のシナリオでは堅牢な入力妥当性確認を提供することは困難であるため、パラメータ化されたクエリ、自動エスケープテンプレートフレームワークなどの安全な API の使用や、注意深く選択された出力エンコーディングがアプリケーションのセキュリティにとって重要です。
V5.1 入力妥当性確認要件 †
ポジティブ許可リストと強いデータ型付けを使用して、入力妥当性確認コントロールを正しく実装すると、すべてのインジェクション攻撃の 90% 以上を排除できます。長さと範囲のチェックはこれをさらに減らすことができます。アプリケーションアーキテクチャ、デザインスプリント、コーディング、ユニットテスト、統合テストを通してセキュアな入力妥当性確認を構築することが求められています。これらの項目の多くはペネトレーションテストでは見つけることができませんが、それらを実装しないことの結果は V5.3 出力エンコーディングおよびインジェクション防止要件にあります。開発者およびセキュアコードレビュー担当者は、インジェクションを防ぐためにすべての項目に L1 が要求されているものとして、このセクションを扱うことをお勧めします。