窓の杜Logo
バックナンバー
・ 2006年5月 ・
最終回:めも理、2年生に進級!? (06/05/15)
・ 2006年4月 ・
第152回:NTPサーバーと電話の時報 (06/04/24)
第151回:アプリケーションの強制終了とサッカーのレッドカード (06/04/17)
第150回:サードパーティと車の改造 (06/04/10)
第149回:送るメニューとスタントマン (06/04/03)
・ 2006年3月 ・
第148回:ダウンロードのレジュームと長編マンガの読書 (06/03/27)
第147回:プレイリストとお菓子のレシピ (06/03/20)
第146回:ホットスポットと宅配便 (06/03/13)
第145回:ファイルの関連付けと専門医 (06/03/06)
・ 2006年2月 ・
第144回:SpeedStepとめも理のマラソン (06/02/27)
第143回:CC、BCCとクラス会の案内状 (06/02/20)
第142回:トラックバックと掲載誌の贈呈 (06/02/13)
第141回:ブログと首相の記者会見 (06/02/06)
・ 2006年1月 ・
第140回:ハッシュ値と人間の指紋 (06/01/30)
第139回:ヒューリスティックエンジンと実験室 (06/01/23)
第138回:ネットバンキングとラーメンの出前 (06/01/16)
・ 2005年12月 ・
第137回:グループウェアと職員室 (05/12/19)
第136回:モーフィングとお餅 (05/12/12)
第135回:GIFアニメーションとパラパラマンガ (05/12/05)
・ 2005年11月 ・
第134回:アスキーアートとビーズ細工 (05/11/28)
第133回:相対パスと上の階 (05/11/21)
第132回:アドミニストレーターと賃貸マンションの管理人 (05/11/14)
第131回:デスクトップ検索と専属探偵 (05/11/07)
・ 2005年10月 ・
第130回:パターンファイルと犯罪捜査 (05/10/31)
第129回:仮想メモリとコインロッカー (05/10/24)
第128回:アフィリエイトと販売代理店 (05/10/17)
第127回:アカデミックパッケージと子供料金 (05/10/03)
・ 2005年9月 ・
第126回:ブルースクリーンと朝礼の貧血 (05/09/26)
第125回:スタンバイとビデオの一時停止 (05/09/12)
第124回:ソースコードとペーパークラフト (05/09/05)
・ 2005年8月 ・
第123回:WYSIWYGとレストラン入り口の食品サンプル (05/08/29)
第122回:NASと庭の納屋 (05/08/22)
第121回:アルゴリズムとプラモデルの組み立て説明書 (05/08/08)
第120回:ストリーミングと電話の問い合わせ (05/08/01)
・ 2005年7月 ・
第119回:RAWデータと映画の原作 (05/07/25)
第118回:OCRと教科書の朗読 (05/07/11)
第117回:ベリファイと時間割の確認 (05/07/04)
・ 2005年6月 ・
第116回:マルチモニターと机の合体 (05/06/27)
第115回:ポートと駅の北口 (05/06/20)
第114回:ポップアップと漫画のフキダシ (05/06/13)
第113回:SNSと同窓会のお知らせ (05/06/06)
・ 2005年5月 ・
第112回:代打のバッターと仮想プリンター (05/05/30)
第111回:ルアー釣りとフィッシング詐欺 (05/05/23)
第110回:楽器屋さんと統合アーカイバプロジェクト (05/05/16)
第109回:手抜き感想文とテンプレート (05/05/09)
・ 2005年4月 ・
第108回:ダンボール箱とメディア (05/04/25)
第107回:詰め込みメモとCSV形式 (05/04/18)
第106回:車の免許とタイムスタンプ (05/04/11)
第105回:借りっぱなしの本とWebブラウザーのキャッシュ (05/04/04)
・ 2005年3月 ・
第104回:クロスサイトスクリプティングとかご抜け詐欺 (05/03/28)
第103回:GREPとアンケート調査 (05/03/14)
第102回:タスクトレイと腕時計 (05/03/07)
・ 2005年2月 ・
第101回:QRコードと学校の下駄箱 (05/02/28)
第100回:100回記念企画 窓の杜編集部に行ってみよう!(実写版) (05/02/21)
第99回:ログと学級日誌 (05/02/14)
第98回:マウスジェスチャーと変身ヒーロー (05/02/07)
・ 2005年1月 ・
第97回:Webメールと美人秘書 (05/01/31)
第96回:ごみ箱のデータと学食の下膳台 (05/01/24)
第95回:IMEと執事と国語辞典 (05/01/17)
・ 2004年12月 ・
第94回:エンコード、デコードとカップラーメン (04/12/20)
第93回:ポリゴンとお風呂のタイル (04/12/13)
第92回:RSSと電車の吊り広告 (04/12/06)
・ 2004年11月 ・
第91回:ファイヤーウォールと空港の持ち物検査 (04/11/29)
第90回:スパイウェア、アドウェアと盗聴器 (04/11/22)
第89回:デフォルトとご飯の大盛り (04/11/15)
第88回:PDFと設計図 (04/11/08)
第87回:タブレットとスケッチブック (04/11/01)
・ 2004年10月 ・
第86回:IEコンポーネントとスポンジケーキ (04/10/25)
第85回:共有フォルダと部室の雑誌置き場 (04/10/18)
第84回:スキャンディスクとダムの検査 (04/10/04)
・ 2004年9月 ・
第83回:デバイスのドライバーと車の運転手 (04/09/27)
第82回:サービスパックと家のリフォーム (04/09/13)
第81回:FAQとトイレの張り紙 (04/09/06)
・ 2004年8月 ・
第80回:黒板消し落としとブラクラ (04/08/30)
第79回:予防接種とWindows Update (04/08/23)
第78回:十徳ナイフとファンクション・キー (04/08/09)
第77回:狐や狸と差出人詐称ウイルスメール (04/08/02)
・ 2004年7月 ・
第76回:穴埋め問題とオートコンプリート (04/07/26)
第75回:内線電話とLAN (04/07/12)
第74回:めも理の将棋とアンドゥー (04/07/05)
・ 2004年6月 ・
第73回:始業の準備とスタートアップ (04/06/28)
第72回:バリアフリーとアンチエイリアス (04/06/21)
第71回:太陽と月とRGBとCMYK (04/06/14)
第70回:カタカナ言葉と通信の暗号化 (04/06/07)
 

