基本情報技術者 2013年 秋期 午前(科目A) 問44
問題文
利用者情報を管理するデータベースにおいて、利用者情報を検索して表示するアプリケーションがある。このアプリケーションに与えるデータベースへのアクセス権限として、セキュリティ管理上適切なものはどれか。ここで、権限の範囲は次のとおりとする。
〔権限の範囲〕
参照権限:レコードの参照が可能
更新権限:レコードの登録、変更、削除が可能
管理者権限:テーブルの参照、登録、変更、削除が可能
選択肢
ア:管理者権限
イ:更新権限
ウ:参照権限(正解)
エ:参照権限と更新権限
利用者情報を検索・表示するアプリケーションのDBアクセス権限【午前2 解説】
要点まとめ
- 結論:アプリは検索して表示するだけなので、参照権限のみを付与するのが適切で不要な権限は与えないこと。
- 根拠:最小権限の原則により、更新・管理権限を与えると不正改ざんや情報漏えいのリスクが増加するため参照のみで十分です。
- 差がつくポイント:運用・保守用に別の更新・管理用アカウントを用意し、参照は専用の読み取り専用アカウントでアクセスさせログ取得とロール分離を実施します。
正解の理由
このアプリケーションは「検索して表示する」機能だけが要求されており、レコードの登録・変更・削除は行いません。したがって、レコード参照だけを許可する「参照権限」で機能要件を満たせます。参照以外の権限(更新権限や管理者権限)は、スキーマ変更やデータ改ざんといった不要なリスクを招くためセキュリティ上不適切です。最小権限の原則(least privilege)に則ると、読み取り専用の権限が最も適切です。正答は ウ(参照権限)です。
よくある誤解
- 「表示するだけでも更新権限が必要」:単純な表示・検索は読み取り操作で完結するため更新権限は不要です。更新は明示的にデータを変更する処理に限られます。
- 「管理者権限を与えれば問題ない」:管理者権限はテーブル定義の変更や権限付与など広範囲を操作できるため、誤操作や侵害時の被害が甚大になります。
- 「参照と更新の両方を与えれば安心」:余計な権限は攻撃面を広げます。必要な機能だけを与えることがセキュリティ向上につながります。
解法ステップ
- 問題文からアプリケーションの機能を正確に把握する(ここでは検索・表示のみ)。
- 各権限の範囲を確認する(参照=閲覧、更新=登録変更削除、管理者=テーブル操作含む)。
- 機能を満たす最小の権限を選ぶ(検索・表示なら参照権限)。
- セキュリティ観点での原則(最小権限、分離、監査)を適用して妥当性を確認する。
選択肢別の誤答解説
- ア:管理者権限
テーブルの参照・登録・変更・削除が可能なため過剰な権限です。スキーマ変更や他テーブル操作もできてしまい、誤用・侵害時の影響が大きく不適切です。 - イ:更新権限
レコードの登録・変更・削除が可能であり、表示だけの用途には不要かつ危険です。攻撃者に悪用されるとデータ改ざんや消失のリスクが高まります。 - ウ:参照権限
正解です。表示・検索に必要かつ十分な権限であり、最小権限の原則に合致します。 - エ:参照権限と更新権限
表示には参照のみで十分なのに、更新権限を追加すると不要なリスクを招きます。不要な権限を与えることは避けるべきです。
補足コラム
実運用では、単に「参照権限を与える」だけでなく以下を組み合わせると安全性が向上します。読み取り専用のDBユーザを作成して接続文字列に使用、ビューで列アクセスを制限、パラメータ化クエリでSQLインジェクション対策、監査ログで参照履歴を追跡、運用作業は別の権限を持つアカウントで実施する(アクセスキー管理・有効期限の付与)。また、バックアップやマイグレーションなど権限を必要とする作業は別アカウントで役割分離します。
FAQ
Q. アプリが集計やカウントを行う場合は参照で足りますか?
A. はい。集計・検索・ソート・カウントは読み取り操作であり、参照権限で対応可能です。
A. はい。集計・検索・ソート・カウントは読み取り操作であり、参照権限で対応可能です。
Q. ORM(Object-Relational Mapping)を使うときはどうする?
A. ORMでも接続に使うDBアカウント自体を読み取り専用にすれば、アプリの機能に応じた最小権限が適用できます。マイグレーション等は別アカウントで実行します。
A. ORMでも接続に使うDBアカウント自体を読み取り専用にすれば、アプリの機能に応じた最小権限が適用できます。マイグレーション等は別アカウントで実行します。
Q. SQLインジェクション対策は権限設定だけで十分ですか?
A. いいえ。権限設定は重要ですが、入力検証、プリペアドステートメント(パラメータ化クエリ)、WAFなど多層防御を組み合わせる必要があります。
A. いいえ。権限設定は重要ですが、入力検証、プリペアドステートメント(パラメータ化クエリ)、WAFなど多層防御を組み合わせる必要があります。
関連キーワード: 最小権限の原則, アクセス権限, 参照権限, 更新権限, 管理者権限, RBAC, 読み取り専用アカウント, SQLインジェクション, データベースアクセス制御, 利用者情報

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

