ヘッダーをスキップ
Oracle® Label Security管理者ガイド
11gリリース2 (11.2)
E92085-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 Oracle Label Securityの概要

機密情報へのアクセスの制御は、マネージャ、情報担当、データベース管理者およびアプリケーション開発者にとっての課題です。ユーザーのセキュリティ・クリアランス・レベルに基づいて選択的にアクセス制御を行うと、制限範囲を広げすぎることなく機密性を確保できます。このアクセス制御レベルは、機密情報へのアクセスを権限のないユーザーに禁止したまま、同じ表内の必要な情報に権限のあるユーザーがアクセスできるようにします。

データは様々な理由から機密情報として扱われます。たとえば、個人的および私的な情報や通信、取引上の秘密、企業の販売計画や財務計画、軍事情報、政府の研究計画や購入計画などが該当します。

情報の表示や使用を不適切なユーザーに許可することは、個人、通信事業者、組織、機関、政府または国にとって障害や損害あるいは危険を招く可能性があります。

しかし、このようなデータが、機密性の低い、様々なユーザーが正当に必要とする他の情報と混在していることが多くあります。表全体へのアクセスを制限したり機密データを別のデータベースに分離する方法では、ハードウェア、ソフトウェア、ユーザー時間および管理にコストのかかる、扱いにくい作業環境となります。

Oracle Label Securityでは、行レベルのアクセス制御を可能にすることによって、このような対策をとる必要がなくなります。これは、Oracle Database Enterprise Editionの仮想プライベート・データベースのテクノロジに基づいています。行の内容に対するアクセスは、その行のラベルをユーザーのラベルおよび権限と比較することで制御されます。管理者は、Enterprise Manager Database Controlにより提供されるユーザー・フレンドリなグラフィカル・インタフェースを使用して、既存のデータベースに選択的な行制限ポリシーを簡単に追加できます。開発者はOracle Databaseアプリケーションにアクセス制御をラベルベースで簡単に追加できます。

この章では、大きな規模のデータ・セキュリティ・コンテキストにおけるOracle Label Securityについて説明します。この章の内容は、次のとおりです。

1.1 コンピュータ・セキュリティとデータ・アクセス制御

コンピュータのセキュリティのためには、コンピュータ化されたデータとプロセスを、許可されていない変更、破壊、公開または遅延から保護する作業が必要です。インターネット時代では、貴重な機密データに対するリスクがこれまでになく大きくなっています。図1-1「データ・セキュリティのニーズの範囲」は、データ・セキュリティ・プランに含める必要のある複雑なコンピューティング環境について示しています。

この項では、Oracle Label Security関連のコンピュータ・セキュリティの基本的な用語および概念について説明します。この項の内容は、次のとおりです。

図1-1 データ・セキュリティのニーズの範囲

図1-1の説明が続きます
「図1-1 データ・セキュリティのニーズの範囲」の説明

セキュリティ担当者、管理者およびアプリケーション・プログラマは、データベースとデータベースが常駐するサーバーを保護する必要があります。また、内部データベース・ユーザーの権利を管理および保護し、これらのデータベースへの顧客からのアクセスに対してE-Commerceの機密性も保証する必要があります。オラクル社は、このようにコンピュータのセキュリティ問題のあらゆる側面に対処する製品を提供しています。

1.1.1 Oracle Label Securityとセキュリティ標準

オラクル社は情報保証におけるリーダーです。セキュリティ評価は、独立機関によって国内および国際基準に基づいて実施される、公式の評価プロセスです。これにより、システムが設計上のセキュリティ基準を満たしていることが外部から客観的に保証されます。評価が正常に完了したシステムまたは製品には、セキュリティのランクが割り当てられます。この証明により、産業および官公庁関係のユーザーに、製品およびシステムのセキュリティに関する信頼性がもたらされます。

Oracle RDBMSは、Database Management System Protection Profile(DBMS PP)に準拠しています。Oracle Label Securityは、Common Criteria(ISO 15408)のうち、一般に民間ソフトウェア・ベンダーが達成している最高水準であるEvaluation Assurance Level(EAL)4として評価されています。

1.1.2 セキュリティ・ポリシー

データベースのセキュリティ・ポリシーでは、広範囲な組織のセキュリティ・ポリシーの中で、システム全体のセキュリティ・ポリシーが実装されます。システム全体のセキュリティ・ポリシーでは、次のタイプのルールを施行できます。

