番外編最終回 Flash完成! でも最後の仕上げを忘れずに


杉山 俊春
三井物産セキュアディレクション株式会社
テクニカルサービス事業部
コンサルタント
2007/4/13
(Illustrated by はるぷ)

 いろいろできるFlashだからこそ


星野君 「むむむ。FlashとJavaScriptを連携させるっていうのは知ってましたけど、悪用するとかは全然考えたことがなかったです……」
赤坂さん 「まあ、こういう作りになっちゃってるものってそんなにはないのかもしれないけど、swfファイルをそのままアップロードできるようなサービスをしてるとここら辺面倒だね」
星野君 「あー。確かにそうですね。そういうサイトとか結構ありますしね……。そういう場合はどうするんだろう」

 Flashの閲覧を目的としたアップロードサイトなどでは、JavaScriptの動作まで許可してしまうと、想定しているサービスの範囲を超えた操作が可能になってしまうことが大半であると考えられる。

 JavaScriptによって、表示されるページの全体の見た目を変更させたり、Cookieを利用して認証管理などを行っている場合は、セッションを乗っ取られてしまう可能性がある【注2】

【注2】
Flashを閲覧させることを目的としたアップロードサイトなどでは、不正なQueryStringを指定する必要がないため、クロスサイトスクリプティングの攻撃を仕掛ける際にはswfファイルを直接閲覧させる必要がなくなる。

従って、swfファイルを直接閲覧させる場合に比べてJavaScriptの動作制限がなくなり、Internet Explorerでもdocumentオブジェクトを利用し、クロスサイトスクリプティングを実行できてしまう。

 従って、アップロードされるswfファイル内のActionScriptを解析し、不正なActionScriptが埋め込まれていないかなどもチェックする必要がある【注3】

【注3】
実際に問題が起きるものかどうかの判断は細部まで解析する必要が出てくるため、getURL関数自体を制限するなどの方法が現実的であろう

星野君 「Flashって何げなく使ってたけど、いろいろ考えて使わないとですねー」
赤坂さん 「いろいろできると、それを悪用しようって考えたときにいろいろできちゃうことがあるからねー」
星野君 「やっぱり、コンテンツ制作者や利用者からの視点だけじゃなくて、攻撃者からの視点も必要ですねぇ」

赤坂さん 「よし。いろいろFlashについて分かってきたから満足♪ さてと、次は何調べようかなぁ〜♪」

−完−


赤坂さんのFlash・チェックポイント!

 Check!
  Flashを公開する際には逆コンパイルされてしまうことを
  考慮しよう
公開するFlash内に含まれるActionScriptは逆コンパイルされても大丈夫なようにしよう。
trace関数のようなデバッグに利用できるものは、できる限り削除しよう。
 Check!
  FlashとJavaScriptの連携に注意
QueryStringの文字列をgetURLに入れるときは、「javascript:」などの想定していない文字列が入らないようにしよう。
 Check!
  Flashのアップロードサイトなどでは、
  不正なActionScriptに注意しよう
JavaScriptとの連携などを考慮に入れると、想定していない動作を引き起こすことが考えられる。Flashをアップロードするサービスなどを提供する際には、ActionScriptを解析し、不正なActionScriptが埋め込まれていないかをチェックしよう。

3/3

 

Index
Flash完成! でも最後の仕上げを忘れずに
  Page1
星野君、Flash完成! 赤坂さんは早速……
  Page2
デバッグコードを残すのはFlashでも危険
Page3
いろいろできるFlashだからこそ


Profile
杉山 俊春(すぎやま としはる)

三井物産セキュアディレクション株式会社
テクニカルサービス事業部検査グループ
コンサルタント

セキュリティコンサルタントとして、主にWebアプリケーションのセキュリティ検査などに従事している。大手就職活動支援サイト、ショッピングサイトなどの検査実績を持つ。

星野君のWebアプリほのぼの改造計画 連載インデックス


Security&Trust フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Security & Trust 記事ランキング

本日 月間