データベースセキュリティ でーたべーすせきゅりてぃ
DBセキュリティアクセス制御暗号化SQLインジェクション権限管理監査
DBセキュリティって何を守る必要があるの?
簡単に言うとこんな感じ!
DBセキュリティは「大事なデータが盗まれない・改ざんされない・壊れない」ようにする対策全般だよ!個人情報・顧客データ・財務データが入っているDBは企業の「宝の箱」で、それを守るための鍵の管理・番人の配置・記録の保管が必要なんだ。
データベースセキュリティとは
データベースセキュリティ(Database Security) とは、データベースに保存されたデータを不正アクセス・漏洩・改ざん・破壊から保護するための技術的・組織的対策の総称です。
情報漏洩の多くはDBへの直接攻撃やアプリケーション経由(SQLインジェクション)によるものです。DB自体のセキュリティ設定が不十分だと、侵入後にすべてのデータが持ち出されるリスクがあります。
データベースセキュリティの主な対策
| 対策 | 内容 |
|---|---|
| 最小権限の原則 | アプリには必要最小限の権限のみ付与(SELECT権限のみ等) |
| 暗号化(保存時) | Transparent Data Encryption(TDE)でストレージを暗号化 |
| 暗号化(通信時) | SSL/TLS接続の強制 |
| SQLインジェクション対策 | プリペアドステートメント・ORMの使用 |
| アクセスログ・監査 | 誰がいつ何にアクセスしたかを記録 |
| ネットワーク分離 | DBをプライベートネットワークに配置し直接アクセス不可にする |
| パスワード管理 | デフォルトパスワードの変更・定期的なローテーション |
| パッチ適用 | DBエンジンの脆弱性修正を定期的に適用 |
SQLインジェクションとは
ユーザー入力に悪意のあるSQL文を混入させ、DBを不正操作する攻撃。
-- 悪意ある入力例: id = "1 OR 1=1"
SELECT * FROM users WHERE id = 1 OR 1=1;
-- → 全ユーザーのデータが漏洩
対策: パラメータ化クエリ(プリペアドステートメント)でSQL文と入力値を分離。
歴史と背景
- 2002年:OWASPが「SQL Injection」をWebアプリの重大脆弱性として定義
- 2011年:PlayStationNetworkへの大規模攻撃(7700万件漏洩)でDBセキュリティが注目
- 個人情報保護法改正(2022年):漏洩時の報告義務が強化されDBセキュリティへの投資が増加