はじめに
こんにちは。NTTデータ先端技術の@EumJinmanです。
Oracle Audit Vault and Database Firewall(AVDF)は、データベースの監査ログを管理・分析するためのソリューションであり、一般的にはターゲットデータベースにエージェントをインストールしてログを収集します。
しかし、Autonomous Database(ADB)ではOSへのアクセスが制限されているため、エージェントを直接インストールすることができません。そのため、本記事ではエージェントを使用せずにADBの監査ログをAVDFで収集する方法について紹介します。
※本記事は、以下Oracle公式情報を参考に作成しております。
https://docs.oracle.com/cd/F35744_01/sigad/part_1.html
目次
- 概要及び、構成
- 環境情報
- 前提条件
- Audit Vault Serverインスタンス作成及び、設定
4-1. Audit Vault Serverインスタンス作成
4-2. Audit Vault Serverインスタンスへの接続
4-3. Audit Vault Serverインスタンス作成後のステップ - Audit Vault Serverコンソールへの接続及び、初期設定
5-1. Audit Vault Serverコンソールへの接続
5-2. 初期設定 - ターゲットデータベース(ATP)側の準備
6-1 監査ログ収集用DBユーザ作成及び、権限付与
6-2 監査ポリシー有効化及び、確認 - ターゲットデータベース登録
7-1 ターゲットデータベース登録
7-2 監査証跡の追加 - 監査ログ収集確認
- まとめ
1. 概要及び、構成
AVDFで監査ログを収集する方法は、エージェントを利用するAgent Based Collectionとエージェントを利用しないAgentless Collectionがあり、それぞれの特徴は以下の通りです。
| 収集方法 | 特徴 | メリット | デメリット |
|---|---|---|---|
| Agent Based Collection | ・Audit Vault Agent を対象のデータベースサーバーにインストールして使用 ・エージェントがローカルで監査ログを収集し、Audit Vault Serverに送信 |
・多くの監査トレイルに対応(数百以上も可能) ・柔軟な設定(ログの種類、収集頻度など) ・大規模環境に適している |
・エージェントのインストール・管理が必要 ・ADBなどのマネージドDBには使えない(OSアクセス不可) |
| Agentless Collection | ・エージェントを使わず、Audit Vault Serverがリモートから直接監査ログを収集 ・主に UNIFIED_AUDIT_TRAIL (統合監査ログのビュー)などのビューを参照 |
・インストール不要:対象DBにソフトを入れなくてよい ・ATPなどのマネージドDBに対応 ・PoCや小規模環境に適している |
・最大20件の監査トレイルまでという制限あり ・ネットワークや権限の設定が必要 |
AVDFのAgentless Collection機能を利用してADBの監査ログを収集する場合、Audit Vault Serverのコンソールからターゲットデータベース(ADB)を登録することで、Audit Vault Serverがリモートから直接ADBにアクセスし、監査ログを収集・保存することができます。
2. 環境情報
クライアント環境
OS:Windows 10
接続ツール:Teraterm 5.2
OCI環境
リージョン:ap-tokyo-1(アジアパシフィック (東京))
Audit Vault Serverの情報
イメージ:Oracle Audit Vault and Database Firewall 20.14
シェイプ:VM.Standard.E2.2
ADBの情報
ワークロード・タイプ:Oracle Autonomous Transaction Processing
データベースのバージョン:19c
アクセス・タイプ:すべての場所からのセキュア・アクセスを許可
3. 前提条件
クライアント環境
①シェル・ターミナル・コンソールがセットアップされていること
②クライアント環境からAudit Vault ServerにSSH接続できること
③クライアント環境からAudit Vault ServerにHTTPS接続できること
④クライアント環境からWalletを使用しATPへの接続ができること
OCI環境
①ADBが作成されていること
②パブリックサブネットのセキュリティリストにクライアント環境から接続するための適切なイングレスルールが設定されていること。(例:22、443ポートなど)
③クライアント環境の任意の場所にWalletがダウンロードされていること
4. Audit Vault Serverインスタンス作成及び、接続
4-1. Audit Vault Serverインスタンス作成
監査ログを収集・管理するAudit Vault Serverを作成します。
OCIコンソールページ左上から「ナビゲーション・メニュー」→「コンピュート」→「インスタンス」順にクリックし、インスタンスページに移動します。
「インスタンスの作成」をクリックし、コンピュート・インスタンスの作成ページに移動します。
基本情報ページから以下の情報を入力し、「次」をクリックします。
・名前:コンピュート・インスタンスの名前
・コンパートメント:対象のコンパートメント
・可用性ドメイン:AD1
・イメージ:Oracle Audit Vault and Database Firewall
・シェイプ:VM.Standard.E2.2
※東京リージョン(ap-tokyo-1)には、1つの可用性ドメインが存在します。
※Oracle Audit Vault and Database FirewallイメージはMarketplaceから選択可能(検索窓からAuditを検索することでヒット)
※本記事では、VM.Standard.E2.2を選択しておりますが、要件や、状況に応じて適切なシェイプを選択してください。
※AVDFイメージと互換性がないため、選択できないシェイプもあるので注意してください。
ネットワーキングページから以下の情報を入力し、「次」をクリックします。
プライマリ・ネットワーク:既存の仮想クラウド・ネットワークを選択
・コンパートメント:対象のコンパートメント
・VCN:対象のVCN
サブネット:既存のサブネットを選択
・コンパートメント:対象のコンパートメント
・サブネット:対象のサブネット
SSHキーの追加:公開キー・ファイル(.pub)のアップロード
SSH公開キー:公開キー・ファイル(.pub)のアップロード
※本記事では、既存のSSHキーを使用するため、「公開キー・ファイル(.pub)のアップロード」をしていますが、要件や、状況に応じてSSHキーの追加方法を選択してください。
最後確認ページから内容を確認し、問題なければ「作成」をクリックします。
※本記事では、上記以外の項目はデフォルトで設定しております。要件に応じて適宜選択してください。
4-2. Audit Vault Serverインスタンスへの接続
クライアント環境からAudit Vault Serverインスタンスに接続します。
※今回は、接続ツールとしてTera Term 5.2を使用しています。
クライアント環境のデスクトップからTera Termを開き、「Tera Term:新しい接続」画面から以下の情報を入力し「OK」をクリックします。
・ホスト:Audit Vault ServerインスタンスのパブリックIPアドレス
・サービス:SSH
・TCPポート:22
次、「SSH認証」画面から以下の情報を入力し「OK」をクリックします。
・ユーザ名:opc
・認証方式:RSA/DSA/ECDSA/ED25519鍵を使う
・機密鍵:Audit Vault ServerのSSH機密鍵
※opcユーザは、コンピュートインスタンス作成時にデフォルトで作成される初期管理ユーザーです。
4-3. Audit Vault Serverインスタンス作成後のステップ
Audit Vault Serverコンソールを使用してインスタンスをトラブルシューティングする際に、rootパスワードが必要な場合があるため、rootユーザーのパスワードを変更します。
sudo passwd root
Audit Vault Serverコンソールへの初回接続時に使用するパスフレーズを生成します。
※以降の手順5-2. 初期設定時に必要なため、パスフレーズを控えておくこと
sudo -u oracle /usr/local/dbfw/bin/generate_post_install_passphrase.py
5. Audit Vault Serverコンソールへの接続及び、初期設定
5-1. Audit Vault Serverコンソールへ接続
WebブラウザからURLを使ってAudit Vault Serverコンソールに接続する。
https://<Audit Vault ServerインスタンスのパブリックIPアドレス>
例:https://141.147.187.xxx
5-2. 初期設定
Audit Vault Serverコンソールへの接続で表示されたログイン画面から手順4-3. Audit Vault Serverインスタンス作成後のステップで取得したパスフレーズを入力し、ログインします。
初期設定ページから以下の情報を入力し、「保存」をクリックします。
ユーザー設定
・スーパー管理者ユーザー名:スーパー管理者ユーザーの名前
・スーパー管理者パスワード:スーパー管理者のパスワード
・スーパー監査者ユーザー名:スーパー監査者ユーザーの名前
・スーパー監査者パスワード:スーパー監査者のパスワード
AVデータベース暗号化
・キーストア・パスワード:キーストアのパスワード
※エージェントの通信は、エージェントとAudit Vault Server間の安全な通信を確立するための設定です。ADBではエージェントを使わない「Agentless Collection」方式を利用するため、設定不要になります。
※DNS設定は、名前解決に使うDNSサーバーを登録するための設定です。DNSサーバーを利用しない場合は、設定不要です。
前の手順で作成したスーパー管理者ユーザーでログインします。
6. ターゲットデータベース(ATP)側の準備
6-1 監査ログ収集用DBユーザ作成及び、権限付与
Audit Vault Serverからターゲットデータベースに接続し、監査ログを収集するためには、適切な権限を持つユーザが必要になります。
そのため、監査ログ収集用ユーザを作成し、必要な権限を付与します。
※以下のSQLクエリは監査ログを収集する対象のターゲットデータベースに接続してから実行してください。
CREATE USER <ユーザ名> IDENTIFIED BY "<ユーザのパスワード>";
GRANT CREATE SESSION TO <ユーザ名>;
GRANT AUDIT_VIEWER TO <ユーザ名>;
※AUDIT_VIEWERロールは、Oracle Database の Unified Auditing(統合監査) に関連する監査情報を参照するための読み取り専用ロールです。
※Audit Vault Serverではターゲットに対する監査ログ収集用ユーザーのスクリプトが用意されており、スクリプトを使用し、ユーザー作成と権限を設定することもできますが、ADB専用のスクリプトがないため、別途ユーザー作成し、権限を付与するか、既存のスクリプトをADB用にカスタマイズし実行する必要があります。
6-2 監査ポリシー有効化及び、確認
Audit Vault Serverは、監査ログ収集用ユーザを使ってターゲットデータベースに接続し、UNIFIED_AUDIT_TRAILビューからログを収集することになります。そのため、監査ポリシーを有効化し、必要なログをUNIFIED_AUDIT_TRAILビューに記録する必要があります。
まずは、監査ポリシーが有効化されていることを確認します。
※以下SQLクエリ実行後、1行でも結果が表示されていれば、監査ポリシーが有効化されていることです。
※有効な監査ポリシーに該当する操作(例:ログオン、SELECT文など)が実行されると、その情報が UNIFIED_AUDIT_TRAIL ビューに記録されます。
SQL> SELECT * FROM AUDIT_UNIFIED_ENABLED_POLICIES;
POLICY_NAME ENABLED_OPTION ENTITY_NAME ENTITY_ SUC FAI
------------------------------ --------------- ------------------------- ------- --- ---
COMMON_USER_LOGONS BY USER SYS USER YES YES
COMMON_USER_LOGONS BY USER SYSBACKUP USER YES YES
COMMON_USER_LOGONS BY USER PUBLIC USER YES YES
ADB_ADMIN_AUDIT EXCEPT USER SYS USER YES NO
ADB_ADMIN_AUDIT EXCEPT USER C##CLOUD$SERVICE USER YES NO
ADB_PARURL_ACCESS_AUDIT BY USER C##CLOUD$SERVICE USER YES YES
ORA_LOGON_FAILURES BY USER ALL USERS USER NO YES
ADB_PARURL_PKG_ACCESS_AUDIT BY USER ALL USERS USER YES YES
監査ポリシーが有効化されてない場合や、追加で監査したい操作がある場合は以下Oracle公式情報を参考に追加してください。
Audit Vault ServerでAgentless Collection機能を利用するためには、サービスを起動する必要があります。
7. ターゲットデータベース登録
7-1 ターゲットデータベース登録
Audit Vault Serverのコンソールからターゲットデータベースを登録します。
「ターゲット」タブの右側にある「登録」ボタンをクリックします。

