💯

文系と見る情報セキュリティマネジメント ~XSSとCSRF編~

2024/09/29に公開

1.情報セキュリティマネジメントとは

情報セキュリティマネジメント試験とは、情報セキュリティに関する知識についてを問う試験になります。情報セキュリティに関する様々なものが問われ、技術的分野・法律分野・マネジメントなど様々な観点から情報セキュリティを捉えることができます。

IPAによって実施されている試験であり、IPAでは次のように定義されています。

「情報セキュリティマネジメント試験は、情報セキュリティマネジメントの計画・運用・評価・改善を通して組織の情報セキュリティ確保に貢献し、脅威から継続的に組織を守るための基本的なスキルを認定する試験です」(IPA「情報セキュリティマネジメントとは」(https://www.ipa.go.jp/shiken/kubun/sg/about.html)より引用)

この内容を見ても、情報セキュリティに関する基本的な知識を身につけるのに最適な資格であることが分かるかと思います。

この資格試験は、CCSF[1]レベル2に当たります。これは基本情報技術者試験と同レベルに当たります。また「ITを利活用する者」となっており、この点が基本情報技術者試験との違いになります。
img.png
独立行政法人情報処理推進機構HP(https://www.ipa.go.jp/shiken/kubun/sg/about.html)より引用

2.この記事で書いている内容とこの記事が対象としている方

さて、そんな情報セキュリティマネジメント試験ですが、今年7月に受験し無事合格することができました!!この記事では合格までの勉強で自身が詰まった部分をまとめなおそうと思います。
情報セキュリティマネジメント試験の勉強で行き詰まった、これから受験しようと考えていてどんな知識が必要か見てみたい、そんな人の助けになればと思います。
それでは本編です。どうぞ。

3.クロスサイトスクリプティング(XSS)

3-1.クロスサイトスクリプティング(XSS)攻撃とは何か

XSS攻撃とは、スクリプト攻撃と呼ばれる攻撃の一種です。
具体的には、とあるサイト内に悪意あるスクリプトが埋め込まれ、それによりサイトに訪れた利用者の個人情報等を盗み出すといった攻撃手法のことです。

3-2.クロスサイトスクリプティング(XSS)攻撃の流れ

このXSS攻撃とはどのように行われるものなのでしょうか。より詳しく見てみましょう。
例えば以下のような入力機能を持ったサイトを想像してみてください。

このうち本文部分には通常、文章を入力するかと思います。
ですが、この本文部分に対して

<a href[2]="http ://www.〇〇〇">[外部リンク]</a>

と入力された場合であればどうなるでしょうか。

XSS攻撃に対する対策が施されていれば、上の入力内容は反映されません。
しかし、対策されていないサイトの場合、上記の入力内容はサイト内に反映され

[外部リンク]

と表示されます。
そして、[外部リンク]の部分をクリックしてしまうと攻撃者によって作成された悪意あるwebサイト(今回の例では「http ://www.〇〇〇」)へ誘導されてしまうのです。
そして、リンクに悪意のあるスクリプトが含まれている場合、リンクを踏んだだけでCookieをはじめ様々な情報を抜き取られてしまう恐れがあるのです。

こうしたXSS攻撃には「Reflected XSS」(今回紹介した例はこれです)「Stored XSS」「DOM based XSS」など、その方法によっていくつか種類があります。気になった方は是非調べて見てください。

3-3.クロスサイトスクリプティング(XSS)への対策

このXSS攻撃に対する対策のひとつとして、「サニタイジング」と呼ばれるものがあります。
サニタイジングとは、入力されるデータを無害化する処置のことを言います。
今回はサニタイジングの1種である「エスケープ処理」をまとめることにします。

エスケープ処理とは、簡単に言うと「特殊な意味を持つ文字列を無意味な文字列に変換する処理」のことです。
例えば先ほどの

<a href="http ://www.〇〇〇">[外部リンク]</a>

の例で考えてみましょう。
入力部分に対して<a href="http ://www.〇〇〇">[外部リンク]</a>という入力がそのまま反映されてしまうと他のユーザーの情報が不正に取得されかねないため、エスケープ処理として「<」を「<」「>」を「>」とするようにしておきます。

すると

<a href="http ://www.〇〇〇">[外部リンク]</a>

というように変換がなされ、ただの文字列として扱われスクリプトを埋め込まれることを防ぐことができます。
ただし、URLの情報は残っておりこのURLの中にスクリプトが含まれている場合があるためこれだけでは対策が不十分な可能性があります。そこで入力されたURLが正しい書き方をされているかといったことなどを判別し、違反があった場合には処理が中断されるといった機能を組み込むことも必要となります。

※Column

このように、とあるサイトにスクリプトを埋め込み攻撃者が作成した悪意あるサイトへ誘導したりすることから複数のサイトをまたがって(クロスして)行う攻撃であるため「クロスサイト」という名前が付いているらしいです。

4.クロスサイトリクエストフォージェリ(CSRF)

4-1.クロスサイトリクエストフォージェリとは

ログイン機能を備えたウェブサイトにログイン中のユーザーに、外部のサイトを経由して悪意のあるリクエストを実行させる攻撃手法のことです。
これにより利用者は、意図せず攻撃者による不正な操作を実行されてしまいます。
例えば「明日の午後、〇〇を爆破します」という予告文を掲示板に投稿されたり、あるいは知らない間に多額のお金を送金されたりしてしまうのです。

4-2.クロスサイトリクエストフォージェリの仕組み

では、そのクロスサイトリクエストフォージェリがどのような仕組みで実行されるのかというと次の画像をみてください。

①攻撃者が作成した、特定のスクリプト(今回は掲示板への書き込み)を含んだサイトを閲覧
②閲覧することでブラウザに対して自動的に書き込みをする旨のリクエストが送られる
③ログイン状態であることで、ログインできないハズの攻撃者の手によって掲示板への書き込みを利用者アカウントでされてしまう

他にもパスワード変更リクエストを行うといった場合もあり、非常に恐ろしい攻撃方法になります。

4-3.クロスサイトリクエストフォージェリの対策

利用者側ができる対策としては、ログイン状態を維持せず利用完了後はすぐにログアウトすることです。
これは前述したように、ログイン状態にあるサービスに対して(攻撃者自身はログインせずに)何らかの処理を実行させるというものだからです。
また、重要な処理の実行前に再度パスワードを求めるような仕組みにするといった対策もあります。他にも様々な対策があるので気になった方は息抜きの際にでも調べてみてください。

5.最後に

いかがでしたでしょうか。今回はXSSとCSRFとをまとめました。勉強の助けになっておりましたら幸いです。

勉強をはじめてまだ日が浅いので、もし何らかの誤りがあれば教えてくださいますと幸いです。
こうしてブログとして残すことも始めたばかりなので改善点等ありましたらそちらも教えてください!できる限り取り入れていきたいと思ってます。
それでは、また次回「文系と見る情報セキュリティマネジメント ~セッションハイジャックとドメイン名ハイジャック編~」でお会いしましょう~♫

6.参考文献・サイト

・独立行政法人情報処理推進機構(IPA),2023,「情報セキュリティマネジメント試験とは」,2024年9月25日取得
https://www.ipa.go.jp/shiken/kubun/sg/about.html

・独立行政法人情報処理推進機構(IPA),「安全なウェブサイトの作り方-1.6 CSRF(クロスサイト・リクエスト・フォージェリ)」,2024年9月29日取得
https://www.ipa.go.jp/security/vuln/websecurity/csrf.html

・GMO INTERNET GROUP,2023,「XSS(クロスサイトスクリプティング)とは?攻撃手法と5つの対策を紹介」,2024年9月29日取得
https://www.gmo.jp/security/cybersecurity/cyberattack/blog/xss/#:~:text=Reflected-XSS(反射型XSS,サイトにリクエストさせます。

・攻撃遮断くん,2023,「クロスサイトスクリプティング(XSS)とは?わかりやすく解説」,2024年9月26日取得
https://www.shadan-kun.com/waf_websecurity/xss/

・阿部ひろき(2024). 『ホワイトハッカー入門第2版』 株式会社インプレス
・岡嶋裕史(2023).『令和6年情報処理安全確保支援士合格教本』 技術評論社
・RYO(2024).『だれでもわかる&受かる!情報セキュリティマネジメントやさしいテキスト+頻出問題集[科目A・科目B]』 SBクリエイティブ株式会社

脚注
  1. CCSFとは「Common Career Skill Framework」の頭文字を取ったものであり、日本語にすると「共通キャリア・スキルフレームワーク」。1~4の全4段階構成でIT知識・技術を図る尺度のこと ↩︎

  2. <a href=""></a>はHTMLのスクリプトの1つで、リンク先のURLを指定するために利用されます。 ↩︎

Discussion