ImageFight

画像を用いたXSSRFI対策のためのApache Moduleが出たようです。

LL魂お疲れ様でした[LLSpirit] | TAKESAKO @ Yet another Cybozu Labs

もう夜遅いので、気づいた事を少しだけ書きます。

とりあえずは、PNGXSS対策の部分についてだけ。

  • このプログラムは、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が参照できるようになる)。