2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracle Databaseのセキュリティ上の問題点を探すDBSATを試す

Last updated at Posted at 2018-07-05

Oracle Databaseの各種設定がセキュリティの観点で望ましい状態にあるかをアセスメントするツールがOracle Database Security Assessment Tool (DBSAT)です。

DBSATとは

DBSATは稼働中のデータベースに接続し、各種設定がセキュリティ上望ましい状態であるかをチェックし、レポーティングするツールです。データベース内の設定だけでなく、リスナー等の設定ファイルのチェックを行うこともできます。

DBSATは以下の3つのコンポーネントから構成されます。

Collector
セキュリティ情報を収集します
Reporter
収集されたセキュリティ情報からレポートを出力します
Discoverer
リモート・データベースに接続し、レポートを生成します

必要要件

DBSATを実行するには以下の要件を満たす必要があります。

  • 接続先データベース: Oracle Database 10g (10.2.0.5) 以上
  • オペレーティング・システム: Linux x86-64, HP-UX IA (64bit), Windows x64, Solaris x64/SPARC, AIX (64bit), Linux on zSeries (64bit)
  • zip, unzipコマンド
  • Python 2.6以上(レポーター実行用)
  • Java Runtime 1.8以上(ディスカバラ実行用)

インストール

My Oracle Support (MOS) から以下のドキュメントを参照してdbsat.zipファイルをダウンロードします。

Oracle Database Security Assessment Tool (DBSAT) (Doc ID 2138254.1)

ダウンロードしたzipファイルをoracle管理ユーザー(OSユーザー)の権限で任意のディレクトリに展開します。

$ mkdir $HOME/dbsat
$ cd dbsat
$ unzip dbsat.zip
Archive:  dbsat.zip
  inflating: dbsat
  inflating: dbsat.bat
  inflating: sat_reporter.py
  inflating: sat_analysis.py
  inflating: sat_collector.sql
  inflating: xlsxwriter/app.py
  inflating: xlsxwriter/chart_area.py
  inflating: xlsxwriter/chart_bar.py
  inflating: xlsxwriter/chart_column.py
  inflating: xlsxwriter/chart_doughnut.py
  inflating: xlsxwriter/chart_line.py
  inflating: xlsxwriter/chart_pie.py
  inflating: xlsxwriter/chart.py
  inflating: xlsxwriter/chart_radar.py
  inflating: xlsxwriter/chart_scatter.py
  inflating: xlsxwriter/chartsheet.py
  inflating: xlsxwriter/chart_stock.py
  inflating: xlsxwriter/comments.py
  inflating: xlsxwriter/compat_collections.py
  inflating: xlsxwriter/compatibility.py
  inflating: xlsxwriter/contenttypes.py
  inflating: xlsxwriter/core.py
  inflating: xlsxwriter/custom.py
  inflating: xlsxwriter/drawing.py
  inflating: xlsxwriter/format.py
  inflating: xlsxwriter/__init__.py
  inflating: xlsxwriter/packager.py
  inflating: xlsxwriter/relationships.py
  inflating: xlsxwriter/shape.py
  inflating: xlsxwriter/sharedstrings.py
  inflating: xlsxwriter/styles.py
  inflating: xlsxwriter/table.py
  inflating: xlsxwriter/theme.py
  inflating: xlsxwriter/utility.py
  inflating: xlsxwriter/vml.py
  inflating: xlsxwriter/workbook.py
  inflating: xlsxwriter/worksheet.py
  inflating: xlsxwriter/xmlwriter.py
  inflating: xlsxwriter/LICENSE.txt
  inflating: Discover/bin/discoverer.jar
  inflating: Discover/lib/ojdbc8.jar
  inflating: Discover/lib/oraclepki.jar
  inflating: Discover/lib/osdt_cert.jar
  inflating: Discover/lib/osdt_core.jar
  inflating: Discover/conf/sample_dbsat.config
  inflating: Discover/conf/sensitive_en.ini
$ ls
Discover  dbsat.bat  sat_analysis.py    sat_reporter.py
dbsat     dbsat.zip  sat_collector.sql  xlsxwriter

マニュアル

DBSATにはオンライン・マニュアルが用意されています。

Collector

Collector はデータベースに接続し、各種設定を収集します。収集結果は単一のzipファイルにまとめられます。zipファイルにはパスワードを設定することができます。

ユーザー要件

DBSATが接続するユーザーは以下権限を持っている必要があります。

  • CREATE SESSION システム権限
  • SELECT on SYS.REGISTRY$HISTORY オブジェクト権限
  • SELECT_CATALOG_ROLE ロール
  • SELECT on SYS.DBA_USERS_WITH_DEFPWD オブジェクト権限(Oracle Database 11g以降)
  • AUDIT_VIEWER ロール(Oracle Database 12c以降)
  • SELECT on AUDSYS.AUD$UNIFIED オブジェクト権限(Oracle Database 12c以降)
  • DV_SECANALYST ロール(Database Vaultを使っている場合)
$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on 水 7月 4 15:03:46 2018

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

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
に接続されました。
SQL> CREATE USER dbsat IDENTIFIED BY dbsat;
ユーザーが作成されました。

SQL> GRANT CREATE SESSION TO dbsat;
権限付与が成功しました。

SQL> GRANT SELECT ON SYS.REGISTRY$HISTORY TO dbsat;
権限付与が成功しました。

