ヘッダーをスキップ
Oracle® Database 2日でセキュリティ・ガイド
11g リリース2(11.2)
B56296-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

7 データベース・アクティビティの監査

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


関連項目:

  • ユーザーおよびデータベース・アクティビティを監査する他の方法については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • 監査の拡張機能を提供するOracle Audit Vaultの詳細は、『Oracle Audit Vault管理者ガイド』を参照してください。


監査の概要

監査は選択したユーザーのデータベース・アクションの監視と記録です。標準監査では、初期化パラメータおよびSQL文AUDITNOAUDITを使用して、SQL文、権限、スキーマ・オブジェクト、およびネットワーク・アクティビティと複数階層アクティビティの監査を行います。

監査が有効かどうかにかかわらず、Oracle Databaseが常に監査するアクティビティもあります。これらのアクティビティには、管理者権限の接続、データベースの起動、データベースの停止などが含まれます。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

監査の別タイプとして、ファイングレイン監査もあります。ファイングレイン監査により、データ・アクセスを、内容に基づき、value 1000などのBoolean測定を使用して、最も密なレベルで監査できます。ファイングレイン監査では、列へのアクセス、または列内での変更に基づいて、アクティビティを監査できます。Oracle Databaseにある指定した要素(特定のオブジェクトのコンテンツなど)へのアクセスまたは変更があると監査がトリガーされるようにセキュリティ・ポリシーを作成できます。監査を行う必要がある特定の条件を定義したポリシーを作成できます。たとえば、特定の表の列を監査し、一定期間中のどのタイミングで、誰がアクセスしようとしたかを調べることができます。また、ポリシー違反があった場合にトリガーされるアラートも作成でき、このデータを別の監査ファイルに書き込むことができます。ファイングレイン監査の実行方法は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

監査の使用目的

監査は、通常次のような目的で使用されます。

  • アクションのアカウンタビリティを有効にします。特定のスキーマ、表、行または影響を受けるコンテンツに対して実行されたアクションも含まれます。

  • アカウンタビリティに基づいて不審なユーザーによる不適切なアクションを阻止します。

  • 不審なアクティビティを調査します。たとえば、ユーザーが表からデータを削除しようとした場合、セキュリティ管理者は、そのデータベースへのすべての接続と、そのデータベースにあるすべての表からの行の削除(成功および失敗)をすべて監査できます。

  • 認可されていないユーザーによるアクションを監査人に通知します。たとえば、認可されていないユーザーがデータを変更または削除を実行できるなど、予期した以上の権限を持っている場合に、ユーザー認可を再評価できます。

  • 認可またはアクセス制御の実装に関する問題を検出します。たとえば、データは他の方法で保護されているため、監査レコードは生成されないと予測される監査ポリシーを作成できます。しかし、これらのポリシーで監査レコードが生成された場合は、他のセキュリティ制御が正しく実装されていないことがわかります。

  • 監査に関するコンプライアンス要件を遵守します。次のような規制には監査に関連する共通の要件があります。

    • 米国企業改革法(Sarbanes-Oxley Act)

    • 医療保険の相互運用性と説明責任に関する法律(HIPAA)(Health Insurance Portability and Accountability Act)

    • 国際業務を行う銀行の自己資本比率に関する国際統一基準: 改定版(バーゼルII)(International Convergence of Capital Measurement and Capital Standards: a Revised Framework)

    • 日本の個人情報保護法

    • 欧州連合のプライバシと電子通信に関する指令(European Union Directive on Privacy and Electronic Communications)

  • 特定のデータベース・アクティビティに関するデータを監視および収集します。たとえば、データベース管理者は、更新された表、実行された論理I/O操作の回数、ピーク時に接続していた同時実行ユーザーの数などに関する統計を収集できます。

標準監査アクティビティが記録される場所

Oracle Databaseは、監査アクティビティを監査レコードに記録します。監査レコードには、監査された操作、操作を実行したユーザー、操作が実行された日時が記録されます。監査レコードは、データベース監査証跡と呼ばれるデータ・ディクショナリ表またはオペレーティング・システム監査証跡と呼ばれるオペレーティング・システム・ファイルに格納できます。Oracle Databaseでは、不審なアクティビティを追跡するために使用できる一連のデータ・ディクショナリ・ビューも提供されます。これらのビューの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

