最近よく聞く「クロスサイトスクリプティング」って?

文:Chad Perrin  翻訳校正:アークコミュニケーションズ、坂野裕史

2008-04-11 08:00

 最近よく耳にするようになったセキュリティ用語に、「クロスサイトスクリプティング」がある。今回は、ウェブサイトの開発者さえ明確な定義を把握していないこともあるこの用語について説明しよう。

 「XSS」とも呼ばれるクロスサイトスクリプティングは、ここ数年の間にかなり注目を集めるようになったセキュリティ攻撃の一種である。しかし多くのユーザーにとって、この用語の意味が完全に明らかなわけではない。ウェブ開発者が意味を把握していないことさえある。ここでは、どこに危険が潜んでいるかわかるように、クロスサイトスクリプティングについて説明しよう。

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

 JavaScriptは高機能なウェブアプリケーションを開発するための強力なツールだ。HTMLやXHTMLのページに埋め込まれたコードをクライアント側で実行しないと、GoogleマップZoho Officeのようなウェブアプリケーションの動的な性質は実現できないだろう。残念なことに、システムに複雑なものを加えると必ず、セキュリティの問題が生じる確率も高まる。ウェブページにJavaScriptを追加する場合も同様だ。

 JavaScriptによって持ち込まれる問題には、たとえば次のものがある。

  1. 悪意のあるウェブサイトがJavaScriptを使って、ファイルをコピーしたり削除したりするなどの変更をローカルシステムに加えるおそれがある。
  2. 悪意のあるウェブサイトがJavaScriptを使って、キーストロークの記録を利用するなどして、ローカルシステムでの活動を監視するおそれがある。
  3. 悪意のあるウェブサイトがJavaScriptを使って、ユーザーが他のブラウザウィンドウやブラウザタブで開いていた別のウェブサイトと相互作用を行うおそれがある。

 上のリストのうち、1番目と2番目の問題は、ブラウザを、JavaScriptに許可する動作を制限する一種の「砂場」(セキュリティ用語の「サンドボックス」)にすることによって軽減することができる。こうして、JavaScriptがブラウザの限られた領域内でのみ動作するようにするのだ。3番目の問題もある程度制限できるのだが、その制限はあっけなく回避できる。特定のウェブページが一定の方法で別のウェブページと相互作用できるかどうかは、エンドユーザーが使うソフトウェアで制御できることではない場合があるためだ。時として、あるウェブサイトに仕掛けられた、別のウェブサイト向けのデータを盗むJavaScriptの機能は、標的となるウェブサイトの開発者が相当な注意を払うことによってのみ抑制することができる。

 クロスサイトスクリプティングについて定義する場合、動的なウェブ設計の要素を採用した特定のウェブサイトに脆弱性が存在することが、セキュリティの侵害のためにだれかがJavaScriptを使う機会を設けることになっているという事実に、解答が潜んでいる。この関係には、目的を達成するために2つの別個のウェブサイト間に相互作用が存在する必要があるため、「クロスサイト」と呼ばれる。ただし多くの場合、この攻撃ではJavaScriptが必ず使われるものの、クロスサイトスクリプティング攻撃に対して脆弱であるWebサイトがJavaScriptそのものを使用している必要はまったくない。ローカル型のクロスサイトスクリプティング攻撃の場合のみ、正当なウェブサイトによってブラウザに送信されるJavaScript内に脆弱性が存在している必要があるのだ。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]