■ Greasemonkey スクリプトは安全ではありません
Webアプリケーションセキュリティフォーラム の奥さんと高木先生のバトルより。
- 高木先生
- ええと、「クッキーが漏洩する程度なので問題ない」と聞こえたような気がしたんですが。
Greasemonkey には超絶便利な GM_xmlhttpRequest があるので、どのウェブサイト上でスクリプトを動かそうが、あらゆるサイトにアクセスする事が可能です。この観点から考えると、クッキーが漏洩するどころの騒ぎではありませんし、スクリプトを有効にするドメインが限られていた所で大した意味はありません。例えば Google Search を便利にするようなスクリプトに、mixi のパスワードを任意の値に変更させるようなトロイを仕込む事も難しくないでしょう(実際に作って試しました*1)。もちろん対象サイト上に、XSS や CSRF の脆弱性がなくとも、です。
もう何度となく言われていますが、Greasemonkey も userChrome.js も拡張機能もみんな危険です。危険性を認識した上で利用するべきです。
拡張機能に関しては、AMO からインストールする限りにおいては安全が保証されている(はず)なので、野良拡張機能を利用しなければ気にする必要はありませんが、Greasemonkey や userChrome.js には安全を保証する仕組みはないので、常に気を付けておいて然るべきです。
具体的にどんな点に気を付けるべきかと言うと、Greasemonkey の場合は Greasemonkeyスクリプティング TIPS&SAMPLES と言う書籍にちょろっと書いてあります :-P 結局ソースを開いて中を確認する必要があるのですが…。
- document.cookie
- GM_xmlhttpRequest
- 無関係なページのURL
- 難読化されていないか
他には、外部スクリプトの呼び出しなんかにも注意した方が良いです。ある日危険なプログラムに変身しているかもしれません。
この五つくらいに注意すれば、ほとんどの場合は大丈夫でしょう。と言うか、これでダメな例が思い付かないので、他にも注意するべき点があればコメントなりトラックバックなりで教えて下さい。
userChrome.js に関しては、何が出来るかあまり知らないので何も言えません。インストールすらしてないし。
しかし、こんな良さそうなイベントがあったなんて全然知りませんでした。資料を読むには FAX を使った会員登録しないといけなくてなんかちょっとめんどくさげなのは、是非何とかして下さい。
- *1: 余談ですが、GM_xmlhttpRequest でちゃんと POST 出来なくて一時間くらい悩んだ上に、いつの間にかパスワードの文字数制限が変わってて、元のパスワードが使えなくなった
Posted by Kyosuke Takayama at 2007-07-11 (Wed) 00:04 printable version
1) とおりすがり (2007-07-11 (Wed) 12:38)
最近だとご家庭からもFAXが消えてることが多く、E-mailやブラウザからよりもFAXで申し込む方が大変なことも多いですよね。でも一回だけなら、コンビニから送ればいいんじゃないでしょうか。