基本情報

基本情報 平成28年度 春期 問37|テクノロジ系に関する問題

問題

基本情報 | 平成28年度 春期 | 分野:テクノロジ系

SQLインジェクション攻撃の説明として,適切なものはどれか。

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は A
  • 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
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成28年度 春期 問37/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。