アンケートご協力のお願いgihyo.jpでは,2010年度に向けて豪華プレゼントが当たる読者属性アンケートを実施しております。ご協力ください。

gihyo.jp » DEVELOPER STAGE » 連載 » ここが危ない!Web2.0のセキュリティ » 第11回 ガジェット,ウィジェットのセキュリティ

ここが危ない!Web2.0のセキュリティ

第11回 ガジェット,ウィジェットのセキュリティ

ガジェットは小物か?

ガジェットウィジェットという言葉を聞いたことがあるでしょうか。デスクトップやWebに表示された時計やカレンダーのような小さなソフトウェアのことです。大規模なことを行うソフトウェアではなく,かゆい所に手が届く小物といった位置づけです。HTMLやJavaScriptを使って作られるため,開発もインストールも容易であることが広まった理由だと思います。元々は,「Window + Gadget = Widget」という関係にあったようですが,現在はどちらも同じ意味で使われることが多くなっています。そのため,この記事でも同じ意味として用いることにします。

Windows VistaではWindowsサイドバーという名称でデフォルトでインストールされています。図1の画面右側に表示されているのがサイドバーで,1つ1つのパーツをガジェットと呼びます。

図1 Windowsサイドバー

図1 Windowsサイドバー

さて,HTMLやJavaScriptを用いて開発されるということは,Web関連の脆弱性が存在する可能性があります。その証拠に,Googleデスクトップのサイドバーにガジェットを追加する際には図2のような警告が表示されます。

図2 Googleガジェット追加時の警告

図2 Googleガジェット追加時の警告

これは何かセキュリティ上の問題を含んでいそうです。では,デスクトップに設置するガジェットには具体的にどのような危険があるかを考えていきます。

ガジェットのセキュリティを考えるポイント

Same-Originポリシーは機能しているか

Same-Originポリシーが破られた場合の被害については第2回で説明しましたが,ガジェット内でサイトをまたがってページ遷移を行うことは稀です。他のサイトにログインしていなければ,ログイン後のページの情報を盗まれることはありません。しかし,次の「Cookie情報は引き継がれるか」と併せて考えることで,クロスドメインアクセスによりセキュリティ侵害が発生するケースがあります。

Cookie情報は引き継がれるか

Webブラウザでサイトを閲覧した際に保存されているCookieをガジェットからも送るようになっていた場合,スクリプトを使用してクロスドメインアクセスを行うことにより,被害者しか見ることができないはずの機密情報を提供するページの内容を攻撃者が取得することができます。

どのOrigin(ドメイン)に属するか

マイコンピュータのドメインに属する場合には,スクリプトを使用してローカルコンピュータのファイルにアクセスすることが可能になります。

どのセキュリティゾーンに属するか

マイコンピュータのセキュリティゾーンに属するアプリケーションであった場合,セキュリティ設定はインターネットゾーンに比べてデフォルトで低くなっています。そのため,どのセキュリティゾーンに属するかについて気を配る必要があります。ちなみに,Internet Explorerのインターネットオプションにはマイコンピュータのセキュリティゾーンは表示されませんが,レジストリを参照することで,設定を確認することができます()。

また,マイコンピュータのセキュリティゾーンに属する場合には,「ドメイン間でのデータソースのアクセス」がデフォルトで有効になっています。これはクロスドメインアクセスが可能であることを意味し,Same-Originポリシーが機能しないことになります。

どのような追加機能があるか

ガジェットによっては追加の機能が用意されているものがあります。たとえばCPUやメモリの状態を取得するAPIが用意されています。中にはJavaScriptから任意のコマンドを実行できるものまであります。

実際のケース

それではいくつかのガジェットでは実際にどのようになっているかを紹介します。なお,動作検証を行ったOSは,WindowsサイドバーについてはWindows Vista,それ以外はWindows XPです。

Windows Vistaのサイドバー

ローカルのファイルへのアクセスが可能です。さらにどのセキュリティゾーンにも属さず,確認ダイアログ無しでActiveXの実行が可能ですので,任意のコマンドを実行することが可能です。また,ActiveXを使用せずともSystem.Shell.execute()というAPIで任意のコマンドを実行可能です。

Internet Explorerのセキュリティ設定は引き継がれず,非常に制限の緩い状態で実行されます。ガジェットはマイコンピュータゾーンに属すると思われがちですが,実際はどのセキュリティゾーンにも属していません。Cookie情報はInternet Explorerのものを引き継ぎません。

Googleサイドバー(バージョン:Google デスクトップ 5.1.0709.19590-ja-pb)

XMLHttpRequestオブジェクトを使用してローカルファイルへのアクセスが可能です。任意のコマンドを実行するためのAPIは用意されていませんが,ActiveXを用いることで任意のコマンドを実行することが可能です。CookieはInternet ExplorerのCookieの中で有効期限が「セッション限り」でないものであれば送られます。そのため,セッション限りでないCookieをセッションとして使用しているサイトの情報が盗まれる可能性があります。

Yahoo!ウィジェット(バージョン:4.0.6)

XMLHttpRequestオブジェクトからはローカルファイルへアクセスすることはできませんが,追加のAPIが用意されており,そのAPIを利用することでローカルファイルへアクセスすることが可能です。また,runCommand()というAPIも用意されており任意のコマンドを実行することが可能です。なお,CookieはInternet Explorerのものを使用しません。

