ニガくて難しいアクセス解析を、たっぷりのミルクでふわふわの贅沢ラテ的な仕上がりに

Website Optimizerにセキュリティ問題が発生

12/7、Googleからメールが来ていました。

ウェブサイト オプティマイザーにおける潜在的なセキュリティの問題についてお知らせいたします。ウェブサイト オプティマイザーの制御スクリプトの脆弱性を利用したクロス サイト スクリプティング(XSS)攻撃によって、お客様のサイトで悪意のあるコードが実行される可能性があることが判明しました。この攻撃が発生するのは、ウェブサイトまたはブラウザが既に別の攻撃を受けたことがある場合のみです。直ちに攻撃を受ける可能性は低いものの、サイトを保護するため対処していただくようお願いいたします。

バグ改修方法も書かれており、それを対策すれば問題ないとのこと。これから新規にテストを作る場合は修正済みコードが発行されるので気にしなくてもOKというわけです。

ただし、改修は導入済みのサイトには個別に入れる必要があるとのことです。(HTML側にいれた制御スクリプト自体の問題)

修正後のA/Bテストのコードでは、こうなります。

//修正前
<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){}
(function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');</script>
<!-- End of Google Website Optimizer Control Script -->
//修正後(6行目に注目)

<!-- Google Website Optimizer Control Script -->
<script>
function utmx_section(){}function utmx(){} (function(){var k='XXXXXXXXXX',d=document,l=d.location,c=d.cookie;function f(n){ if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);
return escape(c.substring(i+n.length+1,j<0?c.length:j))}}}
var x=f('__utmx'),xx=f('__utmxx'),h=l.hash; d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
</script><script>utmx("url",'A/B');
</script>
<!-- End of Google Website Optimizer Control Script -->

XSS(クロスサイトスクリプティング)

XSSって何なの?Flash Playerとどっちが怖いの? という間抜けな質問がよくありますが、全然違います。XSSでは、以下のような脆弱性のスキをついた攻撃ができます。

  1. 悪意のあるリンクを介したスクリプティング
  2. ユーザーのcookieを盗む
  3. 権限のないはずの要求を送る

想像しやすいのは、1の「悪意のあるリンクを介したスクリプティング」です。メールやTwitterで、URLに細工をしておいて、そのURLをクリックしたら悪意のあるコードが実行されるというものです。
具体的にはこんなURLになります。

http://legitimateSite.com/registration.cgi?clientprofile=<SCRIPT>悪意のあるコード</SCRIPT>

これ、URLを見てれば悪意あるなあーってすぐ分かりますが、HTMLメールや短縮URLの場合は分からないですよね。

Website Optimizerの対応

上記、修正されたコードは、URLパラメタを送るときにescapeすることで悪意があるコードがうっかり入り込んでもそれを実行できない形にするという、正しい対応になっています。こんなん誰も気づかないだろうに、あえて脆弱性のポイントまで開示するところがGoogleのポリシーなんですかね。

Home > 06.マメ知識 > Website Optimizerにセキュリティ問題が発生

このページの上へ