プライマリ・コンテンツに移動
Oracle® Database Vault管理者ガイド
11gリリース2 (11.2)
B56297-10
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

D Oracle Database Vaultセキュリティ・ガイドライン

この付録の内容は次のとおりです。

職務分離のガイドライン

この項の内容は次のとおりです。

Oracle Database Vaultによる職務分離の処理

職務分離とは、各ユーザーの権限をそのユーザーが担当するタスクのみに制限し、それ以外のタスクの権限は付与しないことを意味します。多くの権限を1人のユーザーに付与するのではなく、特定の権限カテゴリを特定のユーザーに割り当てます。簡単に言えば、組織で求められる各タスクのアカウンタビリティが職務分離によって構築されます。

職務分離は、過去10年で非常に重要視されるようになりました。多くの組織にとって、職務分離は今後も展開し続ける新しい概念です。データベースの統合、法令順守およびアウトソーシングは、職務分離を推し進める要因の一部にすぎません。Oracle Database Vaultの職務分離では、セキュリティ関連の管理を日常的なDBA操作と分離することによって、セキュリティが強化されます。Database Vaultの職務分離は、現在および将来のビジネス要件に容易に対処できるようにカスタマイズが可能です。特に小規模組織では、限られたリソースでセキュリティ・プロファイルを向上させるために、柔軟性が必要となります。

Oracle Database Vault環境での分離タスクの定義

Oracle Database Vaultでは、次の主な職責が定義されます。

  • アカウント管理。アカウント管理では、ユーザー・アカウントの作成、変更、および削除を行います。DV_ACCTMGRロールがこれらの権限を提供します。

  • セキュリティ管理。セキュリティ管理では、基本的なセキュリティ・タスクを行います。たとえば、レルムやコマンド・ルールの作成、データベース・ユーザーのアクセスに対するセキュリティ・ポリシーの設定、実行が許可されたジョブに対するデータベース・ユーザーの認可などがあります。セキュリティ管理者は、セキュリティ監査レポートの実行も行います。DV_OWNERおよびDV_ADMINロールにこれらの権限が含まれています。(Oracle Database Vaultのロールによる職務分離の詳細は、「Oracle Database Vaultロール」を参照してください。)

    オプションで、アカウント管理とセキュリティ管理の職責を統合することもできます。

  • リソース管理。リソース管理とは、データベース・システムの管理のことで、ビジネス・データへのアクセスのことではありません。次のような操作があります。

    • バックアップ操作では、事前定義されたツールを使用してバックアップを実行するための事前定義時刻が必要です。

    • チューニングおよび監視操作では、継続したパフォーマンス監視および分析が必要です。

    • パッチ適用操作では、パッチが適用されている間のみの一時アクセスが必要です。

    リソース管理では、これらの各タスクについて、名前付きアカウントとバックアップ・アカウントを作成する必要があります。これらのアカウントを、データベース・ディクショナリ・レルムの所有者として追加します。これらのアカウントをデータベースのプライマリ・リソース・マネージャとして使用します。

データベース・アカウント管理とデータベース・セキュリティ管理のための個別アカウントと、バックアップ操作のためのその他の名前付きアカウントが必要です。監査者は、各職責のための個別のデータベース・アカウントをチェックし、各アカウントのアクションを追跡できます。特定タスクに割り当てられているユーザーの数は、あまり重要ではありません。Oracle Database Vault監査イベントは保護されており、Database Vaultレポートにはすべての違反未遂が表示されます。

職務分離マトリクスの作成

職務分離を適切に行うためには、環境で基本的な管理タスクを実行するユーザーおよびその管理タスクの内容を理解する必要があります。1人のデータベース管理者が新規データベース・アカウントのプロビジョニングとアプリケーション・パッチ適用の両方の管理を担当する場合であっても、これらの各タスクを文書化し、計画することが大切です。これらの各タスク・タイプに別の管理アカウントを使用することで、アカウンタビリティが向上し、関連するリスクが低減します。中規模から大規模の組織では、データベース管理者は通常、一般的な管理タスクを実行する必要はありますが、アプリケーションで管理されるビジネス・データにアクセスする必要はありません。職務分離マトリクスを作成すると、Database Vaultデプロイメントを計画する際に役立ちます。必要に応じて、追加タスクおよび関連するユーザーをリストに含めることができます。この情報は、組織の全体的なエンタープライズ・セキュリティ・ドキュメントの一部となります。

