LAC WATCH

セキュリティとITの最新情報

RSS

株式会社ラック

メールマガジン

サイバーセキュリティや
ラックに関する情報をお届けします。

サービス・製品 | 

オンプレミスからクラウドまで、Oracle Data Safeでデータベースセキュリティ対策の可視化と自動化を実現

こんにちは。クラウドインテグレーションサービス部の小林です。

昨今クラウドの活用が増えてきていますが、クラウド環境でのデータベースセキュリティについて、どのくらい意識していますか?

クラウド環境においても機密データの保護対策が必要だけれど、どのような対策を実施すればよいか分からない方もいるのではないでしょうか。

この記事では、データベースセキュリティ対策の一例として、クラウドだけでなくオンプレミスでも利用可能なサービス「Oracle Data Safe」の概要と、その機能の1つである、「アクティビティ監査」の設定方法についてご紹介します。

Oracle Data Safeとは

Oracle Data Safeとは、リスク評価やマスキング、監査ログ監視等の運用により、データベースのセキュリティを管理するサービスです。このサービスは、Oracle Cloud Infrastructure(OCI)上で利用できます。

Oracle Data Safeを使うと、対象となるデータベースのセキュリティ対策を自動化できるため、専門知識がない方でも、容易かつ効率的にセキュリティ管理ができます。また、Oracle Cloud Databaseの場合、Oracle Data Safeを無償で利用できる点も魅力です(監査ログは100万件/月まで無償)。

Oracle Data Safe 7つの機能

Oracle Data Safeは以下の7つの機能を提供します。

セキュリティ・アセスメント データベースが安全に構成されていることを確認し、ベストプラクティスからの逸脱の特定や、修復のための推奨事項を提供。
ユーザー・アセスメント ユーザー、ロール、特権に関するレポートを作成し、ユーザーのリスクを評価。
データ検出 複数のデータベースに格納されている機密データの列を検出。
データ・マスキング 開発等の目的で本番環境のデータをコピーする際、機密データを架空のデータにマスキング。
アクティビティ監査 データベースの監査ログを定期的に取得し、ログ分析やレポートを提供。
SQLファイアウォール SQLファイアウォール・ポリシーを一元的に管理および監視。
アラート 通常とは異なるデータベース・アクティビティが発生した際に通知。

アクティビティ監査を使用するための前提条件

Oracle Data Safeの利用には以下のリソース、権限が必要です。

監査対象のデータベースを作成

Oracle Data Safeでは、監査対象のデータベースのことをターゲット・データベースと呼びます。

ターゲット・データベースを作成するには、まずOCIコンソールにログインし、「概要」>「Oracleベース・データベース」>「DBシステム」>「DBシステムの作成」を選択します。今回の検証では、OCI BaseDB 23c(現時点での最新バージョン)を利用します。

データベース情報の入力

作成するデータベース情報の入力画面へ移動するので、必要な情報を入力します。

Oracle Data Safeサービス・アカウントを準備

ターゲット・データベースにログインし、SQLで実施します。

Oracle Data Safeサービス・アカウントの作成

ターゲット・データベースに、Oracle Data Safeからの接続用ユーザーを作成します。ユーザー名に指定はありませんが、本記事ではDATASAFE$ADMINを使用します。

BaseDBではCDB構成が必須なので、ユーザー作成はPDBで実施します。

$ sqlplus /nolog
SQL*Plus: Release 23.0.0.0.0 - Production on Sun Feb 11 10:35:52 2024
Version 23.3.0.23.09
 
Copyright (c) 1982, 2023, Oracle.  All rights reserved.
 
SQL> conn / as sysdba
Connected.
 
--PDBに接続
SQL> alter session set container = <PDB名>;
Session altered.
 
--ユーザー作成
SQL> create user DATASAFE$ADMIN identified by <パスワード> 
  2  default tablespace users temporary tablespace temp;
User created.
 
--作成したユーザーに最小限の権限を付与
SQL> grant connect, resource to DATASAFE$ADMIN;
Grant succeeded.

Oracle Data Safeを利用するための権限を付与

