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