DBセキュリティの第2弾、アクセス・コントロールと権限管理
管理者の権限を分割するRBAC
管理者権限を分割する指針として、役割ベースのアクセス制御(RBAC: Role Based Access Control)について記述したプロテクション・プロファイルが提供されています。OS用として開発されていますが、データベースの権限管理にも共通することが多くあります。
- Role Based Access Control Protection Profile Version 1.0
- http://www.niap-ccevs.org/pp/pp_rbac_v1.0.pdf
データベースにおいても、一般ユーザーに対しては、役割ベース(ロール・ベース)で権限を管理できます。しかし、管理者自身の権限を役割ベースで行うことは、あまり認知されていません。
ブルート・フォース攻撃などによってパスワード認証の突破を狙われる場合、ある回数以上失敗するとアカウントをロックすることによって防ぐことができます。しかし、(一般アカウントから管理者権限への)権限昇格の脆弱性などが発生した場合は、パスワード認証を介すことなく管理者権限を奪取されてしまいます。
そこで、全権を持つ管理者権限をあらかじめ廃止しておき、以下のような役割ごとに権限を分割する仕組みが必要になります。
- セキュリティ管理者
- データベース管理者
- アカウント管理者
- データベース運用者
- アプリケーション管理者
図5: 主なデータベース管理者権限の分割例 |
管理者権限をアカウントごとに分割しておくことにより、脆弱性を突かれて管理者権限の奪取を狙うような攻撃を受けたとしても、データベースに対する全権を奪取されることを防ぐことができます。これにより、被害の影響を小さくできます。このような仕組みを「職務の分離(Separation of Duties)」と呼びます。
データベースの標準機能だけでは、一般ユーザーの操作を制御することはできても、データベース管理者の操作までを制御することはできません。しかし、実際の脅威として存在しているのは、管理者権限を悪用されたときの被害の大きさです。被害を小さくするためには、強制アクセス制御と役割ベースの権限管理を組み合わせて実装するような、追加的な方式を検討する必要があります。
【参考文献】
- U.S. Government Protection Profile Database Management Systems for Basic Robustness Environments, Version 1.2(http://www.niap-ccevs.org/pp/pp_dbms_br_v1.2/)
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 強制アクセス制御(SELinux)の基礎
- Red Hat Enterprise Linuxセキュリティの概要と特徴
- Oracle Cloud Hangout Cafe Season5 #3「Kubernetes のセキュリティ」(2022年3月9日開催)
- DBセキュリティの第1歩、アカウント管理と認証
- コンテナを使いこなすための心強い味方! 「Kubernetes」(後編)
- Oracle Cloud Hangout Cafe Season4 #4「マイクロサービスの認証・認可とJWT」(2021年7月7日開催)
- セキュアOS紹介(1) 〜 MIRACLE HiZARDとLIDS
- GitHub、ベルリンで発表した新機能などを解説するメディア説明会を開催
- 特別編 WindowsからSambaへの移行FAQ
- 特別編: WindowsからSambaへの移行FAQ