画像を用いたXSSとRFI対策のためのApache Moduleが出たようです。
LL魂お疲れ様でした[LLSpirit] | TAKESAKO @ Yet another Cybozu Labs
もう夜遅いので、気づいた事を少しだけ書きます。
- このプログラムは、IHDR領域の後にコメントを挿入する。
- 攻撃者は、IHDRのwidth/heightの合計8Byteに攻撃コードを挿入可能。
- 8Byte内に、xmpやtitleなどの開始タグを入れておけば、plaintextタグの効力を無効にできる。PLTEにxmpなどの終了タグとscriptタグを挿入することで攻略可能。
- あるいは、8Byte内に「<a id=`」などを入れることで、コメントを属性値内に押し込めることができる(バッククォートを使っている)。
- 徳丸さんが日記で書いているように、そして作者の方も重々ご承知だろうが、いたちごっこの嫌いがあるアプローチ(ただし、私が上に書いた攻撃方法は、プログラム改良で何とかなりそう)。
- 文字エンコードを利用した攻撃もあるかもしれない(未検証)。
- 本来対応すべきところ(=IE)が対応して欲しいなあと思う。
以下は余談。
- ブラウザから直接画像にアクセスさせる必要性があるケースは、実のところ殆ど無いような気がする。Content-Disposition: attachment 方式ではダメなんだろうか?
- Content-Disposition方式だとブラウザのキャッシュが・・・という説もあるけども、うちのIE6ではレスポンスHTTPヘッダもキャッシュ内に保存しているように見える*1。
- プレゼンを聞きに行けばよかった。。。
*1:C:\Documents and Settings\username\Local Settings\Temporary Internet Files\index.datにはヘッダの内容が記録されている(index.datファイルは普通の方法では参照できない。Temporary Internet Filesフォルダを、まるごとどこかにコピーしてやるとindex.datが参照できるようになる)。