ターゲット・データベースでOracle Data Safe機能を利用可能にするため、作成したユーザーに権限を付与します。すべての機能を利用可能にするには、権限を「all」で付与します。

権限スクリプト(datasafe_privileges.sql)は、後述するターゲット・データベース登録時にOCIコンソールからダウンロード可能です。

SQL> @datasafe_privileges.sql DATASAFE$ADMIN grant all
Enter value for USERNAME (case sensitive matching the username from dba_users)
Setting USERNAME to DATASAFE$ADMIN
Enter value for TYPE (grant/revoke)
Setting TYPE to grant
Enter value for MODE (audit_collection/audit_setting/data_discovery/masking/assessment/sql_firewall/all)
Setting MODE to all
Granting AUDIT_COLLECTION privileges to "DATASAFE$ADMIN" ...
Granting AUDIT_SETTING privileges to "DATASAFE$ADMIN" ...
Granting SQL_FIREWALL privileges to "DATASAFE$ADMIN" ...
Granting DATA_DISCOVERY role to "DATASAFE$ADMIN" ...
Granting MASKING role to "DATASAFE$ADMIN" ...
Granting ASSESSMENT role to "DATASAFE$ADMIN" ...
Disconnected from Oracle Database 23c EE High Perf Release 23.0.0.0.0 - Production
Version 23.3.0.23.09

アクティビティ監査設定

前提条件を満たせたら、アクティビティ監査の設定を行います。

プライベート・エンドポイントを作成

OCIコンソールから、「データ・セーフ」>「ターゲット・データベース」>「プライベート・エンドポイント」>「プライベート・エンドポイントの作成」を選択します。

プライベート・エンドポイント画面で、プライベート・エンドポイントの作成を選択

プライベート・エンドポイント情報の入力

作成するプライベート・エンドポイントの情報を入力する画面へと移動するので、必要な情報を入力します。

VCN、サブネットは、ターゲット・データベースに接続可能なものを選択します。

また、1つのVCNに作成可能なプライベート・エンドポイントは1つのため、異なるサブネットにプライベート・エンドポイントを作成したい場合、既存のプライベート・エンドポイントを削除してから新規に作成する必要があります。

ターゲット・データベースを登録

OCIコンソールから、「データ・セーフ」>「ターゲット・データベース」>「データベースの登録」を選択します。

ターゲット・データベース画面で、データベースの登録を選択

データ・セーフ・ターゲット情報の入力

登録するターゲット・データベースの情報を入力する画面へと移動するので、必要な情報を入力します。

データベース・サービス名が分からない場合は、以下のSQLで調べられます。CDB構成の場合はPDBで実施します。

SQL> select sys_context('userenv','service_name') from dual;

また、Oracle Data Safeサービス・アカウントへの権限付与に必要な、権限スクリプトを忘れずにダウンロードしてください。

監査プロファイルを設定

OCIコンソールから、「データ・セーフ」>「セキュリティ・センター」>「アクティビティ監査」>「監査プロファイル」を選択し、対象のターゲット・データベースを選択します。監査プロファイルでは、監査レコードの保持期間の設定や、監査証跡の場所、監査ポリシー名の確認等が可能です。

監査レコードの保持期間を設定

デフォルトではオンライン保持期間が12カ月、オフライン保持期間が0カ月で設定されています。

オンライン保持期間とは、Oracle Data Safe監査リポジトリに監査レコードがオンラインで格納される期間であり、即時のレポート作成および分析が可能です。

一方、オフライン保持期間では監査レコードがデータ・セーフ監査アーカイブに格納されるため、オフライン保持期間中の監査レコードをレポートで使用したい場合、アーカイブから監査データを取得する必要があります。

保持期間を変更したい場合は「保持の更新」を選択し、任意の値を設定します。オンライン保持期間は最小1カ月、最大12カ月、オフライン保持期間は最小0カ月、最大72カ月の範囲で設定可能です。

保持の更新画面

オンライン保持期間、オフライン(アーカイブ)保持期間のデフォルト設定を変更することも可能です。OCIコンソールから、「データ・セーフ」>「設定」>「グローバル監査レコード保持ポリシー」を選択します。設定可能な保持期間の範囲は、前述した値と同様です。

