Oracle® Database

Security Assessment Toolユーザー・ガイド

リリース2.1.0

E94610-04(原本部品番号:E72220-09)

2019年3月

Oracle Database Security Assessment Toolについて

Oracle Database Security Assessment Tool (DBSAT)は、データベース構成、ユーザーとその権限、セキュリティ・ポリシーを分析し、機密データが存在する場所を特定し、組織内のセキュリティ上のリスクを明らかにしてOracle Databaseのセキュリティ状態を向上させます。

Oracle Database Security Assessment Toolを使用する利点

DBSATを使用すると、次のことが可能です。

  • 現在のセキュリティ状況を短時間で簡単に評価し、Oracle Database内の機密データを特定する。

  • 実績のあるOracle Databaseセキュリティに関するベスト・プラクティス、CISベンチマークの推奨事項およびSTIGのルールを使用してリスク・エクスポージャを減らす。

  • セキュリティ結果を利用して、EU GDPRなどの規制の順守を加速させる。

  • Oracle Databasesのセキュリティ状態を向上させ、セキュリティに関するベスト・プラクティスを推進する。

注意:

DBSATは、測定できるような形でシステム・パフォーマンスを低下させることのない軽量なユーティリティです。

DBSATレポート結果は、次の目的で使用できます。

  • 短期リスクの即時修正

  • 包括的なセキュリティ戦略の実施

  • 規制コンプライアンス・プログラムのサポート

  • セキュリティに関するベスト・プラクティスの推進

Database Security Assessment Toolのコンポーネント

Database Security Assessment Tool (DBSAT)は、次のコンポーネントで構成されています。

  • Collector:

    Collectorは、SQL問合せを実行し、オペレーティング・システム・コマンドを実行して評価対象となるシステムからデータを収集します。これは、主にデータベース・ディクショナリ・ビューに問い合せることで実行されます。収集されたデータは、分析フェーズでDBSAT Reporterによって使用されるJSONファイルに書き込まれます。

  • Reporter:

    Reporterは、収集されたデータを分析し、データベース・セキュリティ評価レポートをHTML、Excel、JSONおよびテキスト形式で生成します。Reporterは、任意のマシン(PC、ラップトップ、サーバー)で稼働できます。Reporterの実行は、データベース・サーバーや、Collectorと同じマシンに限定されません。

  • Discoverer:

    Discovererは、SQL問合せを実行して、構成ファイルで指定された設定に基づいて評価対象となるシステムからデータを収集します。これは、主にデータベース・ディクショナリ・ビューに問い合せることで実行されます。その後、収集されたデータは、データベース機密データ評価レポートをHTMLおよびCSV形式で生成するために使用されます。Discovererは、任意のマシン(PC、ラップトップ、サーバー)で稼働できます。Discovererの実行は、データベース・サーバーや、CollectorまたはReporterと同じマシンに限定されません。

次の図に、Database Security Assessment Toolのコンポーネント、ソースおよびレポーを示します。

図 - DBSATのコンポーネント、ソースおよびレポート

図の説明が続きます
「図 - DBSATのコンポーネント、ソースおよびレポート」の説明

Collector、ReporterおよびDiscovererの詳細は、Database Security Assessment Toolの使用を参照してください。

サポートされているオペレーティング・システム

データベース構成収集問合せは、サポートされているほとんどのOracle Databaseプラットフォームで実行されます。ただし、現在OSデータ収集はWindowsプラットフォームではスキップされます。

DBSATの動作対象は、次のとおりです。

  • Solaris x64およびSolaris SPARC64

  • Linux x86-64

  • Windows x64

  • HP-UX IA (64ビット)

  • IBM AIX (64ビット)およびLinux on zSeries (64ビット)

サポートされているデータベース・バージョン

DBSATツールは、オンプレミスまたはクラウド上のOracle Database 10.2.0.5以降のリリースで実行できます。DBSATはOracle Cloud DBCS (PaaS)および自律型データベースでも実行できます。

セキュリティ要件

DBSAT出力ファイルは、データベースのセキュリティ状態の脆弱性が明らかになる可能性があるため、慎重に扱う必要があります。このようなファイルへの不正アクセスを防止するために、次のセキュリティ・ガイドラインを実施する必要があります。
  • このようなファイルを格納するディレクトリが適切な権限で保護されるようにする。

  • このようなファイルが対象となる推奨事項を実施した後、ファイルを安全に削除する。

  • 他のユーザーとは(デフォルトで)暗号化された形式で共有する。

  • DBSATユーザーにユーザー権限を短期的に付与し、不要となったら取り消す。

    DBSATユーザー権限の詳細は、Collectorの前提条件を参照してください。

注意:

このツールは、システムの潜在的な機密データおよび脆弱性の特定を支援することを目的としています。さらに、このツールによって生成された出力には、潜在的に機密性の高いシステム構成データや、熟練した攻撃者がシステムへの侵入に使用する可能性がある情報が含まれる場合があります。生成されたレポートを含め、このツールの出力が自社のポリシーに従って処理されることを確実に実行する全責任があります。

Database Security Assessment Toolの前提条件

ZipおよびUnZip

DBSATは、生成されたファイルをZipおよびUnzipを使用して圧縮または圧縮解除します。DBSATは、ZipおよびUnzipユーティリティを次に示したデフォルトの場所で検索します。他のZipおよびUnzipユーティリティを使用するには、関連するスクリプトの次の行を更新します。

Windows (dbsat.batスクリプト):

SET ZIP_CMD=%ORACLE_HOME%\bin\zip.exe 
SET UNZIP_CMD=%ORACLE_HOME%\bin\unzip.exe

注意:

UnzipユーティリティはOracle Database 12.2以上に含まれていません。WinZipまたはWinRarなどのユーティリティをインストールし、そのユーティリティへのパスをSET UNZIP_CMDパラメータに追加したことを確認してください。

その他すべてのプラットフォーム(dbsatスクリプト):

ZIP=/usr/bin/zip 
UNZIP=/usr/bin/unzip 
DBZIP=${ORACLE_HOME}/bin/zip

Database Security Assessment Toolのコンポーネントに関する前提条件は次のとおりです。

Collectorの前提条件

完全なデータを収集するために、DBSAT Collectorはデータベースが存在するサーバーで実行する必要がありますが、これは、なんらかのオペレーティング・システム・コマンドを実行して、データベースから取得できないプロセスおよびファイル・システム情報を収集するためです。また、OSコマンド使用してファイル・システム・データを収集して処理するために、ORACLE_HOME内にあるファイルおよびディレクトリに対して読取り権限を持つOSユーザーとしてDBSAT Collectorを実行する必要があります。

DBSAT Collectorは、データベース・ビューに問い合せることで、ほとんどのデータを収集します。これらのビューから選択するのに十分な権限を持つユーザーとしてデータベースに接続する必要があります。DBSATユーザーに次の権限を付与します。

  • CREATE SESSION

  • SYS.REGISTRY$HISTORYに対するREADまたはSELECT

  • ロールSELECT_CATALOG_ROLE

  • ロールDV_SECANALYST (Database Vaultが有効になっている場合)

  • ロールAUDIT_VIEWER (12c以降)

  • ロールCAPTURE_ADMIN (12c以降)

  • SYS.DBA_USERS_WITH_DEFPWD (11g以降)に対するREADまたはSELECT

  • AUDSYS.AUD$UNIFIED (12c以降)に対するREADまたはSELECT

注意:

Collectorコンポーネントのみを実行する予定の場合は、次の権限のみを割り当てることができます。

  • CREATE SESSION

  • ロールSELECT_CATALOG_ROLE

Database Vault保護環境でDatabase Vaultの情報を正常に収集するには、DV_SECANALYSTロールを持つSYS以外のユーザーとして接続する必要があります。

Reporterの前提条件

Reporterはプラットフォームに依存しないPythonプログラムであり、実行にはPython 2.6以降が必要です。

Discovererの前提条件

DiscovererはJavaプログラムであり、実行にはJava Runtime Environment (JRE) 1.8 (jdk8-u172)以降が必要です。

Discovererは、データベース・ディクショナリ・ビューからメタデータを収集し、機密データを検出するために指定されたパターンと照合します。Discovererは、これらのビューから選択するのに十分な権限を持つユーザーとしてデータベースに接続する必要があります。DBSATユーザー権限の詳細は、Collectorの前提条件を参照してください。

注意:

Discovererは、行数を取得する場合、表の統計情報に依存します。正確な行数の結果を取得するには、DBSATユーザーがDiscovererを実行する前に、データベース管理者がDBMS_STATSを実行する必要があります。

Database Security Assessment Toolのインストール

Database Security Assessment Tool (DBSAT)をインストールするには、次のようにします。
  1. データベース・サーバーにログインします。
  2. dbsatディレクトリを作成します。

    mkdir –p /home/oracle/dbsat

  3. dbsat.zipファイルをデータベース・サーバーにダウンロードまたはコピーし、ファイルを解凍します。
    unzip dbsat.zip –d /home/oracle/dbsat

    -dはディレクトリ・パスを指します。

Database Security Assessment Tool (DBSAT)がデータベース・サーバーにインストールされます。

Collector、ReporterおよびDiscovererは、/home/oracle/dbsatディレクトリから実行できます。

また、このディレクトリをPATHに追加し、ツールを実行するたびにディレクトリに移動するステップを省くこともできます。

Database Security Assessment Toolの使用

Collector、ReporterおよびDiscovererコンポーネントを使用して、データベース・セキュリティ評価レポートおよびデータベース機密データ評価レポートを生成できます。

データベース・セキュリティ評価レポート

CollectorおよびReporterコンポーネントを使用して、データベース・セキュリティ評価レポートを生成します。

次の図に、CollectorおよびReporterのコンポーネントとアーキテクチャを示します。

図 - CollectorおよびReporterのコンポーネントとアーキテクチャ

図の説明が続きます
「図 - CollectorおよびReporterのコンポーネントとアーキテクチャ」の説明

データベース機密データ評価レポート

Discovererコンポーネントを使用して、データベース機密データ評価レポートを生成します。

次の図に、Discovererのコンポーネントとアーキテクチャを示します。

図 - Discovererのコンポーネントとアーキテクチャ

図の説明が続きます
「図 - Discovererのコンポーネントとアーキテクチャ」の説明

Collectorの実行

Collectorは、データベースに問い合せて、Reporterによって分析されるデータを収集します。

注意:

