📗
owasp-asvs-ja
  • OWASP Application Security Verification Standard ja
  • OWASP アプリケーションセキュリティ検証標準 5.0 日本語版
    • 口絵
    • 序文
    • ASVS とは何か?
    • 監査と認証
    • v4.x と比較した変更点
    • V1: エンコーディングとサニタイゼーション
    • V2: バリデーションとビジネスロジック
    • V3: Web フロントエンドセキュリティ
    • V4: API と Web サービス
    • V5: ファイル処理
    • V6: 認証
    • V7: セッション管理
    • V8: 認可
    • V9: 自己完結型トークン
    • V10: OAuth と OIDC
    • V11: 暗号化
    • V12: 安全な通信
    • V13: 構成
    • V14: データ保護
    • V15: セキュアコーディングとアーキテクチャ
    • V16: セキュリティログ記録とエラー処理
    • V17: WebRTC
    • 付録 A: 用語集
    • 付録 B: 参考情報
    • 付録 V: 暗号化標準
    • 付録 X: 推奨事項
  • OWASP アプリケーションセキュリティ検証標準 4.0 日本語版
    • ヘッダ
    • 口絵
    • 序文
    • ASVS の使い方
    • 監査と認証
    • V1: アーキテクチャ、設計、脅威モデリング
    • V2: 認証
    • V3: セッション管理
    • V4: アクセス制御
    • V5: バリデーション、サニタイゼーション、エンコーディング
    • V6: 保存時における暗号化
    • V7: エラー処理とログ記録
    • V8: データ保護
    • V9: 通信
    • V10: 悪意あるコード
    • V11: ビジネスロジック
    • V12: ファイルとリソース
    • V13: API と Web サービス
    • V14: 構成
    • 付録 A: 用語集
    • 付録 B: 参考情報
    • 付録 C: Internet of Things の検証要件
Powered by GitBook
On this page
  • 管理目標
  • V5.1 ファイル処理ドキュメント
  • V5.2 ファイルアップロードとコンテンツ
  • V5.3 ファイル保存
  • V5.4 ファイルダウンロード
  • 参考情報

Was this helpful?

  1. OWASP アプリケーションセキュリティ検証標準 5.0 日本語版

V5: ファイル処理

管理目標

ファイルを使用すると、サービス拒否、認可されていないアクセス、ストレージ枯渇など、アプリケーションにさまざまなリスクをもたらす可能性があります。この章にはこれらのリスクに対処するための要件を含みます。

V5.1 ファイル処理ドキュメント

このセクションは、関連するセキュリティチェックを開発および検証するために必要な事前条件として、アプリケーションに受け入れられるファイルに期待される特性を文書化する要件を含みます。

#
説明
レベル
#v5.0.be

5.1.1

ドキュメントでは各アップロード機能で許可されるファイルタイプ、想定されるファイル拡張子、最大サイズ (展開後のサイズを含む) を定義している。さらに、悪意のあるファイルが検出された場合にアプリケーションがどのように動作するかなど、ドキュメントにはエンドユーザがファイルをダウンロードして処理する際に安全を確保する方法を指定している。

2

v5.0.be-1.12.3

V5.2 ファイルアップロードとコンテンツ

ファイルアップロード機能は信頼できないファイルの主な発生源です。このセクションでは、これらのファイルの存在、量、内容がアプリケーションに悪影響を及ぼさないようにするための要件について説明します。

#
説明
レベル
#v5.0.be

5.2.1

アプリケーションはパフォーマンスの低下やサービス拒否攻撃を引き起こすことなく処理可能なサイズのファイルのみを受け付けている。

1

v5.0.be-12.1.1

5.2.2