ルールのタイプ 用途
データ整合性ルール システム内の情報に整合性があることを保証します。
可用性ルール システム内の情報が使用可能であることを保証します。
アクセス制御ルール 無許可な情報公開を防止します。

Oracle Label Securityでは、情報アクセス制御のデフォルト・ポリシーが用意されている他、特定のサイト用にカスタマイズしたポリシーを定義することもできます。


1.1.3 アクセス制御

アクセス制御では、ユーザーが情報の読取り、書込み、更新、挿入または削除を実行できるかどうかを定義します。アクセス制御のニーズに合わせて、次のアプローチを使用できます。

1.1.3.1 任意アクセス制御

Oracle Databaseでは、表ごとに任意アクセス制御(DAC)が用意されています。情報へのアクセスは権限(SELECT、INSERT、UPDATEおよびDELETE)によって制御され、表に対するSQL操作はそれぞれの権限に対応して許可されます。

DACでは、データへのアクセスが単一ディメンションのバイナリ方式で制御されます。つまり、アクセスはオブジェクト全体に対して許可または拒否されます。管理者がユーザーに付与する権限によって、そのユーザーがデータに対して実行できる操作が決定されます。表やビューなどのオブジェクトにアクセスするユーザーまたはプロセスには、SELECTなどの適切な権限が必要です。オブジェクト内のデータにアクセスするユーザーまたはプロセスは、最初に、必要なDAC権限を付与されている必要があります。

1.1.3.2 Oracle Label Security

ラベルを使用すると、行のデータを使用することにより、DACよりも高度なアクセス制御ルールを施行できます。ポリシーを適用すると、各データ行に新規の1列が追加されます。この列には、各行の機密性をそのポリシーの範囲内で反映したラベルが格納されます。レベル・アクセスは、ユーザーの識別情報およびラベルを行のラベルと比較することで決定されます。

Oracle Label Securityのアクセス制御は、まず基本的なDACポリシーに依存します。DACとOracle Label Securityの両方によって、行へのアクセスを許可するかどうかの制御の基準が決定されます。

ほとんどのアプリケーションの場合、ラベルベースのアクセス制御による追加のセキュリティを必要とする表は比較的少数です。大多数のアプリケーション表は、標準DACによる保護で十分です。

1.1.3.3 Oracle Label Securityと任意アクセス制御の相互動作

ユーザーが行にアクセスするには、最初にOracle DatabaseのDAC要件、次にOracle Label Securityの要件を満たす必要があります。

Oracle Databaseでは、ユーザーのシステム権限とオブジェクト権限に基づいてDACが施行されます。まず、ユーザーはOracle Databaseに対して認証を受ける必要があります。さらに、要求する操作に対するDAC要件のオブジェクト権限とシステム権限も必要です。

DACでアクセスが許可される場合、ユーザーが要求する操作は次の全ガイドラインについてOracle Label Securityにより追加される条件を満たす必要があります。

  • Oracle Label Securityのラベル定義とラベル階層

  • ユーザー・ラベルと行ラベル

  • Oracle Label Securityの施行オプション

  • ユーザーのOracle Label Securityポリシー権限

Oracle Label Securityの柔軟性と機能性により、多様な本番環境でアプリケーションがサポートされます。標準的なOracle Databaseのデータ整合性、可用性およびリカバリ機能をユーザー・アカウンタビリティと監査も含め維持しながら、サイトのセキュリティ・ポリシーが施行されます。

図1-2「Oracle Label Securityのアーキテクチャ」は、Oracle Label Securityでのデータ・アクセスを示しています。この図は、DACとLabel Securityのチェック順序を示しています。Oracle Databaseセッション内でアプリケーション・ユーザーがSQL要求を送信します。Oracle DatabaseによりDAC権限がチェックされ、ユーザーが表に対するSELECT権限を持っているかどうかが確認されます。次に、表に仮想プライベート・データベース(VPD)ポリシーが連結されているかどうかがチェックされ、表がOracle Label Securityにより保護されていることが確認されます。SQL文が変更されます。

Oracle Label Securityは行ごとに起動されます。アクセスは、データ・ラベルとユーザーのセッション・ラベルの比較に基づき、ユーザーのOracle Label Security権限に従って付与または拒否されます。

