情報処理安全確保支援士試験 情報処理安全確保支援士試験 令和5年度春期 午前Ⅱ17: SQL インジェクション対策について,Web アプリケーションプログラムの実装における対策と,Web アプリケーションプログラムの実装以外の対策の組みとして,適

情報処理安全確保支援士試験 令和5年度春期 午前Ⅱ
Q 1717 / 25
SQL インジェクション対策について,Web アプリケーションプログラムの実装における対策と,Web アプリケーションプログラムの実装以外の対策の組みとして,適切なものはどれか。
Web アプリケーションプログラムの実装における対策Web アプリケーションプログラムの実装以外の対策
Web アプリケーションプログラム中でシェルを起動しない。chroot 環境で Web サーバを稼働させる。
セッション ID を乱数で生成する。TLS によって通信内容を秘匿する。
パス名やファイル名をパラメータとして受け取らないようにする。重要なファイルを公開領域に置かない。
プレースホルダを利用する。Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。

問題本文

SQL インジェクション対策について,Web アプリケーションプログラムの実装における対策と,Web アプリケーションプログラムの実装以外の対策の組みとして,適切なものはどれか。

選択肢

  • .Web アプリケーションプログラムの実装における対策:Web アプリケーションプログラム中でシェルを起動しない。/実装以外の対策:chroot 環境で Web サーバを稼働させる。
  • .Web アプリケーションプログラムの実装における対策:セッション ID を乱数で生成する。/実装以外の対策:TLS によって通信内容を秘匿する。
  • .Web アプリケーションプログラムの実装における対策:パス名やファイル名をパラメータとして受け取らないようにする。/実装以外の対策:重要なファイルを公開領域に置かない。
  • .Web アプリケーションプログラムの実装における対策:プレースホルダを利用する。/実装以外の対策:Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。

正解

. Web アプリケーションプログラムの実装における対策:プレースホルダを利用する。/実装以外の対策:Web アプリケーションプログラムが利用するデータベースのアカウントがもつデータベースアクセス権限を必要最小限にする。

解説

SQLインジェクションの最も確実な対策は、SQL文の構造とデータを分離するプレースホルダ(バインド機構)を使う実装である。加えて、万一悪用された際の被害を抑える実装以外の多層防御として、DB接続アカウントの権限を必要最小限にすることが有効。両者を組み合わせたエが正解。他の選択肢はOSコマンド注入やセッション、ディレクトリトラバーサル対策でありSQLインジェクションの組合せとして不適切。実務では予防と被害局限を併用する。

選択肢ごとの解説

  • .シェル非起動とchrootはOSコマンドインジェクション対策でSQLインジェクションの組合せではなく誤り。
  • .セッションID乱数化とTLSはセッション保護や盗聴対策でSQLインジェクション対策ではなく誤り。
  • .パス名の扱いと公開領域の管理はディレクトリトラバーサル対策でSQLインジェクションではなく誤り。
  • .プレースホルダ利用とDBアカウント権限の最小化はSQLインジェクションの予防と被害局限で正しい。

情報処理安全確保支援士試験 令和5年度春期 午前Ⅱ過去問一覧へ戻る・問17