標準監査を使用する場合、Oracle Databaseでは、監査レコードがDBA_AUDIT_TRAIL(SYS.AUD$表)、オペレーティング・システム監査証跡、または標準監査のログ・レコードとファイングレイン監査のログ・レコードを組み合せるDBA_COMMON_AUDIT_TRAILビューに書き込まれます。

さらに、AUDIT_SYSLOG_LEVEL初期化パラメータが設定されている場合、管理者が実行したアクションがsyslog監査証跡に記録されます。

標準監査による一般的なアクティビティの監査

ここでは、標準監査を使用してSQL文、権限、スキーマ・オブジェクト、ネットワーク・アクティビティまたは多層アクティビティに対して実行されたアクティビティを監査する方法を説明します。

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


関連項目:

標準監査証跡の管理の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

標準監査について

標準監査では、SQL文、権限、スキーマ・オブジェクトや、ネットワーク・アクティビティまたは多層アクティビティの監査を有効にできます。必要に応じて、特定のスキーマ表に対して監査を実行できます。このタイプの監査を実行するには、Database Controlを使用します。

標準監査証跡は、DBA_AUDIT_TRAILおよびDBA_COMMON_AUDIT_TRAILデータ・ディクショナリ・ビューを問い合せることで表示できます。


関連項目:

使用可能な様々なタイプの監査オプションの使用方法および使用理由に関するロードマップは、『Oracle Databaseセキュリティ・ガイド』を参照してください。

標準監査証跡の有効化または無効化

この項で説明している標準監査を実行する前に、標準監査を有効にする必要があります。標準監査を有効にするときに、データベース監査証跡に監査証跡を作成するか、オペレーティング・システム・ファイルに監査アクティビティを書き込むことができます。オペレーティング・システム・ファイルに書き込む場合は、テキスト形式またはXML形式で監査レコードを作成します。