グローバル監査レコード保持ポリシーを設定し、保存

監査ポリシーを設定

OCIコンソールから、「データ・セーフ」>「セキュリティ・センター」>「アクティビティ監査」>「監査ポリシー」を選択し、対象のターゲット・データベースを選択します。

監査ポリシーでは、任意の項目を監査するように監査構成を変更できます。設定可能な監査ポリシーの一覧を記載します。各監査ポリシーの詳細はマニュアルをご参照ください。

監査ポリシーの構成:30.6 事前定義の統合監査ポリシーを使用したアクティビティの監査

カテゴリ 項目/ポリシー デフォルト 備考
基本監査 Database schema changes 無効
Logon events 無効
Critical database activity 無効
管理アクティビティ監査 Admin user activity 無効
カスタム・ポリシー ORA_DV_SCHEMA_CHANGES 有効 23cより名称変更
旧:ORA_DV_AUDPOL
ORA_DV_DEFAULT_PROTECTION 有効 23cより名称変更
旧:ORA_DV_AUDPOL2
ORA_OLS_SCHEMA_CHANGES 無効
ユーザー・アクティビティ監査 User activity 無効
監査コンプライアンス標準 Center for Internet Security
(CIS) configuration
無効
ORA_STIG_RECOMMENDATIONS 無効 21cで追加
Oracle事前定義済ポリシー ORA_LOGIN_LOGOUT 有効 23cで追加
ORA$DICTIONARY_SENS_COL_ACCESS 有効 23cで追加
ORA_SECURECONFIG 有効
ORA_RAS_SESSION_MGMT 無効
ORA_ALL_TOPLEVEL_ACTIONS 無効 21cで追加
ORA_RAS_POLICY_MGMT 無効
ORA_ACCOUNT_MGMT 無効
ORA_LOGON_LOGOFF 無効 21cで追加
ORA_LOGON_FAILURES 無効

監査ポリシーの変更

デフォルトから監査ポリシーを変更したい場合、「更新とプロビジョニング」を選択し、監査したい項目にチェックを入れます。

今回の検証では基本監査ポリシーをすべて有効化しています。基本監査ポリシーとは、Oracle Databaseの推奨監査構成のセットです。

更新とプロビジョニングを選択し、基本監査ポリシーをすべて有効化

監査証跡を設定

OCIコンソールから、「データ・セーフ」>「セキュリティ・センター」>「アクティビティ監査」>「監査証跡」を選択します。

監査証跡では、ターゲット・データベースで発生する一連のアクティビティを示す、監査レコードのソースを提供します。監査データ収集が有効な場合、監査レコードはデータベース監査証跡から、ほぼリアルタイムでOracle Data Safeにコピーされます。

今回ターゲット・データベースとしている、OCI BaseDB 23cのデータベースの監査方法は統合監査のみであるため、「証跡の場所:UNIFIED_AUDIT_TRAIL」の監査証跡を選択します。

監査データの収集を開始

「起動」を選択し、監査データの収集を開始したい日時を選択します。

起動後、「収集状態」が「NOT_STARTED」から「IDLE」または「COLLECTING」に変わったことを確認します。

起動を押して、収集状態がIDLEになったことを確認

監査データの監視と分析

監査設定が完了したら、実際にターゲット・データベースでイベントを発生させ、アクティビティ監査で分析可能なことを確認します。

ターゲット・データベースでイベントを発生

今回は検証用ユーザーを作成し、検証用ユーザーのスキーマに表を作成します。

監査ポリシーの変更で、基本監査ポリシーである「Database schema changes」を有効化したため、スキーマの変更がイベントとして記録されます。

検証用ユーザー作成

ターゲット・データベースに検証用のユーザー(test_user)を作成し、必要な権限を付与します。

後述の手順にて、test_userで表作成を行うため、create sessionおよびcreate table権限を付与します。CDB構成の場合はPDBで実施します。