これ以前の連載一覧

【第104回】

クロスサイトスクリプティングとかご抜け詐欺

(05/03/28)

めも理 窓太 めも理と窓太
登場人物紹介

 窓の杜高校、超パソコン部の部室。

 あらあら、めも理ちゃん。今日は暗い顔をしています。

 一体、何があったのでしょうか?

かご抜け詐欺

めも理  ドヨ~ン。

窓太  どうしたんですか、めも理ちゃん。不幸のどん底のような顔をして。

めも理  それがね、聞いてよ窓太。週末に旅行会社へ飛行機のチケットを買いに行ったのよ。
 そうしたら、お店の前でスーツ姿の人が立っていて、今なら格安チケットがあるよと教えてくれたの。だからその人と旅行会社に入り、ロビーでお金を渡したのよ。『発券して来るから、ちょっと待っててね』と言われて待たされたんだけど、その人がそのまま帰って来なかったの。
 どうやら、偽店員だったみたい。はぁ。

窓太  えー、それは典型的なかご抜け詐欺ですね。

めも理  かご抜け詐欺?

窓太  ええそうです。本当は無関係なのに建物や店舗の関係者と思わせて、相手を信用させてからお金を受け取り、相手を待たせている間に裏口から逃げるという方法の詐欺です。

めも理  がーん、私が被害を受けた手口そのものじゃない。私は詐欺にあっていたの!

窓太  気をつけて下さいよ。
 さらにこういうのは、現実の世界だけではなく、インターネットの世界でもありますから。
 “クロスサイトスクリプティング”なんかは、このかご抜け詐欺によく似ていますよ。

めも理  クロスサイトスクリプティング? あぁ、私なんかのような、か弱い女の子を食い物にする魔性の手口なのね!
 ねえ、窓太。引っ掛かる前に、その手口を教えてちょうだい!

窓太  分かりました。めも理ちゃんの安全のためにも説明することにしましょう。


クロスサイトスクリプティング

4コマまんが
めも理と窓太の4コマまんが
「クロスサイトスクリプティング」

窓太  先程のかご抜け詐欺は、建物や店舗を利用して相手を信用させる方法でしたが、クロスサイトスクリプティングは、Webサイトを利用して相手を信用させる方法です。

めも理  Webサイト? Webサイトが建物や店舗の代わりになるの?

窓太  そうです。

めも理  でも、Webサイトに人間は入れないし、お金を受け取って、裏口から出て行くこともできないわよ。

