はじめに
解凍ボムは、通常のPCウイルスのように直接システムに損害を与えるものではありません。ただし、解凍ボムと表示されたファイルを開くと、システムが即時にフリーズし、最終的にクラッシュしてデータが失われる危険があります。ここでは、ZIPボムの定義とその内容について解説します。
解凍ボムとは、非常に多くの圧縮データが含まれる悪意あるファイルのことです。パックボムまたはパック・オブ・デス攻撃と呼ばれることもあります。このファイルが開かれると、対象のプログラムやシステム全体がクラッシュする可能性があります。解凍ボムは、アンチウイルスソフトの機能低下を狙って使用されることが多いです。
圧縮アーカイブ、圧縮されたシステムファイル、または実行可能なアプリも解凍ボムとして利用される場合があります。有名な例として「42.zip」というアーカイブが挙げられます。このファイルは数キロバイトのサイズですが、解凍すると最大4.5ペタバイトの記憶領域を必要とします。
小さな圧縮アーカイブ(ほとんどの場合、数キロバイトのサイズ)が、代表的な解凍ボムです。ファイルが展開されると、システムが処理しきれない大量のデータが生成される恐れがあります。通常の圧縮ファイルであっても、展開すると数ギガバイトのデータになることがあります。
さらに展開された解凍ボムは、数百万や数十億ギガバイトにまで膨れ上がることがあり、通常はペタバイトやエクサバイトと表現されます。プログラムの通常の動作を妨げるのではなく、システムに過剰な負荷をかけるよう設計されています。この種のファイルは、展開に非常に長い時間、膨大なディスク容量、そして多くのメモリを消費します。
通常、解凍ボムは悪意ある目的で利用されます。攻撃者は、システムのアンチウイルスソフトを無力化するためにZIPボムを使用します。その後、システムに侵入し、ウイルス、スパイウェア、ランサムウェアなどの他の悪質なソフトを混入させる可能性があります。
アンチウイルスソフトは、主にサービス妨害攻撃を防ぐために使用されます。圧縮ファイル内の内容を調査し、悪質なソフトが含まれていないか確認します。しかし、ZIPボムの仕組みのために、検査に数日を要する場合があります。再帰的に圧縮されたボムファイルの検査中、システムメモリが使い果たされたり、クラッシュする恐れもあります。
また、アンチウイルスが解凍ボムを処理している間に、他の悪質なソフトがシステムに侵入する可能性もあります。
ZIPファイルは、実際のファイルやフォルダの内容を圧縮形式で保持し、解凍時には無損失で元のデータを再現します。そのため、さまざまな圧縮アルゴリズムのうちの一つに依存しています。今日、ソフトウェア開発者が最も多く利用しているのは、LZ、すなわちランペル・ジブ法です。
このアルゴリズムはスライディングウィンドウ方式を用い、繰り返し生成される辞書を利用して圧縮を行います。辞書内で繰り返される文字列を探し、ウィンドウ内で圧縮を実行します。処理中、辞書も随時更新されます。
LZ法では、アルゴリズムが2つのパラメータを使用します。1つは、繰り返しの文字列が辞書内で初めて現れた位置(オフセット)で、もう1つは一致する文字列の長さです。
以下に擬似コードを用いて、アルゴリズムの動作を説明します。
辞書: ヌル値を保持 // 空です。
データ形式: 入力はバイト単位で届く
X は最初の入力バイトである;
辞書のコード/位置0にXを保持する;
バイト0を除く入力内の各Aについて
do
もし (X+A) が辞書に存在すれば
XはX+Aを保持する;
そうでなければ
もし (X+A) が辞書に存在しなければ
辞書にXを挿入し、次のコード位置を割り当てる;
end
Xのコードを圧縮データに追加する;
辞書のX+Aを追加し、次のコード位置を割り当てる;
XはAを保持する;
endfor
Xのコードを圧縮フォルダに追加する.
上記の擬似コードから、内容に同じ文字や数字が多いほどアルゴリズムが効果を発揮することが分かります。つまり、エントロピーが低いデータは、より小さなサイズの圧縮ファイルを生成します。
LZ77(LZの改良版)やDeflateなど、他のアルゴリズムも存在します。これらは、大容量ファイルの無損失圧縮やエントロピー低減が求められる場合に有用です。解凍の要件や圧縮後のサイズ・比率に応じて、最適な圧縮ツールやアルゴリズムを選択することが可能です。
ZIPボムはどのように圧縮方式を悪用するか?
ZIPボムは、ZIPファイルの圧縮アルゴリズムやパターンを解析し、そのパターンを何度も繰り返すように仕組まれています。圧縮機構の脆弱性を突くことで、ZIPボムは使用するプログラムのリソースを何倍にも消費させます。
例えば、プロセスが10個の展開済みファイルを生成する場合、処理資源、メモリ、ディスク容量が10倍必要となります。大きなファイルにZIPボムを仕掛けると、ホストシステムは必ずクラッシュするでしょう。
一見ウイルスのように振る舞いますが、システム内のZIPボムが必ずしもウイルスであるとは限りません。冷静に考えてみましょう。
従来のウイルスと同じく、解凍/ZIPボムはシステム内で異常な動作をします。ホストシステムをクラッシュさせたり、問題を引き起こすためにアーカイブファイルをコピーしますが、単独でホストに直接損害を与えるわけではありません。
システムの動作やプロセスを直接妨害するのではなく、通常の動作を続けさせます。ただし、大量の圧縮データが含まれるため、ディスク容量、処理能力、メモリを大いに消費します。その結果、システム資源が過剰に使用され、性能が低下する恐れがあります。
ZIPボムを開いた場合、解凍に数時間を要することもあります。ウイルスか否かにかかわらず、ホストシステムにとって良い状態とは言えません。不要な作業に資源が回り、コンピューティング環境全体の生産性やメモリ効率が低下します。
最新のアンチウイルスソフトは、ZIPボムの検出が可能です。問題のあるZIPファイルは、開く前に信頼性のあるアンチウイルスソフトで確認することが推奨されます。
また、作成・ダウンロードしていないZIPフォルダは開かないことが望ましいです。内容が不審な場合は、展開やダブルクリックする前に中身を確認し、信頼できない場合は開かずに直ちに削除することが推奨されます。
現代のほとんどのアンチウイルスソフトは、詳細な検査を通じてZIPボムを識別できます。再帰的に多数の層にわたるデータの展開は、解凍ボムの兆候と見なされます。
アンチウイルスソフトは、実際には解凍ボムでない場合でも、その可能性のあるファイルとしてマークすることがあります。貴社は、同様のファイルに関する情報をGoogleで調べ、ZIPボムかどうか判断することが可能です。
貴社は、以下のような対策を講じることで、サービス妨害攻撃からシステムを守ることができます:
貴社は、Reimage PC修復ツールやその他のソフトを使用してPCからZIPボムを除去することができます。Reimageは、PC内の悪意あるファイルやソフトを検出し、解凍ボムファイルを削除します。修復プロセス完了後、PCを再起動して、解凍ボムが完全に除去されたことを確認してください。
最新情報を購読