ターゲット登録ページから以下の情報を入力し、「テスト接続」をクリックします。
・名前:ターゲットの名前
・タイプ:Oracle Database
・保存ポリシー:監査ログの保存期間を選択
監査接続の詳細
・詳細を選択
・プロトコル:TCPS
・ウォレット:cwallet.sso
・接続文字列:jdbc:oracle:thin:@<OCIコンソールから確認した接続文字列>
・データベース・ユーザー名:監査ログ収集用ユーザー名
・パスワード:監査ログ収集用ユーザーのパスワード
※ウォレットは、シングル・サインオン・ウォレット・ファイル(cwallet.sso)をアップロードします。
※Audit Vault Serverは内部的にJavaベースの仕組みを使ってデータベースに接続するため、接続文字列をJDBC形式で入力する必要があります。
テスト接続に成功した場合は、右側の「保存」をクリックし、ターゲットを登録します。
7-2 監査証跡の追加
ターゲットデータベースから収集する監査証跡を追加するため、前の手順で作成したターゲットをクリックします。
監査データ収集の右側の「追加」をクリックします。
8. 監査ログ収集確認
スーパー監査者としてAudit Vault Serverにログインし、監査ログを確認します。
9. まとめ
今回は、AVDFを利用しADBの監査ログを収集する方法について紹介しました。
AVDFは、クラウドまたは、オンプレミスのOracle Databaseだけではなく、OSや他のデータベースなど多様なターゲットに対し、監査ログの収集・管理ができますが、エージェントが利用できず、収集可能な監査トレイに制限があるなどADBに適しているソリューションではありません。
ADBでAVDFの使用を検討している方は、要件と仕様を理解し、自分たちの環境や、状況に合っているか確認する必要があります。

















