2010-02-02

最近のfreenodeへのspamの原因は、Firefoxによる田代砲だった

Firefox XPS IRC Attack - Encyclopedia Dramatica

ここ最近、freenodeを始めとしたIRCサーバーは、激しいspamに見舞われている。明らかに、何らかの、ユーザーが意図していないbotによって、攻撃されているようだ。そのbotとは何か。Firefoxである。

これは、セキュリテイホールであるが、規格準拠のセキュリティホールとも言える。Firefoxのセキュリティホールとは何か。それは、2001年に発見された、この問題である。

US-CERT Vulnerability Note VU#476267

HTMLのフォームの主な目的は、サーバーにPOSTメッセージを送ることである。しかし、POSTメッセージというのは、よくよく考えてみれば、サーバーに接続させるのである。とすれば、これをJavascript上から利用すれば、ユーザーのブラウザにから、任意のサーバーに、少なくとも、TCP接続をさせることができる。

俗に田代砲と呼ばれているスクリプトは、単にこれをやっているに過ぎないのだ。(もちろん、これは田代砲の実装方法の一つに過ぎないのだが)

そして、HTMLのフォームは、送るデータも指定できる。つまり、先頭にゴミのついている、任意のデータを送ることができるのである。とすれば、テキストベースであるメール関連のプロトコルやIRCプロトコルを偽装するのは、容易いことである。

この問題は、2001年に発見され、多くのブラウザベンダは、対策をした。具体的には、アタックに用いられる可能性のある、主要なwell-known portに対しては、フォームからPOSTできないようにした。ところが、Firefoxは、IRCのデフォルトポートである、6667を、ふさいでいないのだ。

結果として、全Firefoxが、IRCサーバーへのspam BOTとなりうるのである。

やれやれ、Firefox。

4 comments:

Anonymous said...

とりあえず自分が攻撃に加担させられるのを防ぐにはabout:configでnetwork.security.ports.bannedキーを(デフォルトでは存在しないので)作って、6667を値に入れればいいのですが、
http://kb.mozillazine.org/Network.security.ports.banned
デフォルトで禁止してくれないとほぼ無意味ですね。

江添亮 said...

実際、freenodeへのSPAMがひどすぎる。

Anonymous said...

先頭のゴミでHTTPによる不正なアクセスだと判断して弾くということは、IRCのプロトコル的に不可能なんでしょうか? メールの世界ではHTTPプロキシ経由でspamを撒こうとするなんてのがけっこう古典的な攻撃なんですが。
http://ya.maya.st/mail/accessctl.html#strict-syntax

江添亮 said...

それは、パターンがあるでしょうから、可能でしょうが、問題は、それでも、TCP接続だけは避けられない。
結果として、DDosになるのです。
freenodeは一時期、非常に不安定でした。