Opera Widgets(バージョン:Opera 9.24)

XMLHttpRequestオブジェクトからはローカルファイルへアクセスすることはできません。CookieはOpera Webブラウザのものを使用しません。

足並みの揃わないセキュリティモデル

このように,ローカルファイルへのアクセス,任意のコマンド実行,Cookieの扱い等の観点で見てセキュリティの実装はガジェットによってばらばらな状態です。非常に緩いセキュリティ設定になっているガジェットもあります。各社独自に開発を進めており,セキュリティモデルに統一見解が存在しないのがその原因でしょう。

ガジェットは実行ファイルと同等

ガジェットを登録することはEXE形式の実行ファイルをインストールするのと同じだと考えてください。違いといえば,HTMLやJavaScriptで記述されたガジェットの場合はソースコードを読むことで,動作を把握することができるのに対して,EXE形式の実行ファイルはリバースエンジニアリングを行っても,難読化の技術が進んでおり正確に動作を把握することは難しい状況にあるということです。しかしながらガジェットでも,規模が大きくなるとソースコードを読んで動作を把握することは難しくなります。そのため,実行ファイルをインストールするのと同じだと考えておいたほうがよいでしょう。セキュリティを考えると決して小物ではありません。サイドバーの中には何の警告も無くガジェットを登録してしまうものがありますが,ユーザは十分に注意するべきです。

著者プロフィール

福森大喜(ふくもりだいき)

株式会社セキュアスカイ・テクノロジー CTO。大学の授業で作成したプログラムのセキュリティホールを指摘されたのがきっかけでセキュリティの道に進む。セキュリティベンダーでIDS,IRT等に従事した後,Webアプリケーションのセキュリティ検査サービスを立ち上げる。2006年4月に株式会社セキュアスカイ・テクノロジーを設立。

URLhttp://www.securesky-tech.com/

コメント

コメントの記入

パスサポ

多数の情報処理技術者試験対策書籍の発行実績を誇る技術評論社がお届けする,資格試験合格サイト「めざせ! 情報処理試験 パスサポ」が開設されました。

ピックアップ

サクセスストーリーに続く,快適サーバー運用管理のヒント!

データの増大,煩雑な管理,システムダウン,セキュリティなど,迫りくる課題からシステム管理者の負担を軽くするポイントを解説します。

gihyo.jp インフラエンジニア情報局

ネットワークやITにかかわるあらゆる業種で必要とされるインフラエンジニアに向けた技術情報や心構え,その魅力について多角的に紹介。

テストエンジニア ステーション

いま,ITに関わるあらゆる開発業務で注目されつつあるテスト系エンジニアをターゲットにしたコンテンツサイトを展開します。

一行クイックアンケート

gihyo.jpで取り上げてほしいネタは?

※検索はページ右上の検索ボックスをご利用ください。

その他の連載

読むウェブ ~本とインタラクション

ディスプレイで読む活字とそのインタラクション(interaction:相互作用)について,最新Webを紹介しながら読み解いていく。

いま,見ておきたいウェブサイト

この連載では,国内外の最新のウェブサイトを隔週更新で取り上げ,これら最新サイトの特徴や素晴らしい部分を,さまざまな角度から解説していきます。

Windows phoneアプリケーション開発入門

Windows Marcketplace for Mobileがサービス開始され,作成したアプリケーションを個人でも世界をターゲットに公開できる環境が整ってきました。これを機にWindows phoneアプリケーションの開発をしてみませんか?

ここは知っておくべき!Windows Server 2008技術TIPS

5年ぶりのサーバOSとなったWindows Server 2008が出荷されて早2年。2009年にはR2が出荷され,再び注目を集めています。発売前から実施したトレーニングによって感じた,インフラエンジニアの方々に知っておいていただきたい機能を中心にご紹介します。

キーパーソンが見るWeb業界

本連載はWeb Site Expert/gihyo.jpとの連動企画です。阿部淳也, 長谷川敦士, 森田雄のお三方による,Web業界をテーマにした座談会です。

きたみりゅうじの聞かせて珍プレー

ソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。みなさんからの投稿もお待ちしてます!

ActionScript 3.0で始めるオブジェクト指向スクリプティング

野中文雄氏が,簡単なスクリプトは書いたことがあるという初級者を対象に,ActionScript 3.0の基本からクラス定義までを解説します。

まだ間に合う「ITパスポート」受験対策 原山先生の短期合格塾

この連載では,4月18日のITパスポート試験の受験に向けて,短い期間で効率良く受験対策を行う方法や,確実に得点するための裏ワザなどを伝授していきます。

連載一覧

gihyo.jp

  • DEVELOPER STAGE
  • ADMINISTRATOR STAGE
  • WEB+DESIGN STAGE
  • LIFESTYLE STAGE
  • SCIENCE STAGE
  • NEWS & REPORT

書籍案内

  • 新刊書籍
  • 書籍ジャンル一覧
  • 書籍シリーズ一覧
  • 新刊ピックアップ
  • ロングセラー
  • 電脳会議

定期刊行物一覧

  • Software Design
  • WEB+DB PRESS
  • Web Site Expert
  • 組込みプレス