表D-1は、職務分離マトリクスの例を示しています。

表D-1 職務分離マトリクスの例

ユーザー、プロセスまたはアプリケーション アカウントの作成 データベース管理 セキュリティ管理
SYSDBA バックアップ チューニング パッチ適用 監視

...














JSMITH

X






SHARDY







X

PKESTNER



X





RTYLER





X



SANDERSON




X


X


SYSTEM




EBSパッチ適用



RMAN


X

X






システム管理タスクで、特定のツールおよびプログラムからデータへの一時的なアクセスが必要なこともあります。この場合、Oracle Database Vaultルールおよびルール・セットに、この一時アクセスまたは緊急アクセスに対するプロビジョニングを構築します。

データベース・システムにアクセスするユーザーのタスクの識別および文書化

組織で必要となる次のタスク範囲を文書化する必要があります。

  • 各管理ユーザーの職責。

  • ユーザーが必要とするアクセス権の種類。たとえば、アプリケーション所有者はデータ・アクセス、開発者は開発インスタンスに対するアクセスのみを必要とします。

  • ビジネス・データにアクセスせずにシステムを管理する必要のあるユーザー(バックアップ、パッチ適用、チューニングおよび監視操作を実行するユーザーなど)。

  • 各タスク・カテゴリの職務(バックアップの必要なファイル、パッチ適用の必要なアプリケーション、監視の正確な対象など)。これらの各タスクの代替ユーザー・アカウントも含まれます。

  • 保護が必要なデータベースとアプリケーション。これには、Oracle Applications、パートナ・アプリケーションおよびカスタム・アプリケーションが含まれます。

  • ビジネス・データベースへのアクセスを認可する必要のあるユーザー。次のユーザーが含まれます。

    • 中間層プロセスを利用するアプリケーション所有者

    • アプリケーション・インタフェースを利用するビジネス・ユーザー

  • セキュリティ侵害の対処方法など、緊急時のWhat-Ifシナリオ。

  • 本番環境でのレポート作成。次の内容が含まれます。

    • レポートの実行者

    • 実行が必要なレポート

    • 各レポートの実行頻度

    • 各レポートのコピーの受取りを必要とするユーザー

  • 職務分離マトリクス以外に、次のマトリクスの作成があります。

    • Oracle Database Vault固有マトリクス。Database Vaultロールを付与されているユーザーの名前およびタスクを含めることができます。

    • アプリケーション保護マトリクス。保護対象アプリケーションおよび設定した保護タイプを含めることができます。

    表D-2は、OracleがPeopleSoftアプリケーション向けに作成した保護の例を示しています。これらのセキュリティ・ポリシーを作成するためのスクリプトは、次のURLからダウンロードできます。

    http://www.oracle.com/technetwork/database/options/database-vault/index-085211.html

    表D-2 アプリケーション保護マトリクスの例

    保護タイプ ルール・セットによる認可
    SYSADM PSFTDBA SYSTEM DBA

    PeopleSoftレルム

    所有者

    所有者

    アクセス不可

    アクセス不可

    SELECTコマンド・ルール

    制限なし

    制限PSFTDBルール・セット

    アクセス不可

    アクセス不可

    CONNECTコマンド・ルール

    PeopleSoftAccessルール・セット

    制限なし

    制限なし

    制限なし

    DROP TABLESPACEコマンド・ルール

    無効なルール・セット

    無効なルール・セット

    無効なルール・セット

    無効なルール・セット


Oracle Database管理アカウントの管理

この項の内容は次のとおりです。

一般的な管理目的のためのSYSTEMユーザー・アカウントの使用

一般的なデータベース管理の目的でSYSTEMアカウントを使用する場合は、データベース管理者のための名前付きデータベース管理アカウントを作成します。これにより、データベース内の管理アクションに対するアカウンタビリティが向上します。