窓太  人間は入れませんが、“ある物”は入れます。それに、奪うのはお金ではなく、貴重なデータです。
 そして裏口から出て行く代わりに、本来はそのWebサイトでしか見られないはずのデータをほかのWebサイトに送ってしまうのです。

めも理  ある物って何? それに、その説明じゃ私みたいな素人には分からないわ。もっと詳しく教えてちょうだい。

窓太  それでは、今から詳しく説明しますね。
 Webページ上に表示されているメッセージは、通常、そのページの管理者や運営者が書いたものですよね。
 しかし例えば、掲示板へ文章を書き込んで表示させることは、そのWebサイトの管理者以外でもできます。
 つまり、Webサイトに入ることができる“ある物”とは、CGIを利用して書き込んだメッセージのことです。

めも理  なるほど。CGIを使ったメッセージなら、Webサイトの管理者以外でも書き込めるわね。

窓太  ほかにも、入力フォームの確認画面などに表示される内容も、そのWebサイトの管理者以外の人が書き込んだ内容になりますよね。
 例えば、めも理ちゃんの名前や住所などは、めも理ちゃんが書いたとおりに表示されるはずです。

めも理  まあそうね。

窓太  このように、Webサイトという店舗には、そのWebサイトの管理者以外が書き込んだ文章を表示させることができます。ここまでは分かりますか。

めも理  普通に、インターネットを使っているときに、掲示板や入力フォームを使っているから、それぐらいは分かるわよ。
 でも、こういった書き込みは、詐欺師のように私を騙して、物やデータを奪うことはできないわ。

窓太  実は、こういった書き込みのなかに、詐欺師のように働く文章を混ぜることができるのです。

めも理  えっ、そんなことができるの?

窓太  できるのです。JavaScriptなどのプログラムを書き込めば、それが可能になるのです。
 先程の入力フォームを例にしてみます。入力フォームに『めも理』『○○市△△区……』といった内容を書き込んで送信ボタンを押すと、確認画面が表示されて書き込んだ内容が表示されますね。
 ユーザーが入力を行うこの部分に、直接JavaScriptによるプログラムを書けば、そういうことが可能になります。

めも理  あっ、なるほどね。

窓太  しかし通常は、このようにプログラムを書き込んでも、Webページに表示されないようになっています。プログラムが書き込まれると、サーバー側でそれを検知して書き替え、JavaScriptを実行できないように改変して表示するからです。
 けれども、時に、サーバー側のミスでプログラムが書き込まれたことを検知できず、プログラムを混入したまま表示してしまうことがあるのです。

めも理  分かったわ。そういうときにJavaScriptがそのまま表示、つまり実行されてしまって、プログラムが詐欺師のようなことを行うというわけね。
 でも、掲示板の書き込みならいざ知らず、入力フォームの場合は、自分で入力した結果しか見ることはないはずよね。入力フォームの説明をすることに何か意味があるの?

窓太  実はあるのです。このような場合、結果画面を表示するURLのうしろに、フォームへの入力内容を続けて入力すれば、フォーム内に文字を表示した状態で、結果場面を表示できることがあるのです。
 つまり、フォームの入力内容を、CGIのURLのなかに記述できるわけですね。ですから、このパラメーターの部分に悪質なプログラムを埋め込むことができてしまうのです。
 そうしておいて、そのリンクをクリックすれば、JavaScriptが埋め込まれた入力フォームの結果画面が表示されて、プログラムが実行されることになります。

めも理  へー。何だか難しそうだけど、悪質なプログラムが実行されるWebページへのURLを、そのWebサイトと無関係な人が作ることができるというわけね。

窓太  そうです。こういった手段を用いれば、めも理ちゃんが引っ掛かった、かご抜け詐欺のようなことができてしまうのです。
 まず、路上でめも理ちゃんが声をかけられたように、適当なWebページを作り、CGIのパラメーターつきの有名なWebサイトなどへのリンクを用意します。
 そして、めも理ちゃんを信用できるお店などに連れていくように、その適当なWebページから、先ほどのパラメーターつきの有名Webサイトへのリンクをクリックさせます。
 最後に、お金を受け取って裏口から逃げるのと同じように、表示させたJavaScriptつきのWebページでプログラムを実行させて、重要なデータを奪い、ほかのWebサイトに送ってしまうのです。
 有名なWebサイトへのリンクだと、みんな信用してクリックをしてしまいます。そのため、こういった罠に意外と簡単に引っ掛かってしまうのです。
 無関係なWebサイトから、信用のできるWebサイトへのリンクをクリックさせる。このように、複数のWebサイトにまたがった手法のため、こういった方法を“クロスサイトスクリプティング(の)問題”と呼びます。
 日本語に訳せば、“サイトをまたがったスクリプト実行”という意味になります。略記号としては、XSSと書かれることが多いですね。

