午前I問題
データの暗号化に関する記述のうち、最も適切なものはどれか。
ア)保存データの暗号化(Encryption at Rest)は、正当な認証情報を用いてデータベースにログインしたユーザに対しても、データの閲覧を防ぐことができる。
イ)保存データの暗号化は、ストレージデバイスの盗難やバックアップメディアの紛失時に、暗号鍵を持たない第三者によるデータの読み取りを防ぐ効果がある。
ウ)通信の暗号化(Encryption in Transit)を実施していれば、保存データの暗号化を別途行う必要はない。
エ)暗号化アルゴリズムさえ秘匿しておけば、鍵の管理を厳格に行わなくてもデータの機密性は担保される。
午前I の解答・解説を見る
正解: イ)
解説:
- ア)不正解。保存データの暗号化(TDE等)は、データベース自体に正当にログインしたユーザに対しては通常、透過的に復号された状態でデータを見せる仕組みであり、正規ログインユーザからのアクセス自体を防ぐものではない。これを防ぐには列レベル暗号化やアクセス制御・認可の仕組みが必要。
- イ)正解。保存データの暗号化は、ディスクやバックアップメディアが物理的に盗難・紛失した場合に、暗号鍵を持たない第三者がデータを読み取れないようにする対策である。データベースの認証を経由しない、ストレージレベルでの不正アクセスに対して有効。
- ウ)不正解。通信の暗号化は経路上の盗聴・改ざんを防ぐものであり、保存時のディスク上のデータの安全性とは無関係である。両者は防御すべき脅威の局面が異なるため、両方を実施することが望ましい。
- エ)不正解。「アルゴリズムの秘匿性に依存したセキュリティ」(Security through obscurity)は暗号技術の原則(ケルクホフスの原理)に反する。暗号アルゴリズムは公開されていても安全であるべきで、真に守るべきは鍵の機密性である。
午前II問題
データベースの暗号化方式であるTDE(Transparent Data Encryption)と、列単位(カラムレベル)暗号化の違いに関する記述のうち、最も適切なものはどれか。
ア)TDEはデータベースファイル全体をストレージ上で暗号化する方式で、正規のデータベース接続を経由したクエリに対しては自動的に復号済みのデータを返すため、アプリケーション側の改修は基本的に不要である。
イ)列単位暗号化はデータベース管理者(DBA)を含むすべての利用者からデータを秘匿することを目的とした方式ではなく、TDEと同様にDBAは常に平文でデータを閲覧できる。
ウ)TDEを導入すればSQLインジェクションによるデータ窃取のリスクも同時に防止できる。
エ)列単位暗号化はTDEと比較して、暗号化・復号処理がアプリケーション層またはDB内の関数で行われることが多く、実装によってはDBAでも復号鍵を持たない限り平文を閲覧できない構成にできる。
午前II の解答・解説を見る
正解: ア)エ)
解説: (本問は正解が2つある形式として出題。ア・エがともに正しい記述)
- ア)正解。TDEはストレージ上のデータファイル・ログファイル全体を暗号化する方式で、正規のDB接続経由のクエリには透過的に復号済みデータを返すため、既存アプリケーションの改修がほぼ不要という利点がある。主に物理メディアの盗難・紛失対策に用いられる。
- イ)不正解。列単位暗号化は特定の機密列(例:クレジットカード番号、マイナンバー)に対して個別に暗号化を適用でき、実装次第ではDBAであっても復号鍵にアクセスできなければ平文を見られない構成が可能であり、TDEとは目的・効果が異なる。
- ウ)不正解。TDEはストレージレベルの暗号化であり、正規のDB接続経由でのSQLクエリに対しては復号済みデータを返してしまう。SQLインジェクションによる不正なクエリ実行でデータが窃取される脅威に対しては、TDEは防御効果を持たない。プリペアドステートメント等の別対策が必要。
- エ)正解。列単位暗号化はアプリケーション層またはDB内のUDF(ユーザ定義関数)等で暗号化・復号を実装することが多く、鍵をDBAから分離した管理にすれば、DBA自身も復号鍵を持たない限り平文データへアクセスできない、より強固な機密性を実現できる。
午後問題
医療情報システムを開発するG社は、電子カルテデータベースのセキュリティ強化を行うことになった。現状のデータベース運用は次のとおりである。
- 患者の氏名・病歴・処方箋情報を含む全テーブルに対して、アプリケーションサーバが単一のデータベースアカウント(管理者権限)で接続しており、参照・更新・削除のすべての操作が可能な状態である
- データベースサーバのディスクは暗号化されていないが、ネットワーク通信はTLSで暗号化されている
- 開発者が本番データベースの内容をそのままステージング環境や開発環境にコピーして動作確認に利用する運用が続いている
- 監査ログとして、誰がいつどのレコードを参照・更新したかを追跡する仕組みがない
設問1
アプリケーションサーバが単一の管理者権限アカウントでデータベースに接続している現状の問題点を指摘し、改善策を最小権限の原則の観点から述べよ。
設問1の解答・解説を見る
正解例: 問題点は、アプリケーションの脆弱性(SQLインジェクション等)が悪用された場合、攻撃者が管理者権限で全テーブルに対する参照・更新・削除を自由に行えてしまい、被害範囲が最大化することである。改善策として、業務機能ごとに必要な操作のみを許可したデータベースロールを設計し(例:参照系機能にはSELECTのみを許可するロール、更新系機能には該当テーブルのみへのINSERT/UPDATEを許可するロール)、アプリケーションサーバの各コンポーネントには必要最小限の権限を持つ専用アカウントで接続させる。管理者権限のアカウントは運用保守作業専用とし、アプリケーションからの通常利用では使用しない。
解説・採点基準(計15点):
| 採点項目 | キーワード | 配点 |
|---|---|---|
| 管理者権限接続のリスク(被害範囲の最大化)を的確に指摘 | Blast Radius・被害範囲拡大 | 4点 |
| 機能・業務単位でのロール分割に言及 | ロール設計・権限分割 | 5点 |
| 必要最小限の操作(SELECT/INSERT等)への限定に言及 | 最小権限・操作単位の制限 | 4点 |
| 管理者権限アカウントの用途限定(運用保守専用化)に言及 | 管理者権限の分離 | 2点 |
設問2
本番データベースの内容をそのままステージング・開発環境にコピーする運用のリスクを指摘し、対策を1つ述べよ。また、監査ログの不足について改善策を述べよ。
設問2の解答・解説を見る
正解例:
本番データコピーのリスクと対策:ステージング・開発環境は本番環境と比較してアクセス制御やセキュリティ対策が緩い場合が多く、実際の患者の氏名・病歴等の機微情報がそのまま存在することで、内部不正や環境からの情報漏洩時の被害が本番同様に重大となる。対策として、データマスキング(氏名を仮名に置換、病歴を統計的に類似したダミーデータへ変換等)を施した上でコピーする運用に変更し、開発・検証環境に本番の実データを直接展開しない。
監査ログの改善:データベースの監査ログ機能(例:PostgreSQLのpgAudit、Oracleの監査機能等)を有効化し、いつ・誰が・どのテーブル・レコードに対して参照・更新・削除を行ったかを記録する。特に患者の機微情報を扱うテーブルへのアクセスは全件記録し、改ざん防止のため監査ログ自体を別システムやWORMストレージへ転送・保管する運用とする。
解説・採点基準(計15点):
| 採点項目 | キーワード | 配点 |
|---|---|---|
| 本番データコピーのリスク(環境間の防御レベル差・機微情報漏洩)に言及 | 環境間漏洩リスク | 4点 |
| データマスキング等の対策に言及 | マスキング・匿名化 | 4点 |
| 監査ログ機能の導入・アクセス記録に言及 | 監査ログ・アクセス追跡 | 4点 |
| ログの改ざん防止・保管先分離に言及 | ログの完全性保護 | 3点 |
重要キーワード
| 用語 | 説明 |
|---|---|
| TDE | Transparent Data Encryption。データベースファイル全体をストレージ上で暗号化し、正規接続には透過的に復号したデータを返す方式 |
| 列単位暗号化 | 特定の機密カラムのみを個別に暗号化する方式。鍵の管理次第ではDBAからもデータを秘匿できる |
| 最小権限の原則 | 主体(ユーザ・アプリケーション)に対し業務遂行に必要な最小限の権限のみを付与するセキュリティの基本原則 |
| データマスキング | 本番データを開発・検証環境等で利用する際、機微情報を仮名化・匿名化・ダミー化して漏洩リスクを低減する技術 |
| 監査ログ | データベースへのアクセス(参照・更新・削除)を誰がいつ行ったかを記録する仕組み。不正検知や事後調査に用いる(監査ログ設計も参照) |
| ケルクホフスの原理 | 暗号方式の安全性はアルゴリズムの秘匿性ではなく鍵の秘匿性のみに依存すべきという暗号設計の基本原則 |
まとめ
- 午前I視点: 保存データの暗号化は物理メディアの盗難・紛失に対する対策であり、通信暗号化とは防御対象が異なる。鍵管理の重要性(ケルクホフスの原理)も基礎知識として問われる。
- 午前II視点: TDEはストレージ全体を透過的に暗号化しアプリ改修が不要な一方、SQLインジェクション等の正規接続経由の脅威には無力。列単位暗号化はDBAからの秘匿も可能という違いを正確に区別することが重要。
- 午後視点: 実務対策は「機能単位でのDBロール設計による最小権限化」「本番データを非本番環境へ持ち出す際のマスキング」「監査ログによるアクセス追跡と改ざん防止」の3点が核心となる。