Collectorはデータベースに接続します。Collectorを実行する前に、ターゲット・データベースおよびリスナーが稼働していることを確認してください。
Collectorを実行するには、次のようにします。
  1. Collectorを実行するための引数を指定します。
    $ dbsat collect <connect_string> <destination>

    dbsat collectコマンドには、次のオプションおよび引数があります。

    • connect_string

      データベースに接続するための接続文字列を指定します。

      例: dbsat@orcl

    • destination

      データベース・セキュリティ評価レポートの場所およびファイル名を指定します。拡張子を追加しないでください。

      例: /home/oracle/dbsat/db04

  2. Collectorを実行します。
    $ ./dbsat collect dbsat@orcl db04

    次のような出力結果が表示されます。

    Connecting to the target Oracle database...
    
    SQL*Plus: Release 18.0.0.0.0 - Production on Wed Feb 27 04:49:24 2019
    Version 18.3.0.0.0
    
    Copyright (c) 1982, 2018, Oracle. All rights reserved.
    
    Enter password:
    Last Successful login time: Tue Feb 26 2019 17:19:06 -05:00
    
    Connected to:
    Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
    Version 18.3.0.0.0
    
    Setup complete.
    SQL queries complete.
    OS commands complete.
    Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
    Version 18.3.0.0.0
    DBSAT Collector completed successfully.
    
    Calling /u01/app/oracle/product/version/db_1/bin/zip to encrypt db04.json...
    
    Enter password:
    Verify password:
      adding: db04.json (deflated 88%)
    zip completed successfully.
    $

    注意:

    ファイルを暗号化しない場合は、-nオプションを指定して、dbsat collectスクリプトを起動します。これはお薦めしません。

    マルチテナント・コンテナ・データベースのルート・コンテナでCollectorを実行すると、ルート・コンテナ固有のデータを収集し、プラガブル・データベースからは収集しません。特定のプラガブル・データベースにアクセスする必要がある場合は、そのようなプラガブル・データベースについて個別にCollectorを実行する必要があります。

Reporterの実行

Reporterは、Collectorによって収集されたデータを分析し、データベースのセキュリティを改善するための推奨事項を作成します。

Reporterは、dbsat reportを使用して起動できます。
Reporterを実行するには、次のようにします。
  1. Pythonのバージョンが2.6以降であり、インストールされていることを確認します。
    [oracle@db04 sat]$ python -V

    次のような出力が表示されます。

    Python 2.7.11rc1

  2. Reporterを実行するための引数を指定します。
    $ dbsat report [-a] [-n] [-x <section>] <pathname>

    引数pathnameは、DBSAT Collectorによって生成されるデータ・ファイルdb04へのフルパスまたは相対パス名を表します。このファイルがデータ収集時に暗号化されている場合は、Reporterから要求されたときに暗号化パスワードを指定する必要があります。

    Reporterでは、次のコマンドライン・オプションがサポートされています。

    • -a

      すべてのデータベース・ユーザー・アカウントを分析に含めます。(ロックされたOracle提供のアカウントは、データベースへの接続に使用できないため、デフォルトで除外されます。)

    • -n

      生成されたレポートを暗号化しないことを指定します。

      注意:

      セキュリティ上の理由から、これはお薦めしません。
    • -x

      レポートからセクションを除外します。

      有効なセクションは次のとおりです。

      • USER: ユーザー・アカウント

      • PRIV: 権限およびロール

      • AUTH: 認可制御

      • CRYPT: 暗号化

      • ACCESS: ファイングレイン・アクセス制御

      • AUDIT: 監査

      • CONF: データベース構成

      • NET: ネットワーク構成

      • OS: オペレーティング・システム

      複数のセクションを除外するには、次のようにカンマ区切りリストを使用します。

      -x USER,PRIV

      または次のように指定します。

      -x USER -x PRIV

      このオプションを省略すると、レポートのセクションがすべて含まれます。

    ReporterによってHTML、Excel、JSONおよびテキスト形式で作成されるレポート・ファイルの生成には、同じパス名が使用され、適切なファイル拡張子が付けられます。

  3. Reporterを実行します。
    $ ./dbsat report db04

    次のような出力結果が表示されます。

    Archive:  db04.zip
    [db04.zip] db04.json password: 
      inflating: db04.json               
    DBSAT Reporter ran successfully.
    Calling /usr/bin/zip to encrypt the generated reports...
    Enter password: 
    Verify password: 
    	zip warning: db04_report.zip not found or empty
      adding: db04_report.txt (deflated 82%)
      adding: db04_report.html (deflated 86%)
      adding: db04_report.xlsx (deflated 3%)
      adding: db04_report.json (deflated 85%)
    zip completed successfully.
  4. 出力レポートの.zipファイルを暗号化するためのパスワードを指定します。

    .zipが作成されます。

    注意:

    .zipファイルは、ReporterおよびDiscovererの出力に使用されます。混乱を避けるために、両方の出力を作成する場合は、同じパスワードを使用することをお薦めします。
  5. データベース・セキュリティ評価レポートを利用できるように、.zipファイルの内容を抽出します。要求されたら、パスワードを入力して、ステップ4で指定した.zipファイルを復号化します。

    .zipファイルの内容が抽出されます。

  6. 適切なツールを使用してレポート・ファイルから推奨事項を読みます。

    例: Linuxではviを使用して.txtファイルを読みます。

    例: .htmlファイルを表示するには、ブラウザを使用します。

Discovererの使用

Discovererは、SQL問合せを実行し、構成ファイルおよびパターン・ファイルで指定された設定に基づいて評価対象となるシステムからデータを収集します。

Discovererの構成
dbsat.configの構成

構成ファイルの設定により、Discovererの動作が決まります。

Discovererを構成するには、次のようにします。
  1. DBSATがインストールされているディレクトリにアクセスします。
  2. Discover/confディレクトリに移動します。sample_dbsat.configファイルのコピーを作成し、使用しているサイトに固有の要件に一致するようにファイルの名前を変更します。たとえば、ファイルの名前をcustom_dbsat.configに変更できます。

    注意:

    複製ファイルを作成することで、カスタム設定が再インストール時に上書きされなくなります。
  3. custom_dbsat.configを開きます。

    構成ファイルの内容を次に示します。

    [Database]
    	DB_HOSTNAME = localhost
    	DB_PORT = 1521
    	DB_SERVICE_NAME = 
    
    	SSL_ENABLED = FALSE
    	SSL_TRUSTSTORE = 
    	SSL_TRUSTSTORE_TYPE = 
    	SSL_KEYSTORE = 
    	SSL_KEYSTORE_TYPE = 
    	SSL_DN = 
    	SSL_VERSION = 
    	SSL_CIPHER_SUITES = 
     
    [Discovery Parameters]
    	sensitive_pattern_files = sensitive_en.ini
    	schema_scope = ALL
    	minrows = 1
    	exclusion_list_file =        
    
    [Sensitive Categories]
        Identification Info - National IDs = High Risk
        Identification Info - Personal IDs = High Risk
        Identification Info - Public IDs = High Risk
        Biographic Info - Address = High Risk
        Biographic Info - Family Data = High Risk
        Biographic Info - Extended PII = High Risk
        Biographic Info - Restricted Data = High Risk
        IT Info - User Data = High Risk
        IT Info - Device Data = Medium Risk
        Financial Info - Card Data = High Risk
        Financial Info - Bank Data = High Risk
        Health Info - Insurance Data = High Risk
        Health Info - Provider Data = Medium Risk
        Health Info - Medical Data = Medium Risk
        Job Info - Employee Data = High Risk
        Job Info - Org Data = Low Risk
        Job Info - Compensation Data = High Risk
        Academic Info - Student Data = High Risk
        Academic Info - Institution Data = Medium Risk
        Academic Info - Performance Data = Low Risk

    注意:

    セクションの[Database][Discovery Parameters]および[Sensitive Categories]エントリは保持します。これらの行を削除すると、ツールの実行でエラーが発生します。
  4. 設定を構成します。構成設定の詳細は、構成設定を参照してください。
  5. 構成ファイルを保存して閉じます。
構成設定
セクション キー 説明
[Database] DB_HOSTNAME

<hostname> | <ip_address>

ターゲット・データベース・サーバーのホスト名またはIPアドレス

- DB_PORT

<port number>

デフォルトは、1521です。

ターゲット・データベースのリスナー・ポート番号。ポート番号を指定しないと、デフォルト・ポート1521が使用されます。

- DB_SERVICE_NAME

<service_name>

ターゲット・データベースのサービス名

- SSL_ENABLED

TRUE | FALSE

デフォルトはFALSEです。

データベース・サーバーに接続するときにSSLプロトコルを有効にするか無効にするかを指定します。これはオプションの引数です。

SSL_ENABLEDの値をTRUEに設定することをお薦めします。データベース・サーバーへのSSL接続が必要でない場合は、デフォルトのFALSE値を保持してください。

SSL_ENABLED = TRUEの場合は、SSL_TRUSTSTOREが必須です。

- SSL_TRUSTSTORE

<TrustStore/TrustStoreファイル名への絶対パス>

例: /opt/oracle/wallets/truststore.jks

TrustStoreおよびTrustStoreファイル名への絶対パスを指定します。

SSL_ENABLED = TRUEの場合は必須です。

- SSL_TRUSTSTORE_TYPE

PKCS12 | JKS | SSO

TrustStoreのタイプを指定します。

Truststoreがウォレットの場合はPKCS12を使用します。

TruststoreがJava KeyStoreの場合はJKSを使用します。

Truststoreが自動ログインSSOウォレットの場合はSSOを使用します。

- SSL_KEYSTORE

<KeyStore/KeyStoreファイル名への絶対パス>

例: /opt/oracle/wallets/keystore.jks

KeyStoreおよびKeyStoreファイル名への絶対パスを指定します。

SSL_KEYSTOREが指定されていない場合、SSL_TRUSTSTOREに指定された値が使用されます。

データベース・サーバーにクライアント認証が必要な場合は必須です。

- SSL_KEYSTORE_TYPE

PKCS12 | JKS | SSO

KeyStoreのタイプを指定します。

KeyStoreがウォレットの場合はPKCS12を使用します。

KeyStoreがJava KeyStoreの場合はJKSを使用します。

KeyStoreが自動ログインSSOウォレットの場合はSSOを使用します。

- SSL_DN

<distinguished_name>

ターゲット・データベース・サーバーの識別名(DN)です。

サーバーのDNを確認する必要がある場合はDNを指定します。

これはオプションの引数です。

- SSL_VERSION

1.0 | 1.1 | 1.2

デフォルトは1.2です。

データベース・サーバーへの接続時に使用するSSLプロトコルのバージョンを指定します。これはオプションの引数です。

SSLバージョンTLSv1.0には1.0を使用します。

SSLバージョンTLSv1.1には1.1を使用します。

SSLバージョンTLSv1.2には1.2を使用します。

- SSL_CIPHER_SUITES

<cipher_suite1>,<cipher_suite2>

例: TLS_RSA_WITH_AES_256_CBC_SHA256 , SSL_RSA_WITH_RC4_128_MD5

使用する暗号アルゴリズムを指定します。複数のエントリをカンマ区切りリストとして指定できます。

これはオプションの引数です。

サポートされる暗号サイトの詳細は、https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.htmlを参照してください。

[Discovery Parameters] SENSITIVE_PATTERN_FILES

<file_name> | <file_name1>, <file_name2>

デフォルトはsensitive_enです。

使用するパターン・ファイルを指定します。複数のファイルをカンマ区切りリストとして指定できます。上限は、10ファイルです。

機密データ・タイプ・パターン・ファイルの構成の詳細は、パターン・ファイルの構成(オプション)を参照してください。

- SCHEMA_SCOPE

ALL | <schema1>,<schema2>

デフォルトは、ALLです。

スキャン対象となるスキーマを指定します。複数のスキーマをカンマ区切りリストとして指定できます。

- MINROWS

<numerical value>

デフォルトは、1です。

スキャン対象となる表について、表の最小行数を指定します。

minrowsパラメータで指定された値より行数が少ない表はスキャンから除外されます。

- EXCLUSION_LIST_FILE

<exclusion_list_filename>.ini

スキーマ、表または列をスキャンから除外するのに使用するファイルを指定します。

除外リスト・ファイルの構成の詳細は、除外リスト・ファイルの構成(オプション)を参照してください。

