クロスサイトスクリプティング(XSS)とは?攻撃の概要と流れを図解でわかりやすく解説

クロスサイトスクリプティング(XSS)とは?攻撃の種類と対策を図解でわかりやすく解説するサイバーセキュリティのタイトルイメージ セキュリティ

1_スクリプト攻撃とは?

Webサイトを表示するための言語である「HTML」にスクリプトと呼ばれるプログラムを埋め込むことで不正な挙動を誘発させる攻撃のことを指します。
HTMLにスクリプトを埋込むことは、動的なコンテンツ(例:ニュースサイトのトップページ最新記事等が自動で更新されるなど)に必要な技術ですが、スクリプト攻撃は、この性質を悪用したものになります。

スクリプト攻撃のイメージ図

掲示板サイトに、迷惑なアラートが勝手に表示されるようなスクリプトの場合・・・
①掲示板への投稿するフォームに、スクリプトタグと呼ばれる構文を入力する
Webサイトに脆弱性がある場合、送信されたスクリプトをサーバのデータベースに保存してしまう
③掲示板サイトに、通常の利用者がアクセスすると関係のないアラートが勝手に表示されてしまう

掲示板サイトに悪意あるスクリプトを埋め込むと、閲覧者のブラウザで自動的に迷惑なアラートが表示されるイメージ図

2_ではクロスサイトスクリプティングとは?

クロスサイトスクリプティングとは、スクリプト攻撃を実行するにあたって複数のサイトを跨ぐことから、この名称がつけられています。

バグ太郎
バグ太郎

そもそもなんで、攻撃者はクロスサイトスクリプティング攻撃を実行するのですか?

C-3PU
C-3PU

攻撃する理由は多岐にわたります。
セッション情報・個人データの窃取、ウェブサイトの改ざん(画面書き換え)、マルウェア配布などありますが、本質は、「利用者のブラウザ上で、勝手にJavaScriptを実行する」ことにあります。ここでは、代表的な例であるセッション情報窃取で説明したいと思います。

怪盗プチパケ
怪盗プチパケ

標的の通販サイトへのセッションを奪って、いろいろな情報をとってやりたいぜ・・・

バグ太郎
バグ太郎

うわ・・・いきなり危ない人出てきちゃった・・・

C-3PU
C-3PU

これは、私が作った教育用のテストプログラムなので安心してください・・・
万が一暴走したら私が消します

怪盗プチパケ
怪盗プチパケ

セッション情報を得るには・・・Cookie※1を手に入れるのが一番だ・・・
ようし・・・そこでクロスサイトスクリプティング攻撃だ!

※1 Cookieは、Webサイトがユーザーのブラウザに小さなデータを保存し、次回以降のリクエストで同じサイトに送信させる仕組みです

3_クロスサイトスクリプティングの流れ

3-1_スクリプトが埋め込まれたURL送付 ~ Webサーバへのリクエストまで

スクリプトを実行するまでの前段の流れとしては
①攻撃者が、悪意のあるスクリプトが含まれたURLをメールで送信する
②利用者が誤ってURLをクリックしてしまう
③通販Webサーバに、悪意のあるスクリプトが含んだリクエストが走ってしまう

反射型XSS攻撃の流れステップ①-1。攻撃者がスクリプト入りURLを生成してメールなどで送信し、ユーザーがクリックしてWebサーバへリクエストを送るまでのフロー図
3-2_Webページの返却 ~ Cookieの漏洩

④(通販Webサーバに脆弱性があるため)悪意のあるスクリプトが埋め込まれたWebページを返してしまう。
⑤利用者PCのブラウザでは、返送されたページを開いた際に悪意のあるスクリプトが実行されてしまう
⑥スクリプトの実行により、ブラウザが保持していたCookie情報が攻撃者が用意したサーバに送信されてしまう。

反射型XSS攻撃の流れステップ②。脆弱なWebサーバが悪意あるスクリプトを含むHTMLを返却し、ブラウザが当該スクリプトを実行する様子を示すフロー図

このようにサイトを跨って行われるためクロスサイトスクリプティングと呼ばれる

反射型XSS攻撃の流れステップ③。ブラウザが攻撃者サーバへCookie情報を自動送信し、ユーザーの機密データが漏洩する流れを示すフロー図

コメント

タイトルとURLをコピーしました