2017年8月2日
株式会社Doctor Web Pacific
アンチウイルスはとりわけ汎用的な圧縮解凍プログラムです。ウイルスやトロイの木馬を検出するために、ファイルを解析し、アーカイブされた内容を抽出します。
そして問題が現れるかもしれないところはここにあります。たとえば、圧縮ファイルには、ディスク上で使用可能な容量よりも多くの領域が必要な場合があります。ゼロだけを含むファイルを取り出し、圧縮した結果、アーカイブヘッダーと繰り返しゼロからなる小さなファイルになります。では、どのようにしてディスク上の任意の容量を超えるファイルを作成できるのでしょうか? 一般的なアーカイブ形式を使用してアーカイブを自動的に作成するため、これを行う必要はありません。
PC用のマルウェアには、zip-bombsと呼ばれるプログラムがあります。これらは、ファイルを展開するとサイズが多様化するファイルを含むzipアーカイブです。たとえば、最も悪名高いZIP爆弾「42.zip」のサイズは42 KBですが、5つのネストレベルのファイルがあり、レベルごとに16ファイルあります。 最後のレベルの各ファイルのサイズは4.3 GBで、アンパックされたアーカイブ全体は4.5ペタバイトを占めます。
ZIP爆弾は電子メールで送信するために大昔に発明されましたが、アンチウイルスを中和する手段として人気がありました。
そのようなアーカイブを解凍しようとしている間、受信ノードは、解凍が完了する前にボリュームごとのファイルシステムエントリ制限 (FAT-16) に達するか、または空き領域がなくなる可能性がありました。 また、クリエイティブなテーマやテキストでメッセージに添付されるzipアーカイブにもメール爆弾がありました。 そのため、アーカイブプログラム (pkunzip.exe) によってマシンがクラッシュやフリーズが起こります。多くのノードが夜間に自動的に作動していたため、メール爆弾は拒否され、ノードの所有者には翌日にメールの一部が残されます。
アンチウイルス圧縮解答モジュールでのデータ処理エラーの影響はどういったものでしょうか? 次の例を使用して説明します。
ネストレベルの数は重要な問題の1つです。通常、最大値は3です。10のネスティングレベルはまれですが、技術的には数に制限はありません。原則として、解凍プログラムは再帰的に動作します。別のネストレベルに出会うたびに、現在の環境のデータが保存され、プログラムが再起動します。 保存された情報のサイズは通常、小さな容量になりますが、レベル数が無限に近づくと (この種のアーカイブは手作業で、好ましくはエラーで抽出され、無限に抽出される) 、スタック (一時データを格納するために割り当てられたプログラムのメモリ領域) が満杯になり、プログラムの試行スタック境界外にデータを格納します。これにより、アプリケーションがクラッシュしたり、悪質なコードが実行されたりする可能性があります。
影響を受けるバージョン :Clam AntiVirus 0.88.3以下
説明 :
この脆弱性により、リモートアクタは、サービス拒否を引き起こしたり、ターゲットシステムで任意のコードを実行したりすることができます。 これは、ライブラリlibclamav / upx.cの "pefromupx () "関数の境界チェックルーチンにエラーがあるため可能です。このライブラリは、UPXで圧縮されたPE実行ファイルを抽出するために使用されます。 リモートからの攻撃者は、バッファオーバーフローを引き起こし、ターゲットシステムで任意のコードを実行する可能性があります。
残念なことに、爆弾を使用して、アンチウイルスの動作を混乱させる以上のことをすることができます。 たとえば、このイメージを表示させます。
spark.png.bz2 ( 420バイト )
420バイトのアーカイブには、6,132,534バイト (5.8MB) を占めるPNGファイルと、225,000~225,000ピクセル (50,625ギガピクセル) の解像度を持つ画像が含まれています。ピクセルあたり3バイトを割り当てるピクセルバッファでは、イメージは約141.4GBを占有します。
Tell us what you think
To ask Doctor Web’s site administration about a news item, enter @admin at the beginning of your comment. If your question is for the author of one of the comments, put @ before their names.
Other comments