クロスサイトスクリプティング(XSS)とは?
Yahoo!JapanやGoogleの検索ボックスや、ID・パスワードの入力欄などを思い浮かべてください。
こういったユーザが入力した内容を元に、新しいページを作るWebサイトはクロスサイトスクリプティング(Cross Site Scripting/XSS)の危険性があります。
例えば、入力ボックスに[名前]を入力したら、「こんにちは、”名前”さん」と表示するページがあったとします。
この際、[Pole]と入力したら、「こんにちは、”Pole”さん」と表示されます。
でも、この入力欄に、名前の代わりに[<script>alert(“XSS!”);</script>]という実行コードを書くと、
「こんにちは、”<script>alert(“XSS!”);</script>”さん」
という結果が表示されて、同時に「XSS!」というダイアログBOXが、画面に表示されます。
これは、上記でいうと”<“、”>”といった特殊な文字は、本当はそのまま結果に使ってはいけないのに、使ってしまったために発生してしまう問題で、本来はWebサイト作成側の作成ミスですね。
XSSの話題では主にCookieを盗まれてしまうことが取り上げられます。
じゃあ、ユーザは実際にどういう風に被害を受けるのか?
「www.mecha-security.com」がXSSの脆弱性がある前提で、流れを見ましょう。
1. ユーザが攻撃者のWebサイトにアクセス
2. 攻撃者のWebサイトのリンクをクリック
※リンク先は「www.mecha-security.com」で、Cookieを送信するためのスクリプトが一緒にくっついている
3. ユーザが「www.mecha-security.com」上でCookieを送信するスクリプトを気付かないうちに実行し、攻撃者サイトへCookieを送ってしまう。
4. 攻撃者は、そのCookieを使って、ユーザになりすまして不正アクセスを行う
というように、攻撃者はユーザにリンクをクリックさせるだけで、XSSの脆弱性のあるサイトで、悪意のあるスクリプトを実行させることができるんですね。
また、もとのWebサイトからそれ以外のサイトに対して情報を送信させるという性質が「”クロスサイト”スクリプティング」と呼ばれる由来です。
Cookieに限らず、色々な悪いスクリプトを実行させることもできますね。
このXSSですが、本当はWebサイト製作側で対応すべきなんですが、色々なところで発見されていることからわかるように、ミスしやすい部分なんです。
先日あのGoogleでも発見されていましたね。
■「Google」にXSSの脆弱性、9月下旬に修正済み〜米Finjanが指摘
ユーザ側として取れる対策としては、やはり攻撃者サイトでリンクを実行しないことです。
そのためには、毎回言ってますが、怪しいメールの中のリンクをクリックしたり、不審なサイトでリンクをクリックしないようにしましょうね。