先日、46MBのZIPファイルを展開することで4.5PBのサイズまで膨れ上がらせることができるという驚異のZIP爆弾が発見された。ZIPフォーマットの穴というか、想定外の使い方をするというか、巧みにZIPフォーマットを構築するとすごいレベルの圧縮率(展開率?)が実現できてしまうという恐ろしい爆弾が明らかになったのだ。発見者によると、次のような展開が実現できる。4.5PB46MBを4.5PBまで膨れ上がらせるには、Zip64を使う必要がある。このため、実質的には10MBを281TBまで膨れ上がらせることができるというのが最大値となるだろう。この発見が素晴らしいのは、既存のZIPフォーマットの枠組みの中で実現しているというか、既存のZIPパーサが解釈できる枠組みの中で実現しているため、既存のunzipコマンドや展開系コマンドと互換性があるのだ。使っている環境でZIPファイルを展開するだけで、10MBが281TBへ膨れ上がる。こんな大きなサイズのストレージを使っている人はほとんどいないだろうから、ZIPファイルを展開するとディスクを使い切ることになる。こんなものを送りつけられたらたまったものではない。「でも、そんなファイルを作るのは難しいのでは?」と考えるかもしれない。実証コードが公開されており、実に簡単に作成することができるのだ。ZIP爆弾を展開してみるそれでは、本連載の目的に合わせ、早速このZIP爆弾を展開してみたい。ここでは、10MBの新型ZIP爆弾を用意した。次の環境で実行してみる。本番環境ではこんなことを絶対にしてはいけない。実験に使った環境ZIP爆弾を展開しつつ、ほかのターミナルでディスクの使用量を調べてみると、次のように順調にディスク空き容量が減っていった。順調に減っていくディスク空き容量しばらく動かし続けると、次のようにディスク空き容量を使い切ってunzipコマンドが停止した。実際にどのようなファイルが作成されているのか調べてみると、4GBのファイルが順次作成されていることがわかる。最後にはディスク使用率が100%になって、もう書き込めない状態になっている。0、1、2......といったファイル名で4GBのファイルが生成されていくなお、この状態に陥るとシェルがまともに動かなくなってくる。ssh経由でしか操作できない環境でこういった作業を行うと、最悪の場合はログインができなくなる。実際の運用環境では決してこういったことはしないでおこう。迷惑メールは時間とともに巧妙さを増している。コンプライアンスの関係で、暗号化されたZIPファイルとパスワードを別のメールで送る仕組みを採用している企業がある。した企業から送られてきたZIPファイルのように装ってZIP爆弾が送られてきたとしよう。スパムでわざわざパスワードをかけたZIPファイルを送ることはないだろうと思って、送信元をよく確認しないでファイルを展開してしまったりはしないだろうか。添付されているZIPファイルがZIP爆弾だったら、そこからディスクを使いつぶすまでゴミデータがディスクに書き込まれていくことになる。この新型ZIP爆弾はもう情報が公開されており、誰でも結構簡単に作れてしまう。メールに添付されているZIPファイルを展開してフィルタリングやウィルスチェックを実施するタイプのアプライアンスやソフトウェアを使っている場合、そのソフトウェア自体が適切に動作しなくなる可能性も高い。実際にこうした攻撃が簡単に実施できてしまうということは覚えておこう。※本記事は掲載時点の情報であり、最新のものとは異なる場合があります。Corporation。