アプリケーション表のためのSYSTEMスキーマの使用

サイトSYSTEMスキーマ内にアプリケーション表がある場合は、これらのアプリケーションを引き続き正常に動作させるため、SYSTEMアカウントをこれらの表に対するレルム認可に追加します。これらのアプリケーションのセキュリティを向上または微調整するため、SYSTEMアカウントに制限を加えることもできます。たとえば、SYSTEMユーザーのアクセスを特定のIPアドレスに制限するDatabase Vaultルール・セットを作成できます。

SYSDBA管理権限の制限

接続時にSYSDBA権限の使用がどうしても必要なユーザーや、引き続きSYSDBAアクセスを必要とするアプリケーション(Oracle Recovery Manager (RMAN)や必須パッチ適用プロセスなど)のみに、この権限を制限します。他のすべてのケースでは、日常的なデータベース管理を実行するための名前付きデータベース・アカウントを作成します。また、OSDBAユーザー・グループのメンバーにはSYSDBA管理権限が付与されます。

ルートとオペレーティング・システム・アクセスの管理

Oracle Database Vault は、多くの権限を持つデータベース・ユーザーが機密データにアクセスすることを防ぎます。また、Oracle Database自体を使用している場合は、透過的なデータ暗号化を使用することで、最大の権限を持つオペレーティング・システム・ユーザーが機密データにアクセスできないようにできます。透過的データ暗号化を使用すると、個々の表の列を非可視化できます。(データの透過的な暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。)オペレーティング・システムへの直接アクセスを常に注意深く確認し、制限することをお薦めします。

オペレーティング・システムにアクセスするには、アカウントをパーソナライズしておく必要があります。これらのパーソナライズされたアカウントは、LinuxまたはUNIX環境で、必要に応じてsudoを使用してoracleソフトウェア所有者にログインします。sudoでは、パーソナライズされた各ユーザーが実行できる特定のコマンドを制御できます。これらのユーザーについては、makerelinkgdb、またはデータベースで問題が発生する可能性があるその他のコマンドの使用を禁止してください。ただし、管理ユーザーがパッチをインストール、またはその他の緊急操作を実行する必要がある場合は、一定の時間のみmakeおよびrelinkコマンドを有効にし、この時間中のアクションを監査できます。

Oracle Database Vaultによって信頼されるアカウントおよびロール

Oracle Database Vaultは、データベース内の権限を与えられた多くのユーザーおよびロールからのアプリケーション・データへのアクセスを制限します。ただし、場合によっては、Oracle Database Vaultsは特定のロールおよび権限を信頼します。

表D-3に、信頼できるロールおよび権限を示します。これらのロールおよび権限は、Oracle Database Vaultのインストール時に作成されます。

表D-3 信頼できるOracle Database Vaultロールおよび権限

ロールまたは権限 ステータス 説明

DV_ACCTMGRロール

オープン

インストール時に作成され、新規データベース・アカウントの作成に使用されるロール。

DV_OWNERロール

オープン

インストール時に作成され、レルム、ファクタおよびコマンド・ルールの管理に使用されるロール。このユーザーは、自分自身をレルム認可に追加できます。DV_ACCTMGRロールを持つユーザーは、このユーザーを変更できません。

SYSDBA権限

有効

Oracle Databaseのインストール時に作成される権限。一部のOracle機能に必要です。SYSDBAの管理のガイドラインは、「SYSDBAアクセスの管理」を参照してください。

SYSOPER権限

有効

Oracle Databaseのインストール時に作成される権限。データベースの起動および停止。デフォルトではSYSにのみ付与されます。SYSOPERの管理のガイドラインは、「SYSOPERアクセスの管理」を参照してください。


信頼できる人物に制限する必要のあるアカウントおよびロール

いくつかのアカウントおよびロールは、デフォルトのOracle Databaseインストール環境で非常に強力な権限を持ちます。これらのアカウントおよびロールは、信頼できる人物に制限する必要があります。

オペレーティング・システムのルート・アクセス権を持つユーザーの管理

