ある日
サイバーセキュリティお嬢様(以下CSお嬢様)「じいや、今回はクロスサイトスクリプティングのお話でしたわよね?」
じいや「その通りですぞお嬢様」
CSお嬢様「なんだか美味しそうなお名前ですわね!」
じいや「お嬢様、」
じいや「クロスサイトスクリプディングではなく、クロスサイトスクリプティングですぞい」
じいや「昨日のスイーツがチョコレートプディングだったからといって惑わされてはなりませんぞ」
CSお嬢様「まあ、わたくしとしたことがやってしまいましたわー!」
CSお嬢様「とにかく今回も張り切って参りますわよ!!」
クロスサイトスクリプティングとは
じいや「クロスサイトスクリプティング(Cross Site Scripting)はXSSと略されますぞい」
CSお嬢様「Cross Site...なら、CSSではなくって?」
じいや「Webサイトを構成するCSS(Cascading Style Sheets)と紛らわしいのでXSSの略称が使われているのですじゃ」
じいや「それではどういった攻撃なのか、実際に例を出してご説明いたしますぞい」
じいや「例えばお嬢様がよく使う掲示板にこんなフォームがあったとします」
コメント |
---|
じいや「まずは普通にコメントした場合↓」
コメント |
---|
こんにちは |
じいや「掲示板には"こんにちは"といったコメントが残されますな」
CSお嬢様「まあ、そうですわね」
じいや「では以下のようなスクリプト(※JavaScriptのコード)を入れたらどうなるでしょうかの?」
コメント |
---|
<script>alert('こんにちは');</script> |
CSお嬢様「皆目見当もつきませんわ」
じいや「実際には、ブラウザ上にこんなポップアップが表示されますぞい」
こんにちは
じいや「イメージがつかなかったら、"JavaScript alert"とググってみると良いですぞ」
CSお嬢様「でもポップアップが出てくるだけではさして問題なくってよ?」
じいや「今回の例はポップアップを表示させるだけですが」
じいや「例えばこんなシナリオを想定してみましょう↓」
攻撃者→脆弱性のあるサイト←ユーザ
じいや「①攻撃者が、脆弱性のあるサイトへスクリプトを仕掛ける」
じいや「②ユーザが、脆弱性のあるサイトへアクセスする」
じいや「③ユーザは脆弱性のあるサイトでログイン情報を入力する」
CSお嬢様「いまいちピンときませんわよ?」
じいや「この脆弱性のあるサイトには、攻撃者によりスクリプトが仕掛けられており、脆弱性のあるサイト(正規のサイト)上に偽のページが表示されているものとしたら...どうですかな?」
CSお嬢様「④ユーザは、正規のサイトのログインボタンを押すと、実際には攻撃者へ情報が送信されてしまうってことなんですわねー!」
じいや「さすがお嬢様、すっかり成長いたしましたな!」
クロスサイトスクリプティングを防ぐには
じいや「クロスサイトスクリプティングを防ぐには」
じいや「以下のような対策が有効ですぞ」
・エスケープ処理を行う
・WAFを導入する
CSお嬢様「エスケープ処理...SQLインジェクションの時にやったようなことですの?」
じいや「概ねその通りで」
じいや「例えばこんな感じ置き換えるのですじゃ↓」
< → <
> → >
CSお嬢様「じゃあ、さっきの例だとこんな感じになるんですのね?↓」
<script>alert('こんにちは');</script>
じいや「その通りですじゃ!」
おわりに
じいや「どうでしたかな」
CSお嬢様「よく分かったわ、ありがとうじいや」
じいや「これからも少しずつセキュリティの知識を身につけて」
じいや「真のサイバーセキュリティお嬢様を目指すのですぞ」
CSお嬢様「わたくし頑張りましてよー!」
--- 第一部 完 ---
参考文献
イラスト図解式 この一冊で全部わかるセキュリティの基本
情報処理教科書 情報処理安全確保支援士 2022年版
前回までのあらすじ
サイバーセキュリティお嬢様「CIAってなんですの?」
サイバーセキュリティお嬢様「しんせいせい...ってなんですの?」
サイバーセキュリティお嬢様「き...脆弱性ってなんですの?」
サイバーセキュリティお嬢様「マルウェア...?スキーウェアのお仲間ですの?」
サイバーセキュリティお嬢様「クラッカー?何それ食べられますの?」
サイバーセキュリティお嬢様「ハクティビストってなんですの?」
サイバーセキュリティお嬢様「F5攻撃(アタック)ってなんですの?」
サイバーセキュリティお嬢様「SQLいんじぇくしょん...ってなんですの?」
宣伝
サイバーセキュリティお嬢様シリーズが薄い本になります!(書き下ろしアリ)
技術書典13にサークルchoco_hackで頒布予定です。
(※オフライン+オンライン参加で、オフラインは2022/9/11(SUN)@池袋サンシャインシティ)
ぜひTwitterをフォローしてください!