平成25年度 秋期 情報セキュリティスペシャリスト試験 午前Ⅱ 問15
アプリケーションセキュリティ
SQLインジェクションの問題
SQL インジェクション対策について,Web アプリケーションの実装における対策と Web アプリケーションの実装以外の対策として,ともに適切なものはどれか。
| Web アプリケーションの実装における対策 | Web アプリケーションの実装以外の対策 | |
|---|---|---|
| ア | Web アプリケーション中でシェルを起動しない。 | chroot 環境で Web サーバを実行する。 |
| イ | セッション ID を乱数で生成する。 | SSL によって通信内容を秘匿する。 |
| ウ | バインド機構を利用する。 | データベースのアカウントのもつデータベースアクセス権限を必要最小限にする。 |
| エ | パス名やファイル名をパラメタとして受け取らないようにする。 | 重要なファイルを公開領域に置かない。 |
- アWeb アプリケーション中でシェルを起動しない。 / chroot 環境で Web サーバを実行する。
- イセッション ID を乱数で生成する。 / SSL によって通信内容を秘匿する。
- ウバインド機構を利用する。 / データベースのアカウントのもつデータベースアクセス権限を必要最小限にする。
- エパス名やファイル名をパラメタとして受け取らないようにする。 / 重要なファイルを公開領域に置かない。
答えと解説を見る
✓ これが正解ウバインド機構を利用する。 / データベースのアカウントのもつデータベースアクセス権限を必要最小限にする。
解説
バインド機構と DB 権限の最小化が SQL インジェクション対策です。
SQL インジェクションは、入力値に SQL の一部を紛れ込ませ、アプリケーションに意図しない SQL 文を実行させる攻撃です。実装での根本的な対策は、バインド機構の利用です。SQL 文の形を先に確定させ、入力値は値としてだけ埋め込むので、入力が SQL 文の構造を変えられなくなります。実装以外の対策としては、データベースのアカウントがもつアクセス権限を必要最小限にします。万一攻撃が通っても、被害の範囲を狭められます。各選択肢は二つの欄の組なので、見分ける軸は、両方の対策が同じくこの攻撃に向けたものかどうかです。
ほかの選択肢はなぜ違うのか
- アWeb アプリケーション中でシェルを起動…:シェルを起動しないことと chroot 環境での実行は、OS コマンドインジェクションへの備えです。OS のコマンドを勝手に実行される事態を防ぐもので、SQL 文の改変には効きません。
- イセッション ID を乱数で生成する。 /…:セッション ID を乱数で作ることと SSL による秘匿は、セッションハイジャックや盗聴への備えです。通信やセッションを守る対策で、入力値で SQL 文を書き換えられる問題は残ります。
- エパス名やファイル名をパラメタとして受け取…:パス名やファイル名を受け取らないことと、重要なファイルを公開領域に置かないことは、ディレクトリトラバーサルへの備えです。ファイルの不正な読出しを防ぐ対策に当たります。
この問題の用語
- セッション利用者がつながってから終わるまでの、一続きのやり取りのことです。識別のためのIDが割り当てられ、同じ利用者のやり取りとしてまとめます。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
- アカウントシステムを使う人ごとに割り当てられる、利用のための資格や識別名です。利用者IDとパスワードなどの組で、本人を見分けて使わせます。
- アクセス権限「アクセス権」と同じ意味です。参照だけができる許可と、書き換えもできる許可のように、種類に分けて示すときによく使われる言い方です。
出典:平成25年度 秋期 情報セキュリティスペシャリスト試験 午前Ⅱ 問15(改変:原典の図表をテキストに書き起こした)
同じ用語が出る問題
- 令和7年度 秋期 午前Ⅱ 問17:IEEE 802.1Xの問題(セッション)
- 令和6年度 秋期 午前Ⅱ 問25:業務処理統制に該当するもの(アクセス権限)
- 令和5年度 春期 午前Ⅱ 問17:SQLインジェクションの問題(アカウント)
- 令和4年度 秋期 午前Ⅱ 問6:パスワードスプレー攻撃の問題(アカウント)
- 令和4年度 春期 午前Ⅱ 問25:業務処理統制に該当するもの(アクセス権限)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)