情報処理安全確保支援士試験 情報セキュリティスペシャリスト試験 平成28年度秋期 午前Ⅱ17: SQL インジェクション対策について,Web アプリケーションの実装における対策と Web アプリケーションの実装以外の対策として,ともに適切なものはどれか。

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

問題本文

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

選択肢

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

正解

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

解説

SQLインジェクションは、入力値をSQL文に直接連結することで攻撃者に不正なSQLを実行される脆弱性。実装上の本命対策はプレースホルダ(バインド機構)で値と命令を分離すること。実装以外では、DBアカウントの権限を最小化し被害を限定する。両者を正しく組み合わせたエが正解。実務ではこの多層防御が標準である。

選択肢ごとの解説

  • .シェル起動の回避とchroot環境はOSコマンドインジェクション対策でSQLとずれる。
  • .セッションID乱数化やTLSはセッション・盗聴対策でSQLインジェクション対策ではない。
  • .パス名を受け取らない・公開領域に置かないはディレクトリトラバーサル対策で誤り。
  • .プレースホルダ利用とDB権限最小化の組合せがSQLインジェクション対策で正解。

情報セキュリティスペシャリスト試験 平成28年度秋期 午前Ⅱ過去問一覧へ戻る・問17

情報セキュリティスペシャリスト試験 平成28年度秋期 午前Ⅱ 問17:SQL インジェクション対策について,Web アプリケーションの実装における対策と Web アプリケーションの実装以外の対策として,ともに適切なものはどれか。 | SC | 合格.dev