OCI に マーケットプレイス版 AVDF(AVS) を構築してBaseDBの監査ログを収集する

# 1.はじめに
### 1-1.概要など
Oracle Cloud Infrastructure 上に、あらかじめ用意されたマーケットプレイスに用意されている、AVDF(Audit Vault and Database Firewall) を構築してみます。
また、構築後に OCI 上の BaseDB の監査ログを収集してみます。

### 1-2.参考資料
- [AVDF 製品ページ](https://www.oracle.com/jp/database/technologies/security/audit-vault-firewall.html) 
- [AVDF version20 インストレーションガイド](https://docs.oracle.com/cd/F35744_01/sigig/index.html)
- [AVDF version20 管理者ガイド](https://docs.oracle.com/cd/F35744_01/sigau/index.html)
- [12 Oracle Cloud Infrastructure上のOracle Audit Vault and Database Firewall ](https://docs.oracle.com/cd/F35744_01/sigad/avdf-on-oci.html#GUID-CB814CB7-5E14-439A-AA20-7785E003F923)

# 2.マケプレイメージからVMを作成して、管理画面にログイン
[このあたりのマニュアル](https://docs.oracle.com/cd/F35744_01/sigad/avdf-on-oci.html#GUID-9B76F50F-73BE-4290-8C22-4022557304E0)を参考に進めます。

### 2-1. イメージ選択
マーケットプレイス - 全てのアプリケーション で、audit で検索すると表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/73543ced-ed9a-690c-8cbd-a6dc549fa81b.png)

イメージ選択後、バージョンとコンパートメントを指定して、インスタンス起動を押下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/9a92bf8f-2e66-2e4f-2cfd-6224bbf692c7.png)

### 2-2. コンピュート作成
インスタンス起動を押下すると、いつものコンピュート作成時の画面に遷移します。

名前を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/548cb86d-0ccd-e62e-bcdf-2f8565c5b5e5.png)
イメージはAVDFになっているため、シェイプを指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/b7adca02-65b3-17fb-91f5-97c216fc6b99.png)
ネットワークは、別途用意しているBaseDBと同じVCN内のサブネットに配置。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/2dbc1c43-cd5d-e7e7-0aef-22420614f8af.png)
SSH鍵も登録。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/f11900c2-de63-f8a2-edb3-5bd60d8453eb.png)

作成すると、無事接続できるはずです。

~~~
Audit Vault Server 20.9.0.0.0

DO NOT CHANGE ANY CONFIGURATIONS IN Audit Vault Server APPLIANCE WITHOUT GUIDANCE FROM
ORACLE SUPPORT. ANY CHANGES SHOULD BE TRACEABLE TO APPROPRIATE SR REFERENCE.


[opc@avs01 ~]$ 
~~~

### 2-3. 作成後のステップ
作成後は、[12.4.3 インスタンス作成後のステップ ](https://docs.oracle.com/cd/F35744_01/sigad/avdf-on-oci.html#GUID-01CAB724-1148-4AF3-A30E-CA52F0F085B6) を参考に進めます。

まずは root のパスワード変更
~~~
[opc@avs01 ~]$ sudo passwd root
Changing password for user root.
New password: 
BAD PASSWORD: The password contains more than 4 characters of the same class consecutively
Retype new password: 
passwd: all authentication tokens updated successfully.
~~~

次にパスフレーズを出力。実行結果の文字列を控える。
※マニュアル記載のコマンドの最後に、 .py を付与しないとエラーになった。
~~~
[opc@avs01 ~]$ sudo -u oracle /usr/local/dbfw/bin/generate_post_install_passphrase.py 
XXXXXXx8PGBz5XXXXXXXXX7DXEkOmXXXX
[opc@avs01 ~]$ 
~~~

https://<コンピュートのIPアドレス>/  にアクセスすると、画面が表示される。
※OCIセキュリティリストで443を空けておく必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/e6855352-def7-9b62-12d6-875366e7d7fb.png)

