Zip爆弾
Zip爆弾とは、展開すると圧縮前のサイズに戻るファイルで、展開時に非常に大量のストレージ容量を消費します。Zip爆弾を開くと、記憶装置の空き容量をすぐにすべて使い果たす可能性があります。
ほとんどのZipファイルの圧縮率は2:1から10:1の間です。たとえば、3メガバイトの圧縮された.ZIPファイルは、展開すると15メガバイトになることがあります。一方、Zip爆弾の圧縮率は1,000,000:1を超える場合があります。サイズが40キロバイトの小さなZip爆弾は、展開すると5ギガバイトを超えることがあります。10メガバイトのZip爆弾は、展開すると280テラバイトを超えることがあります。
Zip爆弾は、次の2つの方法のいずれかを使って、天文学的な圧縮率を実現します。
- 再帰的な圧縮
- 重複するファイル
再帰的な圧縮は、Zip爆弾を作成する最も一般的な方法で、1つのアーカイブに圧縮ファイルを何層も保存します。プライマリーレベルのアーカイブを展開すると、入れ子になったアーカイブが再帰的に展開されます。圧縮ファイルの複数の層が開かれると、出力のサイズは指数関数的に増加します。
Zip爆弾は、重複するファイルを使って作成することもできます。圧縮されたアーカイブを何層も保存する代わりに、アーカイブに、1つのファイルを指す複数のディレクトリヘッダーを含めます。アーカイブ内のファイルを「重複」させることで、最大圧縮率1,032を超えることができます。
Zip爆弾は、悪意のある目的に使用できるため、マルウェアと見なされます。たとえば、急速な展開によってシステムリソースを100%使用し、コンピューターが応答しなくなる可能性があります。幸いなことに、ほとんどのウイルス対策プログラムはZip爆弾を検出し、開かないよう警告できます。知らずにPCでZip爆弾を開いてしまった場合でも、ほとんどのZipユーティリティーでは、展開の途中で処理を停止できます。
知識をテストする