ウェブサイトに侵入してくる相手にZIP爆弾を送りつけて撃退する方法
セキュリティの不十分なサーバーを見つけるためにウェブサイトには日々多数の不審なアクセスが行われています。そうしたアクセスをしてくる相手に対して解凍すると容量が膨れ上がる「ZIP爆弾」を送りつけて撃退する方法がブログにまとめられています。
How to defend your website with ZIP bombs
https://blog.haschek.at/2017/how-to-defend-your-website-with-zip-bombs.html
ZIP爆弾とは、ZIPの圧縮アルゴリズムを最大限に活用することで巨大なファイルを小さなZIPファイルに収めたものです。例えば下記の記事ではたった10MBのZIPファイルを解凍すると281TBになってしまうZIP爆弾が登場しています。
「非再帰的ZIP爆弾」は10MBのファイルが281TBに膨らむ - GIGAZINE
サーバーをSSH可能な状態でインターネットに接続していると、中国やロシアなどのIPから数多くのログイン試行が行われます。
SSHだけでなく、世界で最も普及しているCMSのWordPressのセキュリティに穴が空いていないかをチェックするためのアクセスも日常的に行われています。
テキサス州で会社を経営しているエンジニアのChristianさんは、こうしたハッカーのスキャン行為で何GBものログが埋め尽くされてしまうのに嫌気がさしたため、ZIP爆弾で反撃しようと考えました。ブラウザはZIPを扱うことはできませんが、同じアルゴリズムのGZIPを扱えます。そこで、Christianさんは10GBのゼロ埋めファイルをGZIPで圧縮し、10MBのファイルを作成しました。
そしてそのGZIPファイルを配信するコードを記述。一般的なブラウザでは、GZIPファイルを自動で解凍する設定になっているためこのGZIP爆弾が設置されたページを開くといきなり10GBのファイルが展開されることになります。
Christianさんが主要ブラウザで動作を試してみると下記のような結果になったとのこと。
・Chrome
メモリ使用量が上昇し、その後エラーが発生する
・Edge
メモリ使用量が上昇した後急減し、永遠にロードが終わらない
・Safari
メモリ使用量が上昇した後クラッシュし、ページが再読み込みされる
なお、このZIP爆弾が設置されているページへのリンクは元ブログの最下部の「Try it yourself」に設置されています。もし自分のデバイスで動作を実験してみたいという人がいれば試してみて下さい。
・関連記事
人類の知識・Wikipedia1GB分をできるだけ圧縮するヒュッター賞で114MBへの圧縮に成功 - GIGAZINE
サイトやアプリ読込時の画像プレースホルダを表示するBlurHashをさらに進化させた「ThumbHash」、同じデータ量でより細かな部分を表現可&アスペクト比をエンコード&色の正確性が向上&透明度付きの画像もOK - GIGAZINE
MP3圧縮で劣化しまくった音質を再現してくれるプラグイン「MAIM」 - GIGAZINE
画像生成AI「Stable Diffusion」が実はかなり優秀な画像圧縮を実現できることが判明 - GIGAZINE
人の脳は目で見た情報を「低解像度の圧縮データ」にエンコードして保存していることが判明 - GIGAZINE
RAR圧縮形式が誕生から30年を経てWindowsでネイティブサポートされることに、7z・tar・gzも追加 - GIGAZINE
・関連コンテンツ