Skip to the content.

最終更新日:2026年6月4日

まず結論

  • Webアプリ攻撃は、「何を悪用する攻撃か」で分類すると判断しやすくなります。
  • SG試験では、攻撃名を暗記するだけでなく、入力値・利用者操作・セッション・通信経路のどれが狙われているかを見抜くことが重要です。
  • 特に、SQLインジェクション・XSS・CSRFは名前が似ていなくても、問題文では混同しやすい形で出ます。

全体像

Webアプリ攻撃は、利用者とWebサーバの間で行われる処理のすき間を狙います。

  1. 入力値を悪用して、サーバ側の処理を変える
  2. 利用者のブラウザで、意図しない処理を実行させる
  3. ログイン状態やセッション情報を悪用する
  4. 通信や画面表示を利用して、利用者をだます

つまり、問題文を読んだらまず 「サーバがだまされるのか、利用者がだまされるのか」 を確認します。

主要用語の整理

用語 判断基準
SQLインジェクションとは?仕組みと対策をやさしく理解【SG試験】 入力値にSQL文を混ぜ、データベース処理を不正に実行する攻撃か
クロスサイトスクリプティングとは?スクリプト実行の仕組み【SG試験】 Webページにスクリプトを埋め込み、利用者のブラウザで実行させる攻撃か
クロスサイトリクエストフォージェリとは?なりすまし操作の仕組み【SG試験】 ログイン済み利用者に、意図しないリクエストを送らせる攻撃か
クリックジャッキングとは?見えない操作誘導の仕組み【SG試験】 見えない画面や重ねた画面で、利用者に意図しないクリックをさせる攻撃か
ディレクトリトラバーサルとは?不正ファイルアクセスの仕組みと対策【SG試験】 ../ などで本来見られないファイルへアクセスする攻撃か
セッションハイジャックとは?ログイン乗っ取りの仕組みと対策【SG試験】 セッションIDなどを盗み、ログイン状態を乗っ取る攻撃か
中間者攻撃とは?通信を盗み見る仕組みと対策【SG試験】 通信経路の途中に入り、盗聴や改ざんを行う攻撃か
Man-in-the-Browserとは?ブラウザ内改ざん攻撃の仕組み【SG試験】 利用者のブラウザ内で通信内容や表示内容を改ざんする攻撃か

OSコマンドインジェクションを即判定するキーワード

SG試験では、次の語が問題文に出たら OSコマンドインジェクション を最優先で疑います。

  • system()exec()popen() などの外部プログラム呼び出し関数
  • 「シェルスクリプトを実行」「実行形式ファイルを起動」
  • 「サーバ上でコマンドが実行される」

ひっかけ回避の切り分け

  • OSコマンドインジェクション:OSコマンド実行が主語
  • SQLインジェクション:SQL文・DB操作が主語
  • CSRF:ログイン済み利用者の操作悪用が主語
  • セッションハイジャック:セッションID奪取が主語

迷ったら「最終的に何が実行されるか」を見ます。
OSコマンドなら、OSコマンドインジェクションです。

SG試験でのひっかけポイント

迷いやすい組合せ 切り分けのポイント
SQLインジェクション vs XSS SQLはサーバ側のDB処理を悪用。XSSは利用者ブラウザでスクリプトを実行
XSS vs CSRF XSSはスクリプト実行。CSRFはログイン済み利用者に不正リクエストを送らせる
CSRF vs セッションハイジャック CSRFは本人の認証状態を利用。セッションハイジャックはセッション自体を奪う
クリックジャッキング vs フィッシング クリックジャッキングは画面操作の誘導。フィッシングは偽サイトなどで情報入力を誘導
中間者攻撃 vs Man-in-the-Browser 中間者攻撃は通信経路。Man-in-the-Browserは利用者端末内のブラウザ

攻撃名と対策名の対応(正しい組合せ / 間違いやすい組合せ)