ルート・ユーザー・アクセス権を持つユーザーは、次のアクティビティを含め、システムを完全に制御できます。

  • 暗号化されていないファイルの読取り

  • ファイルの移動および削除

  • システムでのプログラムの起動または停止

  • Oracle Databaseインストール環境を所有するユーザーを含む任意のユーザーとしてのログイン

Oracle Database Vaultでは、オペレーティング・システム・ルート・アクセスに対して保護されません。ルート・ユーザー権限は、必ず適切な職責を持つ適切な人物にのみ付与してください。

Oracleソフトウェア所有者の管理

システムにOracleソフトウェア所有者としてのアクセス権を持つユーザーは、次のアクティビティを含め、Oracleソフトウェアを制御できます。

  • 暗号化されていないデータベース・ファイルの読取り

  • データベース・ファイルの移動および削除

  • システムでのOracleプログラムの起動または停止

Oracle Database Vaultでは、Oracleソフトウェア所有者のオペレーティング・システム・アクセスから保護されません。Oracleソフトウェア所有者アクセス権は、必ず適切な職責を持つ適切な人物にのみ付与してください。

SYSDBAアクセスの管理

デフォルトでは、Oracle Databaseは、SYSDBAアクセスをOSDBAグループの管理ユーザーおよびユーザーSYSに限定します。SYSDBA権限はOracle Database Vaultの信頼できる権限です。この権限は信頼できるユーザーにのみ付与してください。

SYSOPERアクセスの管理

デフォルトでは、Oracle Databaseは、SYSOPERアクセスをOSOPERグループのオペレーティング・システム・ユーザーおよびユーザーSYSに限定します。これによって、SYSOPERがOracleデータ・ディクショナリを直接変更することを防ぎます。SYSOPER権限は、データベース内の制限された権限を持ちますが、このロールを持つユーザーは、Oracleデータベースの起動と停止を行うことができます。SYSOPER権限は、信頼できるユーザーにのみ付与してください。

Oracle Database Vaultを本番環境で使用するためのガイドライン

Oracle Database Vaultを本番環境で使用する際は、次のガイドラインに従ってください。

  • アプリケーションの全テストを実行して、作成したDatabase Vaultポリシーが予測どおりに機能していることを確認します。

  • アプリケーションのパフォーマンスを監視し、必要に応じてルール式を調整します。

  • 適切な製品サポートおよびセキュリティ・グループに職責を次のように割り当てます。

    • データベース・セキュリティ管理者にセキュリティ職責を割り当てます。

    • データベース・アカウント・マネージャにアカウント管理を割り当てます。

    • データベース管理者にリソース管理タスクを割り当てます。

  • Database Vault APIスクリプトをセキュア・サーバーにバックアップします。

セキュアな構成のガイドライン

次の構成およびセキュリティのガイドラインに従ってください。


注意:

  • パッチおよび新規アプリケーションをインストールすると、この項で取り消した権限のうち、Oracleが推奨する一部の権限が再付与されることがあります。パッチおよび新規アプリケーションをインストールした後で、これらの権限を確認し、取り消されたままになっていることを確認してください。

  • パッケージに対するEXECUTE権限を取り消した場合は、所有者にパッケージに対するEXECUTEが付与されていることを確認し、パッケージの依存関係を確認し、取消し後に無効なパッケージを再コンパイルしてください。

    パッケージへのアクセス権を持つユーザーを検索するには、SQL*PlusにSYSTEMとしてログインし、次の問合せを発行します。

    SELECT * FROM DBA_TAB_PRIVS WHERE TABLE_NAME = package_name;
    

    package_nameは、検索するパッケージの名前です。

    パッケージに依存するユーザー、パッケージ、プロシージャおよびファンクションを検索するには、次の問合せを発行します。

    SELECT OWNER, NAME, TYPE  FROM ALL_DEPENDENCIES 
    WHERE REFERENCED_NAME = package_name;
    

    この2つの問合せは、動的SQLで行われたパッケージへの参照を識別しません。


UTL_FILEおよびDBMS_FILE_TRANSFERパッケージのセキュリティの考慮事項

