概要
Webアプリケーションへの攻撃の多くは、「入力欄」に細工することから始まります。 ログインフォーム、検索ボックス、URLのパラメータ——これらはすべて攻撃の入口になりえます。
このページでは、基本情報技術者試験でも頻出の4大Web入力攻撃を比較し、 試験問題を素早く見分けるためのキーワードをまとめます。
4大攻撃を比較する
それぞれの攻撃が「何を狙い」「どんな被害をもたらすか」を一覧で確認しましょう。
| 攻撃名 | 一言定義 | キーワード |
|---|---|---|
| SQLインジェクション | 入力欄に悪意ある命令文(SQL)を流し込み、DBを不正取得・改ざんする攻撃 | 命令文 DB |
| XSS | 悪意あるスクリプトを仕込み、閲覧者自身のブラウザで実行させる攻撃 | 悪意あるスクリプト |
| CSRF | 悪意あるスクリプトを埋め込んだページを閲覧させ、別のWebサイトで意図しない操作を行わせる攻撃 ※スクリプトなしでも成立可 | 悪意あるスクリプト別のWebサイト |
| ディレクトリトラバーサル | ディレクトリパス(../)を使って公開していないファイルを不正閲覧する攻撃(トラバーサル=横断) | (ディレクトリ)パス |
XSSとCSRFの見分け方
XSSとCSRFはどちらも「悪意あるスクリプト」がキーワードで混同しやすい攻撃です。 見分けるポイントは「どのサイトで実行されるか」です。
XSS:閲覧しているそのサイトのブラウザでスクリプトが実行される → クッキー盗難・偽画面表示
CSRF:罠サイトを踏んで、ログイン中の別のサイトへ意図しない操作が送られる → 購入・退会・パスワード変更
試験問題で「別のWebサイトで」「意図しない操作を行わせる」という表現が出たら CSRF と判断できます。
試験で秒殺するキーワード表
問題文の「語尾・特徴的な表現」からどの攻撃か瞬時に判断できます。
| 問題文の特徴・語尾 | 答え |
|---|---|
| 〜DBを不正取得・改ざんする | SQLインジェクション |
| 〜スクリプトを閲覧者のブラウザで実行させる | XSS |
| 〜別のWebサイトで意図しない操作を行わせる | CSRF |
| 〜管理者が意図しないファイルの閲覧・パスを使った不正アクセス | ディレクトリトラバーサル |
番外編:フィッシング詐欺との違い
フィッシング詐欺もセキュリティ試験で頻出ですが、上の4つとは性質が異なります。
| 分類 | 代表的な手法 | 特徴 |
|---|---|---|
| 技術的な攻撃 | SQLインジェクション・XSS・CSRF・ディレクトリトラバーサル | システムの隙を突いて裏で勝手に動く |
| ソーシャルエンジニアリング | フィッシング詐欺 | 偽サイトに誘導し、ユーザー自身に入力させる |
関連用語
| 用語 | 説明 |
|---|---|
| SQLインジェクション | 命令文でDBを不正操作する攻撃(個別ページ準備中) |
| XSS(クロスサイトスクリプティング) | 悪意あるスクリプトを閲覧者ブラウザで実行させる攻撃(個別ページ準備中) |
| CSRF(クロスサイトリクエストフォージェリ) | 別サイトへ意図しない操作を送りつける攻撃(個別ページ準備中) |
| ディレクトリトラバーサル | パスを横断して非公開ファイルを閲覧する攻撃(個別ページ準備中) |
| DoS/DDoS攻撃 | 大量リクエストでサーバーをダウンさせる攻撃(個別ページ準備中) |
| ブルートフォース攻撃 | パスワードを総当たりで試す攻撃(個別ページ準備中) |
| フィッシング詐欺 | 偽サイトに誘導しユーザー自身に情報を入力させる詐欺(個別ページ準備中) |
| ゼロデイ攻撃 | パッチが存在しない脆弱性を狙う攻撃 |
| エクスプロイト | 脆弱性を悪用するための攻撃コード・プログラム |
| CVE | 脆弱性の識別番号。攻撃に悪用される脆弱性に割り当てられる |