web-dev-qa-db-ja.com

Zipファイルのアップロードによるセキュリティ上の脅威は何ですか?また、どのような予防措置を講じる必要がありますか?

Drupalアプリケーションをファイル共有用に開発しました。

  1. ログインした部門のユーザーがZipファイルをアップロードできるようにしています。
  2. Drupalプライベートファイルシステム(webroot以外))を使用しています。
  3. 検証にはphp Fileinfoを使用しています。
  4. ログインしたユーザーのみがファイルをダウンロードできます。

現在、私たちのセキュリティチームは、Zipのアップロードが脅威であることを許可していません。この機能を使用してセキュリティの脅威を知り、それを防ぐにはどうすればよいですか。

19
wolverine

Zipファイルがアプリケーションにリスクをもたらす可能性がある1つの領域 Zip bomb 攻撃。これは、アーカイブが開かれたときにサーバー上の大量のスペースを消費してクラッシュする可能性がある方法でアーカイブが構築された場合に発生します。

専用のファイルシステムでZipファイルを開き、所定の最大サイズに達した場合に解凍アクションを中止することで、この問題を軽減できる可能性があります。

12
Rory McCune

セキュリティ上の脅威はありません。少なくともZipファイルに固有のものはありません。

主な懸念事項はすでに他のユーザーによって概説されています。ただし、これらはすべて、アプリケーション自体に害を及ぼすことはなく、Zipファイルに固有ではありません。

  1. Rory McCuneによって説明されているZip Bomb攻撃
    これらは、ファイルが解凍される場合のみの問題です。
  2. Zipファイル内に悪意のあるコンテンツが含まれています。
    ただし、これはエンティティがZipファイル内のファイルを解凍および実行する場合にのみ影響します。アプリケーションは通常これを行いませんが、ユーザーが行う場合があります。
  3. セキュリティの悪用または悪意のある実行可能ファイルの懸念
    これは、Zipファイルだけでなく、ファイル拡張子の問題でもありません。実行可能ファイルとしてマークされているかどうかによって、ファイルの実行が妨げられることはありません。
10
user606723

Zipの問題点は、Zipの内容が本当にわからないことです。内容を解凍し、ウイルスをスキャンする必要があります。そうすると、既知のウイルスが含まれていないことがわかります。

2つ目は、ファイルアップロードが使用されている場合、特定の量のファイル拡張子(ブラックリストではなくホワイトリスト)のみを許可し、この拡張子を持つファイルが実際にそのタイプであることを確認する必要があることです(たとえば、.binが変更されました) .txtへ)。ただし、すべてのタイプのファイルをZipファイルにカプセル化できます。 .Zipをホワイトリストに登録し、その内容を確認しない場合は、実際にはホワイトリストを廃止していることになります。したがって、Zipファイルの内容を確認して、特定の種類のファイルのみが含まれていることを確認する必要があります。

したがって、Zipは、ネットワークを混雑させる可能性のある大きなファイルのアップロードを減らす必要がある場合にのみ実現可能です。セキュリティを確保するために、解凍して内容を確認する必要があります。ディスクスペースの節約を考えているためにこれを実行している場合は、通常の形式のファイルを受け入れ、確認後に自分で圧縮することをお勧めします。

8
Lucas Kauffman

また、Zipファイルは、攻撃ベクトル対avエンジンです(実際、avによって解析されるすべてのファイルタイプはベクトルです)。さまざまな脆弱性の悪用は異なりますが、メモリの破損などから、任意のコード実行までさまざまです。

3
fasmotol