問題
SQLインジェクション攻撃の説明として,適切なものはどれか。
キーボード:1〜4で選択・Enterで次へ
答え合わせ
- A
- B
- C
- D
自信の3択
えらぶと、この端末に記録します(登録はいりません)
解説
答えは a「悪意の文字列を入力してDBを不正操作する攻撃」 です。
SQLインジェクション(SQLi)は「ログインフォーム等にSQL命令を混ぜ込んでDBを直接操作」する攻撃。
たとえばパスワード欄に `' OR '1'='1` と入れると、SQLが「常に真」になってログインできちゃう、みたいな。
👉 覚え方:「SQLを差し込む(inject)」。
ほかの選択肢:b DDoS/c バッファオーバフロー/d クロスサイトスクリプティング(XSS)。「DB操作」「文字列入力」がSQLiの合図。
なぜこれが正解か
正解は a。SQLインジェクション(SQL Injection)は、Webアプリケーションが利用者入力を適切にエスケープせずSQL文を組み立てる脆弱性を悪用し、攻撃者が悪意のSQL文断片を入力することで意図しないクエリを実行させ、データ取得・改ざん・削除を行う攻撃。古典的かつ重大なWeb脆弱性でOWASP Top 10常連。
各選択肢の解説
- a 悪意の文字列でDB操作:正解。SQLインジェクション。
- b 他サイト経由で大量パケット→サービス停止:DDoS(Distributed Denial of Service)攻撃。
- c メモリ空間の上限/下限超過:バッファオーバフロー(CWE-120)。
- d Webページのリンクから不正スクリプト実行:クロスサイトスクリプティング(XSS)。
覚え方・ひっかけ注意
主要Web攻撃の識別:
- SQLi:DB操作(入力→SQL文挿入)
- XSS:他者のブラウザでスクリプト実行(入力→HTML/JS挿入)
- CSRF:他サイトから意図しないリクエスト送信
- DDoS:大量リクエストでサービス停止
- バッファオーバフロー:メモリ破壊で任意コード実行
- ディレクトリトラバーサル:../でファイルシステム横断
対策:プリペアドステートメント/パラメータ化クエリでSQL文と入力値を分離するのがSQLi完全防御策。エスケープよりプレースホルダ使用が確実。
理論的背景
SQLインジェクションはWeb脆弱性の代表格でCWE-89/OWASP Top 10 A03:2021 - Injectionに分類。原因は信頼できない入力をクエリ文字列に連結する実装。1998年Phrack誌で初公開、20年以上経過しても新規発見が続く根深い問題。ブラインドSQLi(出力なし)、タイムベースSQLi(応答時間で情報抽出)、ブール型SQLi、Union型SQLi等の派生形式。
実務での使われ方
対策技術:
- プリペアドステートメント/パラメータ化クエリ:最も確実。SQL文と値を分離
```
PreparedStatement ps = conn.prepareStatement("SELECT * FROM users WHERE id = ?");
ps.setInt(1, userId);
```
- ORM活用:SQLAlchemy・Hibernate・ActiveRecordは内部でパラメータ化
- ストアドプロシージャ:パラメータ化が前提
- 入力検証(whitelist):許可文字のみ通過
- エスケープ処理:DB別escape関数(推奨度低、抜けやすい)
- 最小権限原則:DB接続ユーザを必要最小権限に
- WAF(Web Application Firewall):パターンベース検出(多層防御)
- DBログ・監査:異常クエリ検知
試験での位置づけ
セキュリティ分野の最頻出テーマ。基本情報・応用情報では攻撃識別、情報処理安全確保支援士ではSQLiバリエーション・対策技術・WAF設定・セキュアコーディング標準(CERT・OWASP ASVS)まで踏み込む。
選択肢の発展補足
主要Webアプリ脆弱性(OWASP Top 10 2021):
1. A01: Broken Access Control:アクセス制御不備
2. A02: Cryptographic Failures:暗号化失敗
3. A03: Injection:SQLi・コマンドインジェクション等
4. A04: Insecure Design:設計上の脆弱性
5. A05: Security Misconfiguration:設定ミス
6. A06: Vulnerable Components:脆弱なコンポーネント
7. A07: Identification/Authentication Failures:認証失敗
8. A08: Software/Data Integrity Failures:整合性失敗
9. A09: Security Logging Failures:ログ不備
10. A10: Server-Side Request Forgery:SSRF
セキュアコーディング指針:OWASP Cheat Sheet Series・OWASP ASVS・CERT Coding Standards・SEI CERT。SAST(Static Application Security Testing)・DAST(Dynamic)・IAST・RASP等のセキュリティテストツールで多層的に検出。Shift LeftでDevSecOps文脈に統合。試験対策は主要脆弱性の識別+対策技術+セキュアSDLC理解で応用情報・情報処理安全確保支援士まで対応可能。
出典と作り方
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 春期 問37/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。