UTL_FILEパッケージはSYSによって所有され、PUBLICに付与されます。ただし、ユーザーがオペレーティング・システム・ディレクトリ内のファイルを操作するためには、そのディレクトリ・オブジェクトへのアクセス権が必要です。UTL_FILEパッケージをセキュアに構成できます。詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

DBMS_FILE_TRANSFERパッケージは、SYSによって所有され、EXECUTE_CATALOG_ROLEに付与されます。このパッケージに対するEXECUTEアクセス権を持つユーザーは、同じファイルシステムの1つの場所から別の場所にファイルを移動できます。リモート・システム上のデータベースを含め、データベース・インスタンス間でファイルを移動することもできます。

DBMS_FILE_TRANSFERパッケージを保護するには、次の処理を行います。

  • DBMS_FILE_TRANSFERパッケージのEXECUTE権限を取り消し、この権限を必要とする信頼できるユーザーに対してのみEXECUTE権限を付与します。

  • コマンド・ルールを作成して、CREATE DATABASE LINKおよびCREATE DIRECTORY SQL文を制御します。Oracle Database Vault Administratorを使用したコマンド・ルールの作成の詳細は、「コマンド・ルールの作成および編集」を参照してください。

または、例D-1および例D-2に示すように、Oracle Database VaultのDBMS_MACADMパッケージを使用して、リモート・データベースへの接続の確立に使用されるCREATE DATABASE LINK文へのアクセスを制限および有効化することもできます。このメソッドを使用するには、Oracle Database Vault所有者アカウントを使用してSQL*Plusにログインします。

例D-1 CREATE DATABASE LINKへのアクセスを拒否するコマンド・ルールの作成

BEGIN 
 DBMS_MACADM.CREATE_COMMAND_RULE (
  command       => 'CREATE DATABASE LINK', 
  rule_set_name => 'Disabled', 
  object_owner  => '%', 
  object_name   => '%', 
  enabled       => DBMS_MACUTL.G_YES); 
  END; 
  / 
COMMIT;

有効なユーザーがCREATE DATABASE LINK文を使用する必要がある場合、Oracle Database Vault所有者は、Oracle Database Vault Administratorから再び有効にするか、SQL*Plusで次のコマンドを発行できます。

例D-2 CREATE DATABASE LINKへのアクセスを有効にするコマンド・ルールの作成

BEGIN 
 DBMS_MACADM.UPDATE_COMMAND_RULE (
  command       => 'CREATE DATABASE LINK', 
  rule_set_name => 'Enabled', 
  object_owner  => '%', 
  object_name   => '%', 
  enabled       => DBMS_MACUTL.G_YES); 
 END; 
 /  
COMMIT;

同様に、例D-3に、CREATE DIRECTORYへのアクセスを無効および有効にするコマンド・ルールを示します。

例D-3 CREATE DIRECTORYへのアクセスを無効および有効にするコマンド・ルール

-- Disable access to CREATE DIRECTORY
BEGIN
 DBMS_MACADM.CREATE_COMMAND_RULE (
  command       => 'CREATE DIRECTORY', 
  rule_set_name => 'Disabled', 
  object_owner  => '%', 
  object_name   => '%', 
  enabled       => dbms_macutl.g_yes); 
 END; 
  / 
COMMIT;

-- Enable access to CREATE DIRECTORY
BEGIN 
 dbms_macadm.update_command_rule (
  command       => 'CREATE DIRECTORY', 
  rule_set_name => 'Enabled', 
  object_owner  => '%', 
  object_name   => '%', 
  enabled       => dbms_macutl.g_yes); 
 END; 
 /
COMMIT;

リサイクルビンのセキュリティの考慮事項

Oracle Database Vaultでは、ALTER SYSTEMコマンド・ルールによってリサイクル・ビン機能が有効になるのを防ぎますが、リサイクル・ビンがすでに有効な場合、無効化を防ぐことはできません。リサイクルビン機能が有効な場合、レルムで保護されたオブジェクトが削除されると、リサイクル・ビンに移動されます。そこでは、オブジェクトはレルムによって保護されなくなります。DVSYSスキーマ内のオブジェクトは例外です。DVSYSを保護スキーマとして保持し続けるために、リサイクル・ビンが無効な場合でも、このスキーマのオブジェクトを削除できません他のレルムのセキュリティを強化するために、リサイクルビンを無効にする必要があります。

