V12: ファイルおよびリソース
管理目標
検証対象のアプリケーションが以下の上位要件を満たすことを確認します。
信頼できないファイルデータはそれに応じてセキュアに処理する必要があります。
信頼できない情報源から取得した信頼できないファイルデータは Web ルートの外部に、かつ制限されたパーミッションで保存されています。
V12.1 ファイルアップロード
zip 爆弾はペネトレーションテスト技法を使用して効果的にテスト可能ですが、設計と開発時の配慮と慎重な手動テストを促すために、L2 以上に分類されています。この分類は自動ペネトレーションテストや未熟な手動ペネトレーションテストによってサービス拒否状態が引き起こされることを防ぐことも目的としています。
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.1.1 | [修正] アプリケーションはパフォーマンスの低下やサービス拒否攻撃を引き起こすことなく処理可能なサイズのファイルのみを受け付けている。 | ✓ | ✓ | ✓ | 400 |
12.1.2 | アプリケーションが圧縮ファイル (zip, gz, docx, odt など) を展開する前に最大許容非圧縮サイズおよび最大ファイル数と照合している。 | ✓ | ✓ | 409 | |
12.1.3 | 一人のユーザが非常に多くのファイルや極端に大きなファイルでストレージをいっぱいにすることができないように、ファイルサイズクォータとユーザあたりの最大ファイル数が適用されている。 | ✓ | ✓ | 770 | |
12.1.4 | [追加] 特に必要な場合 (その場合、シンボリックリンクできるファイルの許可リストを適用する必要がある) を除き、アプリケーションはシンボリックリンクを含む圧縮ファイルのアップロードを許可していない。 | ✓ | ✓ | 61 |
V12.2 ファイル整合性
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.2.1 | [修正] アプリケーションはファイルを受け入れる際に、ファイルのファイル拡張子が予期されるファイル拡張子と一致すること、およびファイルの内容がその拡張子で表されるタイプと一致することを検証している。これには初期の "マジックバイト" のチェックが含まれるがこれに限定されない。 | ✓ | ✓ | 434 | |
12.2.2 | [追加] アプリケーションはピクセルフラッド攻撃を防ぐために、許容される最大値を超えるピクセルサイズのアップロードされた画像をブロックしている。 | ✓ | ✓ | ✓ | 400 |
V12.3 ファイル実行
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.3.1 | パストラバーサルから保護するために、ユーザが送信したファイル名メタデータがシステムやフレームワークファイルにより直接使用されていない、および URL API が使用されている。 | ✓ | ✓ | ✓ | 22 |
12.3.2 | ローカルファイルの開示、作成、更新、削除 (LFI) を防ぐために、ユーザが送信したファイル名メタデータが確認または無視されている。 | ✓ | ✓ | ✓ | 73 |
12.3.3 | リモートファイルインクルージョン (Remote File Inclusion, RFI) やサーバサイドリクエストフォージェリ (Server-side Request Forgery, SSRF) によるリモートファイルの開示や実行を防ぐために、ユーザが送信したファイル名メタデータが確認または無視されている。 | ✓ | ✓ | ✓ | 73 |
12.3.4 | [12.5.3 へ移動] | ||||
12.3.5 | [削除, 5.3.8 と重複] | ||||
12.3.6 | 未検証のコンテンツ配信ネットワーク、JavaScript ライブラリ、node npm ライブラリ、サーバサイド DLL など、信頼できないソースからの機能がアプリケーションに含まれて実行されていない。 | ✓ | ✓ | 829 | |
12.3.7 | [追加] zip スリップなどの脆弱性を防ぐために、ファイル展開などのサーバサイドのファイル処理が、ユーザから提供されたパス情報を無視する。 | ✓ | ✓ | ✓ | 23 |
V12.4 ファイルストレージ
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.4.1 | [削除, 4.1.3 と重複] | ||||
12.4.2 | 信頼できないソースから取得したファイルが、既知の悪意のあるコンテンツのアップロードと配信を防ぐためにウィルス対策スキャナによりスキャンされている。 | ✓ | ✓ | ✓ | 509 |
V12.5 ファイルダウンロード
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.5.1 | [14.3.6 へ移動] | ||||
12.5.2 | [50.5.1 へ移動] | ||||
12.5.3 | [修正, 12.3.4 から移動] アプリケーションが JSON, JSONP, URL パラメータに含まれるユーザが送信したファイル名を確認または無視し、レスポンスの Content-Disposition ヘッダでファイル名を指定している。 | ✓ | ✓ | ✓ | 641 |
V12.6 SSRF 保護
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.6.1 | [14.7.1 へ移動] |
V12.7 アプリケーションリソース
# | 説明 | L1 | L2 | L3 | CWE |
---|---|---|---|---|---|
12.7.1 | [追加] アプリケーションは、データベース接続、オープンファイル、スレッドなどのシステムリソースを使用し終わると、リソースの枯渇を防ぐために積極的に解放している。 | ✓ | ✓ | 404 |
参考情報
詳しくは以下の情報を参照してください。
Last updated