アクセスするだけで空き領域が勝手にどんどん減っていく「FillDisk.com」
Firefox以外のブラウザ、IE・Chrome・Safari(iPhone/iPadなどのiOS版も含む)・OperaなどでアクセスするとHTML5の「localStorage」という仕組みを使って、アクセスするだけで自動的に空き領域を埋めていくという恐るべきサイトが「FillDisk.com」です。
Fill up your hard disk with just a single click - using HTML5 localStorage!(音楽が鳴りまくります)
http://www.filldisk.com/
上記アドレスにChromeでアクセスし、どんどん空き領域が減っていく様子を記録したのが以下のムービーです。Chromeの場合は32bitブラウザなので、ディスクがいっぱいになる前にクラッシュして自動終了してしまいます。
FillDisk HTML5 exploit - YouTube
というわけで、実際に手元にあるWindows 7のGoogle Chromeからアクセスして見たところ、順調に空き領域が減っていき、965MBが埋まった時点でクラッシュ。
再起動して右上の「復元」をクリック
するとさらに埋め立て作業が続行され、今度は1610MBでクラッシュ
さらにその次は2010MBでクラッシュしてしまいました。埋め立てられた容量の削除をするには「Stop the madness!」ボタンをクリックすればOKで、どんどん削除されていきます。
仕組みについて解説している以下のサイトによると、MacBook Pro Retinaディスプレイモデルの場合は16秒ごとに1GBずつ空き領域がなくなっていくとのこと。
Introducing the HTML5 Hard Disk Filler API >> Feross.org
http://feross.org/fill-disk/
なぜこのようなことになるかというと、Google Chromeの場合は2.5MB、FirefoxとOperaは5MB、IE10は10MBというようにして保存できるローカルストレージにファイルサイズ制限が1つのドメインごとに設定されているのですが、サブドメインを使うことでいくらでも無尽蔵に保存させることができてしまうのが原因。例えば1.filldisk.com・2.filldisk.com・3.filldisk.com……というようにして順番に自動的に読み込ませることで、ディスクの空き領域がなくなるまで埋め続ける攻撃が可能になってしまう、というわけです。
上記実験サイト「FillDisk.com」はBGMを盛大に鳴らすことでアクセスしていることを閲覧者に知らせてくれるという親切設計ですが、もしこれが密かにサイトに埋め込まれていたであるとか、知らず知らずのうちに短縮URLなどを経由して踏まされてしまった場合、その攻撃ページを開いている間中、空き領域がゼロになってクラッシュするまで延々と埋められ続けてしまう、というようなこともありえる状態です。
以下のサイトからソースコードがダウンロードできます。
feross/filldisk.js ・ GitHub
https://github.com/feross/filldisk.js
なお、Firefoxはこのような攻撃ができないように対策が既になされており、サイトにアクセスしても動作せず。「高速・安全・カスタマイズ自在な無料ブラウザ」というキャッチフレーズの真ん中にある「安全」については確かに割と気を配っていることが奇しくも証明された形となっており、その他の各ブラウザについても既にこの問題は報告済み、次回アップデート時には修正されているはずです。
・関連記事
HTML5で作られた「Firefox OS」搭載スマホの発売が決定、実機の最新デモはこんな感じ - GIGAZINE
Windows版Safariユーザに使用停止勧告、脆弱性発覚が原因 - GIGAZINE
IE10とHTML5の組み合わせでサイトパフォーマンスが30%向上する - GIGAZINE
Operaの中身をWebkitにしたものを実際に動かすデモムービー公開中 - GIGAZINE
どのファイルが空き容量を減らしている原因なのかグラフ化できるフリーソフト「JDiskReport」 - GIGAZINE
・関連コンテンツ