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 の作成に関しては以下のマニュアルをご参考ください。
-
Oracle Database SQL言語リファレンス 12cリリース1 (12.1) B71278-02
- CREATE AUDIT POLICY (統合監査)https://docs.oracle.com/cd/E49329_01/server.121/b71278/statements_5001.htm#BGEJHBAE
作成済み監査ポリシーの確認
作成済み監査ポリシーの確認方法は以下のビューを問合せします。
- AUDIT_UNIFIED_POLICIES ビュー
- ・作成済み監査ポリシーの確認
- AUDIT_UNIFIED_ENABLED_POLICIES ビュー
- ・有効化済み監査ポリシーの確認
※ AUDIT_UNIFIED_POLICIES および AUDIT_UNIFIED_ENABLED_POLICIES ビューの詳細は、以下のマニュアルを参照ください。
-
Oracle Databaseリファレンス 12c リリース1 (12.1) B71292-04
- AUDIT_UNIFIED_POLICIES
- AUDIT_UNIFIED_ENABLED_POLICIES
https://docs.oracle.com/cd/E49329_01/server.121/b71292/toc.htm
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 に関しては以下のマニュアルを参照してください。
-
Oracle Databaseリファレンス 12c リリース1 (12.1) B71292-04
- UNIFIED_AUDIT_TRAIL
- AUDIT_UNIFIED_ENABLED_POLICIES
https://docs.oracle.com/cd/E49329_01/server.121/b71292/refrn29162.htm
おわりに
今回は 12cで追加された、統合監査機能について紹介いたしました。より使いやすくなった「統合監査(Unified Audit)」のご利用を是非ご検討ください。
参考情報
-
Oracle Database SQL言語リファレンス 12cリリース2 (12.2) E72907-01
- AUDIT (従来型監査)
http://docs.oracle.com/cd/E82638_01/SQLRF/AUDIT-Traditional-Auditing.htm#GUID-ADF45B07-547A-4096-8144-50241FA2D8DD -
Oracle Databaseセキュリティ・ガイド 11gリリース2 (11.2)B56285-129
- 監査を使用したセキュリティ・アクセスの検証
-- SQL文の監査
http://docs.oracle.com/cd/E16338_01/network.112/b56285/auditing.htm#CEGEEBGE -
Oracle Databaseセキュリティ・ガイド 11gリリース2 (11.2) B56285-1210
- Oracle Databaseの安全性の維持
-- 監査に関するガイドライン
http://docs.oracle.com/cd/E16338_01/network.112/b56285/guidelines.htm#BCGJJBAA
(オラクル事業部 グローバル・アライアンス&サポート・サービス担当 羅)