--ユーザー作成
SQL> create user test_user identified by <パスワード>  
  2  default tablespace users temporary tablespace temp 
  3  quota unlimited on users;
User created.
 
--作成したユーザーに接続および表作成権限を付与
SQL> grant create session, create table to test_user;
Grant succeeded.

検証用ユーザーのスキーマに表を作成

検証用のユーザー(test_user)に接続し、表(test_table)を作成します。CDB構成の場合はPDBで実施します。

--test_userに接続
SQL> conn test_user/<パスワード>@<PDB名>
Connected.
 
--test_userスキーマに表を作成
SQL> create table test_table (
  2    user_id CHAR(10),
  3    user_name VARCHAR2(50)
  4  );
Table created.

アクティビティ監査ダッシュボードでの分析

OCIコンソールから、「データ・セーフ」>「セキュリティ・センター」>「アクティビティ監査」を選択します。

監査アクティビティの表示および分析

アクティビティ監査ダッシュボードには、デフォルトですべてのターゲット・データベースに対して、過去1週間分の監査イベントのサマリがチャートと表の形式で表示されます。これにより、モニターされるすべてのターゲット・データベース全体の監査イベントの概要を確認できます。

コンパートメント内のアクティビティ監査画面

監査イベント・データの分析

OCIコンソールにログインし、「データ・セーフ」>「セキュリティ・センター」>「アクティビティ監査」を選択します。「イベント・カテゴリ」>「スキーマの変更」を選択します。

ターゲット・データベースで「スキーマの変更」が何回起きたか、どのユーザーが、いつ、どのオブジェクトを変更したかを一覧で確認できます。

画像では、ユーザー(test_user)が2024年2月11日に表(test_table)の作成を成功していることが分かります。このように、アクティビティ監査を実施すると、どのユーザーがいつ何を行ったか、簡単に分析できます。

アクティビティ監査画面で変更状況を一覧で確認

アクティビティ監査レポートの表示と管理

OCIコンソールから、「データ・セーフ」>「セキュリティ・センター」>「アクティビティ監査」>「監査レポート」を選択します。

監査レポートの表示および管理

スキーマの変更、ユーザーまたは権限の変更、データベース・ログインの試行回数等の、事前に定義された監査レポートや、作成したカスタム・レポートの一覧が表示されます。監査レポートは、PDFまたはXLSファイルとしてダウンロードすることも可能です。

監査レポートの生成

前述した「監査イベント・データの分析」にて確認した、スキーマ変更の監査レポートを生成します。

事前定義済みレポートから、「Database schema changes」を選択します。「レポートの生成」をクリックし、レポート形式を選択します。

レポートの表示名変更や、オプションでレポートを生成する対象のターゲット・データベースの選択等が可能です。

レポートの生成画面

画像は、生成した「Database schema changes」の監査レポートです。今回検証で実施したスキーマの変更が記録されていることを確認できます。

スキーマの変更が記録されていることを確認

おわりに

今回は効率的なデータベースセキュリティ対策として、Oracle Data Safeのアクティビティ監査についてご紹介しました。

クラウドの利用増加に伴い、データベースを安全に利用するための効率的なセキュリティ管理は必要不可欠です。あなたの重要なデータを守る手段として、データベースセキュリティ対策の可視化と自動化が行えるOracle Data Safeを活用してみませんか?

ラックではお客様のシステム環境の課題に合わせて、適切なソリューション・サービスをご提案しています。クラウドに関するお悩みがありましたら、ぜひお問い合わせください。

プロフィール

小林 夢居

小林 夢居
インフラエンジニアとして、クラウド、データベースを主に扱い、インフラ・データベース構築/データ移行/技術検証等を担当しています。

「クラウド」に関するお問い合わせ

この記事は役に立ちましたか?

はい いいえ

関連記事

LAC WATCH

関連記事をご紹介します

  • DBSATを使ってOCI Oracle ベース・データベースのセキュリティを診断してみよう!

  • 頭を悩ませるOracle Databaseのコスト課題、ラックが考える3つの対応策

  • 無料でセキュアなシステムを構築できる、OCIの要塞(Bastion)サービスとは