はじめに

みなさん、こんにちは。
Oracle Cloud Infrastructure 検証チームです。

今回は、Oracle Cloud Infrastructure の機能であるData Safeについての機能紹介になります。

過去のOracle Cloud関連記事はこちら

Data Safeとは

Oracle Data Safe は、データのセキュリティに重点を置いた完全に統合されたリージョン・クラウド・サービスです。
Data safeによって、データ、ユーザー、設定に関するセキュリテイ課題の可視化精密データのマスキングが可能です。
また、課題の検出監査を自動化できるため、管理工数をかけずにクラウドで利用するデータベースのセキュリティ強化や重要なデータの保護、コンプライアンス対応の実現も可能です。

Data Safeのマニュアルは下記になります。
https://docs.oracle.com/cd/E83857_01/paas/data-safe/udscs/index.html

Data Safeには下記の機能があります。

Data Safeの機能紹介

Data Safeの各種機能について紹介いたします。

セキュリティ・アセスメント

データベース構成のセキュリティ・リスクの評価をおこないます。
データベース構成、ユーザー・アカウント、およびセキュリティ制御を分析し、リスクを軽減または緩和するためのベスト・プラクティスに従った改善アクティビティに対する推奨事項をレポートします。

リスク・レベルやカテゴリ別に評価の結果が確認可能です。

  • リスク(High/Medium/Low etc)
  • カテゴリ(ターゲット・データベース/ユーザー・アカウント/権限およびロール/アクセス制御/データ暗号化 etc)

また、アセスメント結果の比較分析や過去の実行結果についても参照可能となっています。

ユーザー・アセスメント

ユーザー、ロール、特権に関するレポートを作成してユーザーのリスクの評価をおこないます。
不正使用または危険にさらされる可能性がある高度な特権アカウントを識別することができます。

ターゲット・データベースのデータ・ディクショナリ内のユーザーに関する情報をレビューし、各ユーザーの潜在的なリスク・スコアを計算します。
例として、ユーザー・タイプ、ユーザーの認証方法、各ユーザーに割り当てられているパスワード・ポリシー、各ユーザーがパスワードを変更してから経過した時間などを評価します。

リスク・レベルや権限・ロールごとに評価の結果が確認可能です。

  • リスク(Critical/High/Medium/Low)
  • 権限ロール(DBA/Database Vault/監査)

また、アセスメント結果の比較分析や過去の実行結果についても参照可能となっています。

データ検出

データベースに格納されている機密データ列の検出をおこないます。
データ検出によって、識別、経歴、IT、財務、医療、雇用および学業情報に関係する幅広い機密データを検索できます。

190を超える事前定義済みの機密タイプが用意されています。(本記事の執筆時点)
ユーザー独自の機密タイプの定義を追加することも可能です。

データ・マスキング

機密データを元のデータと類似した特性をもつデータへのマスキングをおこないます。
セキュリティ上のリスクを回避するために、機密データを現実的なデータに置き換え、架空のデータにすることができます。
機密データをマスキングし、検証用のデータとすることによって検証用のデータでもアプリの動作テストが可能となります。
※一度マスキングをおこなうと元の機密データに戻すことはできません。

80を超える事前定義済みのマスキング・テンプレートが用意されています。(本記事の執筆時点)

  • クレジットカード番号/年齢/血液型/収入 etc

ユーザー独自のマスキング定義を追加することも可能です。

アクティビティ監査

データベースの監査ログを定期的に取得し、ログ分析やレポートの提供をおこないます。
データベースのユーザー・アクティビティの監査が可能なため、データベースの使用状況をモニタリングできます。

Oracle Cloud Databaseにおいて1ターゲットごとに100万レコード/月まで無償で利用可能です。

監査プロファイル、監査ポリシー、監査証跡、監査レポートの各種設定が可能となっています。
監査レポートの定期的なスケジュール実行も可能です。

アラート

特定のユーザー・アクティビティや異常な動作の追跡および通知をおこないます。

データベースで特定の監査イベントが発生したときに通知を送信することが可能です。
データベースに対してアラート・ポリシーが有効になっているときのみアラートが生成される仕組みになっています。

SQLファイアウォール

データベースのSQLファイアウォール・ポリシーの一元的な管理や監視をおこないます。
SQLファイアウォールは、Oracle Database 23aiカーネルに組み込まれた新しいセキュリティ機能です。
SQLインジェクション攻撃や侵害されたアカウントなどのリスクから保護します。

セッション情報とSQLを組み合わせた制御が可能です。

  • セッション情報(IPアドレス/OSユーザー名/プログラム名)
  • SQL(DDL/DML)

ポリシーに登録されていないアクセスのログを記録する検知モードとしても使用可能となっています。