攻撃 有効な対策(例) 間違いやすい対策(例) 切り分けの一言
SQLインジェクション SQL文を直接連結せず、プレースホルダ(バインド変数)を使う セッション管理だけで防ごうとする SQLインジェクションは「DBへの命令混入」の対策を選ぶ
クロスサイトスクリプティング(XSS) 出力時にエスケープする。必要に応じてCSPを併用する 信頼できない外部コンテンツを無条件に取り込む XSSは「ブラウザで不正スクリプト実行」を止める対策を選ぶ
クロスサイトリクエストフォージェリ(CSRF) CSRFトークンを確認する。状態変更処理に推測しやすい要求だけを使わない HTTPメソッドの選択だけで防ごうとする CSRFは「ログイン済み利用者に意図しないリクエストを送らせる」攻撃を防ぐ
セッションハイジャック 推測困難で利用者ごとに異なるセッションIDを使い、ログイン後に再発行する 変化しない識別子を長期間使い続ける セッションハイジャックは「ログイン状態の乗っ取り」を防ぐ対策を選ぶ
ディレクトリトラバーサル ../ を悪用できないよう、ファイルパスを検証・制限する 出力エスケープだけで対応しようとする ディレクトリトラバーサルは「不正ファイル参照」を防ぐ対策を選ぶ
OSコマンドインジェクション 外部入力をコマンド文字列に埋め込まない。安全なAPI利用や実行権限最小化を行う セッションID管理だけで対応しようとする OSコマンドインジェクションは「サーバでの不正コマンド実行」を防ぐ対策を選ぶ

選択肢を切るときの順番

  1. 問題文の主語が「DB / ブラウザ / ファイル / セッション / OSコマンド」のどれかを先に特定する。
  2. 攻撃の主語と、対策の主語が一致している選択肢を残す。
  3. 「別攻撃には有効だが、今回の攻撃には無効」な選択肢を先に消す。

安全なWebアプリケーション問題での組合せトラップ

SG試験では、攻撃名と対策の組合せを入れ替えて出すことがあります。

  • SQLインジェクション + プレースホルダ → 正しい組合せ。入力値をSQL文の構造から分離します。

  • XSS + 信頼できない外部コンテンツの無条件取込み → 不適切。外部コンテンツを無条件に信頼する方向は対策ではありません。

  • CSRF + 推測しやすい単純なリクエストだけで状態変更する → 不適切。重要な状態変更を簡単なリクエストだけで実行できると、むしろ意図しない操作の危険が高まります。

  • セッションハイジャック + 変化しないセッション識別子 → 不適切。固定的なIDは推測・悪用されやすく、ログイン後のセッションID再発行などが必要です。

おすすめの学習順序

  1. SQLインジェクションとは?仕組みと対策をやさしく理解【SG試験】
  2. クロスサイトスクリプティングとは?スクリプト実行の仕組み【SG試験】
  3. クロスサイトリクエストフォージェリとは?なりすまし操作の仕組み【SG試験】
  4. セッションハイジャックとは?ログイン乗っ取りの仕組みと対策【SG試験】
  5. クリックジャッキングとは?見えない操作誘導の仕組み【SG試験】
  6. ディレクトリトラバーサルとは?不正ファイルアクセスの仕組みと対策【SG試験】
  7. 中間者攻撃とは?通信を盗み見る仕組みと対策【SG試験】

記事一覧

入力値を悪用する攻撃

利用者のブラウザや操作を悪用する攻撃

認証状態や通信を悪用する攻撃

まとめ(試験直前用)

  • SQLインジェクションは、入力値でDB処理を悪用する。
  • XSSは、利用者のブラウザでスクリプトを実行させる。
  • CSRFは、ログイン済み利用者に不正なリクエストを送らせる。
  • セッションハイジャックは、ログイン状態そのものを乗っ取る。
  • 迷ったら「サーバ・ブラウザ・セッション・通信経路」のどれが狙われたかで切る。

© 2024-2026 stemtazoo. All rights reserved.