アプリケーションはファイルを受け入れる際に、それ自体または zip ファイルなどのアーカイブ内のいずれかで、ファイル拡張子が予期されるファイル拡張子と一致するかどうかをチェックし、内容がその拡張子で表されるタイプに対応しているかどうかを検証している。これには最初の 'マジックバイト' のチェック、イメージの再書き込みの実行、ファイル内容のバリデーションのための専用ライブラリの使用が含まれるがこれに限定されない。L1 では、特定のビジネスまたはセキュリティ上の決定を行うために使用されるファイルのみに焦点を当てることができる。L2 以上では、受け入れられるすべてのファイルに適用する必要がある。

1

v5.0.be-12.1.5

5.2.3

アプリケーションが圧縮ファイル (zip, gz, docx, odt など) を展開する前に最大許容非圧縮サイズおよび最大ファイル数と照合している。

2

v5.0.be-12.1.2

5.2.4

一人のユーザがあまりにも多くのファイルや極端に大きいファイルでストレージを圧迫させることができないように、ユーザあたりのファイルサイズクォータと最大ファイル数が適用されている。

3

v5.0.be-12.1.3

5.2.5

特に必要な場合 (その場合、シンボリックリンクできるファイルの許可リストを適用する必要がある) を除き、アプリケーションはシンボリックリンクを含む圧縮ファイルのアップロードを許可していない。

3

v5.0.be-12.1.4

5.2.6

アプリケーションはピクセルフラッド攻撃を防ぐために、許容される最大値を超えるピクセルサイズのアップロードされた画像を拒否している。

3

v5.0.be-12.1.6

V5.3 ファイル保存

このセクションは、アップロード後にファイルが不適切に実行されるのを防ぎ、危険なコンテンツを検出し、信頼できないデータを使用してファイルが保存される場所を制御するのを防ぐための要件を含みます。

#
説明
レベル
#v5.0.be

5.3.1

信頼できない入力によってアップロードまたは生成され、パブリックフォルダに保存されたファイルは、HTTP リクエストで直接アクセスした場合、サーバサイドのプログラムコードとして実行できない。

1

v5.0.be-12.4.1

5.3.2

アプリケーションがファイル操作のためにファイルパスを作成する際、ユーザが送信したファイル名の代わりに、内部で生成されたデータまたは信頼できるデータを使用する。また、ユーザが送信したファイル名やファイルメタデータを使用する必要がある場合は、厳密なバリデーションとサニタイゼーションを適用する必要がある。これは、パストラバーサル、ローカルまたはリモートファイルインクルージョン (LFI, RFI)、サーバサイドリクエストフォージェリ (SSRF) 攻撃から保護するためである。

1

v5.0.be-12.4.3

5.3.3

zip スリップなどの脆弱性を防ぐために、ファイル展開などのサーバサイドのファイル処理が、ユーザから提供されたパス情報を無視する。

3

v5.0.be-12.4.4

V5.4 ファイルダウンロード

このセクションは、パストラバーサルやインジェクション攻撃など、ダウンロードするファイルを提供する際のリスクを提供する際のリスクを緩和するための要件を含みます。また、これには危険なコンテンツを含まないことを確認することも含みます。

#
説明
レベル
#v5.0.be

5.4.1

アプリケーションが JSON、JSONP、URL パラメータに含まれるユーザが送信したファイル名を確認または無視し、レスポンスの Content-Disposition ヘッダフィールドでファイル名を指定している。

2

v5.0.be-12.5.3

5.4.2

提供されるファイル名 (HTTP レスポンスヘッダフィールドや電子メールの添付ファイルなど) は、ドキュメント構造を保持し、インジェクション攻撃を防ぐために、エンコードまたはサニタイズされている (RFC 6266 に従うなど)。

2

v5.0.be-12.5.4

5.4.3

信頼できない場所から取得したファイルが、既知の悪意のあるコンテンツの配信を防ぐためにアンチウィルススキャナで検査されている。

2

v5.0.be-12.5.5

参考情報

詳しくは以下の情報を参照してください。

PreviousV4: API と Web サービスNextV6: 認証

Last updated 3 days ago

Was this helpful?

File Extension Handling for Sensitive Information
Example of using symlinks for arbitrary file read
Explanation of "Magic Bytes" from Wikipedia