クロスサイトスクリプティング
① 物語性を取り入れた説明
ある日、ユウコは学校の情報科の授業で「クロスサイトスクリプティング(XSS)」という言葉を初めて聞きました。先生がわかりやすく説明を始めました。
「みんな、クロスサイトスクリプティングとは、悪意のあるスクリプトが信頼できるウェブサイトに注入される攻撃のことなんだよ。たとえ話として説明するね。」
かつて、平和な町に「ポストカードクラブ」というグループがありました。クラブメンバーは、町の風景やイベントの写真をポストカードにして交換して楽しんでいました。
ある日、悪戯好きなトムが、彼のポストカードに小さなメッセージを隠しました。「このカードを見た人は、次のミーティングで”トムは素晴らしい”と言わなければならない」というメッセージです。トムのカードを見たメンバーは、知らず知らずのうちにこのメッセージに従ってしまいました。
これが「クロスサイトスクリプティング(XSS)」のたとえ話だよ。クロスサイトスクリプティングでは、悪意のあるスクリプト(メッセージ)が信頼できるウェブサイトに注入され、訪問者(クラブメンバー)がそのスクリプトを実行してしまうんだ。
「先生、クロスサイトスクリプティング攻撃の仕組みをもう少し詳しく教えてください」とユウコが尋ねました。
「そうだね、、例えば、ユーザーが入力したデータをそのまま表示するウェブサイトがあるとするね。攻撃者がその入力欄に悪意のあるスクリプトを仕込むと、そのスクリプトが他のユーザーのブラウザで実行されてしまうんだ。これがクロスサイトスクリプティング攻撃の仕組みだよ」と先生は説明しました。
「じゃあ、どうやってこの攻撃を防ぐんですか?」とユウコは興味津々に聞きました。
「対策としては、まずユーザーからの入力をサニタイズすることが大切だね。入力データを検証し、悪意のあるスクリプトを無害な文字列に置き換えるんだ。また、コンテンツセキュリティポリシー(CSP)を設定することで、信頼できないスクリプトの実行を防ぐことも効果的だよ。CSPを使えば、どのスクリプトが実行できるかをブラウザに指示することができるんだ。」
「他にもおすすめの製品はありますか?」とユウコはさらに質問しました。
「もちろんだよ、ユウコ。例えば、サイトロックというセキュリティ診断&マルウェア駆除のウェブセキュリティサービスは、XSS攻撃に対する防御機能を提供しているんだ。
他にもサイトロック(SiteLock)を使うことで、Webサイトのセキュリティの問題の有無を把握できるんだよ。具体的には下記のようなことだね
・WordPress/Movable Typeなどアプリの脆弱性を見つける
・Webサイトやアプリの脆弱性を見つける
・SQLインジェクションの脆弱性を見つける
・XSS(クロスサイトスクリプティング)の脆弱性を見つける
・Webサイトの不正改ざんを見つける
・Webサイト内のマルウェアを見つける、駆除する
・Webサイト内の不正コンテンツを見つける、削除する
・Googleなどブラックリストに登録されたら即通知 ・SSLの有効期限切れを監視する
これらのサービスを使うことで、ウェブサイトをより安全に保つことができるよ」と先生は答えました。
クロスサイトスクリプティングの定義
クロスサイトスクリプティング:攻撃者が信頼されたウェブサイトに悪意のあるコードを注入し、そのサイトの訪問者に対してコードを実行させるセキュリティ攻撃。
② 実際の事例
2014年に発生した世界最大級のオークションサイトeBayのクロスサイトスクリプティング攻撃は、この攻撃の典型的な例です。
攻撃者はeBayの製品リスティングページに悪意のあるスクリプトを埋め込みました。このスクリプトは、eBayを訪れたユーザーに対して偽のログインページを表示させ、個人情報を盗むよう設計されていました。この攻撃により、1億4500万人ものユーザーが個人情報の漏洩の危険にさらされました。
別の事例では、ある自治体のウェブサイトがクロスサイトスクリプティング攻撃の標的となりました。攻撃者は、自治体の公式発表ページに悪意のあるスクリプトを注入し、訪問者のブラウザを乗っ取りました。その結果、住民がページを訪れるたびに、攻撃者は住民のセッション情報を盗むことができました。これにより、住民のプライバシーが侵害され、自治体の信頼が損なわれる事態となりました。
➂ クイズや小テスト
クイズ1 クロスサイトスクリプティング攻撃で最も一般的に目的とされるものは何ですか?
A. ウェブサイトのデザインを変更する
B. 個人情報を盗む
C. ウェブサイトをクラッシュさせる
クイズ2 クロスサイトスクリプティング攻撃が成功すると、何が攻撃者によって制御される可能性がありますか?
A. ユーザーのブラウザ
B. ウェブサイトのデータベース
C. インターネット接続
クイズ3 クロスサイトスクリプティング攻撃を防ぐためには、どのような対策が効果的ですか?
A. 強力なアンチウイルスソフトの使用
B. ウェブサイトのコード検証とサニタイズ
C. ファイアウォールの設定
回答
クイズ1の答え:B. 個人情報を盗む
クイズ2の答え:A. ユーザーのブラウザ
クイズ3の答え:B. ウェブサイトのコード検証とサニタイズ
応用情報技術者平成30年秋期 午前問41
応用情報技術者平成30年秋期問41 クロスサイトスクリプティング対策
関連
コメント