1.2 Oracle Label Securityのアーキテクチャ

Oracle Label SecurityはOracle Database Enterprise EditionのVPDテクノロジに基づいて構築され、同製品のアプリケーション・コンテキスト機能を使用します。

図1-2 Oracle Label Securityのアーキテクチャ

図1-2の説明が続きます
「図1-2 Oracle Label Securityのアーキテクチャ」の説明

1.3 Oracle Label Securityの機能

Oracle Label Securityには行レベル・セキュリティによるアクセス制御が用意されており、Oracle Databaseの基礎となるアクセス制御に加えて動作します。この項では、Oracle Label Securityの機能について説明します。この項の内容は、次のとおりです。

1.3.1 Oracle Label Securityポリシーの機能の概要

Label Security管理者は、指定した保護オブジェクトへのアクセスを制御するデータ・ラベルとユーザー・ラベルのセットと、ユーザーおよびプログラム・ユニットに対する権限を定義します。ポリシーとは、これらのラベル、ルールおよび権限に関連付けられた単なる名前です。

たとえば、ユーザーがアプリケーション表に対するSELECT権限を持っているとします。図1-3「Oracle Label Securityのラベルベース・セキュリティ」のように、ユーザーがSELECT文を実行すると、Oracle Label Securityは選択された各行を評価し、そのユーザーがアクセスできるかどうかを判断します。この判断は、セキュリティ管理者がユーザーに割り当てた権限とアクセス・レベルに基づきます。Oracle Label Securityは、UPDATE、DELETEおよびINSERT文のセキュリティ・チェックを実行するように構成することもできます。

図1-3 Oracle Label Securityのラベルベース・セキュリティ

図1-3の説明が続きます
「図1-3 Oracle Label Securityのラベルベース・セキュリティ」の説明

  • Oracle Label Securityでは、包括的なアクセス認可セット(第3章「アクセス制御および権限」を参照)を使用し、機密性ラベル自体を行に含まれる他のデータから独立して確実に保護できます。

  • Oracle Label Securityでは、特殊な処理要件を処理するために、ポリシーを柔軟に施行できます。たとえば、特定タイプのデータ操作言語(DML)文のみに対する限定的な施行、ユーザーによるラベル作成の制限またはデフォルト・ラベルの有効化が可能です。

  • ポリシーで個々のアプリケーション表を保護できます。通常、アプリケーションの表をすべて保護する必要はありません。たとえば、郵便番号などの参照表は保護する必要はありません。

  • Oracle Label Securityでは、セキュリティ管理者はポリシーに特殊なラベル付けファンクションとSQL述語を追加して、ユーザーの操作を単純化できます。

  • 管理者またはアプリケーション開発者は、複数のOracle Label Securityポリシーを作成できます。たとえば、人事管理ポリシーと保安ポリシーを同じデータベース内で共存させることができます。各ポリシーを個別に構成し、データ・ラベル用に独自の一意ラベルおよび列を定義できます。

  • 1つのポリシーを定義して複数のアプリケーション表に適用できます。

1.3.2 Oracle Enterprise Edition: VPDテクノロジ

VPDでは、ポリシー駆動のアクセス制御がサポートされます。VPDポリシーにより、オブジェクトレベルのアクセス制御または行レベルのセキュリティが施行されます。VPDにはApplication Program Interface(API)が用意されており、データベースの表およびビューにセキュリティ・ポリシーを割り当てることができます。たとえば、給与データへのアクセスを、同じ施設内の管理者についてのみ許可するようにできます。開発者とセキュリティ管理者は、PL/SQLを使用して、ストアド・プロシージャでセキュリティ・ポリシーを作成できます。これらのプロシージャを、RDBMSパッケージのコールを使用して表またはビューにバインドします。この種のポリシーは、Oracle Databaseに格納されているアプリケーション・データの内容、またはOracleで提供されるコンテキスト変数(ユーザー名やIPアドレスなど)を使用してアクセスを制限します。VPDポリシーを使用すると、開発者はアプリケーションからアクセス・セキュリティ・メカニズムを取り除き、Oracle Database内に集中化できます。