アクティビティ監査についての検証

今回は紹介したData Safeの機能の一つである、アクティビティ監査について検証をすすめていきたいと思います。

Data Safeならびにアクティビティ監査を利用するにあたって、下記の設定が必要となります。

Data Safeの利用前に必要な設定項目
  • Data Safe用のユーザーの作成と権限付与
  • プライベート・エンドポイントの作成
  • ターゲット・データベースの登録
アクティビティ監査にて設定可能な項目
  • 監査プロファイル
  • 監査ポリシー
  • 監査証跡
  • 監査レポート

今回の検証のOCI構成について

今回は、プライベート・サブネットに存在するBaseDB1台をData Safeのターゲット・データベースとして登録し、アクティビティ監査の機能について検証をすすめていきます。

Data Safeの利用前に必要な設定項目

Data Safe用ユーザーの作成と権限付与

Data Safeを利用するためには、Data Safeに登録するターゲット・データベースにデータベース・アカウント(DATASAFE$ADMIN)を作成し、必要な権限を付与する必要があります。
必要な権限を付与するための権限スクリプトについてはOCIコンソールのターゲット・データベースの登録画面にてダウンロードすることが可能です。(※1)

  1. ターゲット・データベースにて、Data Safe用のユーザーを作成します。(※2)
  2. ターゲット・データベースにて、ダウンロードした権限スクリプトを下記のように実行します。
    @<権限スクリプトの配置先フォルダ>/datasafe_privileges.sql <データベース・アカウント名> grant all

※1 OCIコンソールにて、「Oracle Database」 → 「データ・セーフ・データベース・セキュリティ」 → 「ターゲット・データベース」 に移動し、「データベースの登録」を選択します。
データベース・タイプ」に「Oracle Cloudデータベース」を選択し、画面の下の方に移動して、「権限スクリプトのダウンロード」を選択すると「datasafe_privileges.sql」がダウンロードできます。

※2 OCIコンソールにて、Data Safeのターゲット・データベースを登録する際に、Data Safe用ユーザーのPWの条件として、14文字以上かつ大文字、小文字、数字および特殊文字をそれぞれ1つ以上含める必要があるため、Data Safe用ユーザー作成時にはこの条件を満たす必要があります。

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

Data Safeとターゲット・データベースをつなぐために、プライベート・エンドポイントの作成が必要となります。

  1. OCIコンソールにて、「Oracle Database」 → 「データ・セーフ・データベース・セキュリティ」 → 「ターゲット・データベース」 に移動します。
  2. 左側の接続オプションから「プライベート・エンドポイント」を選択します。
  3. プライベート・エンドポイントの作成」を選択し、各種設定値を記入して「プライベート・エンドポイントの作成」を選択します。
ターゲット・データベースの登録

Data Safeにターゲット・データベースを登録します。

  1. OCIコンソールにて、「Oracle Database」 → 「データ・セーフ・データベース・セキュリティ」 → 「ターゲット・データベース」 に移動します。
  2. データベースの登録」を選択します。
  3. データベース・タイプ」に「Oracle Cloudデータベース」を選択します。
  4. 各種設定値を記入して「登録」を選択します。(※)
    ※ 「データベース・サービス名」には、ターゲット・データベースとして登録するCDBまたはPDBのサービス名を入力します。

上記の設定まで完了するとData Safeの各種機能が利用可能になります

アクティビティ監査にて設定可能な項目

監査プロファイル

OCIコンソールにて、「Oracle Database」 → 「データ・セーフ・データベース・セキュリティ」 → 「アクティビティ監査」 → 「監査プロファイル」 に移動し、対象のターゲット・データベースを選択します。

グローバル保持設定
  1. 保持の更新」を選択します。
  2. 設定を選択/入力し、「保持の更新」を選択します。
  3. 状態が「UPDATING」から「ACTIVE」に変化し、オンライン保持/オフライン保持の値が設定値となっていることを確認します。
監査証跡の検出
  1. 証跡の検出」を選択します。
  2. 証跡の検出」のダイアログの「確認」を選択します。
  3. 状態が「UPDATING」から「ACTIVE」に変化したら完了です。
グローバル有料使用設定
  1. 有料使用の更新」を選択します。
  2. 設定を選択/入力し、「有料使用の更新」を選択します。
  3. 状態が「UPDATING」から「ACTIVE」に変化し、有料使用の値が設定値となっていることを確認します。
監査ボリュームの計算