/usr/local/dbfw/bin/generate_post_install_passphrase.pyの結果表示された
パスフレーズを入力します。
すると、画面が遷移します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/bcb08849-43ee-d9f4-1f48-2899ff0c9691.png)
以下を入力します。
・スーパー管理者（エージェントの追加登録など）のID/PASS
・スーパー監査者（監査ログを閲覧など）のID/PASS
・AVSサーバ内のDB暗号化キー
・AVSサーバのIPアドレス( **OCIコンピュート内のプライベートIPアドレス** なので注意）
（DNSは空欄で良い）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/025adb2f-040e-0e11-2545-82377e0689a3.png)
スーパー管理者でログインすると、管理画面にログインできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/c72b4ce8-a87e-3b91-59b3-6c7779b3f624.png)


# 3.ターゲット登録
### 3-1.BaseDBにインストールするエージェントを画面より登録
[6.2 Audit Vault Serverでのホストの登録 ](https://docs.oracle.com/cd/F35744_01/sigad/host_con.html#GUID-8E15FDD5-EE10-4A36-B0AF-18FDA8284A79)　このあたりを参考にします。

事前に、BaseDB - AVDFコンピュート 間で、1521,1522 のポートを開けておく必要があります。
[6.3.1 Audit Vault Agentの要件 ](https://docs.oracle.com/cd/F35744_01/sigad/host_con.html#GUID-5731D531-7846-44B8-B528-907ABC951098)
> 2つのAudit Vault Serverポート(デフォルトでは1521および1522)がAudit Vault Agentとの通信用に構成されていることを確認します。 

まずは、エージェントタブから、登録を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/3034f01e-fadb-54c4-d43b-da90822ece4e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/aad9d770-3cb1-f9d3-09e8-43d4c0ef92d9.png)

登録できました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/ecbdcafa-30de-67c8-d71e-69830a14b88c.png)

### 3-2.AgentをBaseDBにインストール
[6.3.7 Audit Vault Agentのデプロイ ](https://docs.oracle.com/cd/F35744_01/sigad/host_con.html#GUID-5BA534AC-5BA9-4E72-8488-47762D939043)
このあたりを参考に進めます。

管理画面よりAgentのjarファイルをダウンロードします。
Audit Vault Agent をダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/0b7da50c-6246-265a-257a-df83bf34341a.png)
ダウンロードしたファイルを、BaseDBのDBノードにアップロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/8c873d81-403f-dd61-5632-9c362a3589af.png)
インストールコマンドは **java -jar agent.jar -d Agent_Home** です
~~~
※ /home/opc/に agent.jar をアップロード
[opc@basedbnode ~]$ ls
agent.jar
[opc@basedbnode ~]$ mv agent.jar /tmp/
[opc@basedbnode ~]$ sudo su -
Last login: Wed May  3 07:01:49 JST 2023
[root@basedbnode ~]# chown oracle:oinstall /tmp/agent.jar 
[root@basedbnode ~]# su - oracle
[oracle@basedbnode tmp]$ java -jar agent.jar -d /u01/app/oracle/avdfagent01
Agent installed successfully.
If deploying hostmonitor please refer to product documentation for additional installation steps.
[oracle@basedbnode tmp]$ 

※-d で指定したディレクトリは、インストール時に作成してくれる
[oracle@basedbnode tmp]$ ls -d /u01/app/oracle/avdfagent01
/u01/app/oracle/avdfagent01
[oracle@basedbnode tmp]$ ls -l /u01/app/oracle/avdfagent01
total 12
drwxr-xr-x 7 oracle oinstall 4096 May  3 07:18 av
drwxr-xr-x 2 oracle oinstall 4096 May  3 07:18 bin
drwxr-xr-x 3 oracle oinstall 4096 May  3 07:18 network
[oracle@basedbnode tmp]$ 
~~~

Agentを起動する時に、アクティベートキーを入力します。
アクティベートキーは以下画面の **「アクティブ化キー」** です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/015cee63-9a5c-2661-b090-eb80e3613a2f.png)
~~~
[oracle@basedbnode tmp]$ cd /u01/app/oracle/avdfagent01/bin
[oracle@basedbnode bin]$ ls
agentctl  agentctl.bat  version.txt
[oracle@basedbnode bin]$ ./agentctl start -k
Enter Activation Key:  ★ここでキーを入力してEnter
BASEDB.XXX::****-****-****-****-**83
Checking for updates...
Agent is updating. This operation may take a few minutes. Please wait...
Agent updated successfully.
Agent started successfully.
[oracle@basedbnode bin]$ 
~~~