SQL*Plusでは、リサイクルビンの内容は次のようにチェックできます。

SELECT * FROM RECYCLEBIN;
SELECT * FROM USER_RECYCLEBIN;

リサイクルビンの内容をパージするには、PURGE SQL文を使用します。

PURGE RECYCLEBIN;
PURGE USER_RECYCLEBIN;

リサイクルビンを無効にするには、次のようにします。

  1. SYSDBA権限を使用してSYSとしてSQL*Plusにログインします。

    sqlplus sys as sysdba
    Enter password: password
    
  2. リサイクルビンが無効になっていることを確認します。

    SHOW PARAMETER RECYCLEBIN
    
  3. リサイクルビンがオンの場合は、無効にします。

    ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE;
    
  4. Oracle Databaseを再起動します。

    SHUTDOWN IMMEDIATE
    STARTUP
    

CREATE ANY JOB権限のセキュリティの考慮事項

CREATE ANY JOB権限はDBAロールおよびSCHEDULER_ADMINロールから取り消されています。使用しているアプリケーションにこの変更による影響がないことを確認してください。

詳細は、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

CREATE EXTERNAL JOB権限のセキュリティの考慮事項

CREATE EXTERNAL JOB権限は、Oracle Database 10gリリース 2 (10.2)で導入されました。データベースの外部のオペレーティング・システムで稼働するジョブを実行するデータベース・ユーザーに必要です。デフォルトでは、この権限は、CREATE JOB権限が付与されたすべてのユーザーに付与されます。セキュリティを高めるために、この権限を必要としないユーザーからこの権限を取り消し、必要とするユーザーにのみ付与してください。

LogMinerパッケージのセキュリティの考慮事項

このリリースのOracle Database Vaultでは、ロールEXECUTE_CATALOG_ROLEには、次のLogMinerパッケージに対するEXECUTE権限がデフォルトでは付与されません。

  • DBMS_LOGMNR

  • DBMS_LOGMNR_D

  • DBMS_LOGMNR_LOGREP_DICT

  • DBMS_LOGMNR_SESSION

使用しているアプリケーションにこの変更による影響がないことを確認してください。

ALTER SYSTEMおよびALTER SESSION権限のセキュリティの考慮事項

トレースおよびデバッグ・コマンドは、Oracleデータベース・メモリー情報を表示する可能性があることに注意してください。Oracle Database Vaultは、これらのコマンドに対する保護を行いません。Oracleデータベース・メモリー情報を保護するために、ALTER SYSTEM権限およびALTER SESSION権限へのアクセスを厳密に制御することをお薦めします。これらの権限は、SYSDBAとして接続しているときにユーザーSYSによって、またDBAロールを付与されている任意のユーザーによって付与できます。

また、ALTER SYSTEM文の既存のコマンド・ルールにツールを追加することをお薦めします。Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。ALTER SESSION権限は、信頼できるユーザーにのみ付与してください。(たとえば、ALTER SESSION文はトレースを有効にできます。)

例D-4は、このようなルールの作成方法を示しています。このルールにより、ALTER SYSTEM権限を持つユーザーは、コマンドALTER SYSTEM DUMPを発行できなくなります。このコマンド・ルールを作成する場合は、Oracle Database Vault所有者としてSQL*Plusにログインします。

例D-4 既存のALTER SYSTEMコマンド・ルールへのルールの追加

CONNECT amalcolm_dvacctmgr
Enter password: password

BEGIN
 DBMS_MACADM.CREATE_RULE('NO_SYSTEM_DUMP',
 '(INSTR(UPPER(DVSYS.DV_SQL_TEXT),''DUMP'') = 0)');
 END;
/
EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET
  ('Allow Fine Grained Control of System Parameters','NO_SYSTEM_DUMP');

COMMIT;

または、Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。詳細は、「ルール・セットに追加するルールの作成」を参照してください。