DBセキュリティの第2弾、アクセス・コントロールと権限管理

2010年11月9日(火)
田口 裕也(たぐち ゆうや)

データベースのアクセス・コントロール

セキュリティ対策の基本は、アクセス・コントロール(アクセス制御)と、ユーザーの権限管理です。データベースには、一般によく知られている公開情報に加えて、個人情報や機密情報も格納されています。情報資産を保護するために、「どの情報に誰がアクセスできるのか」をコントロールすることが、当たり前のこととして認知されています。

データベースに対するアクセス制御の形態には、適用する範囲に応じて、いくつかあります。以下のように分類できます。

  • アプリケーション側で実装する、データベースに対するアクセス制御
  • データベース側で実装する、データベースに対するアクセス制御
  • データベースに格納されている、表へのアクセス制御
  • 表の中の、特定の行や列に対するアクセス制御

図1: データベースのアクセス・コントロールの範囲


データベース自身に対するアクセス制御は、アプリケーション側で機能を実装したり、データベース管理者がポリシー設定を行います。データを格納している表に対するアクセス制御は、データを所有しているオーナーがアクセス権を設定できます。このように、ユーザー自身がアクセス権を定義できる仕組みを、一般に「任意アクセス制御(DAC: Discretionary Access Control)」と呼びます。

データベースのプロテクション・プロファイル

データベースのアクセス制御や権限管理は、どのような方針に沿って決めればよいのでしょうか。データベースの利用方法や企業の規則などに応じて、要求される項目が異なるので、一概には言えません。一般的なデータベースに実装されているセキュリティ機能の指針として提供されている、プロテクション・プロファイルが参考になります。

プロテクション・プロファイルとは、Common Criteria(ISO/IEC15408)の認証を取得する際に参照される、セキュリティ機能要求仕様書のことです*1。OSの場合、多くの著名なOSが、以下のプロテクション・プロファイル*2を利用して認証を取得しています。これらは、よく知られたプロテクション・プロファイルです。

Labeled Security Protection Profile
http://www.commoncriteriaportal.org/files/ppfiles/lspp.pdf
ラベル・ベースのアクセス制御を定義したプロテクション・プロファイル
Controlled Access Protection Profile
http://www.commoncriteriaportal.org/files/ppfiles/capp.pdf
任意アクセス制御と監査の機能を定義したプロテクション・プロファイル
  • [*1] Common Criteria(ISO/IEC15408)の概要やProtection Profileの詳細については、IPAのWebサイトから確認することができます。
  • [*2] 注意: これらのプロテクション・プロファイルは、すでに使用が終了しています。次世代のプロテクション・プロファイルが、提供されています。

OSの場合と同様に、データベース用のプロテクション・プロファイルも提供されています。現時点で承認されているデータベース用のプロテクション・プロファイルには、以下のものがあります。

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.pdf

図2: データベース用のプロテクション・プロファイルの表紙


データベースの管理者は、すべてのデータにアクセスできる強大なアクセス権を持つ

アクセス制御ポリシーを適用する対象となるユーザーには、大きく2種類あります。データの操作を行う「一般ユーザー」と、データベースの管理を行う「データベース管理者」です。

ここで、懸念点として考慮しておくべきポイントがあります。データベースが実装しているアクセス制御機能のほとんどは、一般ユーザーにしか適用されないという点です。

データを所有しているユーザーが、特定のユーザーだけにアクセス権を許可したとしても、データベース管理者であれば、参照できてしまいます。データベース管理者はシステム全体にアクセスできる「管理者権限」を持つため、アクセス制御機能が適用されないからです。

データベース管理者の視点で見ると、すべてのデータにアクセスできることは、当たり前のことです。しかし、この強大なアクセス権限は、少しでも悪用されてしまうと、データベースに対して大きな被害を与える脅威となります。また、正規に利用していたとしても、オペレーション・ミスによって被害を与える可能性があります。

このため、アクセス制御の設定は、一般ユーザーに対して適用する仕組みと、データベース管理者に対して適用する仕組みの両面で考える必要があります。

データベース管理者のアクセス動作を制御する仕組み

管理者権限による事故を予防する一般的な対策は、OSの管理作業と同様です。通常の作業は一般ユーザーで行い、管理者権限が必要な作業の場合に限ってデータベース管理者に切り替わるように運用します。しかし、この方法でも、データベース全体へのアクセス権を持つ管理者が存在することには変わりません。

では、どのようにすれば、データベース管理者の操作を制御できるのでしょうか。例えば、一般ユーザーに対して有効なアクセス制御方式であるDACは、管理者権限を持つユーザーには効果がありません。

管理者の操作を制御する有効な手段は、強制アクセス制御(MAC: Mandatory Access Control)の仕組みをデータベースにも適用することです。すでに、OSの場合は実現できていることです。Linuxでは、システム管理者(root)の操作を強制的に制御できるセキュリティ機能が標準で提供されています。データベースも同様に、管理者権限を強制的に制御できる仕組みを実装する必要があります。

図3: データベース管理者であっても特定のデータにはアクセスできない仕組み


DACとMACの違いはこうです。DACは、データの所有者が、任意にアクセス権を設定できます。一方、MACは、データベースのセキュリティ管理者が、アクセス権のセキュリティ・ポリシーを設定します。

また、DACは管理者に対して効果がありませんが、MACは効果があります。管理者が相手でもアクセス制御機能が回避されないようにアクセス権の状況をチェックできる仕組み(リファレンス・モニターと呼ぶ)が備わっています(図4)。

図4 リファレンス・モニターの動作イメージ
著者
田口 裕也(たぐち ゆうや)
データベース・セキュリティ・コンソーシアム(DBSC)

日本オラクル株式会社 データベースソリューション部に所属。CISSP。
Oracleデータベースのセキュリティ、アップグレード、競合対策、性能監視など幅広く挑戦中。最近は再びセキュアOSとSunRayシンクライアントにも熱が入る日々を送っています。
著書に『Oracle Database 11g セキュリティガイド』(共著、アスキー・メディアワークス)、『情報セキュリティプロフェッショナル教科書』(共著、アスキー・メディアワークス)、『SELinuxシステム管理』(監訳書、オライリー・ジャパン)。セキュアOS関連の寄稿、講演も多数ある。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています