・ 2006年4月 ・ |
●
(06/04/24)
|
●
(06/04/17)
|
●
(06/04/10)
|
●
(06/04/03)
|
・ 2006年3月 ・ |
●
(06/03/27)
|
●
(06/03/20)
|
●
(06/03/13)
|
●
(06/03/06)
|
・ 2006年2月 ・ |
●
(06/02/27)
|
●
(06/02/20)
|
●
(06/02/13)
|
●
(06/02/06)
|
・ 2006年1月 ・ |
●
(06/01/30)
|
●
(06/01/23)
|
●
(06/01/16)
|
・ 2005年12月 ・ |
●
(05/12/19)
|
●
(05/12/12)
|
●
(05/12/05)
|
・ 2005年11月 ・ |
●
(05/11/28)
|
●
(05/11/21)
|
●
(05/11/14)
|
●
(05/11/07)
|
・ 2005年10月 ・ |
●
(05/10/31)
|
●
(05/10/24)
|
●
(05/10/17)
|
●
(05/10/03)
|
・ 2005年9月 ・ |
●
(05/09/26)
|
●
(05/09/12)
|
●
(05/09/05)
|
・ 2005年8月 ・ |
●
(05/08/29)
|
●
(05/08/22)
|
●
(05/08/08)
|
●
(05/08/01)
|
・ 2005年7月 ・ |
●
(05/07/25)
|
●
(05/07/11)
|
●
(05/07/04)
|
・ 2005年6月 ・ |
●
(05/06/27)
|
●
(05/06/20)
|
●
(05/06/13)
|
●
(05/06/06)
|
・ 2005年5月 ・ |
●
(05/05/30)
|
●
(05/05/23)
|
●
(05/05/16)
|
●
(05/05/09)
|
・ 2005年4月 ・ |
●
(05/04/25)
|
●
(05/04/18)
|
●
(05/04/11)
|
●
(05/04/04)
|
・ 2005年3月 ・ |
●
(05/03/28)
|
●
(05/03/14)
|
●
(05/03/07)
|
・ 2005年2月 ・ |
●
(05/02/28)
|
●
(05/02/21)
|
●
(05/02/14)
|
●
(05/02/07)
|
・ 2005年1月 ・ |
●
(05/01/31)
|
●
(05/01/24)
|
●
(05/01/17)
|
・ 2004年12月 ・ |
●
(04/12/20)
|
●
(04/12/13)
|
●
(04/12/06)
|
・ 2004年11月 ・ |
●
(04/11/29)
|
●
(04/11/22)
|
●
(04/11/15)
|
●
(04/11/08)
|
●
(04/11/01)
|
・ 2004年10月 ・ |
●
(04/10/25)
|
●
(04/10/18)
|
●
(04/10/04)
|
・ 2004年9月 ・ |
●
(04/09/27)
|
●
(04/09/13)
|
●
(04/09/06)
|
・ 2004年8月 ・ |
●
(04/08/30)
|
●
(04/08/23)
|
●
(04/08/09)
|
●
(04/08/02)
|
・ 2004年7月 ・ |
●
(04/07/26)
|
●
(04/07/12)
|
●
(04/07/05)
|
・ 2004年6月 ・ |
●
(04/06/28)
|
●
(04/06/21)
|
●
(04/06/14)
|
●
(04/06/07)
|
|
|
【第104回】
クロスサイトスクリプティングとかご抜け詐欺
(05/03/28)
窓の杜高校、超パソコン部の部室。
あらあら、めも理ちゃん。今日は暗い顔をしています。
一体、何があったのでしょうか?
かご抜け詐欺
|
ドヨ~ン。
|
|
どうしたんですか、めも理ちゃん。不幸のどん底のような顔をして。
|
|
それがね、聞いてよ窓太。週末に旅行会社へ飛行機のチケットを買いに行ったのよ。
そうしたら、お店の前でスーツ姿の人が立っていて、今なら格安チケットがあるよと教えてくれたの。だからその人と旅行会社に入り、ロビーでお金を渡したのよ。『発券して来るから、ちょっと待っててね』と言われて待たされたんだけど、その人がそのまま帰って来なかったの。
どうやら、偽店員だったみたい。はぁ。
|
|
えー、それは典型的なかご抜け詐欺ですね。
|
|
かご抜け詐欺?
|
|
ええそうです。本当は無関係なのに建物や店舗の関係者と思わせて、相手を信用させてからお金を受け取り、相手を待たせている間に裏口から逃げるという方法の詐欺です。
|
|
がーん、私が被害を受けた手口そのものじゃない。私は詐欺にあっていたの!
|
|
気をつけて下さいよ。
さらにこういうのは、現実の世界だけではなく、インターネットの世界でもありますから。
“クロスサイトスクリプティング”なんかは、このかご抜け詐欺によく似ていますよ。
|
|
クロスサイトスクリプティング? あぁ、私なんかのような、か弱い女の子を食い物にする魔性の手口なのね!
ねえ、窓太。引っ掛かる前に、その手口を教えてちょうだい!
|
|
分かりました。めも理ちゃんの安全のためにも説明することにしましょう。
|
クロスサイトスクリプティング
|
めも理と窓太の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は、実在するものでした。関係者の皆様にご迷惑をおかけしましたことをお詫びするとともに、記事内の表記を訂正させていただきました。
|
|
|