標準監査証跡を有効または無効にするには、次のようにします。 

  1. Database Controlを起動します。

  2. SYSとしてログインし、SYSDBA権限で接続します。

    • ユーザー名: SYS

    • パスワード: パスワードを入力します。

    • 接続モード: SYSDBA

  3. 「サーバー」をクリックして、「サーバー」サブページを表示します。

  4. 「データベース構成」セクションで「初期化パラメータ」をクリックします。

    「初期化パラメータ」ページが表示されます。

  5. 「SPFile」をクリックして「SPFile」サブページを表示します。

    インストールの「SPFile」タブが表示されない場合は、サーバー・パラメータ・ファイルを使用してOracle Databaseをインストールしなかったということです。次の手順に進みます。

  6. 「名前」フィールドにaudit_trailを入力してAUDIT_TRAIL初期化パラメータを検索し、「実行」をクリックします。

    AUDIT_のように、パラメータの最初の数文字を入力できます。または、パラメータのリストをスクロールして、AUDIT_TRAILパラメータを検索できます。

  7. 「値」フィールドで、次のいずれかの値を選択します。

    • DB: データベース監査を有効にし、すべての標準監査レコードをデータベース監査証跡(SYS.AUD$)に記録します。ただし、常にオペレーティング・システム監査証跡に書き込まれるレコードは除きます。(Database Configuration Assistantを使用してデータベースを作成した場合はこの値がデフォルトになります。その他の場合はNONEがデフォルトになります。)

    • OS: データベース監査を有効にして、すべての監査レコードをオペレーティング・システム・ファイルに書き込みます。SYS.AUD$表に監査レコードを送信するかわりにオペレーティング・システム・ファイルに監査証跡を書き込むと、パフォーマンスが向上します。監査を行うユーザーがデータベース管理者とは異なる場合は、operating system設定を使用する必要があります。データベースに格納されたすべての監査情報は、データベース管理者により参照および変更が可能です。

      オペレーティング・システム監査レコード・ファイルの場所を指定するには、AUDIT_FILE_DEST初期パラメータを設定します。デフォルトのディレクトリは$ORACLE_BASE/admin/$ORACLE_SID/adumpです。

    • NONE: 標準監査を無効にします。

    • DB, EXTENDED: AUDIT_TRAIL=DB設定のすべてのアクションを実行し、SYS.AUD$表が使用できる場合は、この表のSQLBINDおよびSQLTEXT CLOB列にデータを移入します。(これらの2つの列は、このパラメータが指定されている場合にのみ移入されます。)

    • XML: オペレーティング・システム監査レコード・ファイルにXML形式で書き込みます。AuditRecordノードの要素を(http://xmlns.oracle.com/oracleas/schema/dbserver_audittrail-11_2.xsd XSDファイル内のXMLスキーマで指定されているとおり)、Sql_TextSql_Bindを除いてすべてオペレーティング・システムXML監査ファイルに書き込みます。この.xsdファイルは、XML監査ファイルのスキーマ定義を表します。XMLスキーマはXMLスキーマ言語で記述された文書です。

    • EXTENDED: XMLのすべてのアクションを実行し、可能な場合はSYS.AUD$表のSQLBINDおよびSQLTEXT CLOB列にデータを移入するXML, EXTENDEDを指定します。(これらの列は、このパラメータが指定されている場合にのみ移入されます。)

    AUDIT_TRAIL初期化パラメータの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  8. 「適用」をクリックします。

  9. Oracle Databaseインスタンスを再起動します。

    1. 「データベース・インスタンス」リンクをクリックします。

    2. 「ホーム」をクリックしてDatabase Controlのホームページを表示します。

    3. 「一般」で「停止」をクリックします。

    4. 資格証明の起動/停止ページでは、資格証明を入力します。

      詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

    5. 完全に停止した後に、「起動」をクリックします。

次の点に注意してください。

  • オブジェクトの監査に関する変更を行った場合、データベースを再起動する必要はありません。データベースを再起動する必要があるのは、全体にかかわる変更を行った場合(すべての監査をオンまたはオフにした場合や監査証跡オペレーティング・システム・ファイルの定義を変更した場合)のみです。

  • ファイングレイン監査またはSYS監査を有効にする場合、AUDIT_TRAILを設定する必要はありません。(SYS監査ではシステム管理者のアクティビティが監視されます。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。)ファイングレイン監査の場合は、必要に応じてファイングレイン監査ポリシーを追加および削除し、監視する特定の操作またはオブジェクトに適用します。AUDIT_SYS_OPERATIONSパラメータを使用すると、SYS監査を有効または無効にできます。

セキュリティ関連のSQL文および権限に対するデフォルト監査の使用

Database Configuration Assistant (DBCA)を使用して、新しいデータベースを作成する場合、Oracle Databaseはセキュリティに関連する最も一般的に使用されるSQL文と権限を監査するようにデータベースを構成します。また、AUDIT_TRAIL初期化パラメータをDBに設定します。別の監査証跡のタイプ(たとえば、監査証跡レコードをオペレーティング・システム・ファイルに記録する場合はOS)を使用する場合は、そのような設定もでき、Oracle Databaseは、デフォルトで監査された権限を引き続き監査します。AUDIT_TRAILパラメータをNONEに設定して監査を無効にすると、監査は実行されません。

Oracle Databaseでは、デフォルトで次の権限が監査されます。

ALTER ANY PROCEDURE CREATE ANY LIBRARY DROP ANY TABLE
ALTER ANY TABLE CREATE ANY PROCEDURE DROP PROFILE
ALTER DATABASE CREATE ANY TABLE DROP USER
ALTER PROFILE CREATE EXTERNAL JOB EXEMPT ACCESS POLICY
ALTER SYSTEM CREATE PUBLIC DATABASE LINK GRANT ANY OBJECT PRIVILEGE
ALTER USER CREATE SESSION GRANT ANY PRIVILEGE
AUDIT SYSTEM CREATE USER GRANT ANY ROLE
CREATE ANY JOB DROP ANY PROCEDURE

Oracle Databaseでは、デフォルトで次のSQL文のショートカットが監査されます。

ROLE SYSTEM AUDIT PUBLIC SYNONYM
DATABASE LINK PROFILE SYSTEM GRANT

SQL文および権限の監査を個々に制御するには、AUDITおよびNOAUDIT文を使用します。

データベースを監査することをお薦めします。監査は、米国企業改革法(Sarbanes-Oxley Act)で定義されているコンプライアンス要件を満たし、内部からのアクセスを確実に制御できる有効な方法です。監査を実行することでビジネス活動を監視でき、企業のポリシーに反するアクティビティを発見できます。この結果、データベースおよびアプリケーション・ソフトウェアへのアクセスが厳しく制御されます。デフォルトで監査を有効にすると、監査および個人のコンプライアンスに関する監査レコードを生成できます。


注意:

アプリケーションがOracle Database 10g リリース2(10.2)のデフォルトの監査設定を使用している場合、リリース11g の監査設定を使用するようにアプリケーションを変更するまで、Oracle Database 10.2の監査設定に戻すことができます。これには、undoaud.sqlスクリプトを実行します。

リリース 11g の監査設定を使用するようにアプリケーションを変更した後、データベースを手動で更新してビジネスのニーズに適した監査構成にするか、secconf.sqlスクリプトを実行してリリース11gのデフォルトの監査設定を適用できます。

undoaud.sqlおよびsecconf.sqlスクリプトは、$ORACLE_HOME/rdbms/adminディレクトリに格納されています。undoaud.sqlスクリプトは監査設定にのみ影響し、secconf.sqlスクリプトは監査設定とパスワード設定の両方に影響します。これらのスクリプトは、他のセキュリティ設定には影響しません。



関連項目:

  • この項で説明しているSQL文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • AUDIT_TRAIL初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。


個々のSQL文の監査

監査できるSQL文は、次のカテゴリに含まれます。

  • DDL文。たとえば、表の監査(AUDIT TABLE)を有効にすると、すべてのCREATE TABLEおよびDROP TABLE文が監査されます。

  • DML文。たとえば、SELECT TABLEの監査を有効にすると、表またはビューにかかわらず、すべてのSELECT ... FROM TABLE/VIEW文が監査されます。

文の監査の対象範囲は変更できます。たとえば、すべてのデータベース・ユーザーのアクティビティを監査したり、ユーザーの選択リストのみを監査できます。


関連項目:

SQL文の監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

個々の権限の監査

権限の監査では、システム権限を使用する文を監査します。たとえば、SELECT ANY TABLE権限を使用するすべてのSELECT文を監査する場合は、SELECT ANY TABLE権限を監査できます。すべてのシステム権限の使用を監査できます。権限の監査では文の監査と同様に、すべてのデータベース・ユーザーのアクティビティを監査することも、指定したリストのアクティビティのみを監査することもできます。SQL文の監査と同様に、AUDIT文およびNOAUDIT文を使用することで、権限の監査を有効または無効にできます。また、監査を有効にするには、AUDIT SYSTEMシステム権限が必要です。

権限の監査オプションは、対応するシステム権限に一致します。たとえば、DELETE ANY TABLE権限の使用を監査するオプションは、DELETE ANY TABLEです。次に例を示します。

AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL;

DELETE ANY TABLEシステム権限の使用の成功および失敗をすべて監査するには、次の文を入力します。

AUDIT DELETE ANY TABLE BY ACCESS;

すべてのデータベース・ユーザーおよび監査対象の個々の文による、すべての表でのSELECTINSERTDELETE文の失敗、およびEXECUTE PROCEDUREシステム権限の使用の失敗をすべて監査するには、次の文を実行します。

AUDIT SELECT TABLE, INSERT TABLE, DELETE TABLE, EXECUTE PROCEDURE BY ACCESS WHENEVER NOT SUCCESSFUL;

関連項目:

権限の監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

多層環境でのSQL文および権限の監査でのプロキシの使用

Database Controlの「監査文の追加」ページまたは「監査権限の追加」ページでプロキシを指定すると、多層環境のクライアントのアクティビティを監査できます。多層環境のクライアントのアクティビティの監査には、SQL AUDIT文を使用できます。その場合は、AUDIT文内でBY user句を使用します。

たとえば、プロキシ・アプリケーション・ユーザーjacksonによって発行されたSELECT TABLE文を監査するには、次のようにします。

AUDIT SELECT TABLE BY jackson;

ユーザーjacksonは、次のようにappserveプロキシ・ユーザーを使用して接続できます。

CONNECT appserve[jackson]
Enter password: password

中間層でも、データベース・セッションでユーザーのクライアントIDを設定でき、中間層アプリケーションからユーザー・アクションの監査を有効にできます。ユーザーのクライアントIDは、監査証跡に表示されます。


関連項目:

多層環境での監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

個々のスキーマ・オブジェクトの監査

スキーマ・オブジェクトの監査では、特定の表のSELECT文またはDELETE文など、オブジェクト権限により許可されたすべてのSELECT文およびDML文が監査されます。これらの権限を制御するGRANT文およびREVOKE文も監査されます。


関連項目:

スキーマ・オブジェクトの監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

ネットワーク・アクティビティの監査

AUDIT文を使用して、ネットワーク・プロトコルの予期しないエラーやネットワーク層で発生した内部エラーを監査できます。ネットワーク監査の対象とならないエラーのタイプは、接続の問題ではなく、複数の原因で発生した可能性があります。考えられる原因として、データベース・エンジニアが単にテスト目的で内部イベントを設定した、などがあげられます。他にも、ネットワークが暗号化の作成または処理に必要な情報を見つけられないなど、暗号化の構成設定の競合などが原因として考えられます。

ネットワークの監査を有効にするには、次のようにします。 

  1. SQL*Plusを起動し、SYSTEMなどの管理者権限で、またはセキュリティ管理者としてログオンします。次に例を示します。

    sqlplus system
    Enter password: password
    

    SQL*Plusが起動し、デフォルトのデータベースに接続してから、プロンプトが表示されます。

    SQL*Plusの起動の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

  2. 次の文を入力します。

    AUDIT NETWORK;
    

    ネットワークの監査を無効にするには、次の文を入力します。

    NOAUDIT NETWORK;
    
  3. SQL*Plusを終了します。

    EXIT
    

関連項目:

ネットワーク・アクティビティの監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

チュートリアル: 標準監査証跡の作成

OE.CUSTOMERS表のSELECT文を監査する場合を想定します。このチュートリアルでは、標準監査を有効にし、SELECT SQL文を有効にし、OE.CUSTOMERS表でSELECT SQL文を実行してから、その監査ファイルをチェックします。

このチュートリアルでは、次の手順を実行します。

手順1: ログインして標準監査を有効にする

最初に、ログインして必要ならば標準監査を有効にします。

標準監査を有効にするには、次のようにします。 

  1. Database Controlを起動します。

  2. SYSとしてログインします。

    • ユーザー名: SYS

    • パスワード: パスワードを入力します。

    • 接続モード: SYSDBA

  3. 「サーバー」をクリックして、「サーバー」サブページを表示します。

  4. 「データベース構成」セクションで「初期化パラメータ」をクリックします。

    「初期化パラメータ」ページが表示されます。

  5. 「SPFile」をクリックして「SPFile」サブページを表示します。

    インストールの「SPFile」タブが表示されない場合は、サーバー・パラメータ・ファイルを使用してOracle Databaseをインストールしなかったということです。次の手順に進みます。

  6. 「名前」フィールドにAUDIT_TRAILを入力してAUDIT_TRAILパラメータを検索し、「実行」をクリックします。

    AUDITのように、パラメータの最初の数文字を入力できます。または、パラメータのリストをスクロールして、AUDIT_TRAILパラメータを検索できます。パラメータのリストをアルファベット順にソートするには、「名前」列をクリックします。

  7. 「値」フィールドで、現在の設定をメモしてから、その設定をDB_EXTENDEDに変更します。

    AUDIT_TRAILパラメータは、デフォルトではDBに設定されているため、データベース監査が有効で、あらゆる監査レコードをデータベース監査証跡(SYS.AUD$)に記録できます(ただし、常にオペレーティング・システム監査証跡に書き込まれるレコードは除きます)。DB_EXTENDEDは、この機能に加えて、SQLテキストとSQLバインド変数を記録します。

  8. 「適用」をクリックします。

  9. Oracle Databaseインスタンスを再起動します。

    コマンドラインから、次のコマンドを入力します。

    sqlplus sys as sysoper
    Enter password: password
    
    SQL> SHUTDOWN IMMEDIATE
    SQL> RESTART
    

    ここで、次のコマンドを入力して、AUDIT_TRAILの設定を確認できます。

    SQL> SHOW PARAMETER AUDIT_TRAIL
    
    NAME                     TYPE            VALUE
    ------------------------ --------------- ---------------------------------\
    audit_trail              string          DB_EXTENDED 
    

手順2: OE.CUSTOMERS表のSELECT文に対する監査を有効にする

次に、OE.CUSTOMERS表のSELECT文に対する監査を有効にします。

OE.CUSTOMERS表のSELECT文の監査を有効にするには、次のようにします。 

  1. サンプル・ユーザーのsec_adminが存在することを確認します。

    SYSTEMとしてログオンし、Database Controlのホームページから、「サーバー」をクリックすると、「サーバー」サブページが表示されます。「セキュリティ」の下の「ユーザー」を選択し、アカウントのリストでsec_adminをチェックします。sec_adminセキュリティ管理者アカウントを作成する方法は、「手順1: セキュリティ管理者アカウントを作成する」を参照してください。Oracle Database Vaultがまだ有効な場合は、Database Vaultアカウント・マネージャのユーザー・アカウントを使用して、アカウントを再作成する必要があります。

  2. SQL*Plusで、ユーザーOEとしてログインし、OE.CUSTOMERS表に対するSELECT権限をsec_adminに付与します。

    sqlplus oe
    Enter password: password
    Connected.
    
    SQL> GRANT SELECT ON CUSTOMERS TO sec_admin;
    
  3. SYSDBA権限を持つユーザーSYSとしてDatabase Controlにログインします。

  4. 「サーバー」をクリックして、「サーバー」サブページを表示します。

  5. 「セキュリティ」セクションで「監査設定」をクリックします。

    監査設定ページが表示されます。

  6. 「監査オブジェクト」サブページを選択します。

  7. 「追加」をクリックします。

    「監査オブジェクトの追加」ページが表示されます。

  8. 次の情報を入力します。

    • オブジェクト・タイプ: 「表」を選択します。

    • : OE.CUSTOMERSと入力します。

    • 監査可能な文: SELECTを選択し、「移動」をクリックして「選択した文」リストに移動します。

  9. 「OK」をクリックします。

  10. Database Controlからログアウトします。

手順3: 監査設定をテストする

この段階では、監査が有効で、OE.CUSTOMERS表で実行されたすべてのSELECT文がDBA_AUDIT_TRAILデータ・ディクショナリ・ビューに書き込まれます。次に、監査設定をテストします。

監査設定をテストするには、次のようにします。 

  1. SQL*Plusを起動し、ユーザーsec_adminとして接続します。

    sqlplus sec_admin
    Enter password: password
    
  2. 次のSELECT文を入力して監査証跡のアラートを作成します。

    SELECT COUNT(*) FROM OE.CUSTOMERS;
    
  3. 次の文を入力してDBA_AUDIT_TRAILビューを表示します。

    SELECT USERNAME, SQL_TEXT, TIMESTAMP 
    FROM DBA_AUDIT_TRAIL 
    WHERE SQL_TEXT LIKE 'SELECT %';
    

    このSELECT文で、SQL_TEXT列に対して入力するテキスト('SELECT %')は、手順2SELECT文で入力した大文字/小文字に合わせます。つまり、SELECT文を小文字で入力した場合は、'SELECT %'ではなく、'select %'と入力してDBA_AUDIT_TRAILビューを問い合せます。

    次のような出力が表示されます。

    USERNAME          SQL_TEXT                                TIMESTAMP
    ----------------- --------------------------------------- ------------------
    SEC_ADMIN         SELECT COUNT(*) FROM OE.CUSTOMERS       31-MAR-10
    
  4. SQL*Plusを終了します。

    EXIT
    

手順4: このチュートリアルで使用したコンポーネントを削除する(オプション)

オプションで、以前に作成した監査設定を削除します。

Database Controlで監査設定を削除するには、次のようにします。

  1. SYSDBA権限を持つユーザーSYSとしてDatabase Controlにログインします。

  2. 「サーバー」をクリックして、「サーバー」サブページを表示します。

  3. 「セキュリティ」セクションで「監査設定」をクリックします。

    監査設定ページが表示されます。

  4. 「監査オブジェクト」サブページを選択します。

  5. 「スキーマ」にOEと入力します。

  6. 「オブジェクト名」にCUSTOMERSと入力します。

  7. 「検索」をクリックします。

  8. OE.CUSTOMERSスキーマの横のボックスを選択し、「削除」をクリックします。

    「確認」ダイアログ・ボックスが表示されます。

  9. 「はい」を選択します。

  10. 「データベース・インスタンス」リンクをクリックしてデータベースのホームページに戻ります。

  11. 「サーバー」サブページを選択してから、「データベース構成」で「初期化パラメータ」を選択します。

  12. 「SPFile」サブページを選択します。

  13. AUDIT_TRAILパラメータを検索して、元の値にします。「適用」をクリックします。

  14. Database Controlを終了します。

  15. データベースを再起動します。

    sqlplus sys as sysoper
    Enter password: password
    
    SQL> SHUTDOWN IMMEDIATE
    SQL> RESTART
    

手順5: SEC_ADMINセキュリティ管理者アカウントを削除する

この例は、このガイドの最後の例です。sec_admin管理者アカウントが不要になった場合は、このアカウントを削除する必要があります。

sec_adminセキュリティ管理者アカウントを削除するには、次のようにします。 

  1. ユーザーSYSTEMとしてDatabase Controlにログインします。

    Oracle Database Vaultが有効な場合は、Database Vaultアカウント・マネージャとしてログオンする必要があります。

  2. Database Controlのホームページで、「サーバー」をクリックして「サーバー」サブページを表示します。

  3. 「セキュリティ」セクションで「ユーザー」をクリックします。

    「ユーザー」ページが表示されます。

  4. 「名前」フィールドにsec_adminと入力します。

  5. 「検索」をクリックします。

  6. sec_adminユーザー・アカウントの横の選択ボックスを選択し、「削除」をクリックします。

    「確認」ダイアログ・ボックスが表示されます。

  7. 「はい」を選択します。

  8. Database Controlを終了します。

監査のガイドライン

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

SQL文および権限のデフォルト監査の使用のガイドライン

新しくデータベースを作成すると、選択した一連のSQL文および権限の監査を有効にすることができます。デフォルト監査を有効にすることを、強くお薦めします。監査は、コンプライアンス要件を満たし、内部からのアクセスを確実に制御できる有効な方法です。デフォルト監査の詳細は、「セキュリティ関連のSQL文および権限に対するデフォルト監査の使用」を参照してください。

監査済情報の管理のガイドライン

監査によるデータベース・パフォーマンスへの影響は最小限ですが、監査するイベントの数はできるだけ制限する必要があります。この制限によって、監査対象の文を実行したときにパフォーマンスの影響が最小限に抑えられ、監査証跡のサイズが最小限になるため、分析と理解が容易になります。

監査方針を立てる際は、次のガイドラインに従います。

  1. 監査の目的を評価する

    監査の目的を理解すると、適切な監査方針を立てることができ、不要な監査を行わずにすみます。

    たとえば、不審なデータベース・アクティビティの調査のために監査を行うと仮定します。この情報のみでは、十分に明確であるとはいえません。どのデータベース・アクティビティが疑わしい、または注意を要するといった具体的な情報が必要です。そのために、たとえば、データベース内の表から許可なくデータが削除されていないかを監査するというように、監査目的を絞り込みます。このような目的を設定すれば、監査の対象となるアクションの種類や、疑わしいアクティビティによって影響を受けるオブジェクトの種類を限定できます。

  2. 監査について十分理解する

    目標とする情報の取得に必要な最小限の文、ユーザーまたはオブジェクトを監査します。これによって、不要な監査情報のために重要な情報の識別が困難になることがなくなります。収集が必要なセキュリティ情報の量と、その情報を格納して処理する能力とのバランスを保つ必要があります。

    たとえば、データベース・アクティビティに関する情報を収集するために監査する場合は、追跡するアクティビティの種類を正確に判断した上で、必要な情報を収集するために必要な期間内で、目的のアクティビティのみを監査します。別の例として、各セッションの論理I/O情報のみを収集する場合は、オブジェクトを監査しないでください。

通常のデータベース・アクティビティの監査のガイドライン

監査目的が、特定のデータベース・アクティビティに関する履歴情報を収集することである場合は、次のガイドラインに従ってください。

  1. 関連のあるアクションのみを監査する

    不要な監査情報によって重要な情報の識別が困難になることを防ぎ、監査証跡管理の量を削減するために、対象となるデータベース・アクティビティのみ監査します。ファイングレイン監査を使用して特定のアクションを監査できます。ファイングレイン監査の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  2. 監査レコードをアーカイブし、監査証跡を削除する

    必要な情報を収集した後は、目的の監査レコードをアーカイブし、この情報の監査証跡を削除します。

    監査レコードをアーカイブするために、たとえば標準監査証跡ではINSERT INTO table SELECT ... FROM SYS.AUD$ ...を使用して、データベース表に関連レコードをコピーします(ファイングレイン監査レコードは、SYS.FGA_LOG$表にあります)。また、監査証跡表をオペレーティング・システム・ファイルにエクスポートできます。Oracle Databaseユーティリティでは、Oracle Data Pumpを使用して表をエクスポートする方法が説明されています。

    監査レコードをパージするには、標準監査レコードをSYS.AUD$表から削除し、ファイングレイン監査レコードをSYS.FGA_LOG$表から削除します。たとえば、すべての監査レコードを標準監査証跡から削除するには、次の文を入力します。

    DELETE FROM SYS.AUD$;
    

    また、emp表の監査の結果として生成された標準監査証跡からすべての監査レコードを削除するには、次の文を入力します。

    DELETE FROM SYS.AUD$ WHERE OBJ$NAME='EMP';
    
  3. プライバシに関する自社の留意事項を守る

    プライバシに関する法規によって、追加のビジネス・プライバシ・ポリシーが必要となる場合があります。プライバシに関する多くの法規では、個人を特定できる情報(PII)へのアクセスを企業で監視する必要があり、このような監視は監査によって実施されます。ビジネス・レベルのプライバシ・ポリシーでは、技術的、法的および企業ポリシーの問題など、データ・アクセスおよびユーザー・アカウンタビリティに関するすべての事項を満たす必要があります。

疑わしいデータベース・アクティビティの監査のガイドライン

監査の目的が疑わしいデータベース・アクティビティを監視することである場合は、次のガイドラインに従います。

  1. 一般的な情報を監査してから、特定の情報を監査する

    通常、疑わしいデータベース・アクティビティの監査を開始する時点では、対象のユーザーまたはスキーマ・オブジェクトの特定に使用できる情報はありません。そのため、最初は「標準監査による一般的なアクティビティの監査」で説明されている標準監査オプションを使用してより一般的に監査オプションを設定します。

    基本的な監査情報を記録および分析した後で、一般的な監査を無効にし、特定のアクションを監査します。『Oracle Databaseセキュリティ・ガイド』で説明されているファイングレイン監査を使用して、特定のアクションを監査できます。疑わしいデータベース・アクティビティの発生源に関する結論を引き出すのに十分な証拠を収集するまで、このプロセスを継続します。

  2. 監査証跡を保護する

    疑わしいデータベース・アクティビティを監査する場合は、監査情報が監査されずに追加、変更または削除されることのないように、監査証跡を保護します。AUDIT SQL文を使用して、標準監査証跡を監査します。次に例を示します。

    sqlplus sys as sysdba 
    Enter password: password
    
    SQL> AUDIT SELECT ON SYS.AUD$ BY ACCESS; 
    

監査に使用される初期化パラメータ

表7-1には監査を保護するために使用する初期化パラメータがリストされています。

表7-1 監査に使用される初期化パラメータ

初期化パラメータ デフォルト設定 説明

AUDIT_TRAIL

DB

監査を有効または無効にします。詳細は、「標準監査証跡の有効化または無効化」を参照してください。AUDIT_TRAILパラメータの完全なリストと設定例については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

AUDIT_FILE_DEST

ORACLE_BASE/admin/ORACLE_SID/adump

または

$ORACLE_HOME/rdbms/audit

AUDIT_TRAIL初期化パラメータがOSXMLまたはXML,EXTENDEDに設定されている場合に監査証跡が書き込まれるオペレーティング・システム・ディレクトリを指定します。AUDIT_TRAIL初期化パラメータがXMLに設定されている場合、Oracle Databaseでは監査レコードがXML形式で書き込まれます。

Oracle Databaseでは、必須の監査情報もこの場所に書き込まれ、AUDIT_SYS_OPERATIONS初期化パラメータが設定されている場合はユーザーSYSの監査レコードが書き込まれます。

AUDIT_SYS_OPERATIONS

FALSE

ユーザーSYS、およびSYSDBAまたはSYSOPER権限で接続しているユーザーによって直接発行されたトップレベルの操作の監査を有効または無効にします。Oracle Databaseによって、監査レコードがオペレーティング・システムの監査証跡に書き込まれます。AUDIT_TRAIL初期化パラメータをXMLまたはXML, EXTENDEDに設定すると、監査レコードはXML形式で書き込まれます。

UNIXシステムでは、AUDIT_SYSLOG_LEVELパラメータも設定した場合に、AUDIT_TRAILパラメータが上書きされます。これにより、SYS監査レコードはSYSLOGユーティリティを使用してシステム監査ログに書き込まれます。

AUDIT_SYSLOG_LEVEL

デフォルト設定なし

UNIXシステムでは、SYSLOGユーティリティを使用してSYSおよび標準OS監査レコードをシステム監査ログに書き込みます。


初期化パラメータを変更するには、「初期化パラメータ値の変更」を参照してください。初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Database管理者ガイド』を参照してください。