下記の監査レコードの数を確認することができます。
同様の機能が監査証跡の画面からも使用可能です。

  • ターゲット・データベース内の月次使用可能データ
  • 毎月収集されたオンライン監査データ(Oracle Data Safe)
  • 毎月収集されたオフライン監査データ(Oracle Data Safe)
  1. ターゲット・データベースで使用可能」もしくは「データ・セーフで取集済」を選択します。
  2. ターゲット・データベースで使用可能」を選択した場合は「開始日」を選択し、
    データ・セーフで収集済」を選択した場合は「開始月」と「終了月」を選択して「表示」を選択します。
  3. 監査レコードの計算」の表にデータが表示されていることを確認します。
    関連する監査証跡の画面にも同様の表示が連携されます。
監査ポリシー

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

監査ポリシーの更新とプロビジョニング
  1. 更新とプロビジョニング」を選択します。
  2. ポリシーの有効/無効を選択します。
    ポリシーの有効化の対象や操作時の監査を変更したいポリシーは、対象のポリシー名の右にあるリンクを選択します。
  3. ポリシーの構成を編集し、「保存」を選択します。
  4. ポリシーの有効化の対象や操作時の監査が変更されていることを確認し、「更新とプロビジョニング」を選択します。
  5. ポリシーが変更されていることを確認します。
最新の監査ポリシーの取得
  1. 取得」を選択します。
  2. 状態が「UPDATING」から「ACTIVE」に変化したら完了です。
    ※ターゲット・データベースでcreate audit policy文にて監査ポリシーを作成している場合は、作成した監査ポリシーが「カスタム・ポリシー」に表示されており、有効(緑点灯)であることを確認します。
監査証跡

OCIコンソールにて、「Oracle Database」 → 「データ・セーフ・データベース・セキュリティ」 → 「アクティビティ監査」 → 「監査証跡」 に移動し、対象のターゲット・データベースを選択します。
監査証跡が複数表示される場合は、「証跡の場所」が「UNIFIED_AUDIT_TRAIL」のものを選択します。
※統合監査の監査モードが混合モードの場合は、ターゲット・データベースごとに3つの監査証跡が表示されるため注意が必要です。(SYS.AUD$/SYS.FGA_LOG$/UNIFIED_AUDIT_TRAIL)

監査証跡の起動
  1. 「起動」を選択します。
  2. カレンダーマークを選択し、開始日及び時間(UTC)に日時を指定します(過去/未来の指定も可能)。
  3. 起動」を選択します。
  4. 状態が「UPDATING」から「ACTIVE」に変化したら完了です。
監査証跡の停止
  1. 停止」を選択します。
  2. 状態が「UPDATING」から「INACTIVE」に変化したら完了です。
監査証跡の再開
  1. 再開」を選択します。
  2. 状態が「UPDATING」から「ACTIVE」に変化したら完了です。
自動パージ設定
  1. 自動パージの更新」を選択します。
  2. 設定を選択し、「自動パージの更新」を選択します。
  3. 状態が「UPDATING」から「ACTIVE」に変化し、自動パージの値が設定値となっていることを確認します。
監査ボリュームの計算

監査プロファイルの機能と同じため割愛します。

監査レポート

OCIコンソールにて、「Oracle Database」 → 「データ・セーフ・データベース・セキュリティ」 → 「アクティビティ監査」 → 「監査レポート」 に移動します。

カスタム・レポートの作成
  1. 事前定義済レポート」の「All activity」を選択します。
  2. カスタム・レポートの作成」を選択します。
  3. カスタム・レポート名を入力し、「カスタム・レポートの作成」を選択します。
  4. ステータスが「100%完了」となった後に、「ここをクリックします。」を選択します。
  5. 遷移したカスタム・レポート画面にて、「 + 別のフィルタ」を選択します。
  6. フィルタを追加し、「適用」を選択します。
  7. デフォルトで設定されているフィルタ(タイプ:Operation time)の右端の「×」を選択してフィルタを解除し、「適用」を選択します。
  8. レポートの保存」を選択し、「レポートが正常に保存されました」と出力されることを確認します。
  9. 列の管理」を選択します。
  10. 出力対象の列にチェックを入れて、「変更の適用」を選択します。
  11. レポートの保存」を選択し、「レポートが正常に保存されました」と出力され、選択した出力対象の列が表示されていることを確認します。
レポート・スケジュールの管理
  1. カスタム・レポート」の対象のレポートを選択します。
  2. レポート・スケジュールの管理」を選択します。
  3. 設定を選択/入力し、「スケジュールの保存」を選択します。

おわりに

いかがだったでしょうか。
今回はData Safeについてご紹介いたしました。

Data Safeを利用することで簡単にセキュリティの評価や課題の検出・監査の自動化をすることができ、セキュリティを強化することができますので、運用の際は検討してみてください。

最後までご覧頂き、ありがとうございました。

OCIに関するお問合せはこちら

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!