Hatena::ブログ(Diary)

葉っぱ日記 このページをアンテナに追加

2008-04-22

[] 2008年第1四半期の脆弱性届出情報  2008年第1四半期の脆弱性届出情報を含むブックマーク

件数はともかくとして気になったのは以下の点です。

 これは、ウェブサイトが文字コードを指定しない場合におけるウェブブラウザの文字コードの解釈に関するもの(UTF-7)や、スクリプトに該当する文字列(Internet Explorerのexpressionプロパティ)に関するものです。クロスサイト・スクリプティング対策をしていても、対策が不十分なウェブサイトが多く見うけられます。

「スクリプトに該当する文字列(Internet Explorerのexpressionプロパティ)に関するもの」というのが意味不明ですが、expressionを使ってのXSSというからには、おそらくこういう感じのものだと思います。

<input type="hidden" value=""style="xss:expression(alert(1))">

<input type="text">の場合には、expressionを使わなくても、普通にonmouseoverなどのイベントハンドラが注入可能ですので、実際にexpressionが効果を発揮するのは<input type="hidden">に対してであろうと思われます。hiddenのvalueに「<」「>」はインジェクトできないけれど、「"」がインジェクト可能な場合に、上のようなHTMLを生成させることで、IEにおいてはスクリプトが動作します。

そして、これへの対策としてIPAのリリース文では次のように続いています。

ウェブサイトの開発者は(略)「入力されたHTMLテキストから、スクリプトに該当する文字列を排除する」(*12)などの対策が必要です。

注釈の(*12)は

(*12)「安全なウェブサイトの作り方 改訂第3版」P.25の7)を参照。

と書かれており、「安全なウェブサイトの作り方 改訂第3版」のP.25の7はというと「1.5.2 HTMLテキストの入力を許可する場合の対策」における保険的対策「入力されたHTML テキストから、スクリプトに該当する文字列を排除する」だったりします。上で書いた、hiddenにおいて「"」が挿入可能という状態であるのなら、必ずしも「HTMLテキストの入力を許可する場合」に合致するわけではないように思います。どちらかというと、「安全なウェブサイトの作り方 改訂第3版」のP.23の1)に書かれている「ウェブページに出力する全ての要素に対して、エスケープ処理を施す」を強調するほうが適切であるように感じました。

あと、どうでもいいことですけれど中の人からの情報によりますと、ウェブアプリケーションの脆弱性の届出244件のうち約40%が特定個人によるものだという噂です。

ItisangoItisango 2008/04/23 01:30 それははっぱさん大活躍という意味ですか?

hoshikuzuhoshikuzu 2008/04/27 14:45 ばけらさんのことかと思いましたが、、、
http://bakera.jp/ebi/topic/3120

ばけらばけら 2008/05/07 13:57 244件というのは今期の届出数だと思いますが、私は今期はそんなに届け出てないのです……。

hoshikuzuhoshikuzu 2008/05/18 21:15 おお!なるほどです。>ばけらさん

トラックバック - http://d.hatena.ne.jp/hasegawayosuke/20080422/p1