図1-4「Oracle Database Enterprise Editionの仮想プライベート・データベース・テクノロジ」のように、VPDを使用すると、セキュリティ条件を表、ビューまたはシノニムに対応付けることができます。この例では、各ユーザーがORDERS表から選択するときに、必要なセキュリティ条件が自動的に施行されます。サーバーはデータへのアクセス方法に関係なくセキュリティ・ポリシーを自動的に施行し、セキュリティを実装するために多数のビューを使用する必要がなくなります。

表1-4 Oracle Database Enterprise Editionの仮想プライベート・データベース・テクノロジ

図1-4の説明が続きます
「図1-4 Oracle Database Enterprise Editionの仮想プライベート・データベース・テクノロジ」の説明

1.3.3 Oracle Label Security: デフォルトのVPD

Oracle Label Securityには組込みのセキュリティ・ポリシーおよびインフラストラクチャが用意されており、行レベル・セキュリティを簡単に施行できます。このデフォルトのソリューションではプログラミングが不要なため、所有コストおよび新しい製品やアプリケーションを市場に出すための時間が短縮されます。

Oracle Label Security管理者は、PL/SQLを記述するのではなく、記述名を指定して行レベル・セキュリティのポリシーを作成できます。追加コードを記述する必要はありません。指定した表にセキュリティ・ポリシーを一度に適用できます。このようにファイングレイン・セキュリティ・ポリシーの簡単かつ効率的な実装方法により、VPD単独では得られない粒度と柔軟性が得られます。このため、Oracle Label Securityは様々な状況で使用できる汎用ソリューションとみなすことができます。

1.3.4 ラベル・ポリシーの機能

Oracle Label Securityにより、Oracleのオブジェクト・リレーショナル・データベース管理システムに、ラベルベースのアクセス制御が追加されます。データへのアクセスは、次の要因に基づいて調整されます。

表1-1 Oracle Label Securityのアクセス調整要因

ラベルまたはポリシーの要因 参照先

アクセスが要求されたデータ行のラベル

第3章「アクセス制御および権限」


アクセスを要求しているユーザー・セッションのラベル

第3章「アクセス制御および権限」


そのユーザー・セッションのポリシー権限

第3章「アクセス制御および権限」


その表に設定されているポリシー施行オプション

第3章「アクセス制御および権限」



たとえば、1行のデータに対して実行される標準的なDML操作(SELECTなど)を考えます。Oracle Label Securityでは、CONFIDENTIALラベルを持つユーザーにより、CONFIDENTIALラベル付きのデータ行へのこのアクセス要求を評価するときに、このアクセスが実際に可能かどうかが判断されます。TOP SECRETのように行ラベルの方が上位だった場合は、アクセスが拒否されます。

これにより、様々な機密性を持つデータや様々な会社に属するデータを単一システムに格納して管理し、標準的なOracleアクセス制御を通じてデータ・セキュリティを保つことができます。同様に、多様な業界のアプリケーションでポリシーとともに行ラベルを使用し、同じ表に対する他の既存の使用を妨げることなく、必要に応じて限定的なアクセス制御機能を追加提供できます。

次の各項では、ラベルとポリシーの施行が依存する要因について説明します。

1.3.4.1 データ・ラベル

Oracle Label Securityでは、表の各行に機密性レベルに基づくラベルを付けることができます。各ラベルには、次の3つのコンポーネントが含まれています。

  • 単一レベル(機密性)のランキング

  • 0個以上の水平区分またはカテゴリ

  • 0個以上の階層グループ

レベルは漏えいまたは破損に対するデータの機密性の階層を表し、重要なのはプライバシまたはセキュリティの維持です。レベルは主メカニズムで構成されており、特定のデータの表示または変更が認可されていないユーザーを除外します。認可レベルが低いユーザーは小さい番号で表され、大きいレベル番号のラベルが付いているデータへのアクセスが自動的に制限されます。代表的な政府機関では、レベルCONFIDENTIAL、SENSITIVEおよびHIGHLY_SENSITIVEを定義している場合があります。また、民間団体はCOMPANY_CONFIDENTIALデータ用の単一レベルを定義している場合があります。

区分コンポーネントは非階層型ですが、進行中の戦略的イニシアティブに関連するデータなど、データを区別するために一般に定義される便利なカテゴリを示します。最初は区分を使用しない組織もあります。