[Sensitive Categories]    

[Sensitive Categories]セクションでは、使用する機密カテゴリを定義します。有効なリスク・レベルは次のとおりです。

  • Low Risk

  • Medium Risk

  • High Risk

機密データのタイプは機密データ・タイプ・パターン・ファイルで定義します。機密データ・タイプ・パターン・ファイルの構成の詳細は、パターン・ファイルの構成(オプション)を参照してください。

パターン・ファイルの構成(オプション)

Database Security Assessment Toolでは、パターン・ファイルで定義されている機密データのタイプを検索します。

機密タイプについて

パターン・ファイルには、検索対象となるパターンが含まれます。パターン・ファイルは、セクション見出し形式[SENSITIVE_TYPE_NAME]で定義されたセクションにグループ分けされています。各セクションが機密タイプとなります。

次の例では、FULL NAMEのサンプル機密タイプ・セクションを示します。

[FULL NAME]
COL_NAME_PATTERN = ^(?!.*(ITEM|TAX|BALANCE)).*(FULL.*NAME)|(^|[_-])(CUSTOMER|CUST|CLIENT|PATIENT|PERSON).?(NAME|NM)($|[_-])
COL_COMMENT_PATTERN = ^(?!.*(ITEM|TAX|BALANCE)).*(FULL.?NAME)|(CUSTOMER|CUST|CLIENT|PATIENT|PERSON).?NAME
SENSITIVE_CATEGORY = Identification Info - Public IDs

機密タイプ名[SENSITIVE_TYPE_NAME]は、データベース機密データ評価レポート - 機密列の詳細セクションの機密タイプ列に表示されます。データベース機密データ評価レポートの詳細は、データベース機密データ評価レポートを参照してください。

各機密タイプは、COL_NAME_PATTERNCOL_COMMENT_PATTERNおよびSENSITIVE_CATEGORYの3つのパラメータで定義します。

COL_NAME_PATTERN

COL_NAME_PATTERNパラメータは、検索するテキストをデータベース列名の正規表現(RegExp)パターンで指定します。

(^LNAME$)|((LAST|FAMILY|SUR|PATERNAL).*NAME$)

前述の例では、データベース列名のRegExpパターンで次のテキストが検索されます。

  • (^LNAME$) - LNAMEという名前の列が検索されます。

  • ((LAST|FAMILY|SUR|PATERNAL).*NAME$)LASTFAMILYSURまたはPATERNALを含み、その後に任意の文字が続いてNAMEで終わる列名を検索します。たとえば、LAST_NAMEまたはCUSTOMER_SURNAMEです。

COL_COMMENT_PATTERN

COL_COMMENT_PATTERNパラメータは、検索するテキストをデータベース列コメントの正規表現(RegExp)パターンで指定します。

SENSITIVE_CATEGORY

SENSITIVE_CATEGORYパラメータは、機密データのタイプを指定します。機密データの公開タイプに関連付けられるリスク・レベルは、sample_dbsat.configファイルに指定します。リスク・レベルは次のとおりです。

  • Low Risk

  • Medium Risk

  • High Risk

sample_dbsat.configファイルの構成の詳細は、構成設定を参照してください。

パターン・ファイルのカスタマイズ
パターン・ファイルをカスタマイズするには、次のようにします。
  1. DBSATがインストールされているディレクトリにアクセスします。
  2. Discover/confディレクトリに移動します。sensitive_en.iniファイルのコピーを作成し、ファイルの名前をmy_sensitive_en.iniに変更します。

    注意:

    Discover/confディレクトリには、欧州の主要言語のデータ・ディクショナリの機密データを発見しやすくする、言語固有の次の.iniファイル(ファイル名 - 国、言語)が含まれています。

    • sensitive_de.ini - ドイツ語、ドイツ。

    • sensitive_es.ini - スペイン語、スペイン。

    • sensitive_fr.ini - フランス語、フランス。

    • sensitive_it.ini - イタリア語、イタリア。

    • sensitive_nl.ini - オランダ語、オランダ。

    • sensitive_pt.ini - ポルトガル語、ポルトガル。

  3. my_sensitive_en.iniを開きます。
  4. 新しい機密タイプを追加したり、既存の機密タイプを変更して設定をカスタマイズします。

    新しい機密タイプおよび機密カテゴリをパターン・ファイルに追加する方法の詳細は、機密タイプについておよび構成設定を参照してください。

  5. my_sensitive_en.iniを保存して閉じます。
    パターン・ファイルが構成されます。
  6. my_sensitive_en.iniへの参照をcustom_dbsat.configファイルに追加して、このファイルをDiscovererスキャンに組み込みます。
    sensitive_pattern_files = my_sensitive_en.ini
custom_dbsat.configファイルでパターン・ファイルを参照する方法の詳細は、dbsat.configの構成を参照してください。
正規表現について

検索パラメータは、文字クラス、数量子、境界正規表現エンジン、論理演算子などの正規表現を使用して定義します。正規表現は、COL_NAME_PATTERNおよびCOL_COMMENT_PATTERNパラメータの指定に使用します。

一般的に使用される正規表現は、次のとおりです。

境界正規表現エンジン

境界正規表現エンジンは、パターン・マッチを検索する文字列の位置を指定することで、パターン・マッチの精度を高めるのに使用します。

表 - 境界正規表現エンジン

境界構文 説明

^

指定されたテキストを文字列の先頭で検索します(starts with検索)。

例: ^VISAは、VISAで始まるデータベースの列名および列コメントを検索します。

$

指定されたテキストを文字列の末尾で検索します(ends with検索)。

例: DATUM$は、DATUMで終わるデータベースの列名および列コメントを検索します。

\b

単語境界を示します。指定されたテキストの完全一致を文字列内の任意の場所で検索します(exact match検索)。

例: \bAGE\bは、AGEが含まれるデータベースの列名および列コメントを検索します。この検索では、EMPLOYEE_AGEAGE_EMPLOYEEなどが識別されます。AGEINGEMPLOYEEAGEなどは無視されます。

境界正規表現エンジンを指定しない場合は、contains検索が実行されます。

例: ELECTORALは、ELECTORALが含まれるデータベースの列名および列コメントを検索します。この検索では、ELECTORAL_IDID_ELECTORALELECTORALIDなどが識別されます。

exact match検索は、^および$を一緒に使用して実行することもできます。

例: ^ADDRESS$は、ADDRESSが含まれるデータベースの列名および列コメントを検索します。この検索では、PRIMARY_ADDRESSADDRESS_HOMEなどが識別されます。ADDRESSESEMPLOYEEADDRESSなどは無視されます。

境界正規表現エンジンの詳細は、境界正規表現エンジンを参照してください。

論理演算子

論理演算子は、ANDまたはOR検索を指定するのに使用します。

例: NAME DESIGNATIONは、NAMEかつDESIGNATIONが含まれるデータベースの列名および列コメントを検索します。NAME | DESIGNATIONは、NAMEまたはDESIGNATIONが含まれるデータベースの列名および列コメントを検索します。

文字クラス

文字クラスは、文字検索を指定するのに使用します。DBSATは事前定義済のRegexキャラクタ・クラスをサポートします。

最も使用されるのはドット(.)です。ドット(.)は、任意の文字が含まれるデータベースの列名および列コメントを検索します。*と組み合せて使用すると、検索では、任意の文字の出現を何回でも識別します。

例: JOB.*は、後に他の文字が続くJOBが含まれるデータベースの列名および列コメントを検索します。

文字クラスの詳細は、文字クラスを参照してください。

数量子

数量子を使用すると、照合対象の出現数を指定できます。

表 - 数量子

数量子 説明

X?

指定されたテキストXの1回または0回の出現を検索します。

例: ID_?CARDは、IDCARDID_CARDなどのデータベースの列名および列コメントを検索します。

X*

指定されたテキストXの0回以上の出現を検索します。

例: TERM.*DATEは、TERMINAL_DATELAST_TERMIN_DATEなどのデータベースの列名および列コメントを検索します。

数量子の詳細は、数量子を参照してください。

例 -

(^JOB.*(TITLE|PROFILE|POSITION)$)|^POSITIONの検索では、JOBで始まり、その後に任意の文字が0回以上出現し、TITLEPROFILEまたはPOSITIONで終わるデータベースの列名および列コメントを識別します。また、この検索では、POSITIONで始まるデータベースの列名および列コメントも識別します。

注意:

正規表現でメタ文字をエスケープするには、バックスラッシュ("\")を使用します。

正規表現の詳細は、正規表現を参照してください。

除外リスト・ファイルの構成(オプション)

スキャンから除外するスキーマ、表または列を除外リスト・ファイルに指定できます。

これはオプションのステップですが、多くの場合、Discovererを微調整して誤検出を除外するために必要となります。
除外リスト・ファイルを作成するには、次のようにします。
  1. 除外リスト・ファイルを作成して、Discover/confディレクトリにmyexclusion_listという名前で保存します。
  2. Discovererスキャンから除外するスキーマ、表または列を指定します。

    除外リスト・ファイルのサンプル内容を次に示します。

    PAYROLL
    IT.ENTITLEMENTS
    HR.EMPLOYEE.MARITAL_STATUS
    HR.JOB.CANDIDATE

    書式SchemaName.TableName.ColumnNameを使用して除外するスキーマ、表または列を指定します。各除外エントリは新しい行に入力します。

    上の例では、PAYROLLがPAYROLLスキーマを検出スキャンから除外し、IT.ENTITLEMENTSはITスキーマのENTITLEMENTS 表を除外し、HR.EMPLOYEE.MARITAL_STATUSは列MARITAL_STATUSHR.EMPLOYEE表から除外します。同様に、HR.JOB.CANDIDATEは列CANDIDATEHR.JOB表から除外します。

    ヒント:

    DiscovererのCSVレポートには、完全修飾列名(FULLY_QUALIFIED_COLUMN_NAME)の列が含まれます。この列は、除外リスト・ファイルの内容を作成し、後続の実行で不要な列または誤検出をレポートから削除する速度を上げるのに使用できます。
  3. 除外リスト・ファイルを保存して閉じます。
  4. custom_dbsat.configファイルのexclusion_list_fileエントリをexclusion_list_file = myexclusion_listに更新します。
除外リスト・ファイルを参照する方法の詳細は、dbsat.configの構成を参照してください。
証明書とウォレットの構成(オプション)

セキュリティを高めるために、Oracle Databaseではクライアントとサーバーの接続を暗号化するSecure Sockets Layer (SSL)サポートが提供されています。SSL (TLS)暗号化がデータベース・サーバーで構成されている場合、データを接続および検出するにはDiscovererを構成する必要があります。SSLの構成パラメータは、dbsat.configファイルにあります。

DiscovererとSSL接続を確立するために、データベース・サーバーは、ウォレットに格納されている自身の証明書を送信します。クライアントで証明書やウォレットが必要となるかどうかは、サーバーの構成によって決まります。

注意:

証明書とウォレットの構成はオプションのステップで、SSLを使用してOracle Databaseサーバーに接続する場合にのみ実行する必要があります。

証明書とウォレットの構成に関する詳細は、『Oracle Database JDBC開発者ガイドおよびリファレンス』SSLのサポートを参照してください。

Discovererの実行

Discovererを実行するには、次のようにします。
  1. Discovererを実行するための引数を指定します。
    $ dbsat discover [-n] [-c <dbsat.config>] <destination>

    dbsat discoverコマンドには、次のオプションおよび引数があります。

    • -n

      生成されたレポートを暗号化しないことを指定します。

    • -c

      使用する構成ファイルの名前を指定します。dbsat.configファイルの詳細は、dbsat.configの構成を参照してください。

    • destination

      .zipファイルを作成するフルパスまたは相対パス名を指定します。拡張子を追加しないでください。

      例:

      /home/oracle/dbsat/discover1
  2. Discovererを実行します。
    $ ./dbsat discover -c Discover/conf/custom_dbsat.config db04

    次のような出力結果が表示されます。

    DBSAT Discover ran successfully.
    Calling /usr/bin/zip to encrypt the generated reports...
    Enter password: 
    Verify password: 
      adding: db04_discover.html (deflated 86%)
      adding: db04_discover.csv (deflated 86%)
    Zip completed successfully.
    [oracle@db04 201]$
  3. .zipファイルを暗号化するためのパスワードを指定します。

    <destination>_report.zipという名前のzipファイルが作成されます。ファイル<destination>_report.zipが存在する場合、検出結果は既存のzipファイルに追加されます。

    注意:

    .zipファイルは、ReporterおよびDiscovererの出力に使用されます。混乱を避けるために、両方の出力を作成する場合は、同じパスワードを使用することをお薦めします。
  4. データベース機密データ評価レポートを利用できるように、.zipファイルの内容を抽出します。要求されたら、パスワードを入力して、ステップ3で指定した.zipファイルを復号化します。

    .zipファイルの内容が抽出されます。

  5. 適切なツールを使用してデータベース機密データ評価レポートを読みます。

    例: .htmlファイルを表示するには、ブラウザを使用します。

    例: .csvファイルを開くには、OpenOffice CalcExcelなどのスプレッドシート・リーダーを使用します。

データベース・セキュリティ評価ツールのレポート

データベース・セキュリティ評価ツールでは、様々な対象者および目的に対して多様な形式で出力を生成します。

データベース・セキュリティ評価レポート

CollectorおよびReporterコンポーネントを使用して、データベース・セキュリティ評価レポートをHTML、Excel、JSONおよびテキスト形式で生成します。

HTMLレポートでは、評価の詳細結果をナビゲートしやすい形式で示します。Excel形式では、HTMLレポートに含まれる詳細出力がない各結果の概要を示します。また、追跡および優先度付けのために列を追加できます。テキスト形式のレポートでは、別の使用目的で出力の一部をコピーするのが便利になります。また、レポート・コンテンツが含まれるJSONドキュメントがフィルタリング、比較、集計および他のツールとの統合をしやすくするために提示されます。

データベース・セキュリティ評価レポート - サマリー

データベース・セキュリティ評価レポート - サマリー・セクションには、次の情報が含まれます。

セクション 説明

評価日時

データが収集された日付および最後のデータベース・セキュリティ評価レポートが生成された日付が表示されます。DBSAT Reporterのバージョンも表示されます。

データベース識別情報

DBSATによって評価されたデータベースの詳細が表示されます。

サマリー

分析結果の概要が表示されます。

次の図に、データベース・セキュリティ評価レポート - サマリー・セクションの例を示します。

図 - データベース・セキュリティ評価レポート - サマリー



サマリー・セクションの次には、基本情報セクションが表示されます。

データベース・セキュリティ評価レポート - 基本情報

データベース・セキュリティ評価レポート - 基本情報セクションには、次の情報が含まれます。

セクション 結果ID 説明

データベース・バージョン

-

CollectorおよびReporterによって評価されたデータベースのバージョンが表示されます。

セキュリティ機能

-

セキュリティ機能およびそれらが使用中かどうかが表示されます。

パッチ・チェック

INFO.PATCH

インストールされているパッチに関する情報が表示されます。

セキュリティ修正がリリースされたら適用して、データベース・ソフトウェアを最新の状態に保つことが重要です。オラクル社は、四半期の定期的なスケジュールで、リリース更新、パッチ・セット更新、バンドル・パッチの形式で包括的なパッチを発行します。これらの更新が入手可能になったら、すぐに適用してください。

次の図に、データベース・セキュリティ評価レポート - 基本情報セクションの例を示します。

図 - データベース・セキュリティ評価レポート - 基本情報



基本情報セクションの次には、ユーザー・アカウント・セクションが表示されます。

データベース・セキュリティ評価レポート - ユーザー・アカウント

データベース・セキュリティ評価レポート - ユーザー・アカウント・セクションには、次の情報が含まれます。

名前 結果ID 説明

ユーザー・アカウント

-

ユーザー・アカウントおよび各アカウントの次の情報が表示されます。

  • ユーザー名 — ユーザーの名前が表示されます。

  • ステータス — アカウントがオープン、ロック済、期限切れのいずれであるかが表示されます。

  • プロファイル — プロファイル・タイプが表示されます。

  • 表領域 — アカウントが使用する表領域が表示されます。

  • Oracle定義 — アカウントがOracle定義の表領域を使用しているかどうかが表示されます。

  • 認可タイプ — 使用されている認可タイプが表示されます。

SYSTEMまたはSYSAUX表領域のユーザー・アカウント

USER.TBLSPACE

Oracleが提供する予約済の表領域を使用する通常のユーザー・アカウントに関する情報が表示されます。

SYSTEMおよびSYSAUX表領域は、Oracleが提供するユーザー・アカウント用に予約済です。これらのリソースの枯渇によるサービス拒否の発生を回避するために、通常のユーザー・アカウントでこれらの表領域を使用しないでください。Oracle Database 12.2より前のバージョンではSYSTEM表領域を暗号化できないことも、この表領域にユーザー・スキーマを作成しないようにする理由の1つです。

サンプル・スキーマ

USER.SAMPLE

SCOTT、HR、OE、SH、PM、IX、ADAMS、BLAKE、CLARKおよびBIなどのサンプル・スキーマを使用するユーザー・アカウントに関する情報が表示されます。

サンプル・アカウントは開発者向けの簡単な例としてOracleが提供するよく知られたアカウントです。通常これらは本番データベースでは使用しませんが、データベースの攻撃可能面を不必要に増やすことになるため削除してください。

非アクティブ・ユーザー

USER.INACTIVE

使用されていないユーザー・アカウントおよび非アクティブ時にロックされるように構成されていないアカウントに関する情報が表示されます。

ユーザー・アカウントが使用されなくなると、システムの攻撃可能面を不必要に増やしてしまいますが、それに見合うメリットはありません。さらに、アカウントを定期的に使用していなければ、認可されていない使用に気づかない可能性が高くなります。30日を超えて使用されていないアカウントは調査して、アクティブのままにしておくかどうかを判断してください。ユーザーに割り当てられたプロファイルのINACTIVE_ACCOUNT_TIMEを設定するのも1つの解決策です。

大/小文字を区別するパスワード

USER.CASE

大/小文字を区別するパスワードが有効かどうかが表示されます。

大/小文字を区別するパスワードを使用すると大文字と小文字の両方が含まれるため、しらみつぶしに検索してパスワードを推測しようとする攻撃者が検索する必要があるパスワードの組合せが大幅に増えるので、使用することをお薦めします。SEC_CASE_SENSITIVE_LOGONTRUEに設定すると、パスワードの大文字と小文字がデータベースで区別されます。

パスワードが期限切れのユーザー

USER.EXPIRED

パスワードが期限切れのユーザー・アカウントに関する情報が表示されます。

ユーザーがパスワードを定期的に変更するようにパスワードに期限を設定します。ユーザーのパスワードの期限切れが30日を超えていると、少なくともそれだけの期間、ユーザーがログインしていないことを示します。長期間使用されていないアカウントは調査して、アクティブのままにしておくかどうかを判断してください。

デフォルト・パスワードのユーザー

USER.DEFPWD

デフォルト・パスワードのユーザー・アカウントに関する情報が表示されます。

Oracleの事前定義済アカウントのデフォルトのアカウント・パスワードはよく知られています。デフォルト・パスワードのアクティブなアカウントがあれば攻撃者が簡単に侵入できますが、よく知られたパスワードはロック済アカウントでも変更しておいてください。

最小クライアント認証バージョン

USER.AUTHVERS

sqlnet.oraファイルのALLOWED_LOGON_VERSION_SERVERパラメータに指定された最小クライアント・バージョンを満たさないユーザー・アカウントに関する情報が表示されます。

時間の経過とともに、ユーザー・アカウントのパスワード認証用に、よりセキュアなアルゴリズムがOracleのリリースでサポートされるようになっています。古いクライアント・ソフトウェアとの互換性を維持するために、以前のバージョンのパスワードもデータベースで引き続きサポートされています。sqlnet.oraのパラメータALLOWED_LOGON_VERSION_SERVERにより、データベースが受け入れる最小パスワード・バージョンが決まります。セキュリティを最大限に確保するために、すべてのクライアント・システムをアップグレードしたら、データベースでサポートされる最大値をこのパラメータに設定してください。

パスワード・ベリファイア

USER.VERIFIER

廃止されたパスワード・ベリファイアを使用しているユーザー・アカウントに関する情報が表示されます。

ユーザー・アカウントごとに、複数のベリファイア(ユーザー・パスワードのハッシュ)がデータベースに保存されている場合があります。各ベリファイアでは、異なるバージョンのパスワード認証アルゴリズムがサポートされています。クライアントでサポートされている最新のアルゴリズムでユーザーを認証できるように、データベースでサポートされている最新バージョンのパスワード・ベリファイアをすべてのユーザー・アカウントに含めてください。すべてのクライアントを更新したら、廃止されたベリファイアを削除してユーザー・アカウントのセキュリティを向上できます。XMLデータベースの認証には、HTTPパスワード・ベリファイアが使用されます。このアクセスが必要ではないユーザー・アカウントからは、ALTER USERコマンドを使用してこれらのベリファイアを削除します。

ユーザー・パラメータ

USER.PARAM

ユーザー・アカウント初期化パラメータに関する情報が表示されます。

SEC_MAX_FAILED_LOGIN_ATTEMPTSには、接続がクローズされる前に試行できる1つのセッション内の最大ログイン失敗回数を構成します。これは、ログイン試行の失敗回数によるユーザー・アカウントのロックを制御するユーザー・プロファイル・パラメータFAILED_LOGIN_ATTEMPTSとは独立して機能します。ユーザー・プロファイルに設定されているリソースの制約を有効にするには、RESOURCE_LIMITTRUEに設定する必要があります。

ユーザー・プロファイル

-

ユーザー・プロファイルに関する情報が表示されます。

パスワード存続期間無制限のユーザー

USER.NOEXPIRE

ユーザー・プロファイルのパスワード有効期間の強制に関する情報が表示されます。

ユーザーがパスワードを定期的に変更するようにパスワードに期限を設定します。一時アカウントを自動的に無効にするメカニズムも提供されています。失効しないパスワードは長期間にわたって変更されない可能性があります。パスワードを定期的に変更する必要がないと、同じパスワードを複数のアカウントにユーザーが使用する可能性も高くなります。

ログイン試行失敗後のアカウントのロック

USER.NOLOCK

ユーザー・プロファイルのログイン試行の失敗の強制に関する情報が表示されます。

一般的なパスワード・セットのすべての可能性を単純に試行して、ユーザーのパスワードを推測しようとする攻撃者もいます。この攻撃に対する防御として、FAILED_LOGIN_ATTEMPTSおよびPASSWORD_LOCK_TIMEプロファイル・リソースを使用して、ログイン試行に複数回失敗してもログインに成功しない場合は、ユーザー・アカウントを特定の期間ロックすることをお薦めします。

パスワード検証関数

USER.PASSWD

パスワード検証機能の強制に関する情報が表示されます。

パスワード検証機能は、ユーザーのパスワードが複雑さの最小要件を満たしていることを確認するために使用します。これには、長さ、数字や句読点文字の使用、前のパスワードとの差異などの要素が含まれる場合があります。Oracleが提供する事前定義済関数やカスタムPL/SQL関数を使用できます。パスワード検証機能はすべてのユーザー・プロファイルに含めてください。

注意:

ロックされている事前定義済のOracleアカウントはこのレポートには含まれません。すべてのユーザー・アカウントを含めるには、-aオプションを指定してレポートを実行します。

次の図に、データベース・セキュリティ評価レポート - ユーザー・アカウント・セクションの例を示します。

図 - データベース・セキュリティ評価レポート - ユーザー・アカウント



ユーザー・アカウント・セクションの次には、権限およびロール・セクションが表示されます。

データベース・セキュリティ評価レポート - 権限およびロール

データベース・セキュリティ評価レポート - 権限およびロール・セクションには、次の情報が含まれます。

名前 結果ID 説明

すべてのシステム権限

PRIV.SYSTEM

ユーザーに付与されているシステム権限が表示されます。

システム権限があれば、データにアクセスしたり、データベース全体に対する管理操作を行えます。最小権限の原則に従って、これらの権限は慎重に付与してください。受け手が他のユーザーに権限を付与する必要がある場合にのみ、管理オプションを使用してシステム権限を付与してください。

直接付与された権限には(D)が付いています。ADMINロールが付与された権限には(*)が付いています。

すべてのロール

PRIV.ROLES

ユーザーに付与されているすべてのロールが表示されます。

関連する権限のグループを管理する場合、特に特定のタスクまたは職務に権限が必要な場合には、ロールを使用するのが便利です。定義範囲が広いロールは、個々の受け手に必要以上の権限を与える可能性があるため注意が必要です。受け手が他のユーザーのロールの変更や付与を行う必要がある場合にのみ、管理オプションを使用してロールを付与してください。

アカウント管理権限

PRIV.ACCT

ユーザーに付与されているアカウント管理権限が表示されます。

ユーザー管理権限(ALTER USERCREATE USERDROP USER)を使用して、パスワードの変更など、他のユーザー・アカウントの変更および作成を行えます。この権限を乱用すれば、さらに大きな権限がある可能性がある別のユーザーのアカウントにアクセスできます。

権限管理権限

PRIV.MGMT

ユーザーに付与されている権限管理権限が表示されます。

権限管理権限(ALTER ANY ROLECREATE ROLEDROP ANY ROLEGRANT ANY OBJECT PRIVILEGEGRANT ANY PRIVILEGEGRANT ANY ROLE)があるユーザーは、自分および他のユーザーに付与されている一連の権限を変更できます。この権限があればデータベースの多くのセキュリティ制御を回避できるため慎重に付与する必要があります。

データベース管理権限

PRIV.DBMGMT

ユーザーに付与されているデータベース管理権限が表示されます。

データベース管理権限(ALTER DATABASEALTER SYSTEMCREATE ANY LIBRARYCREATE LIBRARY)を使用して、データベースの運用を変更できるため、セキュリティ保護をパイパスすることも可能です。この権限は、信頼できる管理者にのみ付与する必要があります。

監査管理ツール

PRIV.AUDMGMT

ユーザーに付与されている監査管理ツールのアクセス権が表示されます。

DBMS_AUDIT_MGMTパッケージでは、監査管理ツールの実行が許可されます。この機能を使用する正当な必要性があるユーザーのみに厳しく制限してアクセス権を付与してください。

監査管理権限

PRIV.AUDIT

ユーザーに付与されている監査管理権限が表示されます。

監査管理権限(AUDIT ANYAUDIT SYSTEM)を使用して、データベースの監査ポリシーを変更できます。この権限があれば悪意のある活動を隠蔽できるため慎重に付与する必要があります。

データ・アクセス権限

PRIV.DATA

ユーザーに付与されているデータ・アクセス権限が表示されます。

データ・アクセス権限(ALTER ANY TABLEALTER ANY TRIGGERCREATE ANY INDEXCREATE ANY PROCEDURECREATE ANY TRIGGERDELETE ANY TABLEINSERT ANY TABLEREAD ANY TABLESELECT ANY DICTIONARYSELECT ANY TABLEUPDATE ANY TABLE)があるユーザーは、すべてのスキーマに保存されているデータに非常に広範にアクセスできます。ほとんどの管理タスクではデータ自身にアクセスする必要がないため、これらの権限は管理者に対しても、まれにしか付与しません。これらの権限の付与を最小限にすることに加えて、Database Vaultのレルムを使用して、これらの権限を使用した機密データへのアクセスを制限することを検討してください。

アクセス制御除外権限

PRIV.EXEMPT

現在有効なアクセス制限除外権限が表示されます。

除外権限(EXEMPT ACCESS POLICYEXEMPT REDACTION POLICY)があるユーザーは、仮想プライベート・データベースおよびデータ・リダクションで施行されている行と列のアクセス制御ポリシーをバイパスできます。ほとんどの管理タスクではデータ自身にアクセスする必要がないため、これらの権限は管理者に対しても、まれにしか付与しません。

パスワード・ベリファイア表に対するアクセス権

PRIV.PASSWD

ユーザーに付与されているパスワード・ベリファイア表に対するアクセス権が表示されます。

これらの権限があるユーザーは、ユーザー・パスワード・ベリファイアを含むオブジェクトにアクセスできます。ベリファイアをオフライン攻撃で使用すればユーザーのパスワードを発見できる場合があります。

制限付きオブジェクトに対するアクセス権

PRIV.OBJ

ユーザーに付与されている制限付きオブジェクトに対するアクセス権が表示されます。

これらの権限があるユーザーはSYSDVSYSAUDSYSまたはLBACSYSスキーマのオブジェクトを直接変更できます。これらのシステム・オブジェクトを操作すると、セキュリティ保護を回避したり、データベースの通常の運用を妨害できる可能性があります。PUBLICに付与するオブジェクト許可は、SYSDVSYSAUDSYSまたはLBACSYSスキーマのオブジェクトに制限する必要があります。

監査オブジェクトに対するアクセス権

PRIV.AUDOBJ

ユーザーに付与されている監査オブジェクトに対するアクセス権が表示されます。

これらの権限があるユーザーは、監査情報を含むオブジェクトに直接アクセスして変更できます。これらのオブジェクトにアクセスできると、悪意のあるユーザーが他のユーザーの権限設定を推測したり、監査レコードを置換または削除して監査情報を操作できる可能性があります。

ユーザー偽装

PRIV.USER

他のユーザーに偽装する権限を付与されたユーザー・アカウントが表示されます。

BECOME USER権限およびこれらのPL/SQLパッケージ(DBMS_AQADM_SYSDBMS_AQADM_SYSCALLSDBMS_IJOBDBMS_PRVTAQIMDBMS_REPCAT_SQL_UTLDBMS_SCHEDULERDBMS_STREAMS_ADM_UTLDBMS_STREAMS_RPCDBMS_SYS_SQLINITJVMAUXLTADMWWV_DBMS_SQLWWV_EXECUTE_IMMEDIATE)では、別のユーザーのIDでSQLコードまたは外部ジョブを実行できます。この機能を使用する正当な必要性があるユーザーのみに厳しく制限してアクセス権を付与してください。

データ流出

PRIV.EXFIL

クライアントやサーバーのデータに対してアクセスやコピーをする権限を付与されたユーザー・アカウントが表示されます。

これらのPL/SQLパッケージ(DBMS_BACKUP_RESTOREUTL_DBWSUTL_ORAMTS)では、ネットワークまたはファイル・システムを使用してデータベースからデータを送信できます。この機能を使用する正当な必要性があるユーザーのみにアクセス権を付与してください。

PUBLICに付与されたシステム権限

PRIV.SYSPUB

すべてのユーザーに付与されているシステム権限が表示されます。

PUBLICに付与された権限はすべてのユーザーが使用できます。管理者でない通常のユーザーにシステム権限は必要ないため、ここに権限が含まれる場合でも、少数のみが含まれるのが普通です。

PUBLICに付与されたロール

PRIV.ROLEPUB

すべてのユーザーに付与されているロールが表示されます。

PUBLICに付与されたロールはすべてのユーザーが使用できます。ほとんどのロールには、すべてのユーザーには不適切な権限が含まれています。

PUBLICに付与された列権限

PRIV.COLPUB

すべてのユーザーに付与されている列アクセス権限が表示されます。

PUBLICに付与された権限はすべてのユーザーが使用できます。ここには、すべてのユーザーがアクセスしてよいデータに対する列権限のみを含めてください。

DBAロール

PRIV.DBA

DBAロールを付与されたユーザー・アカウントが表示されます。

DBAロールは非常に強力で、多くのセキュリティ保護をバイパスするために使用できます。これは、信頼できる少数の管理者にのみ付与する必要があります。さらに、説明責任上の理由から、信頼できるユーザーごとに個別のアカウントを作成してください。他の強力なロールと同様に、絶対に必要な場合以外は、管理オプションでDBAロールを付与しないでください。

その他の強力なロール

PRIV.BIGROLES

最大のデータ・アクセス権限があるロールを付与されたユーザー・アカウントが表示されます。

DBAロールと同様に、これらのロール(AQ_ADMINISTRATOR_ROLEEM_EXPRESS_ALLEXP_FULL_DATABASEIMP_FULL_DATABASESELECT_CATALOG_ROLEEXECUTE_CATALOG_ROLEDELETE_CATALOG_ROLEOEM_MONITOR)には、セキュリティ保護をバイパスするために使用できる強力な権限が含まれています。これらは、信頼できる少数の管理者にのみ付与する必要があります。

Java権限

PRIV.JAVA

データベース内でJavaクラスを実行する権限を付与されたユーザー・アカウントが表示されます。

Java権限では、データベース・ユーザーがデータベース・サーバー内でJavaクラスを実行できるかどうかを制御できます。Javaコードを実行するデータベース・ユーザーには、データベース内のリソースにアクセスするデータベース権限とJavaセキュリティの許可の両方が必要です。これらのリソースには、表やPL/SQLなどのデータベース・リソース、ファイルやソケットなどのオペレーティング・システムのリソース、Oracle JVMのクラス、ユーザーがロードしたクラスが含まれます。各ユーザーのこれらの許可が必要最小限の範囲に限定されていることを確認してください。

管理権限があるユーザー

PRIV.ADMIN

ユーザー・アカウントに付与されている管理権限が表示されます。

管理権限のあるユーザーは保守作業を実行できますが、データベースがオープンしていないときに発生する可能性がある作業もこれに含まれます。SYSDBA権限では、事実上すべての特権操作をユーザーがSYSとして実行できます。Oracle Database 12.1以降では、権限が弱い管理権限が導入されており、完全なSYSDBA権限なしにユーザーが一般的な管理タスクを実行できるようになっています。この職務分担のメリットを活用するには、これらの各管理権限を少なくとも1つのユーザー・アカウントに付与する必要があります。

次の図に、データベース・セキュリティ評価レポート - 権限およびロール・セクションの例を示します。

図 - データベース・セキュリティ評価レポート - 権限およびロール



権限およびロール・セクションの次には、認可制御セクションが表示されます。

データベース・セキュリティ評価レポート - 認可制御

データベース・セキュリティ評価レポート - 認可制御セクションには、次の情報が含まれます。

名前 結果ID 説明

Database Vault

AUTH.DV

Oracle Database Vaultが有効かどうかが表示されます。

Oracle Database Vaultには、権限がある管理ユーザーのアクションを制御する構成可能なポリシーが用意されています。

権限分析

AUTH.PRIV

権限分析が有効かどうかが表示されます。

権限分析では、実際またはシミュレートされたワークロードで使用された権限が記録されます。

次の図に、データベース・セキュリティ評価レポート - 認可制御セクションの例を示します。

図 - データベース・セキュリティ評価レポート - 認可制御



認可制御セクションの次には、ファイングレイン・アクセス制御セクションが表示されます。

データベース・セキュリティ評価レポート - ファイングレイン・アクセス制御

データベース・セキュリティ評価レポート - ファイングレイン・アクセス制御セクションには、次の情報が含まれます。

名前 結果ID 説明

データ・リダクション

ACCESS.REDACT

データ・リダクション・ポリシーが有効かどうかが表示されます。

データ・リダクションでは、データベース問合せの結果で見つかった機密データが自動的にマスクされます。

仮想プライベート・データベース

ACCESS.VPD

仮想プライベート・データベース(VPD)ポリシーが有効かどうかが表示されます。

VPDでは、SQL文に対して表示される表の行と列をきめ細かく制御できます。

Real Application Security

ACCESS.RAS

Real Application Security (RAS)のポリシーが有効かどうかが表示されます。

仮想プライベート・データベース(VPD)の場合と同様に、RASでも、SQL文に対して表示される表の行と列をきめ細かく制御できます。

Label Security

ACCESS.OLS

Oracle Label Securityが有効がどうかが表示されます。

Oracle Label Securityでは、データ・ラベルまたはデータ分類でデータにタグ付けできます。データのラベルが要求元ユーザーのラベルや安全検査と比較されて、機密データへのアクセスが制御されます。

透過的機密データ保護

ACCESS.TSDP

透過的機密データ保護(TSDP)ポリシーが有効かどうかが表示されます。

TSDPはOracle Database 12.1で導入され、機密データを含む各列にデータ・タイプを関連付けることができます。特定のタイプのすべてのインスタンスに様々なデータ・セキュリティ機能をTSDPで適用すれば、均一で一貫した保護を実現できます。

次の図に、データベース・セキュリティ評価レポート - ファイングレイン・アクセス制御セクションの例を示します。

図 - データベース・セキュリティ評価レポート - ファイングレイン・アクセス制御



ファイングレイン・アクセス制御セクションの次には、監査セクションが表示されます。

データベース・セキュリティ評価レポート - 監査

データベース・セキュリティ評価レポート - 監査セクションには、次の情報が含まれます。

名前 結果ID 説明

監査レコード

AUDIT.RECORDS

監査証跡に関する情報が表示されます。

監査はすべてのシステムのセキュリティ保護に欠かせません。監査証跡では、高い権限が付与されたユーザーの活動をモニタリングできます。

文監査

AUDIT.STMT

有効な監査ポリシーにより監査されたSQL文に関する情報が表示されます。

オブジェクト監査

AUDIT.OBJ

有効な監査ポリシーにより監査されたオブジェクト・アクセスに関する情報が表示されます。

権限監査

AUDIT.PRIV

有効な監査ポリシーにより監査された権限に関する情報が表示されます。

管理ユーザー監査

AUDIT.ADMIN

有効な監査ポリシーでSYSユーザーのアクションを監査するかどうかが表示されます。

SYSユーザーが実行した管理アクションを監査することは重要です。従来の監査ポリシーはSYSに適用されないため、AUDIT_SYS_OPERATIONSパラメータを設定して、別の監査証跡にSYSのアクションを記録する必要があります。

権限管理監査

AUDIT.PRIVMGMT

有効な監査ポリシーで権限管理に関するアクションを監査するかどうかが表示されます。

追加の権限をユーザーやロールに付与すると、ほとんどのセキュリティ保護に影響する可能性があるため、監査する必要があります。リストされている各アクションまたは権限を、少なくとも1つの有効な監査ポリシーに含めてください。

アカウント管理監査

AUDIT.ACCTMGMT

有効な監査ポリシーでアカウント管理に関するアクションを監査するかどうかが表示されます。

新規ユーザーの作成または既存アカウントの変更により、それらのアカウントの権限にアクセスできる可能性があるため監査が必要です。リストされている各アクションまたは権限を、少なくとも1つの有効な監査ポリシーに含めてください。

データベース管理監査

AUDIT.DBMGMT

有効な監査ポリシーでデータベース管理に関するアクションを監査するかどうかが表示されます。

データベース機能の管理に影響するアクションは常に監査する必要があります。リストされている各アクションまたは権限を、少なくとも1つの有効な監査ポリシーに含めてください。

権限使用監査

AUDIT.PRIVUSE

有効な監査ポリシーで強力なシステム権限の使用を監査するかどうかが表示されます。

強力なシステム権限の使用は常に監査する必要があります。リストされている各権限を、少なくとも1つの有効な監査ポリシーに含める必要があります。

データベース接続監査

AUDIT.CONN

有効な監査ポリシーでデータベース接続を監査するかどうかが表示されます。

将来のフォレンジック分析を支援するために、データベースに対して成功したユーザー接続を監査する必要があります。接続試行の失敗は、データベースに攻撃者がアクセスしようとしていることを早期に警告する役割を果たす場合があります。

ファイングレイン監査

AUDIT.FGA

ファイングレイン監査ポリシーが有効かどうかが表示されます。

ファイングレイン監査ポリシーでは、特定の表の列へのアクセスや特定の条件で発生するアクセスなど、非常に具体的なアクティビティを記録できます。これは、通常のアクティビティに関する不必要な監査レコードを取得せずに、予期しないデータ・アクセスをモニターするために有用な方法です。

統合監査

AUDIT.UNIFIED

統合監査ポリシーが有効かどうかが表示されます。

Oracle Database 12.1以降で使用できる統合監査では、複数の監査証跡が1つの統合ビューにまとめられています。また、効果的な監査ポリシーを指定するための新しい構文も導入されています。

次の図に、データベース・セキュリティ評価レポート - 監査セクションの例を示します。

図 - データベース・セキュリティ評価レポート - 監査



監査セクションの次には、暗号化セクションが表示されます。

データベース・セキュリティ評価レポート - 暗号化

データベース・セキュリティ評価レポート - 暗号化セクションには、次の情報が含まれます。

名前 結果ID 説明

透過的データ暗号化

CRYPT.TDE

表領域および列データの暗号化が有効がどうかが表示されます。

特定の規制下にある環境では、一部の機密データの暗号化が必須要件になっています。透過的データ暗号化では、保存時にデータが自動的に暗号化され、取得時に復号化されます。このようにして、データベースをバイパスしてデータ・ファイルを直接読み取る攻撃から機密データを保護します。

暗号化キー・ウォレット

CRYPT.WALLET

ウォレット情報が表示されます。

ウォレットは、暗号化キー、パスワードおよび他の機密データを保存するために使用する暗号化されたファイルです。暗号化されたデータ・ファイルとそれらのファイルを保護するマスター・キーが含まれたウォレット・ファイルの両方を含むバックアップを不注意で作成することがないように、データベースのデータファイルと同じディレクトリにウォレット・ファイルを保存しないでください。キーとデータを最大限に分離するために、ウォレット・ファイルではなくOracle Key Vaultに暗号化キーを保存することを検討してください。

次の図に、データベース・セキュリティ評価レポート - 暗号化セクションの例を示します。

暗号化セクションの次には、データベース構成セクションが表示されます。

データベース・セキュリティ評価レポート - データベース構成

データベース・セキュリティ評価レポート - データベース構成セクションには、次の情報が含まれます。

名前 結果ID 説明

セキュリティの初期化パラメータ

-

データベース初期化パラメータとその値が表示されます。

ディクショナリ・オブジェクトに対するアクセス権

CONF.SYSOBJ

ディクショナリ・オブジェクトに対するアクセス権が正しく制限されているかどうかが表示されます。

O7_DICTIONARY_ACCESSIBILITYFALSEに設定されていると、SYSが所有する表はANY TABLEシステム権限の影響を受けません。SYSが所有する表によってデータベースの全体的な状態が制御されるので、ANY TABLE権限があるユーザーが操作できないようにするために、このパラメータは常にFALSEに設定する必要があります。

表データの推測

CONF.INFER

データ推測攻撃が正しく防御されているかどうかが表示されます。

SQL92_SECURITYをTRUEに設定すると、WHERE句で列を参照するUPDATE文およびDELETE文が、同じ列からSELECTする権限がユーザーにあるときのみに正しく動作するようになります。このパラメータをTRUEに設定して、表示する権限がない列の値をユーザーが推測できないようにする必要があります。

パスワード・ファイルに対するアクセス権

CONF.PWDFILE

パスワード・ファイルが正しく構成されているかどうかが表示されます。

REMOTE_LOGIN_PASSWORDFILEEXCLUSIVEに設定すると、各管理ユーザーに個別のエントリをパスワード・ファイルに格納して、管理ユーザーのアクションを個別に監査および追跡できるようになります。また、ALTER USERコマンドを使用してパスワードを更新できるようになります。

データベース・リンク・グローバル名

CONF.GLBLNM

データベース・リンク名がデータベース名と異なるか同じかが表示されます。

GLOBAL_NAMESパラメータでは、接続を定義するリモート・データベースの名前がデータベース・リンク名と同じであるという要件を設定できます。両方に同じ名前を使用すれば、あいまいさがなくなり、リモート・データベースに対する許可されない接続や意図しない接続が発生する可能性が低下します。

ネットワーク通信

CONF.NETCOM

ローカル・ネットワーク・リスナーの初期化パラメータに関する情報が表示されます。

REMOTE_LISTENERでは、別のシステムで動作するネットワーク・リスナーを使用できます。通常は、このパラメータを設定せずにローカル・リスナーを使用してください。SEC_PROTOCOL_ERRORパラメータでは、データベース・サーバーが不正な形式のネットワーク・パケットをクライアントから受信した場合のデータベース・サーバーの応答を制御します。これらの不正な形式のパケットには悪意のあるクライアントによる攻撃の可能性があるため、インシデントをログに記録して接続を終了するようにこのパラメータを設定してください。

認証されないクライアントに返す情報はリモート攻撃に対するサーバーの脆弱性を特定するために使用される可能性があるため、SEC_RETURN_SERVER_RELEASE_BANNERFALSEに設定して情報を制限してください。

外部認可

CONF.EXTAUTH

リモート認証の初期化パラメータに関する情報が表示されます。

OS_ROLESパラメータでは、ユーザーに付与されるロールをデータベースのGRANT文で制御するか、データベース・サーバーのオペレーティング・システムで制御するかを決定します。REMOTE_OS_AUTHENTおよびREMOTE_OS_ROLESでは、クライアントのオペレーティング・システムがデータベースのユーザーおよびロールを設定することを許可します。これらのパラメータはすべてFALSEに設定して、データベース・ユーザーの認証がデータベース自身で管理されるようにしてください。

トレース・ファイル

CONF.TRACE

トレース・ファイルの初期化パラメータに関する情報が表示されます。

非表示パラメータ_TRACE_FILES_PUBLICでは、データベースが生成したトレース・ファイルにすべてのOSユーザーがアクセスできるかどうかを決定します。これらのファイルには機密データが含まれている可能性があるため、このパラメータをFALSEに設定してアクセスを制限してください。

インスタンス名のチェック

CONF.INSTNM

インスタンス名にデータベースのバージョン番号が含まれているかどうかが表示されます。

インスタンス名にOracleのバージョン番号を含めないでください。認証されていないユーザーにサービス名を発見される可能性があります。バージョン番号や他のデータベース製品の情報がサービス名に含まれていると、悪意のあるユーザーがその情報を使用してターゲットを絞った攻撃を開発する可能性があります。

トリガー

CONF.TRIG

ログオン・トリガーに関する情報が表示されます。

トリガーとは、表へのデータの挿入やデータベースの接続など、特定のイベントが発生すると常に実行されるコードのことです。トリガーを無効にすると、トリガーが実現すると期待されている保護や監視もアクティブでなくなるので注意が必要です。

無効な制約

CONF.CONST

無効な制約に関する情報が表示されます。

制約は、データベースに保存されているデータ項目間で特定のリレーションシップを強制および保証するために使用します。制約を無効にすると、制約が確保していた条件が強制されなくなるので注意が必要です。

外部プロシージャ

CONF.EXTPROC

外部プロシージャおよびサービスに関する情報が表示されます。

外部プロシージャでは、他の言語で記述されたコードをPL/SQLから実行できます。外部コードに対する変更はデータベースで制御できないことに注意してください。信頼できるコード・ライブラリのみを実行可能にするように注意してください。データベースでは自分のプロセスを起動して外部プロシージャを実行できますが、この用途のリスナー・サービスを構成して、権限が少ないOSユーザーとして外部コードを実行できるようにすることをお薦めします。リスナー構成では、デフォルト値のANYを使用せずにEXTPROC_DLLSを設定して、実行できる特定の共有ライブラリ・コードを識別できるようにしてください。

ディレクトリ・オブジェクト

CONF.DIR

ディレクトリ・オブジェクトに関する情報が表示されます。

ディレクトリ・オブジェクトでは、データベース内のPL/SQLコードからサーバーのシステム・ファイルにアクセスできます。データベース・カーネルが使用するファイルに対するアクセスは、データベースの運用を変更してアクセス制御をバイパスできる可能性があるため許可しないでください。

データベース・リンク

CONF.LINKS

データベース・リンクに関する情報が表示されます。

データベース・リンクでは、他のデータベースの表にアクセスするSQL文をユーザーが実行できます。これにより、リモート・データベースのデータの問合せおよび保存の両方が許可されます。アクセスするデータベースとリンク名が一致するように、GLOBAL_NAMESTRUEに設定することをお薦めします。

ネットワーク・アクセス制御

CONF.NETACL

ネットワークのアクセス制御リスト(ACL)に関する情報が表示されます。

ネットワークACLでは、UTL_TCPやUTL_HTTPなどのネットワーク・パッケージを使用してデータベース・ユーザーがアクセスできる外部サーバーを制御します。具体的には、データベース・ユーザーは、UTL_TCPUTL_HTTPUTL_SMTPおよびUTL_MAILユーティリティ・パッケージを使用して外部ネットワークのホスト・コンピュータに接続する場合に、そのコンピュータに対するconnect権限が必要です。UTL_INADDRパッケージを使用してホスト名とIPアドレスを変換するには、Resolve権限が必要です。各ユーザーのこれらの許可が必要最小限の範囲に限定されていることを確認してください。

XMLデータベース・アクセス制御

CONF.XMLACL

XMLデータベースのアクセス制御リスト(ACL)に関する情報が表示されます。

XML ACLでは、XML DB機能を使用したデータベース・リソースへのアクセスを制御します。Oracle XML DBリポジトリ階層のすべてのリソースにACLが関連付けられています。ACLメカニズムでは、プリンシパル(データベース・ユーザーまたはロール)に対して権限ベースのアクセス制御を指定します。リソースがアクセスされるときには常にセキュリティ・チェックが実行されて、リソースにアクセスするのに十分な権限が要求元のユーザーにあるかどうかがACLによって判断されます。各ユーザーのこれらの権限が必要最小限の範囲に限定されていることを確認してください。

データベースのバックアップ

CONF.BKUP

データベースのバックアップ・レコードに関する情報が表示されます。

データベースは定期的にバックアップして、システム障害が発生したときにデータが失われないようにしてください。Oracle Recovery Manager (RMAN)では、データベースのバックアップとリカバリのタスクを実行できます。暗号化されていないバックアップ・データをテープやディスクに転送して、オフサイトで保管しないでください。分散環境のテープ・データを保護するために、Oracle Secure Backup (OSB)を使用することもできます。

次の図に、データベース・セキュリティ評価レポート - データベース構成セクションの例を示します。

図 - データベース・セキュリティ評価レポート - データベース構成



データベース構成セクションの次には、ネットワーク構成セクションが表示されます。

データベース・セキュリティ評価レポート - ネットワーク構成

データベース・セキュリティ評価レポート - ネットワーク構成セクションには、次の情報が含まれます。

名前 結果ID 説明

ネットワーク暗号化

NET.CRYPT

ネットワーク暗号化に関する情報が表示されます。

ネットワーク暗号化では、データベース・サーバーとそのクライアントの間の通信の機密保持および整合性が保護されます。ネイティブ暗号化またはTLSのどちらかを有効にしてください。ネイティブ暗号化の場合は、ENCRYPTION_SERVERCRYPTO_CHECKSUM_SERVERの両方をREQUIREDに設定してください。TLSを使用する場合は、すべてのネットワーク・ポートにTCPSを指定して、SSL_CERT_REVOCATIONREQUIREDに設定してください。

クライアント・ノード

NET.CLIENTS

データベース・サーバーに接続できるクライアント・ノードに関する情報が表示されます。

データベース・サーバーに接続できるクライアント・ノードを制御するには、TCP.VALIDNODE_CHECKINGを有効にしてください。接続を許可するクライアント・ノードのホワイトリスト(TCP.INVITED_NODES)または接続を許可しないクライアント・ノードのブラックリスト(TCP.EXCLUDED_NODES)のどちらかを指定できます。両方のリストを構成するとエラーになります。この場合は、許可されるノードのリストのみが使用されます。

SQLNETバナー

NET.BANNER

SQLNET接続バナー・メッセージが構成されているかどうかが表示されます。

これらのバナー・メッセージは、接続するユーザーに不正なアクセスは許可されないことと、アクティビティが監査されることを警告するために使用します。

ネットワーク・リスナー構成

NET.COST

ネットワーク・リスナー構成に関する情報が表示されます。

これらのパラメータは、ネットワーク・リスナー構成に対する変更を制限するために使用します。

実行中のリスナーに対するパラメータ変更を防ぐために、ADMIN_RESTRICTIONSを有効にしてください。サーバー登録に関して次のいずれかの制限を実装してください。

  • DYNAMIC_REGISTRATIONを無効にして変更を防ぎます

  • VALID_NODE_CHECKING_REGISTRATIONを有効にして、変更できるノードを制限します

  • COSTパラメータのSECURE_PROTOCOLSECURE_CONTROLおよびSECURE_REGISTERを使用して、変更のネットワーク・ソースを制限します。CONNECTION_RATEでは、レートが制限されているすべてのエンドポイントで強制するレートを決定します。

リスナー・ロギング制御

NET.LISTENLOG

ネットワーク・リスナー・ロギング構成に関する情報が表示されます。

LOGGING_LISTENERパラメータでは、リスナー・アクティビティのロギングが有効になります。ログ情報はトラブルシューティングに役立ち、攻撃の可能性を早期に警告するのにも役立ちます。

次の図に、データベース・セキュリティ評価レポート - ネットワーク構成セクションの例を示します。

図 - データベース・セキュリティ評価レポート - ネットワーク構成



ネットワーク構成セクションの次には、オペレーティング・システム・セクションが表示されます。

データベース・セキュリティ評価レポート - オペレーティング・システム

データベース・セキュリティ評価レポート - オペレーティング・システム・セクションには、次の情報が含まれます。

名前 結果ID 説明

OS認証

OS.AUTH

OS認証を使用するデータベース接続に関する情報が表示されます。

OS認証では、指定したユーザー・グループのオペレーティング・システム・ユーザーが管理権限でデータベースに接続できます。ここには、各管理権限を行使できるOSグループ名とユーザーが表示されます。管理権限があるOSユーザーをレビューして、データベースに対する不正、悪意のあるまたは意図しないアクセスを防いでください。

プロセス・モニター・プロセス

OS.PMON

プロセス・モニター(PMON)のプロセスがORACLE_HOME所有者アカウントで実行されているかどうかが表示されます。

PMONプロセスは、ユーザー・プロセスをモニターして、プロセスが終了するとリソースを解放します。このプロセスはORACLE_HOME所有者のユーザーIDで実行してください。

エージェント・プロセス

OS.AGENT

エージェント・プロセスの所有者がリスナーまたはプロセス・モニター(PMON)のプロセス所有者と重なっていないかどうかが表示されます。

エージェント・プロセスはOracle Enterprise Managerがデータベースを監視および管理するために使用します。これらのプロセスは、データベースおよびリスナーのプロセスとは別のユーザーIDで実行する必要があります。

リスナー・プロセス

OS.LISTEN

リスナー・プロセスの所有者がエージェントまたはプロセス・モニター(PMON)のプロセス所有者と重なっていないかどうかが表示されます。

リスナー・プロセスは着信ネットワーク接続を受け入れて、適切なデータベース・サーバー・プロセスに接続します。これらのプロセスは、データベースおよびエージェントのプロセスとは別のユーザーIDで実行する必要があります。これらのプロセスはローカルOS認証のみを介して管理してください。

ORACLE_HOMEのファイル権限

OS.FILES

ORACLE_HOMEのファイル権限で検出されたエラーに関する情報が表示されます。

ORACLE_HOMEディレクトリおよびそのサブディレクトリには、実行可能形式プログラム、ライブラリ、データ・ファイル、構成ファイルなど、データベースを正しく運用するために重要なファイルが含まれています。オペレーティング・システムのファイル権限では、ORACLE_HOME所有者以外のユーザーがこれらのファイルを変更できないようにする必要があり、Oracleデータ・ファイルの内容を他のユーザーが直接読み取れないようにする必要があります。

次の図に、データベース・セキュリティ評価レポート - オペレーティング・システム・セクションの例を示します。

図 - データベース・セキュリティ評価レポート - オペレーティング・システム



オペレーティング・システム・セクションの次には、診断セクションが表示されます。

データベース・セキュリティ評価レポート - 診断

診断セクションには、実行できなかったチェックが表示されます。

注意:

このレポートには、Oracleデータベース・システムをセキュリティ保護するために役立つ可能性がある情報および推奨事項が表示されます。このような推奨事項は、データベース・セキュリティに関するベスト・プラクティスを反映しており、設計およびデフォルトによるデータ保護に関する戦略の一部となります。これらの実際的な情報は、EUの一般データ保護規則の25条および32条と、その他のデータ・プライバシ規則に対処する際に役立ちます。技術的な制御のみでは、コンプライアンスには不十分です。すべての結果に合格してもコンプライアンスは保証されません。

Oracle Database Vault、Oracle Advanced Security、Oracle Label Security、Oracle Data Masking and Subsetting Packは、データベースでライセンスされるオプションです。Oracle Key VaultおよびOracle Audit Vault and Database Firewallには、別のライセンスも必要です。

このレポートには現在のステータスに関する1つの見方が示されます。表示される結果は情報目的のみで提供されるため、詳細な分析のかわりに使用したり、法律や規制に関する助言やガイダンスを含むものと解釈しないでください。

システムおよびこのレポートの生成時に収集されるデータおよび情報に対しては、お客様にすべての責任があります。また、このレポートを生成するソフトウェアの実行、そこに示されている緩和処置を実行した結果および影響に対しても、お客様にすべての責任があります。

オラクル社は、いかなる保証もせず「現状のまま」この分析を提供し、オラクル社は明示的、暗示的または法律上のすべての保証をしないことをここに明記します。

データベース機密データ評価レポート

Discovererコンポーネントを使用して、データベース機密データ評価レポートをHTMLおよびCSV形式で生成します。

HTMLレポートは主要なレポートであり、ターゲット・データベース情報およびDiscovererのパラメータとともに、検出された機密データとそのカテゴリが含まれます。

CSVレポートは、Oracle Audit Vault and Database Firewallにロードして機密データ・コンテキストを新しいデータ・プライバシ・レポートに追加できます。この機能の詳細は、『Oracle Audit Vault and Database Firewall監査者ガイド』AVDFリポジトリへの機密データのインポートを参照してください。

データベース機密データ評価レポート - 概要

データベース機密データ評価レポート - 概要セクションには、次の情報が含まれます。

表 - データベース機密データ評価レポート - 概要

セクション 説明
評価日時 機密データ評価レポートが生成された時期が表示されます。DBSAT Discovererバージョンも表示されます。
データベース識別情報 Discovererによって評価されたデータベースの詳細が表示されます。
データベース・バージョン Discovererによって評価されたデータベースのバージョンが表示されます。
検出パラメータ 構成ファイルで指定されている検出パラメータが表示されます。Discoveryのパラメータの詳細は、構成設定を参照してください。

次の図に、データベース機密データ評価レポート - 概要セクションの最初の4つの表を示します。

図 - データベース機密データ評価レポート - 概要



概要セクションの次には、サマリー・セクションが表示されます。

データベース機密データ評価レポート - サマリー

データベース機密データ評価レポート - サマリー・セクションには、機密データとして識別された表、列および行の数に関する情報が機密カテゴリごとにグループ分けされて表示されます。

データベース機密データ評価レポート - サマリー・セクションには、次の列が含まれます。

表 - データベース機密データ評価レポート - サマリー

列名 説明

機密カテゴリ

機密カテゴリの名前が表示されます。

機密表数

機密データが含まれていることが検出された表の数が表示されます。

機密列数

機密データが含まれている表で検出された列の数が表示されます。

機密行数

機密データが含まれている表で検出された行の数が表示されます。

次の図に、データベース機密データ評価レポート - サマリー・セクションに表示される情報を示します。

図 - データベース機密データ評価レポート - サマリー



注意:

単一のデータベース表には、複数の機密カテゴリに合致する列または列コメントが含まれることがあり、機密表数列および「機密行数」列に表示される数が多くなります。ただし、合計行には機密データと識別された表および行の重複しない数が表示されます。

機密カテゴリの構成の詳細は、パターン・ファイルの構成(オプション)を参照してください。

サマリー・セクションの次には、機密データ・セクションが表示されます。

データベース機密データ評価レポート - 機密データ

データベース機密データ評価レポート - 機密データ・セクションには機密データが含まれるスキーマに関する情報が表示されます。

データベース機密データ評価レポート - 機密データ・セクションには、次の情報が含まれます。

表 - データベース機密データ評価レポート - 機密データ

セクション 説明
リスク・レベル Discovererによって評価されたデータベースのスキーマで識別された機密データのリスク・レベルが表示されます。
サマリー スキーマでの機密データの出現のサマリーが表示されます。
場所 機密データが含まれるスキーマの名前が表示されます。

次の図に、データベース機密データ評価レポート - 機密データ・セクションに表示される情報を示します。

図 - データベース機密データ評価レポート - 機密データ



各リスク・レベルの検出内容の後に、機密データをセキュリティ保護するための一連の推奨事項が表示されます。これらの推奨事項には、リスク・レベル(高、中および低)に基づいた様々な制御方法が一覧表示されます。

次の図に、リスク・レベル: 高リスク・セクションに表示される情報を示します。

図 - リスク・レベルごとにグループ化された機密カテゴリ



各リスク・レベル・セクションの次には、機密データを含むことが検出された表のリストが表示されます。次の情報が表示されます:

表 - 機密カテゴリ内で検出された表: <機密カテゴリ名>

名前 説明

リスク・レベル

リスク・レベルが表示されます。

サマリー

検出された機密カテゴリ・データのサマリーが表示されます。

場所

機密データを含む表の名前が表示されます。

次の図に、各機密カテゴリ内で検出された表: <機密カテゴリ名>サブセクションに表示される情報を示します。

図 - 機密カテゴリ内で検出された表: <機密カテゴリ名>



機密データ・セクションの次には、スキーマ・ビュー・セクションが表示されます。

データベース機密データ評価レポート - スキーマ・ビュー

データベース機密データ評価レポート - スキーマ・ビュー・セクションには、機密データが含まれるスキーマ、表、列および行に関する情報が表示されます。機密カテゴリも表示されます。

データベース機密データ評価レポート - サマリー・セクションには、次の列が含まれます。

列名 説明

スキーマ

スキーマの名前が表示されます。

表名

表の名前が表示されます。

表内の列数が表示されます。

機密列

機密データが含まれていることが検出された列の数が表示されます。

表内の行数が表示されます

機密カテゴリ

各列で検出された機密データのカテゴリが表示されます。

次の図に、データベース機密データ評価レポート - スキーマ・ビュー・セクションに表示される情報の概要を示します。

図 - データベース機密データ評価レポート - スキーマ・ビュー



スキーマ・ビュー・セクションの次には、機密列の詳細セクションが表示されます。

データベース機密データ評価レポート - 機密列の詳細

データベース機密データ評価レポート - 機密列の詳細セクションには、機密データが含まれる列に関する情報が表示されます。機密カテゴリおよび機密タイプも表示されます。

列名 説明

スキーマ名

スキーマの名前が表示されます。

表名

表の名前が表示されます。

列名

列の名前が表示されます。

列コメント

列のコメントが表示されます。

機密カテゴリ

各列で検出された機密データのカテゴリが表示されます。

機密タイプ

各列で検出された機密データのタイプが表示されます。

リスク・レベル

リスク・レベルが表示されます。

次の図に、データベース機密データ評価レポート - 機密列の詳細セクションに表示される情報を示します。

図 - データベース機密データ評価レポート - 機密列の詳細



最小権限を持つユーザーを作成するためのサンプル・スクリプト

スクリプトを使用して、Database Security Assessment Tool Collectorを実行するために必要な最小権限を持つユーザーを作成できます。

目的

DBSAT Collectorスクリプトを実行するために必要な権限を持つDBSATユーザーを作成します。

サンプル・スクリプト

create user dbsat_user identified by dbsat_user;
--If Database Vault is enabled, connect as DV_ACCTMGR to run this command
grant create session to dbsat_user;
grant select_catalog_role to dbsat_user;
grant select on sys.registry$history to dbsat_user;
grant select on sys.dba_users_with_defpwd to dbsat_user; // 11g and 12c
grant select on audsys.aud$unified to dbsat_user; // 12c only
grant audit_viewer to dbsat_user; // 12c
grant capture_admin to dbsat_user;// 12c covers sys.dba_priv_captures, sys.priv_capture$, sys.capture_run_log$ 
--If Database Vault is enabled, connect as DV_OWNER to run this command 
grant DV_SECANALYST to dbsat_user;

MS Excelのフォント・サイズ表示

Microsoft Excelの一部のバージョンでは、印刷出力では適切にサイズ変更されるのに、スプレッドシートのセルでは大きすぎて収まらないフォントを使用してテキストが画面に表示されます。このような場合は、テキストを表示できるように列のサイズを若干広げて変更することができます。

CollectorおよびReporter - Windows OSのコマンド

データはSQL問合せおよびオペレーティング・システム・コマンドを実行して収集されます。Windowsでは、DBSAT CollectorはSQL問合せからのみデータを収集します。オペレーティング・システム・コマンドからのデータがないため、DBSAT Reporterはこのデータに対してルールのサブセットを実行します。

サード・パーティ・ライセンスの帰属

Database Security Assessment Toolリリース2.1.0.0.0では、サード・パーティ・ライセンスが使用されます

サード・パーティ・ライセンスについて

バイナリ形式でオラクル社から入手するサード・パーティの技術で、そのバイナリのソース・コードの入手権限を付与するオープン・ソース・ライセンス下で認可されている技術の場合は、このページから該当するソース・コードのコピーを入手できます。技術のソース・コードがバイナリとともに提供されていない場合は、文書によるリクエストを次に送付すると、物理媒体でソース・コードのコピーを入手することもできます。

Oracle America, Inc.
Attn: Associate General Counsel
Development and Engineering Legal
500 Oracle Parkway, 10th Floor
Redwood Shores, CA 94065

または、次のフォームを使用してオラクル社に電子メールを送信することもできます。リクエストには、次の情報を記入してください。

The name of the component or binary file(s) for which you are requesting the source code
The name and version number of the Oracle product
The date you received the Oracle product
Your name
Your company name (if applicable)
Your return mailing address and email
A telephone number in the event we need to reach you

物理媒体と手続きの費用は無料です。リクエストを送付できるのは、(i)リクエスト対象のコンポーネントまたはバイナリ・ファイルを含むOracle製品を入手した日から3年以内、または(ii) GPL v3の下でコードが認可されている場合(ただし、オラクル社がその製品モデルのスペア・パーツまたはカスタマ・サポートを提供している場合に限る)です。

XlsxWriter、バージョン: 1.1.1

Copyright (c) 2013, John McNamara <jmcnamara@cpan.org>

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of the FreeBSD Project.

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracleサポートへのアクセス

サポートを購入したオラクル社のお客様は、My Oracle Supportを介して電子的なサポートにアクセスできます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。


Oracle Database Security Assessment Toolユーザー・ガイド, リリース2.1.0

E94610-04

Copyright © 2016, 2019, Oracle and/or its affiliates. All rights reserved.

原本著者: Dominique Jeunot、Siddharth Naidu

原本協力著者: Usha Krishnamurthy

原本協力者: Anant Bhasu、Anurag Barman、Gopal Mulagund、Pedro Lopes、Scott Rotondo、Shyamsundar KG、Vishnu Priya Matha、Vivek PV

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。お客様との間に適切な契約が定められている場合を除いて、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。お客様との間に適切な契約が定められている場合を除いて、オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。