SQL> GRANT SELECT_CATALOG_ROLE TO dbsat;
権限付与が成功しました。

SQL> GRANT AUDIT_VIEWER TO dbsat;
権限付与が成功しました。

SQL> GRANT SELECT ON SYS.DBA_USERS_WITH_DEFPWD TO dbsat;
権限付与が成功しました。

SQL> GRANT SELECT ON AUDSYS.AUD$UNIFIED TO dbsat;
権限付与が成功しました。

実行方法

展開したディレクトリ内のdbsatコマンドを実行します。コレクターを実行するにはパラメーターとしてcollectと、データベースに接続する情報、収集した情報を保存するファイルへのパスを指定します。
下記の例では、ローカル・データベースのdbsatユーザーで接続し、収集ファイルを$HOME/dbsat.result1.zipファイルに格納します。

$ cd dbsat
$ ./dbsat collect dbsat $HOME/dbsat.result1

Database Security Assessment Tool version 2.0.2 (May 2018)

This tool is intended to assist in you in securing your Oracle database
system. You are solely responsible for your system and the effect and
results of the execution of this tool (including, without limitation,
any damage or data loss). Further, the output generated by this tool may
include potentially sensitive system configuration data and information
that could be used by a skilled attacker to penetrate your system. You
are solely responsible for ensuring that the output of this tool,
including any generated reports, is handled in accordance with your
company's policies.

Connecting to the target Oracle database...


SQL*Plus: Release 12.2.0.1.0 Production on 水 7月 4 15:06:25 2018

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

パスワードを入力してください: <<データベース接続パスワード>>


Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
に接続されました。
Setup complete.
SQL queries complete.
/bin/cat: /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora: そのようなファイルやディレクトリはありません
Warning: Exit status 256 from OS rule: listener.ora
/bin/ls: /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora にアクセスできません: そのようなファイルやディレクトリはありません
Warning: Exit status 512 from OS rule: ls_listener.ora
OS commands complete.
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Productionとの接続が切断されました。
DBSAT Collector completed successfully.

Calling /u01/app/oracle/product/12.2.0/dbhome_1/bin/zip to encrypt dbsat.result1.json...

Enter password: <<zipパスワード>>
Verify password: <<zipパスワード>>
  adding: dbsat.result1.json (deflated 84%)
zip completed successfully.
$
$ ls -l ~/dbsat.result1.zip
-rw------- 1 oracle oinstall 34259  7月  4 15:09 /home/oracle/dbsat.result1.zip

上記例の環境は、リスナーがOracle Grid Infrastructureの管理下にあり、dbsat実行ユーザーがlistener.oraファイルを参照できないためエラーが出力されています。

Reporter

Reporter は Collector が生成した情報を元にレポートを作成します。-nパラメーターはレポートを暗号化しない設定です。
パラメーターとしてreportと、zipファイルへのパスを指定します(拡張子を含めない)。

実行例

$ ./dbsat report -n ../dbsat.result1

Database Security Assessment Tool version 2.0.2 (May 2018)

This tool is intended to assist in you in securing your Oracle database
system. You are solely responsible for your system and the effect and
results of the execution of this tool (including, without limitation,
any damage or data loss). Further, the output generated by this tool may
include potentially sensitive system configuration data and information
that could be used by a skilled attacker to penetrate your system. You
are solely responsible for ensuring that the output of this tool,
including any generated reports, is handled in accordance with your
company's policies.

Archive:  dbsat.result1.zip
[dbsat.result1.zip] dbsat.result1.json password: <<zipパスワード>>
  inflating: dbsat.result1.json
DBSAT Reporter ran successfully.

$ ls ../dbsat.result1*
../dbsat.result1.zip          ../dbsat.result1_report.txt
../dbsat.result1_report.html  ../dbsat.result1_report.xlsx
../dbsat.result1_report.json

##レポート
作成されたレポートはテキスト、Microsoft Excel、JSON、HTMLの各フォーマットで出力されます。レポートには以下のタイトルを持つ複数のセクションが出力されます。

タイトル 内容
Assessment Date & Time 実行時刻
Database Identity データベース名,ロール,作成日
Summary チェックするカテゴリーの一覧
Basic Information バージョンとセキュリティ系オプションの情報
User Accounts データベース・ユーザーの情報
Privileges and Roles システム権限とロール
Authorization Control Database Vaultの使用状況
Data Encryption 暗号化に関する情報
Fine-Grained Access Control ファイングレイン制御に関する情報
Auditing 監査設定に関する情報
Database Configuration データベース設定に関する情報
Network Configuration 通信暗号化に関する情報
Operating System OS設定に関する情報

各セクションには多数のチェック項目があり、それぞれに Status (合格 Pass, リスクあり High Risk / Medium Risk / Low Risk)、Summary(サマリー)、
Details(詳細)、Remark(追記事項)、Reference(参照情報)が記述されます。

下記はレポートとして出力されたチェック項目の一部です。

  • 最新のパッチが適用されていない = High Risk
    high risk

  • SYSTEM表領域やSYSAUX表領域を使う一般ユーザーはいない = Pass
    medium risk

  • サンプル・スキーマが見つかった = Medium Risk
    pass

Discoverer

 Discovererはリモート・データベースに対して情報を取得できるツールです。できることはCollector / Reporterと同じです。検証は実施していません。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?