CIA・アクセス制御・暗号化・監査ログを完全習得
DBセキュリティは「機密性(C)・完全性(I)・可用性(A)」の CIA トライアドを軸に、アクセス制御・暗号化・監査ログ・インジェクション対策の4本柱で構成される。
| 観点 | 主な脅威 | 主な対策 |
|---|---|---|
| 機密性(C) | 不正アクセス・盗聴 | アクセス制御、暗号化、権限最小化 |
| 完全性(I) | 不正改ざん | 制約・トリガー、監査ログ、整合性チェック |
| 可用性(A) | DoS、障害 | バックアップ、クラスタリング、リカバリ計画 |
| モデル | 概要 | 特徴 |
|---|---|---|
| DAC(任意アクセス制御) | オブジェクト所有者が権限を設定 | SQLのGRANT/REVOKE。柔軟だが管理が複雑になりやすい |
| MAC(強制アクセス制御) | システムがラベルで強制 | 機密区分(極秘・秘など)。軍・政府向け |
| RBAC(役割ベース) | ロールに権限をまとめて付与 | 管理効率◎。多くのDBMSが採用 |
| ABAC(属性ベース) | ユーザー・リソース・環境の属性で判断 | きめ細かい制御。設定が複雑 |
| 暗号化対象 | 技術例 | 目的 |
|---|---|---|
| 通信路(転送中) | TLS/SSL | 盗聴防止 |
| ストレージ(保存時) | TDE(透過的暗号化) | ディスク盗難対策 |
| 列単位 | AES関数暗号化 | 特定列(クレカ番号など)を暗号化 |
| パスワード | bcrypt / SHA-256 + salt | ハッシュ化(復号不要) |
-- TDE は DBMS設定で行う(例:Oracle)。アプリ側は意識しない。 -- 列暗号化例(PostgreSQL pgcrypto) UPDATE users SET credit_card = pgp_sym_encrypt(credit_card, 'secret_key') WHERE user_id = 1;
誰がいつ何をしたかを記録する監査証跡。不正発見・法令対応(個人情報保護法など)に必須。
読了ボタンを押すとトップページの進捗に反映されます