【クロスサイトスクリプティング脆弱性 Tip-off〜 悪意あるデータの入力経路 〜】
前回記事では、インターネット掲示板のセキュリティに関して説明した。掲示板の書き込みにおいて、HTMLタグやJavaScriptが自由に書けるという場合は、種々のクロスサイトスクリプティング脆弱性においても、最悪の部類である。今回はこれに関連して、クロスサイトスク
特集
特集
クロスサイトスクリプティング脆弱性では、Web閲覧者が被害を受けるような悪意あるデータがWebサイトの外部から入力されなければならないが、このデータ入力がどのようなプロセスを経て入力されるかという点に注目してみたい。
1.攻撃者自身による入力
インターネットの掲示板において、HTMLタグが自由に書き込めるという脆弱性の場合、悪意あるデータは、悪意ある攻撃者の自らの手で記事を投稿することによって入力される。もちろん記事投稿を自動化して、その自動化した仕組みのトリガーをさらに善意の第三者に引かせることも可能だが、少なくとも被害者自身の手で入力されるわけではない。
そして被害者は、被害に遭うよりも以前と全く同じ手続きで、通常と同じURLのページを見るだけで被害に遭う。前回記事でも説明したように、ある日突然被害に遭うというこの特質こそ、インターネット掲示板の脆弱性が特に危険である理由である。
また、この悪意あるデータ入力経路は非常に単純であり、悪意ある「クロスサイトスクリプティング脆弱性」などという言葉などなかったころから知られている問題である。また、入力された悪意あるデータが一過的にではなく、蓄積されて何度でも再現されるという特徴がある。このような特異性からも、掲示板の脆弱性は厳密なクロスサイトスクリプティング脆弱性という言葉の定義からは少々はずれてしまっているとも言える。
2.URLからの入力 (GETメソッド)
クロスサイトスクリプティング脆弱性における、典型的な悪意あるデータ入力経路の一つはURLの文字列の一部としてデータが含み込まれている場合である。その典型的なURLの形式としては、
http://some_site/vulnetable.cgi?parameter=悪意あるコード
というcgiのパラメータの値に悪意あるコードを含んだ形式になっている場合が多い。
被害に遭うユーザは、そのURLに意図せぬ効果を発揮する文字列が含まれているとは気づかずに、自身の手でアクセスする。つまり被害者自身が悪意あるコードを入力することになる。もちろん、悪意あるURLは何らかの形で攻撃者によって被害者に示されているので、悪意あるデータの経路は
攻撃者→被害者→脆弱性のあるWebページ→被害者
となる。最終的にはWebページで表示された悪意あるデータによって、実際に被害がもたらされるわけであるが、最初に被害者が悪意あるデータを渡された時には、そのデータはいきなり効果を発揮せず、潜伏している。「攻撃者→被害者」の段階では悪意あるスクリプトが発動せず、それを別のサイトに入力して初めてスクリプトが起動するところが、クロスサイトスクリプティング脆弱性の最たる特徴とも言えるだろう。
このような悪意あるURLについて、「変なURLだから、気づくに決まっている」と言う人もいるが、これは誤解である。脆弱性をついた悪意あるページへのアクセスの前には、そのジャンプ先のURLがどのようなものかをわからなくしたり、偽装したりすることはきわめて容易である。また状況によっては、現在アクセス中のURLさえも、アドレスバーを隠すなどして不審なURLを見せないようにすることが有効な場合もある。
office
office@ukky.net
http://www.office.ac/
(詳しくはScan本誌をご覧ください)
http://shop.vagabond.co.jp/m-ssw01.shtml
《ScanNetSecurity》