めも理  うわー、そんな詐欺の手段があったんだ。
 でも、疑問なんだけど、重要なデータが奪われるって、どういったデータが奪われるの?

窓太  よく取り上げられるのがCookieの中身を奪われることです。通常では、例えば「http://example.com/」というWebサイトのCookieは、「http://example.com/」で実行されたプログラムだけが、自由に読みとることができるという性質をもっています。そしてクロスサイトスクリプティングでは、このCookieの性質を悪用することができるわけです。

めも理  どうやって悪用するの?

窓太  先ほども言いましたが、クロスサイトスクリプティングでアクセスするのは、あくまで閲覧者が信用している本物のWebサイトということになります。悪意のある人が、クロスサイトスクリプティングを利用して作ったリンクであっても、本物のWebサイトにアクセスしていることには変わりありませんから、本物のWebサイトで保存されたCookieを読み取ることができてしまうのです。そして読みとったCookieの中身を、JavaScriptを使ってこっそりほかのWebページに送ることができるのです。
 Cookieの情報で、重要なIDやパスワードを記入している場合は、その情報が奪わてしまいます。銀行の口座番号や暗証番号などが盗まれる可能性だってあります。

めも理  それは大変ね。何か、対策方法はないの?

窓太  ユーザー側からの対策としては、危険そうなリンクはクリックしないことや、危なさそうなWebサイトやページを閲覧する場合はJavaScriptをOffにしておくことなどが挙げられます。
 あとは、Webブラウザーのstatusの値、Internet Explorerではウィンドウの左下に出るリンク先のURLを確認することもおすすめします。
 ただし、このstatusの値も偽装できるので、あまり信用し過ぎてはいけません。少しでも怪しいと思ったら、そのWebページのソースコードを見て確かめたほうがよいでしょう。

めも理  なかなか危険いっぱいのインターネットね。

窓太  クロスサイトスクリプティングの問題は、説明の最初のほうで言ったとおり、実行できないはずのプログラムが実行できてしまうことが原因です。つまり、本物のWebページやサイト側の問題ということになります。
 ですから、このようなミスが起こらないように、あらかじめWebページ側でこういった危険なスクリプトを実行できないようにしておく必要があるわけですね。こういった危険なスクリプトが実行できないようにすることを、“サニタイズ”と言います。覚えておくといいですよ。
 何度も言いますが、安全そうなWebサイトへのリンクだからと言って、安易に信用してはいけません。油断していると、危険な罠に引っ掛かってしまいます。とくに、CGIへのリンクの場合は、疑ってかかったほうがよいです。

めも理  現実世界もWebの世界も、なかなか大変なのね。


引きこもり

窓太  結局、めも理ちゃんが引っ掛かった詐欺は、その後どうなりましたか。

めも理  無事、詐欺師が捕まって、お金が戻って来たわ。

窓太  それはよかったですね。そのお金で、また旅行を予約するのですか?

めも理  いや、旅行は取りやめにしたわ。

窓太  なんでまた。

めも理  だって、また騙されるかも知れないでしょう。もっと確実に安心できる手段で週末を過ごすことにしたの。

窓太  何ですかそれは。

めも理  家に閉じこもって過ごすのよ。外は危険がいっぱいよ。でも家のなかなら安心でしょう。

窓太  あわわ、めも理ちゃんが引きこもりに。
 それでは『インターネットは危険だから、インターネットしない』と言っているのと同じですよ。きちんと周りに注意して、外出するようにしてください。


今回出てきた用語の解説

【クロスサイトスクリプティング】 複数のWebサイトをまたぎ、CGIのセキュリティホールを使って、スクリプトを実行させる手法。Cookieの情報を盗んで、ほかのWebサイトへ送ったりする。

クロノス・クラウン:柳井 政和


お詫びと訂正: 記事初出時に“Cookieの中身を奪われる”事例のサンプルとして示したURLは、実在するものでした。関係者の皆様にご迷惑をおかけしましたことをお詫びするとともに、記事内の表記を訂正させていただきました。




トップページへ
めも理と窓太のパソコン講座 INDEX へ
Copyright ©2005 Impress Corporation, an Impress Group company. All rights reserved.
編集部への連絡は お問い合わせはこちらをクリック まで