Oracle DB Security Assessment Tool (DBSAT)
Posted by FatDBA on March 2, 2018
Hi Everyone,
Would like to discuss about one of the request came from my earlier projects to identify sensitive data (Tables, objects etc.) within their databases so that external policies can be enforced later on, but the customer only permitted us to use any inbuilt or Oracle branded audit tool and not any third party security/compliance auditing tools.
And then we landed to use Oracle In-Built database security assessment tool name as DBSAT.
DBSAT has three components: Collector, Reporter, and Discoverer. Collector and Reporter work together to discover risk areas and produce reports on those risk areas and produces the final assessment report in HTML and CSV formats.
You can use DBSAT report findings to:
– Fix immediate short-term risks
– Implement a comprehensive security strategy
– Support your regulatory compliance program
– Promote security best practices
Lets see what it is and how to use it.
Step 1: Unzip the package.
[oracle@dixitlab software]$ 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/ojdbc6.jar inflating: Discover/conf/sample_dbsat.config inflating: Discover/conf/sensitive_en.ini
Step 2: Configure the ‘dbsat configuration’ file.
Next you have to configre the main config file (dbsat.config) available under Discover/conf directory.
[oracle@dixitlab conf]$ pwd /home/oracle/software/Discover/conf [oracle@dixitlab conf]$ ls -ltrh total 20K -rwxrwxrwx. 1 oracle oinstall 13K Jan 16 22:58 sensitive_en.ini -rwxrwxrwx. 1 oracle oinstall 2.4K Mar 1 22:12 dbsat.config
Few of the important parameters are given below.
vi dbsat.config
DB_HOSTNAME = localhost
DB_PORT = 1539
DB_SERVICE_NAME =tunedb
SENSITIVE_PATTERN_FILES = sensitive_en.ini >>>>> This param users sensitive_en.ini file for the English language patterns, which contains 75 patterns
ex: CREDIT_CARD_NUMBER, CARD_SECURITY_PIN, MEDICAL_INFORMATION, SOCIAL_SECURITY_NUMBER etc.
Step 3: Run the discoverer against the database to collect the information.
[oracle@dixitlab software]$ $(dirname $(dirname $(readlink -f $(which javac)))) --- To check the JAVAHOME. -bash: /usr/java/jdk1.8.0_131: is a directory [oracle@dixitlab software]$ export JAVA_HOME=/usr/java/jdk1.8.0_131 [oracle@dixitlab conf]$ cd ../.. [oracle@dixitlab software]$ ./dbsat discover -c Discover/conf/sample_dbsat.config tunedb_data Database Security Assessment Tool version 2.0.1 (December 2017) 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. Enter username: system Enter password: Connection Successful- Retrying regarding "tunedb" as SID DBSAT Discover ran successfully. Calling /usr/bin/zip to encrypt the generated reports... Enter password: Verify password: zip warning: tunedb_data_report.zip not found or empty adding: tunedb_data_discover.html (deflated 88%) adding: tunedb_data_discover.csv (deflated 84%) Zip completed successfully.
We have the audit reports created under the tool directory.
Sample report attached with this report.
https://1drv.ms/f/s!Arob5fjpN041ga58isTgjF-wBPLI0A
tunedb_data – Oracle Database Security Risk Assessment
Hope It Helps
Prashant Dixit
Leave a Reply