V12: ファイル処理
管理目標
ファイルを使用すると、サービス拒否、認可されていないアクセス、ストレージ枯渇など、アプリケーションにさまざまなリスクをもたらす可能性があります。この章にはこれらのリスクに対処するための要件を含みます。
V1.12 セキュアなファイルアップロードドキュメント
1.12.3
[追加] アプリケーションがファイルのアップロードを許可している場合、ドキュメントでは各アップロード機能で許可されるファイルタイプ、想定されるファイル拡張子、最大サイズ (展開後のサイズを含む) を定義している。さらに、ドキュメントにはエンドユーザがファイルをダウンロードして処理する際に安全を確保する方法を指定している。
2
v5.0.be-1.12.3
V12.1 ファイルアップロードとコンテンツ
アップロード機能は信頼できないファイルの主な発生源です。このセクションでは、これらのファイルの存在、量、内容がアプリケーションに悪影響を及ぼさないようにするための要件について詳しく説明します。
12.1.1
[修正] アプリケーションはパフォーマンスの低下やサービス拒否攻撃を引き起こすことなく処理可能なサイズのファイルのみを受け付けている。
1
v5.0.be-12.1.1
12.1.5
[修正, 12.2.1 から移動] アプリケーションはファイルを受け入れる際に、それ自体または zip ファイルなどのアーカイブ内のいずれかで、ファイル拡張子が予期されるファイル拡張子と一致するかどうかをチェックし、内容がその拡張子で表されるタイプに対応しているかどうかを検証している。これには最初の 'マジックバイト' のチェック、イメージの再書き込みの実行、ファイル内容のバリデーションのための専用ライブラリの使用が含まれるがこれに限定されない。L1 では、特定のビジネスまたはセキュリティ上の決定を行うために使用されるファイルのみに焦点を当てることができる。L2 以上では、受け入れられるすべてのファイルに適用する必要がある。
1
v5.0.be-12.1.5
12.1.2
[文法] アプリケーションが圧縮ファイル (zip, gz, docx, odt など) を展開する前に最大許容非圧縮サイズおよび最大ファイル数と照合している。
2
v5.0.be-12.1.2
12.1.3
一人のユーザが非常に多くのファイルや極端に大きなファイルでストレージをいっぱいにすることができないように、ファイルサイズクォータとユーザあたりの最大ファイル数が適用されている。
3
v5.0.be-12.1.3
12.1.4
[追加] 特に必要な場合 (その場合、シンボリックリンクできるファイルの許可リストを適用する必要がある) を除き、アプリケーションはシンボリックリンクを含む圧縮ファイルのアップロードを許可していない。
3
v5.0.be-12.1.4
12.1.6
[追加] アプリケーションはピクセルフラッド攻撃を防ぐために、許容される最大値を超えるピクセルサイズのアップロードされた画像をブロックしている。
3
v5.0.be-12.1.6
V12.4 ファイルストレージ
このセクションは、アップロード後にファイルが不適切に実行されるのを防ぎ、危険なコンテンツを検出し、信頼できないデータを使用してファイルが保存される場所を制御するのを防ぐための要件を含みます。
12.4.1
[修正] 信頼できない入力によってアップロードまたは生成され、パブリックフォルダに保存されたファイルは、エンドユーザが直接アクセスした場合、サーバサイドのプログラムコードとして実行可能ではない。
1
v5.0.be-12.4.1
12.4.3
[修正, 12.3.1 から移動, 12.3.2, 12.3.3, 5.3.9 からマージ] ファイル操作では、パストラバーサル、ローカルまたはリモートファイルインクルージョン (LFI, RFI)、サーバサイドリクエストフォージェリ (SSRF) 攻撃から保護するため、ファイルパスを作成する際にユーザが送信したファイル名やファイルメタデータの使用を避けている。代わりに、ファイル I/O 操作には内部で生成されたデータまたは信頼できるデータを使用する。ユーザが送信したファイル名やファイルメタデータを使用しなければならない場合は、厳密なバリデーションとサニタイゼーションを適用しなければならない。
1
v5.0.be-12.4.3
12.4.4
[追加] zip スリップなどの脆弱性を防ぐために、ファイル展開などのサーバサイドのファイル処理が、ユーザから提供されたパス情報を無視する。
3
v5.0.be-12.4.4
V12.5 ファイルダウンロード
このセクションは、パストラバーサルやインジェクション攻撃など、ダウンロードするファイルを提供する際のリスクを提供する際のリスクを緩和するための要件を含みます。また、これには危険なコンテンツを含まないことを確認することも含みます。
12.5.3
[修正, 12.3.4 から移動] アプリケーションが JSON, JSONP, URL パラメータに含まれるユーザが送信したファイル名を確認または無視し、レスポンスの Content-Disposition ヘッダフィールドでファイル名を指定している。
2
v5.0.be-12.5.3
12.5.4
[追加] 提供されるファイル名 (HTTP レスポンスヘッダフィールドや電子メールの添付ファイルなど) は、ドキュメント構造を保持し、インジェクション攻撃を防ぐために、エンコードまたはサニタイズされている (RFC 6266 に従うなど)。
2
v5.0.be-12.5.4
12.5.5
[修正, 12.4.2 から移動] 信頼できないソースから取得したファイルが、既知の悪意のあるコンテンツの配信を防ぐためにウィルス対策スキャナによりスキャンされている。
2
v5.0.be-12.5.5
参考情報
詳しくは以下の情報を参照してください。
Last updated
Was this helpful?