今日になって、ニコニコ動画にアクセスするとAvast4がマルウェア警告を出すようになりました。
SWF:CVE-2007-0071 [Expl]
CVE-2007-0071でググると該当記事が見つかりました。
Integer overflow in Adobe Flash Player 9.0.115.0 and earlier, and 8.0.39.0 and earlier, allows remote attackers to execute arbitrary code via a crafted SWF file with a negative Scene Count value, which passes a signed comparison, is used as an offset of a NULL pointer, and triggers a buffer overflow.
翻訳通すと…
アドビFlashプレイヤー9.0.115.0で、そして、以前に整数超過人員、そして、8.0.39.0以前は遠い攻撃者が否定的なScene Count価値で巧みに作られたSWFファイルによって任意のコードを実行するのを許します。そして、それが署名された比較を通過して、NULLポインタのオフセットとして使われて、バッファオーバーフローを誘発します。
よくわかんないけど、Flashファイルに脆弱性を突くコードが入ってるのね。
で、さっそくニコニコ動画のTOPページのHTMLソースを表示してみた。
Flashファイルを直接呼び出してるのはこの部分だけ。
<script type="text/javascript">
<!--
var so = new SWFObject("http://www.nicovideo.jp/swf/billboard.swf?200805262003", "billboard", "960", "28", 9, "#FFFFFF");
so.addParam("allowScriptAccess", "always");
so.addParam("wmode", "transparent");
so.addVariable("showMarquee", "0");
so.write("billboard_container");
var flashCookie = new FlashCookie("flashcookie");
flashCookie.write("cookie_container");
-->
</script>
http://www.nicovideo.jp/swf/billboard.swf?200805262003
直接アクセスしても問題なし。
てことは、外部JavaScriptファイルからコールしてるに違いない。
Avastの警告ウィンドウを見ると、[cookie.swf]にマルウェアが含まれているという事がわかったので、ソースをエディタに貼り付けてそれっぽい部分をコメントアウトしていく事にしました。
まずは下から。
//flashCookie.write("cookie_container");
いきなりビンゴ!警告出ません。
次に、それっぽい外部JSファイルをDL。
FlashCookieオブジェクトについての関数なので、オブジェクト関連ぽいのから。
http://res.nicovideo.jp/js/swfobject.js
残念。cookie.swf見当たらず。
Cookie関連だと思われるので、ズバリなファイル名のものを。
http://res.nicovideo.jp/js/cookie.js
ビンゴ!やっぱり外部JSから呼び出してました。
てことで、↓を直接DL。
http://res.nicovideo.jp/swf/cookie.swf
超ビンゴ!単体で警告表示されました。
どんな悪さをしてんだか知らないけど、こういうのはユーザーの反感買うんじゃないのかなー。