Oracle Database 統合監査(Unified Audit)機能についてのご紹介

*以下は、サポート契約締結中のお客様に毎月配信しているサポートレターより一部抜粋して掲載しています。

統合監査について

前回のサポートレターでデータベースに対するセキュリティの強化のために使用される「標準監査」についてご紹介しました。しかし、監査機能の利用に際しては、必要な監査ログだけを取得するには工夫が必要であったり、取得した監査ログの管理に工数がかかる等の問題がありました。12c から登場した「統合監査」では、それら標準監査のもどかしさを改善した、より便利で使いやすい監査機能です。今回はその「統合監査」をご紹介します。

統合監査とは

統合監査は 11g 以前までは個別で行っていた監査を文字通りに1つに統合した監査を言います。統合監査は以下の特徴が挙げられます。

  • 必須監査、DBA監査、標準監査、ファイングレイン監査等の監査を 1つに統合した監査を行います。
  • SQL だけではなく Data Pump、Recovery Manager の操作も対象になりました。
  • 読み取り専用の UNIFIED_AUDIT_TRAIL ビューで同一の形式で情報が集約され、一元的に管理、参照が可能になりました。
  • 監査管理用のロールが導入されたため、以下のロールにより監査管理の職務分離が可能になりました。
    • AUDIT_ADMIN ロール:監査構成の管理用
    • AUDIT_VIEWER ロール:監査証跡の参照用

標準監査と統合監査の変更点

標準監査と統合監査の具体的な変更点は 以下のようになります。

監査の定義方法
・標準監査:監査対象オブジェクト毎に定義が必要
・統合監査:1つの監査ポリシーで複数の監査設定をグループ化可能
監査条件
・標準監査:細かい設定は不可
・統合監査:ユーザー、クライアント識別子、インスタンスなどの条件設定が可能
ユーザーの指定
・標準監査:BY で監査ユーザー指定が可能ユーザーの除外設定は不可
・統合監査:BY で監査ユーザー指定が可能、EXCEPT で除外ユーザー指定が可能
監査証跡の場所
・標準監査:SYS スキーマの AUD$表、FGA_LOG$表、OS 上の監査証跡ファイル(テキスト形式・XML形式)
・統合監査:AUDSYS スキーマの読み取り専用表(CLI_SWP$...で始まる表)
パフォーマンス
・標準監査:監査証跡が作成される度にディスクにフラッシュするため、多少の影響
・統合監査:SGA キューに保存し、後からディスクに書き出すため、影響はごくわずか

統合監査証跡の利点

統合監査の使用による利点は以下のとおりです。

  • 統合監査機能は常に有効であり、標準監査で使用していた AUDIT_XXX 初期化パラメータに依存しません。
  • Oracle Database のすべての監査コンポーネントの監査レコードは、1つの場所に配置されるため、様々な場所を参照し、監査証跡を探す必要はありません。この統合されたUNIFIED_AUDIT_TRAIL ビューにより、監査者は様々なコンポーネントの監査情報を相互に関連付けることができます。
  • 監査証跡の管理とセキュリティについても、監査証跡を単一にすることで改善されます。
  • 監査の全体的なパフォーマンスが向上します。
  • SYS 管理ユーザーだけでなく、サポートされているコンポーネントを各自で監査できる名前付きの監査ポリシーを作成できます。さらに、条件を各自のポリシーに作成することもできます。

統合監査の監査モード確認

統合監査の監査モードは混合モードと統合監査モードがあります。混合モードと統合監査モードの違いは以下のようになります。

混合モード(12c のデフォルトモード)
・11g までの標準監査と 12c からの新しい監査の仕組みを同時に実行
・標準監査が動作するためパフォーマンスへの悪影響の可能性
統合監査モード
・新しい統合監査のみが使用可能。標準監査の仕組みは使用不可
・標準監査で使用していた AUDIT_XXX 初期化パラメータは受け付けなくなる

データベースが統合監査モードになっているかどうかを確認するには、次のように V$OPTION 動的ビューを問い合せます。

SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';

PARAMETER         VALUE
----------------  ----------
Unified Auditing  FALSE

TRUE の場合が「統合監査モード」で、FALSE の場合が「混合モード」になります。

統合監査モードの有効化

統合監査のみ使用可能になる統合監査モードを有効するためには、以下の手順で有効化します。

1. SQL*Plus で、データベースを停止します。

SQL> shutdown immediate
SQL> exit
  • Windowsシステムでは、Oracleサービスを停止します。
net stop OracleService%ORACLE_SID%

2. リスナーを停止します。

3. UNIX の場合、$ORACLE_HOME/rdbms/lib ディレクトリに移動します。

4. 統合監査実行可能ファイルを有効にします。

  • Windowsシステムでは、Oracleサービスを停止します。
make -f ins_rdbms.mk uniaud_on ioracle ORACLE_HOME=$ORACLE_HOME
  • Windows: %ORACLE_HOME%/rdbms/bin/orauniaud12.dll.option ファイルの名前を %ORACLE_HOME%/bin/orauniaud12.dll に変更します。

5. リスナーを起動します。

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

  • Windowsシステムでは、Oracleサービスを起動します。
net start OracleService%ORACLE_SID%

SQL> STARTUP

7. 統合監査の有効化の確認します。

SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';

PARAMETER         VALUE
----------------  ----------
Unified Auditing  TRUE     

監査ポリシーの作成

CREATE AUDIT POLICY 文で監査ポリシーを作成できます。

例1)
条件を使用し、システム権限の監査する場合

CREATE AUDIT POLICY OS_USERS_PRIV_POL
PRIVILEGES SELECT ANY TABLE, CREATE LIBRARY
WHEN 'SYS_CONTEXT (''USERENV'', ''OS_USER'') IN (''psmith'', ''jrawlins'')'
EVALUATE PER SESSION;

AUDIT POLICY OS_USERS_PRIV_POL;

※ CREATE AUDIT POLICY の作成に関しては以下のマニュアルをご参考ください。

作成済み監査ポリシーの確認

作成済み監査ポリシーの確認方法は以下のビューを問合せします。

AUDIT_UNIFIED_POLICIES ビュー
・作成済み監査ポリシーの確認
AUDIT_UNIFIED_ENABLED_POLICIES ビュー
・有効化済み監査ポリシーの確認

※ AUDIT_UNIFIED_POLICIES および AUDIT_UNIFIED_ENABLED_POLICIES ビューの詳細は、以下のマニュアルを参照ください。

UNIFIED_AUDIT_TRAIL の内容確認

監査証跡を使用している場合、監査レコードを UNIFIED_AUDIT_TRAIL ビューを通して確認することができます。

例2)
例1 で作成した統合監査ポリシー OS_USERS_PRIV_POL に基づいて、オペレーティングシステムユーザー PSMITH によって使用される権限のリストが表示されます。

       SELECT SYSTEM_PRIVILEGE_USED FROM UNIFIED_AUDIT_TRAIL 
       WHERE OS_USERNAME = 'PSMITH' AND UNIFIED_AUDIT_POLICIES = 'OS_USERS_PRIV_POL';

       SYSTEM_PRIVILEGE_USED
       ----------------------
       SELECT ANY TABLE
       DROP ANY TABLE

※ UNIFIED_AUDIT_TRAIL に関しては以下のマニュアルを参照してください。

おわりに

今回は 12cで追加された、統合監査機能について紹介いたしました。より使いやすくなった「統合監査(Unified Audit)」のご利用を是非ご検討ください。

参考情報

(オラクル事業部 グローバル・アライアンス&サポート・サービス担当 羅)

Oracle Database 統合監査(Unified Audit)機能についてのご紹介