この章の内容は次のとおりです。
Oracle Database Vaultには、データベースからのセキュリティに関する情報を示す一連のレポートが用意されています。これらのレポートには、Oracle Database Vaultのカスタム監査イベント情報も表示されます。レポートは、次の2つのカテゴリに分類されます。
Database Vaultレポート。このレポートでは、レルム、コマンド・ルール、ファクタ、ファクタのアイデンティティ、ルール・セットおよびセキュア・アプリケーション・ロールの構成上の問題をチェックできます。レルム違反、監査結果なども明らかになります。
一般セキュリティ・レポート。このレポートでは、オブジェクト権限、データベース・アカウントのシステム権限、機密オブジェクト、権限管理、強力なデータベース・アカウントおよびロール、初期化パラメータ、プロファイル、アカウントのパスワード、セキュリティ監査、その他のセキュリティ脆弱性レポートのステータスをチェックできます。
Oracle Database Vaultレポートを実行するには、DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
のロールを持つアカウントを使用してログインする必要があります。これらのロールの詳細は、次の各項を参照してください。
Oracle Database Vaultレポートを実行するには、次のようにします。
DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ロールを付与されているユーザーとしてDatabase Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。
「Database Vaultレポート」または「一般セキュリティ・レポート」を選択します。
これらのレポート・カテゴリの詳細は、次の各項を参照してください。
レポートを選択し、「レポートの実行」をクリックしてレポートを実行します。
多くのレポートは、入力パラメータを指定せずに実行できます。たとえば、「AUDIT権限」レポートを選択し、「レポートの実行」をクリックすると、レポート結果がすぐに表示されます。しかし、一部の使用可能なレポートには、結果を表示するために1つ以上の入力パラメータが必要です。
「レポート結果」ページには、列ヘッダーがレポートの上部に表示された表形式でレポートの内容が表示されます。ページには、レポート・タイトルおよびレポートが実行された日時も表示されます。「レポート・メニューに戻る」をクリックして「レポート」ページに戻ると、必要に応じて別のレポートを選択して実行できます。
一部のレポートは、実行する前に少なくとも1つの入力パラメータを指定する必要があります。たとえば、「オブジェクトの依存性レポート」を選択して「レポートの実行」をクリックすると、レポート・パラメータ・ページが表示されます。「所有者」ボックスを使用すると、オブジェクトを所有するデータベース・アカウントを選択できます。「オブジェクト名」フィールドでは、オブジェクトの名前を指定します。デフォルトですべてのオブジェクト名になるパーセント記号(%)などのワイルドカード文字を使用できます。「結果セット・サイズ」パラメータは、表示される結果の最大行数を決定します。すべてのレコードを表示する場合、「すべて」を選択します。このページで入力するパラメータは、レポート結果を生成するSQL問合せに直接渡されます。「レポートの実行」をクリックすると、指定されたパラメータに基づいたレポート結果が表示されます。
Oracle Database Vaultレポートを生成するには、「Database Vaultレポート」タブをクリックした後、次のレポートのカテゴリから選択します。
構成の問題のレポートには、次のものがあります。
「アイデンティティのないファクタ」レポートは、アクセス制御の構成にアイデンティティが定義されていないOracle Database Vaultファクタを示します。Background_Job_Id
などの一部のファクタの場合、これは本当の問題ではない可能性がありますが、アクセス制御の構成が完全かどうか、すべてのファクタの構成を考慮に入れているかどうかの判断にこのレポートを役立てることができます。
「レルム認可構成の問題」レポートは、次の構成の問題が存在するOracle Database Vaultレルムの情報を示します。
しかし、ほとんどの場合、このような問題はレルムの構成時および検証時に発見されます。
「ルール・セット構成の問題」レポートは、ルール・セットにルールが定義されていないか、有効なルールがない場合に、Oracle Database Vaultルール・セットの情報を示します。
「レルムの監査」レポートは、レルム保護およびレルム認可の操作によって生成される監査レコードを示します。レルム認可はルール・セットを使用して管理し、そのルール・セットの処理結果を監査できます。レルム違反は、レルムで保護されているオブジェクトに対してアクションを実行するデータベース・アカウントに、そのアクションを実行する権限がない場合に発生します。レルムに関連付けられているルール・セットを指定しない場合でも、Oracle Database Vaultによって違反が監査されます。レルムを構成する際に、レルム違反のインスタンスを監査するように設定できます。この情報を使用して、セキュリティ違反の試行を調査できます。
「コマンド・ルールの監査」レポートは、コマンド・ルール処理の操作によって生成される監査レコードを示します。コマンド・ルールを構成する際に、ルール・セットの処理結果を監査するように設定できます。
「ファクタの監査」レポートは、評価できなかった、または様々な条件下で監査レコードを作成するように設定されたファクタを示します。また、ファクタの設定に失敗した試みも示します。
ファクタ・アイデンティティを解決できない、または割り当てることができない(データが見つからない、行が多すぎるなど)インスタンスを監査できます。ファクタには、実行時にアイデンティティをファクタに割り当てるルール・セットを関連付けることができます。ファクタを構成する際に、ルール・セットの処理結果を監査するように設定できます。
「Label Security統合の監査」レポートは、セッション初期化の操作およびLabel Securityセッション・ラベル割当ての操作によって生成される監査レコードを示します。Label Securityセッションの初期化に失敗したインスタンス、およびセッションで最大セッション・ラベルを超えるラベルの設定がLabel Securityコンポーネントによって妨げられているインスタンスを監査できます。
「コアDatabase Vault監査証跡」レポートは、コア・アクセス・セキュリティ・セッション初期化の操作によって生成される監査レコードを示します。アクセス・セキュリティ・セッションの初期化に失敗したインスタンスを監査できます。次のデータが表示されます。
違反試行 | インスタンス番号 |
タイムスタンプ | オブジェクト名 |
リターン・コード | ルール・セット |
アカウント | コマンド |
ユーザー・ホスト |
一般セキュリティ・レポートを生成するには、「一般セキュリティ・レポート」タブをクリックした後、次のレポートから選択します。
「PUBLICでのオブジェクト・アクセス」レポートには、PUBLIC
にアクセス権が付与されているすべてのオブジェクトがリストされます。レポート・パラメータ・ページで指定されたデータベース・アカウントについて、PUBLIC
へのオブジェクト付与によるすべてのオブジェクト・アクセスの詳細を示します。レポート・パラメータ・ページでは、権限、オブジェクト所有者またはオブジェクト名に基づいて結果をフィルタ処理できます。
注意: このレポートは、デフォルトを選択すると非常に大きなサイズになることがあります。 |
「PUBLIC以外でのオブジェクト・アクセス」レポートは、「レポート・パラメータ」ページで指定されたデータベース・アカウントについて、直接またはロールを介したアカウントへの付与によるオブジェクト・アクセスをすべて(ただし、PUBLIC
への付与を除く)示します。「レポート・パラメータ」ページでは、権限、オブジェクト所有者またはオブジェクト名に基づいて結果をフィルタにかけることができます。
注意: このレポートは、デフォルトを選択すると非常に大きなサイズになることがあります。 |
「直接オブジェクト権限」レポートは、非システム・データベース・アカウントに付与された直接オブジェクト権限を示します。次のデータベース・アカウントは、このレポートの対象外です。
CTXSYS |
LBACSYS |
SYS |
WMSYS |
DMSYS |
MDSYS |
SYSMAN |
|
DVSYS |
ORDSYS |
SYSTEM |
|
EXFSYS |
PUBLIC |
WKSYS |
「オブジェクトの依存性」レポートは、データベース・リンクを使用しないで作成されたビューの依存性を含む、プロシージャ、パッケージ、ファンクション、パッケージ本体およびトリガー間のデータベース内の依存性をすべて示します。最低限の権限の原則を使用するセキュリティ・ポリシーを既存のアプリケーション用に開発するために役立ちます。データベース・オブジェクト(UTL_FILE
パッケージなど)がPUBLIC
に付与された権限または他のなんらかのグローバル・ロールを保持する場合、「オブジェクトの依存性」レポートを使用して、そのオブジェクトに依存するアカウントを割り出し、アカウントでオブジェクトをどのように使用しているかを判断できます。レポートを実行するには、依存性を調べるデータベース・アカウントと、そのアカウントが依存するオブジェクトを、レポート・パラメータ・ページに入力します。
「レポート結果」ページには、依存オブジェクトとオブジェクト・タイプの他に、ソース・オブジェクトの名前とタイプが表示されます。このレポートには、機密オブジェクトが使用されている可能性がある場所が示されます。いくつかのアカウントを調べることで、制限付きロールの開発に役立つパターンを発見できることがあります。このような制限付きロールは、広く使用される機密オブジェクトのPUBLIC
の権限と置換できます。
データベース・アカウントのシステム権限レポートには、次のものがあります。
「データベース・アカウントごとの直接システム権限」レポートは、レポート・パラメータ・ページで選択されたデータベース・アカウントに直接付与されているシステム権限をすべて示します。また、権限がWITH ADMIN
オプションを使用して付与されているかどうかも示します。
「データベース・アカウントごとの直接および間接システム権限」レポートは、「レポート・パラメータ」ページで選択されたデータベース・アカウントに対するシステム権限をすべて示します。システム権限は、直接またはWITH ADMIN
ステータスのデータベース・ロールを介して付与されています。
「データベース・アカウントごとの階層システム権限」レポートは、「レポート・パラメータ」ページで指定されたデータベース・アカウントに付与されているロールベースのシステム権限および直接システム権限の階層分類を示します。
「データベース・アカウントのANYシステム権限」レポートは、指定されたデータベース・アカウントまたはロールに付与されているANYシステム権限をすべて示します。
ANY
システム権限は、とても強力であるため、アカウントおよびロールに慎重に割り当てる必要があります。
「強力なSYSパッケージに対するEXECUTE権限」レポートは、オペレーティング・システム・リソースや他の強力なシステム・パッケージへのアクセスに使用できるシステム・パッケージに対してEXECUTE
権限を持つデータベース・アカウントおよびロールを示します。次のシステムPL/SQLパッケージが対象となります。
DBMS_ALERT |
DBMS_RANDOM |
DBMS_BACKUP_RESTORE |
DBMS_REPAIR |
DBMS_CAPTURE_ADM |
DBMS_REPCAT |
DBMS_DDL |
DBMS_REPCAT_ADMIN |
DBMS_DISTRIBUTED_TRUST_ADMIN |
DBMS_RESOURCE_MANAGER |
DBMS_FGA |
DBMS_RESOURCE_MANAGER_PRIVS |
DBMS_JOB |
DBMS_RLS |
DBMS_LDAP |
DBMS_SESSION |
DBMS_LOB |
DEBUG_EXTPROC |
DBMS_LOGMNR |
UTL_FILE |
DBMS_LOGMNR_D |
UTL_HTTP |
DBMS_OBFUSCATION_TOOLKIT |
UTL_SMTP |
DBMS_ORACLE_TRACE_AGENT |
UTL_TCP |
DBMS_PIPE |
「機密オブジェクトへのアクセス」レポートは、機密情報を含むシステム表またはビューに対してオブジェクト権限を持つデータベース・アカウントおよびロールを示します。次のシステム表およびビューが含まれます。
ALL_SOURCE |
PROFILE$ |
ALL_USERS |
PROXY_ROLE_DATA$ |
APPROLE$ |
PROXY_ROLE_INFO$ |
AUD$ |
ROLE_ROLE_PRIVS |
AUDIT_TRAIL$ |
SOURCE$ |
DBA_ROLE_PRIVS |
STATS$SQLTEXT |
DBA_ROLES |
STATS$SQL_SUMMARY |
DBA_TAB_PRIVS |
STREAMS$_PRIVILEGED_USER |
DBMS_BACKUP_RESTORE |
SYSTEM_PRIVILEGE_MAP |
DEFROLE$ |
TABLE_PRIVILEGE_MAP |
FGA_LOG$ |
TRIGGER$ |
LINK$ |
USER$ |
OBJ$ |
USER_HISTORY$ |
OBJAUTH$ |
USER_TAB_PRIVS |
OBJPRIV$ |
SYSTEM_PRIVILEGE_MAP |
「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポートは、SYS
が所有するパッケージに対して実行権限を持つデータベース・アカウントおよびロールをすべて示します。このレポートを使用すると、PUBLIC
、あるいはその他のアカウントおよびロールから取り消すことができる権限を特定できます。これにより、最低限の権限の原則を使用するセキュリティ・ポリシーの全体的な実装の一部としての脆弱性が軽減されます。
「権限管理 - サマリー・レポート」には、次のものがあります。
「権限受領者ごとの権限の配布」レポートは、データベース・アカウントまたはロールに付与された権限の総数を示します。このレポートを使用すると、強力な権限を持つアカウントおよびロールを認識できます。
「権限受領者、所有者ごとの権限の配布」レポートは、オブジェクトの権限受領者および所有者に基づいて権限の総数を示します。このレポートを使用すると、強力な権限を持つアカウントまたはロールを認識できます。このレポートは、潜在的な侵入者または内部関係者によって、攻撃または侵害するためのアカウントとして強力な権限を持つアカウントが狙われていると疑われる場合に使用できます。たとえば、侵入者がパスワードを推測することでアカウントを侵害できる場合、侵入者はすでに保持している権限よりも多くの権限を入手できます。
強力なデータベース・アカウントおよびロールのレポートには、次のものがあります。
「WITH ADMIN権限の付与」レポートは、WITH ADMIN句によって権限を付与されているデータベース・アカウントおよび
ロールをすべて示します。この権限は、別のアカウントに必要以上のシステム権限を付与するために悪用される可能性があります。
「DBAロールを持つアカウント」レポートは、DBAロールが付与されているデータベース・アカウントをすべて示します。
DBA
ロールは、不正に利用される可能性のある特権ロールです。時間を節約し、アカウントに本当に必要な最小権限を判断しないで済むように、このロールがデータベース・アカウントに付与されることはよくあります。このレポートは、最低限の権限の原則を使用するポリシーを、既存のデータベースに適用する際に役立ちます。
どのユーザーに特権ロールを付与するかを決定するためのガイドラインは、付録D「Oracle Database Vaultセキュリティ・ガイドライン」を参照してください。
「セキュリティ・ポリシー除外」レポートは、EXEMPT ACCESS POLICYシステム権限が付与されている(Oracle Database Vault以外の)データベース・アカウントおよびロールを示します。この権限を持つアカウントは、すべてのVirtual Private Database(VPD)のポリシー・フィルタと、Oracle Virtual Private Databaseを間接的に使用するOracle Label Securityポリシーを無視できます。この権限は、Oracle Virtual Private DatabaseまたはOracle Label Securityによって保護される表の機密情報にアクセスするターゲットを示すため、どうしても必要な場合にかぎり付与すべき強力なシステム権限です。付録A「Oracle Database Vaultの監査」で説明するように監査ポリシーを使用すると、この権限を監査できます。
「BECOME USER」レポートは、BECOME USERシステム権限を持つデータベース・アカウントおよびロールをすべて示します。これは、非常に強力なシステム権限で、Oracle Data Pumpで使用する
IMP_FULL_DATABASE
ロールおよびEXP_FULL_DATABASE
ロールを有効にします。この権限を持つアカウントは、機密情報を入手したり、アプリケーションを侵害するために悪用されたりする可能性があります。
ALTER SYSTEMまたはALTER SESSIONレポートは、ALTER SYSTEMまたはALTER SESSION
権限を持つデータベース・アカウントおよびロールをすべて示します。これらの権限は、本当に必要なアカウントおよびロール(
SYS
アカウントやDV_ADMIN
ロールなど)に限定することをお薦めします。ALTER SYSTEM
文を使用すると、Oracle Database Vaultのセキュリティ強化サービスの一部として推奨値に設定されているセキュリティ関連のデータベース初期化パラメータを変更できます。ALTER SYSTEM
文とALTER SESSION
文の両方を使用すると、機密構成情報が含まれる可能性があるデータベース・トレース・ファイルをオペレーティング・システムにダンプできます。
ALTER SYSTEM
およびALTER SESSION
権限の使用に関するガイドラインは、「ALTER SYSTEMおよびALTER SESSION権限のセキュリティの考慮事項」を参照してください。
「パスワード履歴へのアクセス」レポートは、各アカウントで過去に使用されたハッシュ済パスワードを格納するUSER_HISTORY$
表にアクセスできるデータベース・アカウントを示します。この表へのアクセスにより、データベースをハッキングする何者かがアカウントの既存のパスワードを簡単に推測できるようになります。
WITH GRANT権限レポートは、WITH GRANT句によって権限を付与されている
データベース・アカウントをすべて示します。WITH GRANT
は、オブジェクトレベルの権限に使用されることに注意してください。WITH GRANT
オプションを使用して権限が付与されているアカウントは、別のアカウントにオブジェクト権限を付与するために悪用される可能性があります。
「カタログ・ロールを持つデータベース・アカウント」レポートは、次のロールが付与されているデータベース・アカウントおよびロールをすべて示します。
これらのカタログベースのロールは、非常に多くの強力な権限を保持します。これらを使用するDBA
ロールと同様に、慎重に付与する必要があります。
「AUDIT権限」レポートは、AUDIT ANYまたはAUDIT SYSTEM権限を持つ
データベース・アカウントおよびロールをすべて示します。この権限を使用すると監査を無効にできるため、システムを侵害した侵入者の監査証跡レコードを削除するために使用される可能性があります。この権限を持つアカウントは、侵入者のターゲットになる恐れがあります。
初期化パラメータおよびプロファイルのレポートには、次のものがあります。
「セキュリティ関連のデータベース・パラメータ」レポートは、データベース・パラメータの設定が正しくない場合に、セキュリティの脆弱性の原因となる可能性があるこれらのパラメータを示します。このレポートを使用すると、推奨される設定とデータベース・パラメータ値の現在の状態を比較できます。
「リソース・プロファイル」レポートは、CPU_PER_SESSION
やIDLE_TIME
など、際限なくリソースの消費を許す可能性があるリソース・プロファイルのビューを示します。リソースの潜在的使用の抑制が必要なプロファイルは、見直す必要があります。
データベース・アカウント・パスワードのレポートには、次のものがあります。
「データベース・アカウントのデフォルト・パスワード」レポートは、デフォルト・パスワードを持つデータベース・アカウントを示します。デフォルト・パスワードは、Oracle Databaseのインストール時に指定されます。
データベースを保護するために、このレポートに含まれるアカウントのパスワードをデフォルト以外の複雑なパスワードに変更する必要があります。
「データベース・アカウントのステータス」レポートを使用すると、既存のデータベース・アカウントを簡単に確認できます。このレポートにはアカウントごとにアカウント・ステータスが示されるため、ロックする必要があるアカウントを特定するために役立ちます。ロック日および有効日は、パスワード・エイジングの結果としてアカウントがロックされたかどうかの判断に役立つ情報となります。特殊なパスワードおよびリソース・セキュア・プロファイルが使用されている場合は、それらを使用していないアカウントを特定できます。体系立てて定義されたデフォルト表領域を使用していないアカウントも特定でき、アカウントの一時表領域を割り出すことができます。また、このレポートでは、外部パスワードを使用するアカウントも識別されます。
コア・データベース監査レポートは、付録A「Oracle Database Vaultの監査」で定義されている監査ポリシーに対する監査レコードの他に、ユーザーが定義した監査文に対して生成された監査レコードを返します。
このレポートは、データベース初期化パラメータAUDIT_TRAIL
がDB
に設定されている場合に取得される監査レコードのみを示します。AUDIT_TRAIL
パラメータの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。
その他のセキュリティ脆弱性レポートには、次のものがあります。
「Javaポリシーの付与」レポートは、データベースに格納されるJavaポリシーの権限を示します。最低限の権限の原則に対する違反の検出に役立ちます。必ずしも権限を必要としないPUBLIC
およびその他のアカウントやロールに対するGRANT
、READ
またはWRITE
権限を見つけます。データベースでJavaが必要ない場合は、PUBLIC
のJavaロード権限を無効にすることをお薦めします。
注意: 「Javaポリシーの付与」レポートを実行するには、Oracle JVM(Oracle Database Vaultに用意されたJava仮想マシン・オプション)をインストールする必要があります。 |
「OSディレクトリ・オブジェクト」レポートは、PUBLICで使用できるか否かに関係なく、データベースに存在するすべてのディレクトリ・オブジェクトとその権限を示します。ディレクトリ・オブジェクトは保護されたオペレーティング・システム(OS)に対してのみ存在し、データベース内でのディレクトリ・オブジェクトへのアクセスは保護する必要があります。リモート・データベース・セッションでデバイス上のすべてのファイルが参照できるようになるため、オペレーティング・システムのルート・ディレクトリ(
/
など)を任意のストレージ・デバイス上で使用しないでください。
「動的SQLに依存するオブジェクト」レポートは、動的SQLを利用するオブジェクトを示します。パラメータ・チェックまたはバインド変数が使用されない場合、潜在的な侵入者がこのチャネルを使用する可能性が大きくなります。このレポートにより、動的SQLを使用しているユーザーが明らかになり、問題を探す範囲を狭めることができます。このようなオブジェクトは、SQLインジェクション攻撃のターゲットとなる可能性があり、この種の攻撃を回避するために保護する必要があります。動的SQLを使用するオブジェクトを特定したら、次のようにします。
そのオブジェクトに対してクライアント・アプリケーション(Webアプリケーションなど)が保持する権限を確認します。
そのオブジェクト用にPUBLIC
またはより広範なアカウント・ベースに付与されたアクセス権を確認します。
パラメータを確認します。
可能な場合は、バインド変数を使用します。
アンラップされたPL/SQLパッケージ本体レポートは、ラップされないPL/SQLパッケージ・プロシージャを示します。データ・ディクショナリまたはデータ・ディクショナリ・ビューで読み取ることができない程度にコードを不明瞭化するラップ・ユーティリティが用意されています。このユーティリティを使用すると、データを操作するソース・コードの読取りを不可能にすることで、侵入者がデータ保護を回避する能力を削ぐことができます。
「ユーザーまたはパスワード表」レポートを使用すると、ユーザー名およびパスワードの文字列を格納する、データベースのアプリケーション表を特定できます。これらの表を調査して、情報が暗号化されているかどうかを判断する必要があります。(%USER%NAME%
や%PASSWORD%
などの列名を検索してください。)暗号化されていない場合は、これらの表を使用するコードおよびアプリケーションを変更して、データベース・セッションから見えないように保護してください。
「表領域割当て制限」レポートは、1つ以上の表領域に対して割当て制限があるデータベース・アカウントをすべて示します。これらの表領域は、DoS攻撃の潜在的なターゲットになり得ます。