グループ・コンポーネントは階層型であり、所有権を反映させるために使用されます。たとえば、FINANCEおよびENGINEERINGグループをCEOグループの子として定義し、所有権関係を持たせることができます。この階層により、ENGINEERINGラベルのみを持つユーザーはFINANCEラベルを持つデータを表示できないが、CEOラベルを持つユーザーはどちらのサブグループのラベルが付いているデータも表示できると判断されます。グループによるアクセスの決定ルールの詳細は、第3章「アクセス制御および権限」を参照してください。

ラベルには、次の4つのコンポーネントの組合せから1つを使用できます。

  • グループや区分を持たない単一レベル・コンポーネント(U::など)

  • 区分セットを持ちグループを持たないレベル(U:Alpha, Beta:など)

  • グループ・セットを持ち区分を持たないレベル(U::FIN, ASIAなど)

  • 区分とグループの両方を持つレベル(U:Beta, Psi:ASIA, FINなど)

1.3.4.2 ラベル認可

ユーザーには、ラベル付きの行に対するアクセスの種類(読取りまたは書込み)を決定するラベル認可を付与できます。ラベルが適用されている行を表示または変更できるのは、そのラベルへのアクセスが認可されているユーザーのみです。必要な認可を持っていない行には、アクセスも編集操作もできません。行に複数のラベルが付いている場合に、その行を表示または変更するには、ユーザーはラベルごとに必須の認可を持っている必要があります。

1.3.4.3 ポリシー権限

ポリシー権限により、ユーザーまたはストアド・プログラム・ユニットは、ラベルベースのアクセス制御ポリシーの一部の側面をバイパスできます。管理者はさらに、ユーザーやプログラム・ユニットが別のユーザーの認証を肩代りできるようにするなど、特定のアクションの実行を認可できます。権限については、第3章「アクセス制御および権限」を参照してください。

権限をプログラム・ユニットに付与すると、ユーザーではなくプロシージャに対して、権限の対象となる操作の実行を認可できます。システム・セキュリティは、個々のユーザーではなくストアド・プログラム・ユニットのみがOracle Label Security権限を持つ場合に最上位レベルになります。また、この種のプログラム・ユニットによりポリシーがカプセル化され、セキュリティについて最小限のアプリケーション・コードを検討するのみですみます。

1.3.4.4 ポリシー施行オプション

Oracle Label Securityでは、管理者またはアプリケーション開発者は、様々なポリシー施行オプションを適用することにより、ユーザーの実行可能なDML操作の制御に最大限の柔軟性を持たせることができます。ポリシー施行オプションについては、第8章「ユーザーのラベルおよび権限の管理」を参照してください。

1.3.4.5 要約: ラベルベースの行アクセスの4つの側面

保護されている表内でラベルベースのアクセスが施行される場合、その行にユーザーがアクセスするには、そのユーザーのラベルはポリシー定義によって決定された一定の基準を満たす必要があります。この種のアクセス制御は、アプリケーション開発者が実装する任意アクセス制御の後で2次的なアクセス調整チェックとして機能します。

Oracle Label Securityが提供するラベルベースのアクセス制御の4つの側面は、次のとおりです。

  • ユーザーのラベルは、そのユーザーがアクセスを許可されている情報を示し、そのユーザーが実行を許可されているアクセスのタイプ(読取りまたは書込み)を決定します。

  • 行のラベルは、その行に含まれる情報の機密性を示します。また、その所有権や類似データとの関係も示す場合があります。

  • ユーザーのポリシー権限を使用すると、ラベルベースのアクセス制御ポリシーの一部の側面をバイパスできます。

  • 表のポリシー施行オプションは、読取りおよび書込み操作に対するアクセス制御の施行方法の様々な側面を決定します。

1.4 Oracle Label SecurityとOracle Internet Directoryとの統合

Oracle Label Securityの使用をOracle Internet Directoryと統合しているサイトでは、ラベル・セキュリティの操作と管理の効率を大幅に改善できます。ポリシーとユーザー認証プロファイルは、付録B「Oracle Internet Directoryを使用したLabel Security用コマンドライン・ツール」で説明するコマンドを使用してディレクトリ内で直接作成および管理します。変更は関連ディレクトリに自動的に伝播します。

この統合の詳細は、第6章「Oracle Label SecurityとOracle Internet Directoryとの併用」を参照してください。