久々にセキュリティねた。
JPCERT/CCから以下の文書が出ていたので、apacheを使ってちょっと実験してみた。
http://www.jpcert.or.jp/ed/2009/ed090001.pdf
この攻撃は、すでに昨年、可能性が報告され、実際にいくつか攻撃事例もあるのだけれど、なかなか有効な対策がなかったもの。正当なWebサイトの表示の上に透明なフレームを重ね、本来のWebサイト上で行われるマウスクリックのイベントを横取りして、別のサイトに対して不正な操作を加えさせるというものだ。この攻撃を行うには、XSSのように不正サイトを一度踏ませるか、サイト改ざんが必要と思われるが、実際に攻撃に使われた事例もわずかながらあり、特定の組織を狙ったような攻撃にも使えそうだ。IE8に実装されるのは、Webサーバから返されるレスポンスヘッダによって、こうしたフレームのオーバラップをブラウザ上で禁止しようというもので、X-FRAME-OPTIONS DENYといったヘッダが返された場合、IE8はこうした他のサイトからのフレームを重ねて表示することを拒否するというもの。上のドキュメントでは、Debian上のApacheとIIS6の設定例がかかれているが、私がソースコードから構築したApache 2.2.8では、この設定ではうまく動作せず、以下のような設定となった。おそらく文書上の例はDebianの環境に依存しているようだ。
Apache 2.2.xでの設定例(httpd.conf)
<IfModule headers_module>
Header append X-FRAME-OPTIONS "DENY"
</IfModule>
違いはモジュール名だけなのだが、エラーもでないので、間違った設定を入れて安心してしまう可能性もあるかもしれない。モジュールはたしかにmod_headersなのだが、設定上はその識別子であるheaders_moduleと記述しなければいけないようである。
ただし、このヘッダが有効なのは、現在のところIE8のみ。他のブラウザが追従するかどうかや、IE8がどのくらい早く普及するか(Winodows7になってから?)がカギとなりそうだが・・
とりあえず、メモとして・・・
コメントする