### 3-3.BaseDB側の準備
[C.3.2 Oracle Databaseの設定スクリプト ](https://docs.oracle.com/cd/F35744_01/sigad/plugin_specific.html#GUID-F9D095AF-29E5-42AC-9A99-FD4EA2C6DA06)
を参考に、監査ログ収集用のDBユーザを作成します。

~~~
* 権限付与スクリプト配置ディレクトリに移動
[oracle@basedbnode config]$ cd /u01/app/oracle/avdfagent01/av/plugins/com.oracle.av.plugin.oracle/config/
[oracle@basedbnode config]$ ls
DirectoryTrailProperties.xml              oracle_AVDF_dbcs_user_setup.sql         oracle_AVDF_E1_user_setup.sql   oracle_user_setup.sql     version.txt
oracle_AVDF_dbcs_drop_db_permissions.sql  oracle_AVDF_E1_drop_db_permissions.sql  oracle_drop_db_permissions.sql  SyslogFileProperties.xml

* ユーザを作成して、権限付与スクリプトを実行
[oracle@basedbnode config]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Wed May 3 07:51:57 2023
Version 19.18.0.0.0
Copyright (c) 1982, 2022, Oracle.  All rights reserved.

Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.18.0.0.0

SQL> create user C##AVDFUSER identified by WelcomeWelcome12345###;
User created.

SQL> @oracle_user_setup.sql C##AVDFUSER SETUP
Session altered.

Enter username for granting privileges:
Setting username to 'C##AVDFUSER'

Enter mode (SETUP/SPA/ENTITLEMENT/DBSAT_DISCOVERY):
SETUP for granting Audit Collection and Audit Policy Management privileges
SPA for granting Stored Procedure Auditing privileges
ENTITLEMENT for granting Entitlement retrieval privileges
DBSAT_DISCOVERY for granting Data Discovery and Security Assesment privileges
Setting mode to 'SETUP'

Granting privileges to "C##AVDFUSER" ... Done.
Disconnected from Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.18.0.0.0
[oracle@basedbnode config]$ 
~~~

### 3-4.BaseDBをターゲット登録

[7.2.1.1 Audit Vault Serverでのターゲットについて ](https://docs.oracle.com/cd/F35744_01/sigad/secured_targets.html#GUID-A13EBACA-6708-4FE5-87C2-E262C7D9681D)
を参考に進めます。

ターゲット一覧画面で、登録を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/c6ef5753-34e7-78a8-a91e-54a2a256e27a.png)

登録画面では、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/6e391a35-e692-1381-7e55-f9df2a82eb02.png)
BaseDBのIP( **OCIコンピュート内のプライベートIPアドレス** なので注意）
接続ポート
DB接続サービス名（ **CDBの接続サービスで良いです** )
作成したログ収集用DBユーザ名・PWD
を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/b3ae27a8-be23-1b45-8be9-ce5677c06265.png)
ターゲットが登録できました。

### 3-5.取得する監査証跡を追加する
[7.4.2 Audit Vault Serverでの監査証跡の追加 ](https://docs.oracle.com/cd/F35744_01/sigad/secured_targets.html#GUID-1DEC62DA-1663-43B1-A7A0-F9D59A732B00)
こちらを参考に進めます。

監査データ収集は何も登録されていないため、追加を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/ed5de03e-9492-f7f9-d893-0b07d054474c.png)

監査証跡のタイプ：TABLE証跡の場所：CDB_UNIFIED_AUDIT_TRAILを選択( **CDB接続でPDBの監査ログも見たい場合はこれを選択** )
エージェントレスを選択
を指定して、保存を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/94466e3a-8d23-0f37-7a64-13b83fa8f618.png)

監査データ収集が追加されました。
※ステータスは自動的に開始になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/6096dde6-8c0b-c0bf-4b3c-7b2c7d2631ac.png)

これで、監査ログが自動的に収集されます。

# 4.監査ログの確認
監査ログの確認は、スーパー監査者として画面にログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/b80b9516-4bd8-abe7-cb34-1152221bab3a.png)

ログインすると、アクティビティの一覧が確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/63275125-4f0c-6d85-3565-f96d5c545b3e.png)

グラフ内をクリックすると、該当の監査ログ一覧が閲覧できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1576542/29e7b5f6-fd83-7fdc-9e71-cc493b51fb88.png)


他にもレポートやアラート機能がありますので、今後確認してみたいと思います。