Oracle Data Safeでの監査データの取得

オラクル散歩道

2021.12.21

1 はじめに

この記事は、JPOUG Advent Calendar 2021 21日目の記事です。
20日目はmultilayerさんの記事『AWRレポートでパフォーマンス分析しよう!(リファレンス編)』でした。

JPOUG Advent Calenderは12月1日から25日間、毎日、Japan Oracle User Group (JPOUG)コミュニティのみんなで記事を書き、クリスマス当日までバトンをつなげる試みです。
https://adventar.org/calendars/6527

21日目の今回は、NTTデータ先端技術の羽田がOracle Data Safeの機能の一部である監査データの取得についてご紹介します。

2 Oracle Data Safe概要

Oracle Data Safe概要

Oracle Data Safeは、セキュリティ評価・ユーザー評価・機密データの検出・データマスキング・アクティビティ監査の機能を簡易に実現して一元管理できるOracleデータベースの統合コントロール・センターです。

これらの機能概要は以下の通りです。

  • セキュリティ評価はデータベースのセキュリティアセスメントができます。脆弱性を把握するのに役立ちます。
  • ユーザー評価は、データベースユーザーのセキュリティアセスメントができます。リスクのあるユーザーを把握するのに役立ちます。
  • 機密データの検出は、データベース内に機密データが存在するかどうか、調べることができます。
  • データマスキングは、データの機密性が守られるように機密データを加工して再利用しやすくできます。
  • アクティビティ監査は、データベースのAudit機能で出力された監査データの蓄積と参照がGUIで簡単にできます。

Oracle Data Safeは、OracleCloudのデータベースや、オンプレミスのデータベースで使用することができます。
今回は、Oracle Data Sefe構成手順およびアクティビティ監査機能で簡単に監査データを取得・参照する方法についてご紹介します。

3 Oracle Data Safe構成手順

以下の構成で環境を作成します。

Oracle Data Safe構成手順

3.1 監査対象データベース作成

今回は監査対象のデータベースにOracle Database Cloud Service (DBCS)を使用します。監査データの収集をOracleCloud内の通信を使って行うために、DBCSにプライベートIPも割り振っておきます。

3.2 Oracle Data Safe用Oracle Cloud Infrastructure(OCI)アカウント設定

Oracle DataSafe用のOCIアカウントを作成し、使用しているコンパートメントやグループに合わせて以下のように権限を付与します。

allow group JPOUG_Test to manage data-safe in tenancy
allow group JPOUG_Test to inspect groups in tenancy
allow group JPOUG_Test to manage database-family in compartment JPOUG_Test
allow group JPOUG_Test to manage instance-family in compartment JPOUG_Test

※ 今回の構成ではOracle DataSafe用のOCIアカウントはグループ「JPOUG_Test」に所属しており、監査対象のDBはコンパートメント「JPOUG_Test」に配置しています。

3.3 Oracle Data Safe有効化

OCIのテナントで一度もOracle Data Safeを有効化していない場合は、有効化します。

3.4 Oracle Data Safeのプライベートエンドポイントの作成

監査対象データベースとOracle Data Safeの通信をインターネット経由ではなく、OracleCloud内のネットワークで通信させるために、Oracle Data Safeのプライベートエンドポイントを作成します。

Oracle Data Safeのプライベートエンドポイントの作成

※ プライベートエンドポイントを作成する際には、NSG(ネットワーク・セキュリティ・グループ)を指定して、ファイアウォールで適切なアクセスを許可する必要があります。

※ 本コラムのOracleCloudの画面キャプチャは2021年12月2日時点のものとなります。

3.5 Oracle Data Safeへのターゲット登録

Oracle Data Safeのメニューからターゲット登録する際に表示されるリンク「Download Privilege Script」から、「datasafe_privileges.sql」をダウンロードし、ターゲットデータベースで実行します。

Oracle Data Safeへのターゲット登録

[oracle@sv-jpoug ~]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Dec 3 10:58:09 2021
Version 19.12.0.0.0

Copyright (c) 1982, 2021, Oracle.  All rights reserved.


Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDBJPOUG                       READ WRITE NO
SQL> alter session set container=pdbjpoug;

Session altered.

SQL> @datasafe_privileges.sql DATASAFE GRANT ALL
Enter value for USERNAME (case sensitive matching the username from dba_users)
Setting USERNAME to DATASAFE
Enter value for TYPE (grant/revoke)
Setting TYPE to GRANT
Enter value for MODE (audit_collection/audit_setting/data_discovery/masking/assessment/all)
Setting MODE to ALL
Granting AUDIT_COLLECTION privileges to "DATASAFE" ...
Granting AUDIT_SETTING privileges to "DATASAFE" ...
Granting DATA_DISCOVERY role to "DATASAFE" ...
Granting MASKING role to "DATASAFE" ...
Granting ASSESSMENT role to "DATASAFE" ...
Done.
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.12.0.0.0
[oracle@sv-jpoug ~]$

スクリプト実行後にOracle Data Safeのメニューから、プライベートエンドポイントを指定してターゲットを登録します。

この時、Database User Name には、「datasafe_privileges.sql」で作成したユーザー「DATASAFE」を指定します。

4 アクティビティ監査利用方法

4.1 監査データの取得

DataSafe>Security Center>Activity Auditing からOracle Data Safeのコンソールを開き、ターゲットデータベースを選択し、Audit Collection を開始します。 この時、Collection Audit Data Fromに監査データの取得を始める日時を指定する必要があります。

4.2 監査データの参照

Oracle Data Safeのコンソールから Reports>Activity Auditing から用意されているAll Activityなどの各種レポートを参照することが可能です。

監査データの参照

4.3 補足:監査ポリシーの変更

Oracle Data SafeのコンソールからTargets>Audit Policies から監査ポリシーを変更することが可能です。

補足:監査ポリシーの変更

※ Oracle Data Safeのコンソールからはアクティビティの監査は、ユーザー単位で全てのアクティビティを監査するか否か選択できます。 しかしながらこの設定のやり方では、特定ユーザーの全てのアクティビティが監査されてしまうので、場合によっては監査データが大量に取得される可能性が出てきます。 それを防ぐには、オブジェクトレベルの監査をターゲット側でコマンドラインで指定する方法があります。

5 おわりに

ご覧のような流れで、Oracle Data Safeを使って簡単にデータベースの監査データを取得・参照することが可能です。
基本はGUIの設定で監査を行うことが可能ですが、きめ細かな監査ポリシーを設定したい場合には、コマンドラインからの監査(統合監査)と組み合わせることで、効果的な監査が行えるようになります。

6 番外編 ~私の散歩道~

番外編

週末に上野近辺をお散歩してきました。上野ではあちこちでパンダに遭遇するので癒されます。
上野の松坂屋でマグロの解体ショーをしていて、マグロの柵が沢山売られていました。
せっかくなので一つ買って食べたのですが、大変美味しかったです。これから年末にかけてマグロは値上がりしていくそうです。
皆様も年末年始、どうか健やかにお過ごしください。

  • 文章中の商品名、会社名、団体名は、各社の商標または登録商標です。

Oracle Data Safeでの監査データの取得