平成27年度 III-12

科目: 専門科目 / 分野: 情報工学部門 / 年度: 平成27年度

III-12 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

DBのSQLインジェクション攻撃に関する記述のうち最も適切なものを選ぶ問題。WebアプリケーションにDB処理の脆弱性がある場合、悪意のある命令文をDBへ送信して、データを不正に取得・改ざんする攻撃。

解説

この問題で問われていること

SQLインジェクションを、他の代表的な攻撃(DBMSへの侵入、HTTPヘッダインジェクション、XSS、バッファオーバーフロー)と区別する問題。

解き方

① 攻撃の見分け方: SQLインジェクション=入力にSQLの断片を混ぜてDBに不正な命令を送る、XSS=ブラウザでスクリプトを実行させる、HTTPヘッダインジェクション=ヘッダ行の挿入、バッファオーバーフロー=メモリの上書き
② ①はDBMS自体の脆弱性、②はヘッダインジェクション、③はXSS、⑤はバッファオーバーフロー
③ ④

正解が正しい理由

SQLインジェクションは、WebアプリケーションのDB処理に、入力値の扱いの不備(脆弱性)がある場合に、入力値に、悪意のあるSQL文の断片を含めて、DBへ送信させ、DB中のデータを不正に取得したり、改ざんしたりする攻撃である。したがって④が最も適切である。

各選択肢について

覚えるべきポイント

SQLインジェクション対策: プレースホルダ(バインド機構)の使用、入力値のエスケープ、DBアカウントの権限の最小化。XSSは出力のエスケープ、CSRFはトークン。

キーワード: SQLインジェクション、XSS、HTTPヘッダインジェクション、バッファオーバーフロー、Webアプリケーション脆弱性、プレースホルダ、情報工学部門

出題履歴

同じ問題が計2回出題されています(平成27年度、令和5年度)。