CIS Oracle 11g
CIS Oracle 11g
Leader:
Adam Cecchetti
Leviathan Security Group, Inc.
Background.
CIS provides benchmarks, scoring tools, software, data, information, suggestions, ideas, and other services and
materials from the CIS website or elsewhere (“Products”) as a public service to Internet users worldwide.
Recommendations contained in the Products (“Recommendations”) result from a consensus-building process
that involves many security experts and are generally generic in nature. The Recommendations are intended to
provide helpful information to organizations attempting to evaluate or improve the security of their networks,
systems and devices. Proper use of the Recommendations requires careful analysis and adaptation to specific
user requirements. The Recommendations are not in any way intended to be a “quick fix” for anyone‟s information
security needs.
CIS makes no representations, warranties or covenants whatsoever as to (i) the positive or negative effect of the
Products or the Recommendations on the operation or the security of any particular network, computer system,
network device, software, hardware, or any component of any of the foregoing or (ii) the accuracy, reliability,
timeliness or completeness of any Product or Recommendation. CIS is providing the Products and the
Recommendations “as is” and “as available” without representations, warranties or covenants of any kind.
User agreements.
By using the Products and/or the Recommendations, I and/or my organization (“we”) agree and acknowledge
that:
1. No network, system, device, hardware, software or component can be made fully secure;
2. We are using the Products and the Recommendations solely at our own risk;
3. We are not compensating CIS to assume any liabilities associated with our use of the Products or the
Recommendations, even risks that result from CIS‟s negligence or failure to perform;
4. We have the sole responsibility to evaluate the risks and benefits of the Products and Recommendations
to us and to adapt the Products and the Recommendations to our particular circumstances and
requirements;
5. Neither CIS, nor any CIS Party (defined below) has any responsibility to make any corrections, updates,
upgrades or bug fixes or to notify us if it chooses at it sole option to do so; and Neither CIS nor any CIS
Party has or will have any liability to us whatsoever (whether based in contract, tort, strict liability or
otherwise) for any direct, indirect, incidental, consequential, or special damages (including without
limitation loss of profits, loss of sales, loss of or damage to reputation, loss of customers, loss of software,
data, information or emails, loss of privacy, loss of use of any computer or other equipment, business
interruption, wasted management or other staff resources or claims of any kind against us from third
parties) arising out of or in any way connected with our use of or our inability to use any of the Products or
Recommendations (even if CIS has been advised of the possibility of such damages), including without
limitation any liability associated with infringement of intellectual property, defects, bugs, errors,
omissions, viruses, worms, backdoors, Trojan horses or other harmful items.
1|Page
Grant of limited rights.
CIS hereby grants each user the following rights, but only so long as the user complies with all of the terms of
these Agreed Terms of Use:
1. Except to the extent that we may have received additional authorization pursuant to a written agreement
with CIS, each user may download, install and use each of the Products on a single computer;
2. Each user may print one or more copies of any Product or any component of a Product that is in a .txt,
.pdf, .doc, .mcw, or .rtf format, provided that all such copies are printed in full and are kept intact,
including without limitation the text of this Agreed Terms of Use in its entirety.
The Products are protected by copyright and other intellectual property laws and by international treaties. We
acknowledge and agree that we are not acquiring title to any intellectual property rights in the Products and that
full title and all ownership rights to the Products will remain the exclusive property of CIS or CIS Parties. CIS
reserves all rights not expressly granted to users in the preceding section entitled “Grant of limited rights.”
Subject to the paragraph entitled “Special Rules” (which includes a waiver, granted to some classes of CIS
Members, of certain limitations in this paragraph), and except as we may have otherwise agreed in a written
agreement with CIS, we agree that we will not (i) decompile, disassemble, reverse engineer, or otherwise attempt
to derive the source code for any software Product that is not already in the form of source code; (ii)
distribute, redistribute, encumber, sell, rent, lease, lend, sublicense, or otherwise transfer or exploit rights to any
Product or any component of a Product; (iii) post any Product or any component of a Product on any website,
bulletin board, ftp server, newsgroup, or other similar mechanism or device, without regard to whether such
mechanism or device is internal or external, (iv) remove or alter trademark, logo, copyright or other proprietary
notices, legends, symbols or labels in any Product or any component of a Product; (v) remove these Agreed
Terms of Use from, or alter these Agreed Terms of Use as they appear in, any Product or any component of a
Product; (vi) use any Product or any component of a Product with any derivative works based directly on a
Product or any component of a Product; (vii) use any Product or any component of a Product with other products
or applications that are directly and specifically dependent on such Product or any component for any part of their
functionality, or (viii) represent or claim a particular level of compliance with a CIS Benchmark, scoring tool or
other Product. We will not facilitate or otherwise aid other individuals or entities in any of the activities listed in this
paragraph.
We hereby agree to indemnify, defend and hold CIS and all of its officers, directors, members, contributors,
employees, authors, developers, agents, affiliates, licensors, information and service providers, software
suppliers, hardware suppliers, and all other persons who aided CIS in the creation, development or maintenance
of the Products or Recommendations (“CIS Parties”) harmless from and against any and all liability, losses, costs
and expenses (including attorneys' fees and court costs) incurred by CIS or any CIS Party in connection with any
claim arising out of any violation by us of the preceding paragraph, including without limitation CIS‟s
right, at our expense, to assume the exclusive defense and control of any matter subject to this indemnification,
and in such case, we agree to cooperate with CIS in its defense of such claim. We further agree that all CIS
Parties are third-party beneficiaries of our undertakings in these Agreed Terms of Use.
2|Page
Special rules.
CIS has created and will from time to time create special rules for its members and for other persons and
organizations with which CIS has a written contractual relationship. Those special rules will override and
supersede these Agreed Terms of Use with respect to the users who are covered by the special rules.
CIS hereby grants each CIS Security Consulting or Software Vendor Member and each CIS Organizational User
Member, but only so long as such Member remains in good standing with CIS and complies with all of the terms
of these Agreed Terms of Use, the right to distribute the Products and Recommendations within such Member‟s
own organization, whether by manual or electronic means. Each such Member acknowledges and agrees that the
foregoing grant is subject to the terms of such Member‟s membership arrangement with CIS and may, therefore,
be modified or terminated by CIS at any time.
We acknowledge and agree that these Agreed Terms of Use will be governed by and construed in accordance
with the laws of the State of Maryland, that any action at law or in equity arising out of or relating to these Agreed
Terms of Use shall be filed only in the courts located in the State of Maryland, that we hereby consent and submit
to the personal jurisdiction of such courts for the purposes of litigating any such action. If any of these Agreed
Terms of Use shall be determined to be unlawful, void, or for any reason unenforceable, then such terms shall be
deemed severable and shall not affect the validity and enforceability of any remaining provisions.
We acknowledge and agree that we have read these Agreed Terms of Use in their entirety understand them and
agree to be bound by them in all respects.
3|Page
Introduction
This document is derived from research conducted utilizing the Oracle 11g program, the Oracle‟s Technology
Network (otn.oracle.com), various published books and the Oracle 11g Database Security Guidelines. This
document provides the necessary settings and procedures for the secure installation, setup, configuration, and
operation of an Oracle 11g database environment. With the use of the settings and procedures in this document,
an Oracle database may be secured from conventional “out of the box” threats. Recognizing the nature of security
cannot and should not be limited to only the application, the scope of this document is not limited to only Oracle
specific settings or configurations, but also addresses backups, archive logs, “best practices” processes and
procedures that are applicable to general software and hardware security.
Applicable items were verified and tested against an Oracle 11g default install on a Redhat Enterprise Sever 5.
The Oracle version used was 11.1.0.6.0.Where the default setting is less secure than the recommended setting a
caution has been provided in the comment section below the separator bar or as a note below a chapter heading.
Default installs for both the operating system and the database may differ dependent on versions and options
installed so this is to be used as a general guide only. Linux settings should translate to other varieties of Linux,
but were only tested against RHEL5. If any differences are found, please contact the CIS team.
S – To be scored.
N – Not to be scored.
R – Reportable, but not to be scored.
This information indicates how the CIS Oracle Scoring tool will handle this specific setting.
- Level 1 settings are generally considered “safe” to apply to most systems. The use of these
configuration recommendations is not likely to have a negative impact on performance or
functionality.
- Level 2 settings provide a higher level of security, but will result in a negative impact to performance
and functionality.
4|Page
1. Operating System Specific Settings
Remediation:
Create a standalone server for the Oracle install.
Audit:
Execute the following WMI Query:
Remediation:
Run the Oracle services using a local administrator
account created specifically for Oracle. Use the
account created to install the product. Deny log on
locally to this account.
Audit:
None
5|Page
Item Configuration Item Action / Recommended Rationale/Remediation W U
I n Level
# Parameters n
d I &
o x Score
w
s
1.03 Windows Oracle Use Restricted Service Account Rationale: √ 1
Domain Account (RSA) If the Oracle services require domain resources, then N
the server must be a domain server and the Oracle
services must be run using a Restricted Service
Account, i.e., restricted domain user account.
Remediation:
Add the account to the local administrators group on
the server running the Oracle services.
Audit:
None
Remediation:
Deny the Log on Locally right to the RSA.
Audit:
Ensure the Oracle account is listed beneath Local
Policies\User Rights Assignments\Deny Log
on Locally in the Windows Local Security Policy
Remediation:
Do not assign any rights to the group.
Audit:
None
6|Page
Item Configuration Item Action / Recommended Rationale/Remediation W U
I n Level
# Parameters n
d I &
o x Score
w
s
1.06 Windows Oracle Remove the RSA from the Rationale: √ 1
Account Domain Users Domain Users group The RSA must have limited access requirements. S
Group Membership Granting the RSA domain level privileges negates the
purpose of the RSA.
Remediation:
Remove the RSA from the Domain Users group.
Audit:
On the domain controller, execute the following:
Audit:
None
7|Page
Item Configuration Item Action / Recommended Rationale/Remediation W U
I n Level
# Parameters n
d I &
o x Score
w
s
1.08 Windows Oracle Limit to machine running Oracle Rationale: √ 1
Domain Account Logon services The RSA must have limited access requirements and S
to… Value be limited to authenticating to the Oracle server.
Remediation:
Configure the RSA to only log on to the computer that
is running the Oracle services.
Audit:
None
Remediation:
Remove permissions for the Users group from the
%ProgramFiles%\Oracle folder.
Audit:
Execute the following command:
cacls “%ProgramFiles%\Oracle”
8|Page
Item Configuration Item Action / Recommended Rationale/Remediation W U
I n Level
# Parameters n
d I &
o x Score
w
s
1.10 Windows Oracle Verify and set permissions Rationale: √ 1
Registry Key Access to the Oracle registry key must be limited to S
Permissions those users that require it. Unrestricted access to the
Oracle registry entries will allow non-administrative
users to alter settings and create an insecure
environment.
Remediation:
Give Full Control over the
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE key to
the account that will run the Oracle services and
remove the local Users group. Give read permissions
to those users that require it.
Audit:
In regedit, browse to the
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE key,
right click, select Permissions, and ensure the
Users group is not granted access.
Remediation:
Set the HKEY_LOCAL_MACHINE\
SOFTWARE\ORACLE\ALL_HOMES\OSAUTH_PREFIX_D
OMAIN value to TRUE
Audit:
In regedit, ensure the HKEY_LOCAL_MACHINE\
SOFTWARE\ORACLE\ALL_HOMES\OSAUTH_PREFIX_D
OMAIN value set to TRUE.
9|Page
Item Configuration Item Action / Recommended Rationale/Remediation W U
I n Level
# Parameters n
d I &
o x Score
w
s
1.12 Windows registry Set USE_SHARED_SOCKET Rationale: √ 2
registry value to TRUE Confines client connections to the same port as the S
listener. This allows connection and firewall
management to be performed in a more consistent and
refined manner.
Remediation:
Set the
HKEY_LOCAL_MACHINE\
SOFTWARE\ORACLE\HOME<#>\USE_SHARED_SOCKET
registry key to TRUE.
Audit:
In regedit, Ensure the HKEY_LOCAL_MACHINE\
SOFTWARE\ORACLE\HOME<#>\USE_SHARED_SOCKET
registry key is set to TRUE.
1.13 Oracle software owner Lock account Rationale: √ 2
host account Locking the user account will deter attackers from S
leveraging this account in brute force authentication
attacks.
Remediation:
On Unix systems, lock the Oracle software owner
account. If the account cannot be locked, use a very
strong password for the account. Account can be
unlocked if system maintenance is required. This is not
recommended for Windows environments.
Audit:
grep –i account_name /etc/password
10 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U
I n Level
# Parameters n
d I &
o x Score
w
s
1.14 All associated Verify permissions Rationale: √ √ 2
application files Allowing improper access to binaries that directly N
interface with the Oracle database adds unnecessary
risk and increases the attack surface of the database.
Remediation:
Check the file permissions for all application files for
proper ownership and minimal file permissions. This
rd
includes all 3 party application files on the server that
rd
access the database. Any 3 party applications must
be installed on a separate server from the database. If
this is not possible in the environment, ensure that the
rd
3 party applications are installed on separate
partitions from the Oracle software and associated data
files.
Audit:
None
11 | P a g e
2. Installation and Patch
Remediation:
The Oracle 11g installer application could potentially
create files in a temporary directory with public
privileges. It would be possible for any local user to
delete, overwrite or corrupt these files during the
installation process. Try to ensure that no other users
are connected while installing Oracle 11g. Also set the
$TMP and $TMPDIR environment variables to a
protected directory with access given only to the Oracle
software owner and the ORA_INSTALL group.
Audit:
None
12 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.02 Version/Patches Ensure the latest version of Rationale: √ √ 1
Oracle software is being used, Using outdated or unpatched software will put the S
and that the latest patches from Oracle database and host system at unnecessary risk
Oracle Metalink have been and violates security best practices.
applied.
Remediation:
Check Oracle‟s site to ensure the latest versions:
http://www.oracle.com/technology/software/index.html
and latest patches:
http://metalink.oracle.com/metalink/plsql/ml2_gui.startup
Audit:
opatch lsinventory -detail
Audit:
None
13 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.04 tkprof Remove from system Rationale: √ √ 1
The tkprof utility must be removed from production S
environments; it is a powerful tool for an attacker to find
issues in the running database. If tkprof must remain
on the production system, it must be protected by
proper permissions.
Remediation:
Set file permissions of 0750 or less on Unix systems.
On Windows systems, restrict access to only those
users requiring access and verify that “Everyone” does
not have access. Go to the $ORACLE_HOME/bin
directory and remove or change the permissions of the
utility.
Audit:
$ORACLE_HOME/bin/tkprof
Remediation:
Edit
$ORACLE_HOME/network/admin/listener.ora
and change the default name.
Audit:
grep default
$ORACLE_HOME/network/admin/listener.ora
14 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.06 listener.ora Use IP addresses rather than Rationale: √ √ 2
hostnames IP addresses instead of host names in the listener.ora S
file must be used. This prevents a compromised or
spoofed DNS server from causing Oracle outages or
man in the middle attacks. Hostnames are used by
default.
Remediation:
Edit
$ORACLE_HOME/network/admin/listener.ora
and replace DNS names with IP addresses.
Audit:
grep -i HOST
$ORACLE_HOME/network/admin/listener.ora
Remediation:
Go to the $ORACLE_HOME/otrace/admin directory of
your instance and remove or delete the .dat files
related to otrace. Do this for all *.dat files in this
directory. Note that this directory is installed for the
Enterprise Manager Grid Controller. It is not installed
with a default 11g database installation.
Audit:
ls $ORACLE_HOME/otrace/admin/*.dat
15 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.08 Listener password Use OS Authentication Rationale: √ √ 1
It is more secure to use OS authentication as setting a S
password on the listener will enable remote
administration of the listener.
Remediation:
OS Authentication is enabled by default.. If additional
users require remote access to the listener, set an
encrypted password using the set password
command via the lsnrctl tool.
Audit:
grep -i PASSWORD \
$ORACLE_HOME/network/admin/listener.ora
Audit:
SELECT * FROM DBA_USERS_WITH_DEFPWD;
16 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.10 OEM objects Remove if OEM not used Rationale: √ √ 2
Removing the OEM will reduce the Oracle attack S
surface.
Remediation:
Execute
$ORACLE_HOME/rdbms/admin/catnsnmp.sql to
remove all the objects and delete the file
$ORACLE_HOME/bin/dbsnmp.
$ORACLE_HOME/rdbms/admin/catnsmp.sql
rm $ORACLE_HOME/bin/dbsnmp
Audit:
ls –al $ORACLE_HOME/bin/dbsnmp
Remediation:
Alter the listener.ora file and change the PORT
setting.
Audit:
grep 1521 \
$ORACLE_HOME/network/admin/listener.ora
grep 1526 \
$ORACLE_HOME/network/admin/listener.ora
17 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.12 Third party default Set all default account Rationale: √ √ 2
passwords passwords to non-default strong When installed, some third party applications create S
passwords well-known default accounts in an Oracle database.
Remediation:
The default passwords for these accounts must be
changed or the account must be locked.
Audit:
SELECT * FROM DBA_USERS_WITH_DEFPWD;
SELECT USERNAME, ACCOUNT_STATUS FROM
DBA_USERS;
Remediation:
Alter the listener.ora file SID setting to a value other
than the default. Ensure the SID is at least 7 characters
long to prevent successful brute force attacks.
Audit:
grep -i ORCL \
$ORACLE_HOME/network/admin/listener.ora
18 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
2.14 Oracle Installation Oracle software owner account Rationale: √ √ 2
name NOT „oracle‟ Do not name the Oracle software owner account S
„oracle‟ as it is very well known and can be leveraged
by an attacker in a brute force attack.
Remediation:
Change the user used for the oracle software.
Audit:
grep -i oracle /etc/password
Remediation:
For Unix systems, create unique user accounts for
each Oracle process/service in order to differentiate
accountability and file access controls.
Audit:
None
19 | P a g e
3. Oracle Directory and File Permissions
Note: The Oracle software owner in Windows is the account used to install the product. This account must be a member of the local Administrators group. The
Windows System account is granted access to Oracle files/directories/registry keys. This account is not restated in the comments section below, but must not be
removed. Removal of the System account will cause Oracle to stop functioning.
Note: Some Unix operating systems make use of extended ACL‟s which may contain permissions more secure then the recommendations listed here. Please be
sure to fully examine and test permissions before implementing them on production systems.
Remediation:
Change the ownership of the binaries to the appropriate
account.
Audit:
ls -al $ORACLE_HOME/bin/*
Remediation:
All files in the $ORACLE_HOME/bin directory must
have permissions set to 0755 or less.
Audit:
ls -al $ORACLE_HOME/bin/*
20 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.03 Files in Permissions set to 0750 or less Rationale: √ 1
$ORACLE_HOME (not on Unix systems Incorrect permissions could allow an attacker to S
including execute or replace a command with a malicious
$ORACLE_HOME/bin) version.
Remediation:
All files in $ORACLE_HOME directories (except for
$ORACLE_HOME/bin) must have permission set to
0750 or less.
Audit:
ls –al $ORACLE_HOME
Remediation:
Ensure the umask value is 022 for the owner of the
Oracle software before installing Oracle.
Audit:
umask
21 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.05 init.ora Verify and restrict permissions Rationale: √ √ 1
File permissions must be restricted to the owner of the S
Oracle software and the dba group. If unprivileged
users can alter the init.ora configuration the security of
the oracle server can be compromised.
Remediation:
chgrp oracle_grp init.ora
chown oracleuser init.ora
chmod 644 init.ora
Audit:
ls -al $ORACLE_HOME/dbs/init.ora
Remediation:
chgrp oracle_grp spfile.ora
chown oracleuser spfile.ora
chmod 640 spfile.ora
Audit:
ls -al $ORACLE_HOME/dbs/spfile.ora
22 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.07 Database datafiles Verify and restrict permissions Rationale: √ √ 1
File permissions must be restricted to the owner of the S
Oracle software and the dba group. If unprivileged
users can read or alter the dbs files the security of the
oracle server can be compromised.
Remediation:
chown oracleuser $ORACLE_HOME/dbs/*
chgrp oraclegroup $ORACLE_HOME/dbs/*
Audit:
ls -al $ORACLE_HOME/dbs/*
Remediation:
chmod 750 ifile
chown oracleuser.oraclegroup ifile
Audit:
grep ifile init.ora
ls -al <result>
23 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.09 init.ora audit_file_dest parameter Rationale: √ √ 1
settings The destination for the audit file must be set to a valid S
directory owned by oracle and set with owner read/write
permissions only.
Remediation:
chmod 600 auditfile
chown oracleuser.oraclegroup auditfile
Audit:
grep -i audit_file_dest init.ora
ls -al <result>
Remediation:
chmod 660 diag_file
chown oracleuser.oraclegroup diag_file
Audit:
grep -i diagonostic_dest init.ora
ls -al <result>
24 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.11 init.ora control_files parameter Rationale: √ √ 1
settings The permissions must be restricted to only the owner of S
the Oracle software and the dba group.
Remediation:
chmod 640 control_file
chown oracleuser.oraclegroup control_file
Audit:
grep -i control_files init.ora
ls -al <result>
select name from V$controlfile;
Remediation:
Default is “ “ (A null string) for all. Must configure and
set paths, then ensure those directories are secure.
Audit:
grep -i log_archive_dest init.ora
ls -al <result>
25 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.13 Files in Verify and set permissions √ √ 1
$ORACLE_HOME/ Rationale: S
network/admin Permissions for all files must be restricted to the owner
directory of the Oracle software and the dba group. Note: If an
application that requires access to the database is also
installed on the database server, the user the
application runs as must have read access to the
tnsnames.ora and sqlnet.ora files.
Remediation:
chmod 644 $ORACLE/network/admin/*
chown oracleuser.oraclegroup \
$ORACLE_HOME/network/admin/*
Audit:
ls -al $ORACLE_HOME/network/admin/*
Remediation:
chmod 644 sqlnet.ora
chown oracleuser.oraclegroup sqlnet.ora
Audit:
ls –al sqlnet.ora
26 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.15 sqlnet.ora log_directory_client Rationale: √ √ 1
parameter settings The log_directory_client must be set to a valid S
directory owned by the Oracle account and permissions
restricted to read/write only for the owner and dba
group.
Remediation:
chmod 640 log_directory_client
chown oracleuser.oraclegroup \
log_directory_client
Audit:
grep -i log_directory_client sqlnet.ora
Remediation:
chmod 640 log_directory_client
chown oracleuser.oraclegroup \
log_directory_client
Audit:
grep -i log_directory_client sqlnet.ora
27 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.17 sqlnet.ora trace_directory_client Rationale: √ √ 1
parameter settings The trace_directory_client parameter settings S
must be set to a valid directory owned by the Oracle
account and permissions restricted to read/write only
for the owner and read for the dba group.. By default
this is not set. Be aware, this is usually set to
$ORACLE_HOME/network/trace, with permissions
set as:
Remediation:
chmod 640 log_directory_client
chown oracleuser.oraclegroup \
log_directory_client
Audit:
grep -i trace_directory_client sqlnet.ora
Remediation:
chmod 640 trace_directory_server
chown oracleuser.oraclegroup
trace_directory_server
Audit:
grep -i trace_directory_server sqlnet.ora
28 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.19 listener.ora Verify and set permissions Rationale: √ √ 1
File permissions must be restricted to the owner of the S
Oracle software and the dba group. If backup copies of
the listener.ora file are created these backup files must
be removed or they must have their permissions
restricted to the owner of the Oracle software and the
dba group.
Remediation:
chmod 660 \
$ORACLE_HOME/network/admin/listener.ora
chown oracleuser.oraclegroup \
$ORACLE_HOME/network/admin/listener.ora
Audit:
ls -al \
$ORACLE_HOME/network/admin/listener.ora
Remediation:
chmod 640 \
$ORACLE_HOME/network/log/listener.log
chown oracleuser.oraclegroup \
$ORACLE_HOME/network/log/listener.log
Audit:
grep -i log_file_listener \
$ORACLE_HOME/network/admin/listener.ora
29 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.21 listener.ora trace_directory_listener Rationale: √ √ 1
_name parameter settings The trace_directory_listener_name must be S
set to a valid directory owned by the Oracle account
and permissions restricted to read/write only for the
owner and dba group.
Remediation:
chmod 660 trace_dir
chown oracleuser.oraclegroup trace_dir
Audit:
grep -i trace-directory \
$ORACLE_HOME/network/admin/listener.ora
Remediation:
chown oracleuser.oraclegroup \
$ORACLE_HOME/network/trace
chmod 660 $ORACLE_HOME/network/trace
Audit:
grep -i trace_file \
$ORACLE_HOME/network/admin/listener.ora
ls –al <result>
30 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.23 sqlplus Verify and set permissions Rationale: √ √ 1
The permissions of the binaries for sqlplus on the S
server must be restricted to the owner of the Oracle
software and the dba group.
Remediation:
chown oracleuser.oraclegroup sqlplus
chmod 750 sqlplus
Audit:
which -a sqlplus
ls -al <result(s)>
Remediation:
chown oracleuser.oraclegroup .htaccess
chmod 644 .htaccess
Audit:
ls –al .htaccess
31 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
3.25 dads.conf Verify and set permissions Rationale: √ √ 1
File permissions must be restricted to the owner of the S
Oracle software and the dba group.
Remediation:
chown oracleuser.oraclegroup dads.conf
chmod 644 dads.conf
Audit:
ls –al dads.conf
Remediation:
chown oracleuser.oraclegroup \
xsqlconfig.xml
chmod 640 xsqlconfig.xml
Audit:
ls -al \
$ORACLE_HOME/xdk/admin/XSQLConfig.xml
32 | P a g e
4. Oracle Parameter Settings
Remediation:
Set _trace_files_public= FALSE
Audit:
grep –i _trace_files_public init.ora
Remediation:
Set global_names= TRUE in init.ora
Audit:
grep -i global_names init.ora
33 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.03 Init.ora remote_os_authent=FALSE Rationale: √ √ 1
This setting has been deprecated, however is S
maintained for backwards compatibility. If this setting is
used it is recommended to be set to FALSE.
remote_os_authent will allow a user that is
authenticated to the network domain to access the
database without DB credentials.
Remediation:
Set remote_os_authent=FALSE.
Audit:
grep -i remote_os_authent init.ora
Remediation:
Set remote_os_roles= FALSE.
Audit:
grep -i remote_os_roles init.ora
Remediation:
Set remote_listener=“”.
Audit:
grep -i remote_listener init.ora
34 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.06 init.ora audit_trail parameter set to Rationale: √ √ 1
OS, DB, DB_EXTENDED, Ensures that basic audit features are used. S
XML, or XML, EXTENDED Recommend setting audit_trail to OS as it reduces
the likelihood of a Denial of Service attack and it is
easier to secure the audit trail. OS is required if the
auditor is distinct from the DBA. Any auditing
information stored in the database is viewable and
modifiable by the DBA if set to DB or DB_EXTENDED.
Even with the audit_trail value set to FALSE, an
audit session will report, "Audit succeeded." The default
is DB.
Remediation:
Alter the init.ora file and set audit_trail=OS
Audit:
grep -i audit_trail init.ora
Remediation:
Set os_authent_prefix=““
Audit:
grep -i os_authent_prefix init.ora
35 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.08 init.ora os_roles=FALSE Rationale: √ √ 1
os_roles allows externally created groups to be used S
to manage database roles. This can lead to misaligned
or inherited permissions.
Remediation:
Set os_roles=FALSE
Audit:
grep -i os_roles init.ora
Remediation:
Use CREATE DIRECTORY
Audit:
grep -i utl_file_dir init.ora
36 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.10 init.ora Establish redundant physically Rationale: √ √ 1
separate locations for redo log Redundancy for the redo logs can prevent catastrophic S
files. Use loss in the event of a single physical drive failure. If this
“LOG_ARCHIVE_DUPLEX_DEST” parameter is used, it must be set to a valid directory
to establish a redundant location owned by oracle set with owner and group read/write
for the redo logs. permissions only. For complex configurations where
different groups need access to the directory, access
control lists must be used.
Remediation:
Set LOG_ARCHIVE_DUPLEX_DEST to a valid, properly
secured, directory.
Audit:
grep -i log_archive_duplex_dest init.ora
Audit:
grep -i LOG_ARCHIVE_MIN_SUCCEED_DEST \
init.ora
37 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.12 init.ora sql92_security= TRUE Rationale: √ √ 2
Enforce the requirement that a user must have SELECT S
privilege on a table in order to be able to execute
UPDATE and DELETE statements using WHERE
clauses on a given table.
Remediation:
Set sql92_security= TRUE
Audit:
grep -i sql92_security init.ora
Remediation:
Set admin_restrictions_listener_name = on
Audit:
grep -i admin_restrictions listener.ora
38 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.14 listener.ora logging_listener=ON Rationale: √ √ 1
Logging of all listener actions will create an audit trail in S
the event that a listener is attacked or needs to be
debugged. This setting is not set, but is enabled by
default.
Remediation:
Set logging_listener=ON
Audit:
grep -i logging_listener listener.ora
4.15 SQL key word Log listener actions not set, but Rationale: √ √ 1
“NOLOGGING” turned on by default. Malicious code can be executed without an audit trail N
under the key word NOLOGGING.
Remediation:
Search applications and SQL files for the usage of the
NOLOGGING keyword.
Audit:
None
39 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.16 init.ora o7_dictionary_accessibil Rationale: √ √ 2
ity= FALSE This is a database initialization parameter that controls S
access to objects in the SYS schema. Set this to
FALSE to prevent users with EXECUTE ANY
PROCEDURE and SELECT ANY DICTIONARY from
accessing objects in the SYS schema. If access to
these objects is required, the following roles can be
assigned, SELECT_CATALOG_ROLE,
EXECUTE_CATALOG_ROLE, DELETE_CATALOG_ROLE.
If set to TRUE, accounts with "ANY" privileges could get
access to objects in the SYS schema. Default setting is
FALSE.
Remediation:
Set o7_dictionary_accessibility= FALSE
Audit:
grep –i o7_dictionary_accessibility \
init.ora
40 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.17 spfile<sid>.ora Remove the following from the Rationale: √ √ 2
spfile: This will disable default ports ftp: 2100 and http: 8080. S
dispatchers= (PROTOCOL= Removing the XDB ports will reduce the attack surface
TCP) (SERVICE= of the Oracle server. It is recommended to disable
<oracle_sid>XDB) these ports if production usage is not required.
Remediation:
Remove the following from spfile:
Audit:
grep -i XDB spfile<sid>.ora
Remediation:
Set AUDIT_SYS_OPERATIONS=TRUE. The default
value is FALSE within spfile. Set
AUDIT_FILE_DEST to your designated logging
directory.
Audit:
grep -i AUDIT_SYS_OPERATIONS init.ora
41 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.19 listener.ora inbound_connect_ Rationale: √ √ 2
timeout_listener=2 Allowing inbound connections to hold open half S
connections consumes database resources and can
lead to denial of service. Set the initial value low and
adjust upward if normal clients are unable to connect
within the time allocated.
Remediation:
Set inbound_connect_timeout_listener=2
Audit:
grep -i inbound_connect_timeout \
listener.ora
Remediation:
Set tcp.validnode_checking=YES
in $ORACLE_HOME/network/admin/sqlnet.ora.
Audit:
grep -i tcp.validnode_checking sqlnet.ora
42 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.21 sqlnet.ora Set tcp.invited_nodes to Rationale: √ √ 2
valid values This creates a list of trusted nodes that can connect to S
the listener. The excluded_nodes value is ignored if
this is set and a default deny policy is created only
allowing the listed trusted nodes to connect to the
listener.
Remediation:
Use IP addresses of authorized hosts to set this
parameter in the sqlnet.ora file.
Audit:
grep -i tcp.invited_nodes sqlnet.ora
Remediation:
Use IP addresses of unauthorized hosts to set this
parameter in the sqlnet.ora file.
Audit:
grep -i tcp.excluded_nodes sqlnet.ora
43 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.23 sqlnet.ora sqlnet.inbound_ Rationale: √ √ 2
connect_timeout=3 Allowing inbound connections to hold open half S
connections consumes database resource and can
lead to denial of service. Suggestion is to set to a low
initial value and adjust upward if normal clients are
unable to connect within the time allocated.
Remediation:
Set sqlnet.inbound_connect_timeout=3
Audit:
grep -i inbound_connect_timeout \
sqlnet.ora
Remediation:
Set sqlnet.expire_time= 10
Audit:
grep -i expire_time sqlnet.ora
44 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.25 Accounts Lock account access for Rationale: √ √ 2
application schema owners Lock the account for the application schema owner. S
Users must not connect to the database as the
application owner.
Remediation:
ALTER USER <USERNAME> ACCOUNT LOCK
PASSWORD EXPIRE
Audit:
SELECT USERNAME, ACCOUNT_STATUS FROM
DBA_USERS;
45 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.26 init.ora remote_login_passwordfil Rationale: √ √ 2
e=none Prevents remote privileged connections to the S
database. This suggests that remote administration
should be performed by remotely logging into the
database server via a secured connection. Alternately,
an administrative listener could be created, the
remote_login_passwordfile set to exclusive, and
logging of the administrative listener implemented.
Remediation:
For Windows: Set remote_login_passwordfile
setting to none.
Implement remote management to a Windows based
host viaTerminal Server and IPSec.
Audit:
grep –i remote_login_passwordfile \
init.ora
46 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.27 sqlnet.ora SQLNET.ALLOWED_LOGON_VER Rationale: √ √ 2
SION=11 Set the login version to the 11. The higher setting S
prevents logins by older version clients that do not use
strong authentication to pass the login credentials. The
default setting is 10,9,8.
Remediation:
SQLNET.ALLOWED_LOGON_VERSION=11
Audit:
grep -i ALLOWED_LOGIN_VERSION sqlnet.ora
Remediation:
Remove broad path or classpath variables and ensure
only absolute paths are used.
Audit:
grep –i ENVS listener.ora
.
4.29 cman.ora REMOTE_ADMIN=NO Rationale: √ √ 2
Ensure remote administration is not left enabled. S
Default is NO.
Remediation:
Set REMOTE_ADMIN = NO.
Audit:
grep –i REMOTE_ADMIN cman.ora
47 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.30 listener.ora, Disable external procedures Rationale: √ √ 2
tnsnames.ora Remove entries for external procedures from N
listener.ora or tnsnames.ora file. External
procedures can call shared libraries on the host system
from the $ORACLE_HOME/lib or
$ORACLE_HOME/bin directories. This creates a
dangerous condition. If not required disable their
usage.
Remediation:
Remove external shared libraries from
$ORACLE_HOME/lib
Audit:
None
Remediation:
SEC_RETURN_SERVER_RELEASE_BANNER = false
Audit:
grep -i \
SEC_RETURN_SERVER_RELEASE_BANNER init.ora
48 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.32 init.ora DB_SECUREFILE=ALWAYS Rationale: √ √ 2
Ensure that all LOB files created by Oracle are created N
as SecureFiles.
Remediation:
DB_SECUREFILE=ALWAYS
Audit:
grep -i DB_SECUREFILE init.ora
Remediation:
SEC_CASE_SENSITIVE_LOGON=TRUE
Audit:
grep -i SEC_CASE_SENSITIVE_LOGO init.ora
49 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.34 init.ora SEC_MAX_FAILED_LOGIN_ATT Rationale: √ √ 1
EMPTS=3 Set the maximum number of failed login attempts to be S
3 or in sync with established password policies. This
will reduce the effectiveness of a password brute force
attack.
Remediation:
SEC_MAX_FAILED_LOGIN_ATTEMPTS=3
Audit:
grep -i SEC_MAX_FAILED_LOGIN_ATTEMPTS \
init.ora
Remediation:
SEC_PROTOCOL_ERROR_FURTHER_ACTION=DELAY
<seconds>or DROP<seconds>
Audit:
grep –i \
SEC_PROTOCOL_ERROR_FURTHER_ACTION \
init.ora
50 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.36 init.ora SEC_PROTOCOL_ERROR_TRACE Rationale: √ √ 1
_ACTION=LOG or ALERT Specify the action a database should take when a bad S
packet is received. TRACE generates a detailed trace
file and should only be used when debugging.
ALERT or LOG should be used to capture the event.
Use currently established procedures for checking
console or log file data to monitor these events.
Remediation:
SEC_PROTOCOL_ERROR_TRACE_ACTION=
{LOG|ALERT}
Audit:
grep –i \
SEC_PROTOCOL_ERROR_TRACE_ACTION init.ora
Remediation:
SEC_USER_AUDIT_ACTION_BANNER=/path/to/war
ning.txt
Audit:
grep –i \
SEC_USER_AUDIT_ACTION_BANNER sqlnet.ora
51 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.38 sqlnet.ora SEC_USER_UNAUTHORIZED_AC Rationale: √ √ 1
CESS_BANNER=/path/to/war A banner should be set to warn a user about N
ning.txt unauthorized access to the database that is in line with
current policy or language. Set the complete path to the
file that contains the warning. OCI and other custom
applications must make use of this parameter before it
is displayed to the user.
Remediation:
SEC_USER_UNAUTHORIZED_ACCESS_BANNER=/path
/to/warning.txt
Audit:
grep -i \
SEC_USER_UNAUTHORIZED_ACCESS_BANNER \
sqlnet.ora
Remediation:
SECURE_CONTROL_listener_name=(TCPS,IPC)
Audit:
grep -i SECURE_CONTROL listener.ora
52 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.40 listener.ora SECURE_PROTOCOL_listener Rationale: √ √ 1
_name=(TCP,IPC) Ensure that any administration requests are accepted S
only over secure transport. If only IPC or TCP is
required then set the value to TCPS or IPC.
Remediation:
SECURE_PROTOCOL_listener_name=(TCPS,IPC)
Audit:
grep -i SECURE_PROTOCOL listener.ora
Remediation:
SECURE_REGISTER_listener_name=(TCPS,IPC)
Audit:
grep -i SECURE_REGISTER listener.ora
Remediation:
DYNAMIC_REGISTRATION_listener_name=OFF
Audit:
grep –i DYNAMIC_REGISTRATION listener.ora
53 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
4.43 listener.ora EXTPROC_DLLS=ONLY Rationale: √ √ 1
Where use of external procedures is required, specify S
the EXTPROC_DLLS=ONLY in the parameter to limit
calls to the specific DLLS. This prevents external DLLs
and libraries from being loaded by the Oracle database.
An attacker that can load an external library into the
Oracle running instance can take control or
compromise system security. If external DLLs must be
used specify the ONLY parameter and an absolute
path for each required DLL.
Remediation:
EXTPROC_DLLS=ONLY
Audit:
grep –i EXTPROCS_DLLS listener.ora
54 | P a g e
5. Encryption Specific Settings
Note: OAS is installed by default even if it is not licensed. Therefore, it must be configured even if it is not used.
Remediation:
Review requirement for integrity and confidentiality
requirements.
Audit:
None
Remediation:
SQLNET.ENCRYPTION_SERVER=REQUIRED
Audit:
grep –i ENCRYPTION_SERVER sqlnet.ora
55 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.03 OAS – Encryption SQLNET.ENCRYPTION_CLIENT Rationale: √ √ 2
Type =(ACCEPTED|REQUESTED|REQ Communication is only possible on the basis of an S
UIRED) agreement between the client and the server regarding
the connection encryption. To ensure encrypted
communication, set the value to REQUIRED.
With the server set to REQUIRED the client must match
the encryption for valid communication to take place.
Default is accepted.
Remediation:
SQLNET.ENCRYPTION_CLIENT=REQUIRED
Audit:
grep –i ENCRYPTION_CLIENT sqlnet.ora
Remediation:
SSLFIPS_140 =TRUE
Audit:
grep –i SSL_FIPS fips.ora
56 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.07 OAS – Integrity Integrity check for Rationale: √ √ 2
Protection communication between the The integrity check for communication can prevent data S
server and the client must be modifications. Two check sum algorithms are available;
established. SHA-1 and MD5.
Audit:
grep –i CRYPTO_CHECKSUM_SERVER sqlnet.ora
grep –i CRYPTO_CHECKSUM_CLIENT sqlnet.ora
Remediation:
Set
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1
)
Audit:
grep –i CHECKSUM_TYPES_SERVER sqlnet.ora
57 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.09 OAS – Oracle Wallet Set configuration method for Rationale: √ √ 2
Owner Permissions Oracle Wallet. Ensure only the The Oracle service account must have access to the N
appropriate Oracle user account wallet.
has access to the wallet.
Remediation:
None
Audit:
None
Remediation:
Remove certificate authorities (CAs) that are not
required.
Audit:
orapki wallet display -wallet \
wallet_location
Remediation:
When adding CAs, verify fingerprint of CA certificates.
Audit:
None
58 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.12 OAS – Certificate Request the maximum key size Rationale: √ √ 2
Request Key Size available. Select the largest key size available that is compatible S
with the network environment. 2048 or 4096 are
recommended sizes.
Remediation:
orapki wallet add -wallet \
wallet_location -dn user_dn –keySize 2048
Audit:
orapki wallet display -wallet \
wallet_location
5.13 OAS – Server Oracle Allow Auto Login for the server‟s Rationale: √ √ 2
Wallet Auto Login Oracle Wallet For Windows Oracle database servers, SSL will not S
work unless Auto Login is set.
Remediation:
To enable auto login from the Oracle Wallet Manager.
Choose Wallet from the menu bar.
Check Auto Login. A message at the bottom of the
window indicates that auto login is enabled.
Audit:
Choose Wallet from the menu bar.
Check Auto Login.
Remediation:
Use OAS Integrity/Encryption only if SSL is
unavailable.
Audit:
None
59 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.15 OAS – SSL Version Set SSL version. Rationale: √ √ 2
SSL_VERSION = 3.0 Usage of the most current version of SSL is S
recommended older versions of the SSL protocol are
prone to attack or roll back. Do not set this parameter
with “Any”.
Remediation:
SSL_VERSION = 3.0
Audit:
grep –i SSL_VERSION sqlnet.ora
Remediation:
SSL_CIPHER_SUITES =(
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA,
SSL_DH_anon_WITH_DES_CBC_SHA,
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA,
SSL_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_RSA_WITH_DES_CBC_SHA,
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA)
Audit:
grep –i SSL_CIPHER_SUITES sqlnet.ora
60 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.17 OAS – SSL Client DN Set tnsnames file to include Rationale: √ √ 2
Match SSL_SERVER_CERT_DN This will reduce the possibility of certificate S
parameter with the distinguished masquerading which can lead to man in the middle
name (DN) of the certificate. attacks and compromise the security provided by the
SSL protocol.
Remediation:
SSL_SERVER_CERT_DN= \
"cn=dept,cn=OracleContext,dc=us,dc=acme,\
dc=com"
Audit:
grep –i SSL_SERVER_CERT_DN tnsnames.ora
Remediation:
SSL_CLIENT_AUTHENTICATION=true
Audit:
grep –i SSL_CLIENT_AUTHENTICATION \
sqlnet.ora
5.19 OAS – Encryption Tab Use OAS encryption only if SSL Rationale: √ √ 2
is not feasible. OAS Integrity/Encryption should only be used if N
required because of non-SSL clients.
Remediation:
None
Audit:
None
61 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.20 Encryption Where possible, use a Rationale: √ √ 2
procedure that employs a By employing a procedure that uses data elements that N
content data element as the change for each record the resulting ciphertext will be
encryption key that is unique for unique. As an example if the same value, key, and
each record. encryption are used for a value in a record the resulting
ciphertext will be identical. Someone knowing the value
of one of the records independent of the ciphertext can
by inference know the value of other records that
display the same ciphertext.
Remediation:
None
Audit:
None
Remediation:
None
Audit:
None
62 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.22 Encryption If keys are stored in a table with Rationale: √ √ 2
the database, access to the Assign multiple layers of protection, within the limits of N
keys should be limited and what can be managed, to ensure the security of the
under the protection of a secure encryption keys. The combination of methods will be
role with fine grain auditing in dependent on how and where the keys are stored.
place for the table.
The column name should be Remediation:
obscure and should not reveal Use multiple layers of protection when storing keys with
the role of the column. the data in a separate database.
Rows should be protected with
both VPD and OLS (OLS Employ wrapping to protect all code used to protect,
included VPD) and the keys generate keys for, or encrypt keys.
themselves should be encrypted
with a master key. If security dictates, hardware devices can be used for
encryption key storage.
If the keys are managed by an
application or generated as Keys, at minimum, should follow password selection
computed keys the procedures standards in areas of minimum length, use of special
should be wrapped. characters and non-dictionary words.
All package bodies, procedures,
and functions should be Audit:
wrapped. None
63 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.23 Encryption Revoke the PUBLIC execute Rationale: √ √ 2
privileges from the The DBMS_OBFUSCATION_TOOLKIT has been S
DBMS_OBFUSCATION_TOOLKIT replaced with the DBMS_CRYPTO package, but the
. DBMS_OBFUSCATION_TOOLKIT is still needed for
some tasks that are not available in the DBMS_CRYPTO
package. As an example; the generation of a
pseudorandom string requires the
DBMS_OBFUSCATION_TOOLKIT. By removing public
access to the DBMS_OBFUSCATION_TOOLKIT the
means to decrypt the data is not available for malicious
use.
Remediation:
REVOKE EXECUTE ON
DBMS_OBFUSCATION_TOOLKIT TO PUBLIC;
Audit:
SELECT TABLE_NAME FROM DBA_TAB_PRIVS
WHERE GRANTEE='PUBLIC' AND
PRIVILEGE='EXECUTE' AND
TABLE_NAME='DBMS_OBFUSCATION_TOOLKIT';
Remediation:
None
Audit:
None
64 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.25 Encryption Tablespace Encryption Rationale: √ √ 2
When a table contains a large number of columns of N
PII it can be beneficial to encrypt an entire tablespace
rather than columns.
Remediation:
Use tablespace encryption .
Audit:
None
Remediation:
chmod 440 \
$ORACLE_HOME/network/security/radius.key
Audit:
ls –al \
$ORACLE_HOME/network/security/radius.key
Remediation:
SSL_CERT_REVOCATION=required
Audit:
grep –i SSL_CERT_REVOCATION sqlnet.ora
65 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
5.28 sqlnet.ora SSL_SERVER_DN_MATCH=yes Rationale: √ √ 2
Ensure the DN string of the certificate matches the S
expected value.
Remediation:
SSL_SERVER_DN_MATCH=yes
Audit:
grep –i SSL_SERVER_DN_MATCH sqlnet.ora
66 | P a g e
6. Startup and Shutdown
Remediation:
Empty queues at the shutdown of the Oracle instances.
DBMS_AQADM.PURGE_QUEUE_TABLE(
queue_table => 'name.obj_qtab',
purge_condition => NULL,
purge_options => po);
DBMS_AQADM.PURGE_QUEUE_TABLE(
queue_table => 'bane.obj_qtab',
purge_condition => 'qtview.queue =
''NAME.OBJ_QUEUE''',
purge_options => po);
Audit:
None
Remediation:
ALTER SYSTEM FLUSH BUFFER_CACHE;
Audit:
None
67 | P a g e
7. Backup and Disaster Recovery
Remediation:
Mirror on-line redo logs and ensure that more than one
group exists.
Audit:
None
Remediation:
Store control files on a RAID or other redundant disk
system.
Audit:
None
.
68 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
7.03 Control files Mirror Rationale: √ √ 1
Mirror the Oracle control files. In the event that the N
control files become corrupted or a system failure
mirroring will help ensure recovery is possible.
Remediation:
Mirror control files to multiple separate physical
partitions.
Audit:
None
Remediation:
Allocate more disk space to redo log partitions.
Audit:
None
Remediation:
None
Audit:
None
69 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
7.06 Archive log files Backup Rationale: √ √ 1
Archived logs contain sensitive information and must N
be properly handled.
Remediation:
If archive log mode is used the archive log files must be
saved on tape or to a separate disk. File permissions
must be restricted to the owner of the Oracle software
and the dba group. The archive logs must be secured.
Audit:
None
Remediation:
Backups should be verified by performing recoveries to
ensure newer automated backups function properly.
Failure to ensure this could cause inability to recover
data, leading to data loss. The improved RMAN
(Recovery Manager) capabilities (i.e., incremental
backup process) can be used to facilitate backups and
recovery.
Audit:
None
70 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
7.08 Failsafe Failsafe must be engaged. Rationale: √ 2
Failsafe uses the cluster server interface to provide the N
failover protection previously provided by hardware
interfaces.
Remediation:
Engage failsafe.
Audit:
None
71 | P a g e
8. Oracle Profile (User) Setup Settings
Remediation:
Application accounts must be set for
failed_login_attempts=3
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟FAILED_LOGIN_ATTEMPTS‟
72 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.02 Database Profiles password_life_time= 90 Rationale: √ √ 1
Restricting the password lifetime will help deter brute S
force attacks against user accounts and refresh
passwords.
Remediation:
ALTER PROFILE profile_name LIMIT
password_life_time 90;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟PASSWORD_LIFE_TIME‟
73 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.03 Database Profiles password_reuse_max=20 Rationale: √ √ 1
password_reuse_max sets the number of different S
passwords that must be rotated by the user before the
current password can be reused. This prevents users
from cycling through a few common passwords and
helps ensure the integrity and strength of user
credentials.
Remediation:
ALTER PROFILE profile_name LIMIT
password_reuse_max 20;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟PASSWORD_REUSE_MAX‟
74 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.04 Database Profiles password_reuse_time= 365 Rationale: √ √ 1
password_reuse_time sets the amount of time that S
must pass before a password can be reused. Creating
a long window before password reuse helps protect
from password brute force attacks and helps the
strength and integrity of the user credential.
Remediation:
ALTER PROFILE profile_name LIMIT
password_reuse_time 365;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟PASSWORD_REUSE_TIME‟
Remediation:
ALTER PROFILE profile_name LIMIT
password_lock_time 1;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟PASSWORD_LOCK_TIME‟
75 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.06 Database Profiles password_grace_time=3 Rationale: √ √ 1
password_grace_time specified in days the amount S
of time that the user is warned to change their
password before their password expires.
Remediation:
ALTER PROFILE profile_name LIMIT
password_grace_time 3;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟PASSWORD_GRACE_TIME‟
Remediation:
ALTER USER <username> IDENTIFIED BY
<new_password>;
Audit:
SELECT USERNAME FROM DBA_USERS WHERE
PASSWORD='EXTERNAL';
76 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.08 Database Profiles Set Rationale: √ √ 2
password_verify_function Allow password_verification_function to be S
to a verification function called when passwords are changed. This always
works for password changes via the “password”
command at an SQL prompt.
Remediation:
Oracle provides utlpwdmg.sql which can be used to
create a password verification function. If using this
script to create a password verification function, make
the following changes at the bottom of the
utlpwdmg.sql file:
PASSWORD_GRACE_TIME 3
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 20
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1
Audit:
SELECT PROFILE, RESOURCE_NAME FROM
DBA_PROFILES WHERE
RESOURCE_NAME='PASSWORD_VERIFY_FUNCTION';
77 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.09 Database Profiles Set CPU_PER_SESSION as Rationale: √ √ 2
appropriate Allowing a single application or user to consume S
excessive CPU resources will result in a denial of
service to the Oracle database. Ensure that users
profile settings have appropriate values set for the
particular database and application.
Remediation:
ALTER PROFILE profile_name LIMIT
CPU_PER_SESSION <value>;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE
RESOURCE_NAME=‟CPU_PER_SESSION‟;
Remediation:
ALTER PROFILE profile_name LIMIT
PRIVATE_SGA <value>;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE RESOURCE_NAME=‟
PRIVATE_SGA‟;
78 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.11 Database Profiles Set LOGICAL_READS_ Rationale: √ √ 2
PER_SESSION as appropriate Allowing a single application or user to perform S
excessive amounts of reads to disk will result in a
denial of service to the Oracle database.
Ensure that users profile settings have appropriate
values set for the particular database and application.
Remediation:
ALTER PROFILE profile_name LIMIT
LOGICAL_READS_ PER_SESSION <value>;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE RESOURCE_NAME=‟
LOGICAL_READS_PER_SESSION‟;
Remediation:
ALTER PROFILE profile_name LIMIT
SESSIONS_PER_USER <value>;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE RESOURCE_NAME=‟
SESSIONS_PER_USER‟;
79 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.13 Database Profiles Set CONNECT_TIME as Rationale: √ √ 2
appropriate Sessions held open for excessive periods of time can N
consume system resources and cause a denial of
service for other users of the Oracle database. The
CONNECT_TIME parameter limits the upper bound on
how long a session can be held open. This parameter
is specified in minutes. Sessions that have exceeded
their connect time are aborted and rolled back. Note:
Oracle does not do strict monitoring of connect times
and sessions can exceed this time limit by up to a few
minutes. Ensure that users profile settings have
appropriate values set for the particular database and
application.
Remediation:
ALTER PROFILE profile_name LIMIT
CONNECT_TIME <value>;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE RESOURCE_NAME=‟
CONNECT_TIME‟;
80 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
8.14 Database Profiles Set IDLE_TIME as appropriate Rationale: √ √ 2
Idle sessions held open for excessive periods of time N
can consume system resources and cause a denial of
service for other users of the Oracle database. Limit the
maximum number of minutes a session can idle.
Ensure that users profile settings have appropriate
values set for the particular database and application.
Remediation:
ALTER PROFILE profile_name LIMIT
IDLE_TIME <value>;
Audit:
SELECT PROFILE, RESOURCE_NAME, LIMIT FROM
DBA_PROFILES WHERE RESOURCE_NAME=‟
IDLE_TIME‟;
81 | P a g e
9. Oracle Profile (User) Access Settings
Note: Security recommendations for Tablespaces, Tables, Views, Roles, Synonyms, Privileges, Roles and Packages need to be followed for all new users that
might be created. By default SYS and DBA have most of these accesses and privileges, and should be the only users granted permissions.
Remediation:
ALTER USER DEFAULT_TABLESPACE table;
Audit:
SELECT USERNAME, DEFAULT_TABLESPACE FROM
DBA_USERS;
Remediation:
ALTER USER <USER_NAME> QUOTA <VALUE> ON
<TABLESPACE_NAME>;
Audit:
SELECT <USERNAME> FROM DBA_TS_QUOTAS
WHERE USERNAME=‟USER‟ AND
TABLESPACE_NAME=‟TABLESPACE_NAME‟;
82 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.03 Any dictionary object Review access and revoke Rationale: √ √ 1
access where possible Check for any user that has access to any dictionary N
object and revoke where possible. This reduces the
overall privileges of the user base and reduces the
attack surface of the Oracle database.
Remediation:
Review access rights and revoke privileges where
possible.
Audit:
None
Remediation:
REVOKE ALL ON SYS.AUD$ FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE FROM
DBA_TAB_PRIVS WHERE TABLE_NAME=‟AUD$‟
83 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.05 Tables Prevent access to Rationale: √ √ 1
SYS.USER_HISTORY$ Revoke access to this table from all users and roles S
except for SYS and DBA accounts. Allowing users to
alter the USER_HISTORY$ table can compromise the
audit trail or integrity of the Oracle database.
Remediation:
REVOKE ALL ON SYS.USER_HISTROY$ FROM
<USER>;
Audit:
SELECT GRANTEE, PRIVILEGE FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟USER_HISTORY$‟;
Remediation:
REVOKE ALL ON SYS.LINK$ FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE FROM
DBA_TAB_PRIVS WHERE TABLE_NAME=‟LINK$‟;
84 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.07 Tables Prevent access to SYS.USER$ Rationale: √ √ 1
Sensitive user and password data is stored in the S
USER$ table. Only administrative or system users
should have rights to access this table. Check for any
user that has access and revoke where possible.
Remediation:
REVOKE ALL ON SYS.USER$ FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE FROM
DBA_TAB_PRIVS WHERE TABLE_NAME=‟USER$‟;
Remediation:
REVOKE ALL ON SYS.SOURCE$ FROM <USER> ;
Audit:
SELECT GRANTEE, PRIVILEGE FROM
DBA_TAB_PRIVS WERE TABLE_NAME=‟SOURCE$‟;
85 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.09 Tables Prevent access to Rationale: √ √ 1
PERFSTAT.STATS$SQLTEXT Check for any user that has access and revoke where S
possible. SQLTEXT stores the full text of SQL
statements that have been executed and can contain
sensitive information.
Remediation:
REVOKE ALL ON PERFSTAT.STATS$SQLTEXT;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME=‟
STATS$SQLTEXT‟;
Remediation:
REVOKE ALL ON PERFSTAT.STATS$SQLSUM;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=‟STATS$SQLSUM‟;
86 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.11 Tables Prevent access to any X$ table Rationale: √ √ 1
X$ tables are kernel tables used by Oracle internals S
and should not be accessed by users. Check for any
user that has access and revoke where possible.
Remediation:
REVOKE ALL ON X$<TABLENAME> FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME
LIKE(„X$%‟);
Remediation:
REVOKE ALL ON DBA_<TABLENAME> FROM
<USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME
LIKE(„DBA_$%‟);
87 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.13 Views Prevent access to any V$ views Rationale: √ √ 1
V$ tables contain sensitive information about Oracle S
database and should only be accessible by system
administrators. Check for any user that has access and
revoke where possible.
Remediation:
REVOKE ALL ON TABLE_NAME FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME
LIKE(„V$%‟);
Remediation:
REVOKE ALL ON ALL_ SOURCE FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=‟ALL_SOURCE‟;
88 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.15 Views Prevent access to DBA_ROLES Rationale: √ √ 1
Allowing the user to alter the DBA_ROLES can result in S
privilege escalation or system instability. Restrict
access to this view to all users except SYS and DBAs.
Remediation:
REVOKE ALL ON DBA _ROLES FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=DBA_ROLES‟;
Remediation:
REVOKE ALL ON DBA_SYS_PRIVS FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=DBA_SYS_PRIVS‟;
89 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.17 Views Prevent access to Rationale: √ √ 1
DBA_ROLE_PRIVS Allowing a user to access the dba_role_privs view S
will show the role privileges for all roles in the Oracle
database. Restrict access to this view to all users
except SYS and DBAs.
Remediation:
REVOKE ALL ON DBA_ROLE_PRIVS FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=DBA_ROLE_PRIVS‟;
Remediation:
REVOKE ALL ON DBA_TAB_PRIVS FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME=DBA_
TAB _PRIVS‟;
90 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.19 Views Prevent access to DBA_USERS Rationale: √ √ 1
Allowing a user to access the dba_users view will S
show the role privileges for all users in the Oracle
database. Restrict access to this view to all users
except SYS and DBAs.
Remediation:
REVOKE ALL ON DBA_USERS FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=DBA_USERS‟;
Remediation:
REVOKE ALL ON ROLE_ROLE_PRIVS FROM
<USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME=‟
ROLE_ROLE_PRIVS;
91 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.21 Views Prevent access to Rationale: √ √ 1
USER_TAB_PRIVS Allowing a user to access the user_tab_privs view S
will show the granted table privileges for all users in the
Oracle database. Restrict access to this view to all
users except SYS and DBAs.
Remediation:
REVOKE ALL ON USER_TAB_PRIVS FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=‟USER_TAB_PRIVS;
Remediation:
REVOKE ALL ON USER_ROLE_PRIVS TO <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME=‟
USER_ROLE_PRIVS;
92 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.23 Roles Prevent assignment of roles that Rationale: √ √ 1
have _CATALOG_ Revoke any catalog roles from those roles and users S
that do not need them. These roles are
SELECT_CATALOG_ROLE,
EXECUTE_CATALOG_ROLE, DELETE_CATALOG_ROLE,
and RECOVERY_CATALOG_OWNER.
Remediation:
REVOKE ALL ON <ROLE> FROM <USER>;
Audit:
SELECT GRANTEE, PRIVILEGE, TABLE_NAME
FROM DBA_TAB_PRIVS WHERE TABLE_NAME
LIKE(„%_CATALOG_%‟);
Remediation:
Delete the synonym or revoke the privileges
Audit:
SELECT SYNONYM_NAME, TABLE_NAME FROM
ALL_SYNONYMS WHERE TABLE_NAME
LIKE(„V$%‟);
Audit:
None
93 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.26 Privileges Restrict system privileges Rationale: √ √ 1
All system privileges except for CREATE SESSION S
must be restricted to DBAs, application object owner
accounts/schemas (locked accounts) and default
Oracle accounts. Developers may be granted limited
system privileges as required on development
databases.
Remediation:
REVOKE ALL <PRIVS> FROM <USER>;
Audit:
SELECT * FROM DBA_SYS_PRIVS;
Remediation:
Check for any user or role that has the ANY keyword
and revoke this role where possible.
Audit:
SELECT * FROM DBA_SYS_PRIVILEGES WHERE
PRIVILEGE LIKE(„%ANY%‟);
94 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.28 Privileges Prevent granting of all privileges Rationale: √ √ 2
The GRANT ALL PRIVILEGES must not be used; it N
gives full access to all tables, views and objects to the
user or role it is granted to.
Remediation:
REVOKE ALL PRIVILEGES FROM <USER/ROLE>
GRANT <SPECIFIC PRIVILEGES> TO
<USER/ROLE>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE=‟GRANT ANY PRIVILEGE‟;
Remediation:
REVOKE EXEMPT ACCESS POLICY FROM <USER>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE='EXEMPT ACCESS POLICY';
95 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.30 Privileges Prevent granting of privileges Rationale: √ √ 1
that have WITH ADMIN Check for any user or role that has been granted S
privileges WITH ADMIN and revoke where possible.
The WITH ADMIN privilege allows a user to grant the
same privileges they possess.
Remediation:
REVOKE <ROLE> FROM <USER>;
GRANT <ROLE> TO <USER>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
ADMIN_OPTION=”YES”;
Remediation:
REVOKE GRANT OPTION FOR <PRIV> ON <TABLE>
FROM <USER>;
Audit:
SELECT * FROM DBA_TAB_PRIVS WHERE
GRANTABLE=‟YES‟;
96 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.32 Privileges Prevent granting of privileges Rationale: √ √ 1
that have CREATE Check for any user that has object creation privileges S
and revoke where possible. Excessive create privileges
can allow an attack to create arbitrary objects, tables,
and views.
Remediation:
REVOKE CREATE <PRIV> FROM <USER/ROLE>
Audit:
SELECT * FROM DBA_SYS_PRIV FROM PRIVILEGE
LIKE(„CREATE %‟);
Remediation:
REVOKE CREATE LIBRARY FROM <USER/ROLE>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE=‟CREATE LIBRARY‟;
97 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.34 Privileges Prevent granting of ALTER Rationale: √ √ 1
SYSTEM Check for any user or role that has this privilege and S
revoke where possible. The alter system privilege
allows a user to dynamically alter the Oracle instance.
Remediation:
REVOKE ALTER SYSTEM FROM <USER/ROLE>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE=‟ALTER SYSTEM‟;
Remediation:
REVOKE CREATE PROCEDURE FROM <USER/ROLE>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE=‟CREATE PROCEDURE‟;
Remediation:
REVOKE BECOME USER FROM <USER/ROLE>
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE LIKE(„BECOME USER‟);
98 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.37 Privileges Prevent granting of SELECT ANY Rationale: √ √ 1
TABLE Check for any user that has access and revoke where S
possible. If application data is sensitive, and it is
possible, revoke this privilege from the DBA accounts
as well.
Remediation:
REVOKE SELECT ANY <OBJECT> FROM <USER>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE LIKE(„SELECT ANY%‟);
Remediation:
REVOKE <PRITILEGE> FROM <USER>;
Audit:
SELECT * FROM DBA_SYS_PRIVS WHERE
PRIVILEGE=‟AUDIT SYSTEM‟;
Remediation:
Revoke all individual privileges from users.
Create a role defining the needed privileges.
Grant the role to the users.
Audit:
None
99 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.40 Privileges Review privileges granted to Rationale: √ √ 1
PUBLIC Review all privileges granted to PUBLIC. Limit or S
revoke unnecessary PUBLIC privileges.
Remediation:
REVOKE PUBLIC FROM <USER/ROLE>;
Audit:
SELECT * FROM DBA_ROLE_PRIVS WHERE
GRANTED_ROLE=‟PUBLIC‟;
Remediation:
REVOKE RESOURCE FROM <USER/ROLE>;
Audit:
SELECT * FROM DBA_ROLE_PRIVS WHERE
GRANTED_ROLE=‟RESOURCE‟;
Remediation:
Revoke DBA role from users who do not require it.
REVOKE DBA FROM <USER/ROLE>
Audit:
SELECT * FROM DBA_ROLE_PRIVS WHERE
GRANTED_ROLE=‟DBA‟;
100 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.43 Packages ACL or Deny access to Rationale: √ √ 1
UTL_FILE Review the ACL for usage of the UTL_FILE package. S
Revoke the public execute privilege on UTL_FILE as it
can be used to access O/S.
Remediation:
REVOKE EXECUTE ON UTL_FILE FROM PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟UTL_FILE‟;
Remediation:
REVOKE EXECUTE ON UTL_TCP FROM PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE TABLE_NAME=‟UTL_TCP‟;
Remediation:
REVOKE EXECUTE ON UTL_HTTP FROM PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟UTL_HTTP‟;
101 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.46 Packages ACL or Deny access to Rationale: √ √ 1
UTL_SMTP Review the ACL for usage of the UTL_SMTP S
packageRevoke the public execute privilege on
UTL_SMTP as it can send mail from the database
server.
Remediation:
REVOKE EXECUTE ON UTL_SMTP FROM PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟UTL_SMTP‟;
Remediation:
REVOKE EXECUTE ON DBMS_LOB FROM PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟DBMS_LOB‟;
102 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.48 Packages Deny access to DBMS_SYS_SQL Rationale √ √ 1
Revoke the public execute privilege. If public S
permissions are granted on DBMS_SYS_SQL a user
can acquire an administrative cursor and act with DBA
permissions.
Remediation:
REVOKE EXECUTE ON DBMS_SQL FROM PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟DBMS_SYS_SQL‟;
Remediation:
REVOKE EXECUTE ON DBMS_JOB TO PUBLIC;
Audit:
SELECT GRANTEE, TABLE_NAME FROM
DBA_TAB_PRIVS WHERE
TABLE_NAME=‟DBMS_JOB‟;
103 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.50 Proxy Authentication Limit the user schema privileges Rationale √ √ 1
to CREATE SESSION only. The proxy account should only have the ability to S
connect to the database. No other privileges should be
granted to this account.
Remediation:
REVOKE ALL ON <USER>;
GRANT CREATE SESSION TO <USER>;
Audit:
SELECT * FROM DBA_ROLE_PRIVS WHERE
GRANTEE=‟<PROXY ACCOUNT>‟;
SELECT * FROM DBA_TAB_PRIVS WHERE
GRANTEE=‟<PROXY ACCOUNT>‟;
SELECT * FROM DBA_SYS_PRIVS WHERE
GRANTEE=‟<PROXY ACCOUNT>‟;
Remediation:
CREATE ROLE „X‟ ;
GRANT „X‟ TO JOHN_SMITH;
ALTER USER JOHN_SMITH DEFAULT ROLE ALL
EXCEPT X;
Audit:
None
104 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.52 Views Revoke public access to all Rationale √ √ 2
public views that start with ALL_ Revoke access to these views when possible to S
prevent unauthorized access to data that could be
sensitive.
Remediation:
REVOKE ALL ON ALL_<NAME> FROM PUBLIC;
Audit:
SELECT TABLE_NAME FROM DBA_TAB_PRIVS
WHERE TABLE_NAME LIKE(„ALL_%‟) AND
GRANTEE=‟PUBLIC‟;
Audit:
None
105 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.54 Packages Limit or deny access to Rationale √ √ R
DBMS_BACKUP_RESTORE Provides file system functions such as copying files,
altering control files, accessing devices, and deleting
files.
Remediation:
REVOKE EXECUTE ON DBMS_BACKUP_RESTORE TO
PUBLIC;
REVOKE EXECUTE ON DBMS_BACKUP_RESTORE TO
<USER>;
Audit:
SELECT GRANTEE FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=‟DBMS_BACKUP_RESTORE‟;
Remediation:
REVOKE EXECUTE ON DBMS_RANDOM TO PUBLIC;
Audit:
SELECT GRANTEE FROM DBA_TAB_PRIVS WHERE
TABLE_NAME=‟DBMS_RANDOM‟;
106 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
9.56 Roles Password protect roles Rationale √ √ 2
Role passwords are useful when an application S
controls whether or not a role is turned on. This
prevents a user directly accessing the database via
SQL (rather than through the application) from being
able to enable the privileges associated with the role.
Remediation:
SET ROLE <ROLE_NAME> IDENTIFIED BY
<ROLE_PASSWORD>;
Audit:
SELECT * FROM DBA_ROLES;
107 | P a g e
10. Enterprise Manager / Grid Control / Agents
Remediation:
Limit access to the Oracle Enterprise Management
studio.
Audit:
None
Remediation:
Create a monitor to track the size of file uploads from
the enterprise agent.
Audit:
None
108 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
10.03 Enterprise Manager Where possible, utilize Rationale: √ √ 1
Framework Security Enterprise Manager Framework Enterprise Manager Framework security employs N
Security Functionality. secure communication between the various Enterprise
Manager Components, i.e.,
Remediation:
Enable HTTPS between management agents and
management services.
Audit:
None
109 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
10.05 Enterprise Manager In command line mode, avoid Rationale: √ √ 1
Framework Security using commands that contain While registering an agent to utilize the enterprise N
passwords in the arguments. manager framework security, avoid using sensitive
command line arguments for emctl.
Remediation:
In command line mode, avoid using commands that
contain passwords in the arguments.
Audit:
None
Remediation:
For Unix systems, create a unique user account for the
management/Intelligent Agent process in order to
differentiate accountability and file access controls.
Audit:
None
110 | P a g e
11. Specific Systems
Remediation:
DBA's should verify the applicability of ADDM
suggestions based on their knowledge of the database.
Audit:
None
Remediation:
DBA's should monitor AMM to ensure memory is being
properly allocated.
Audit:
None
111 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
11.03 AWR Implement AWR to record all Rationale: √ √ 1
database performance statistics Automatic Workload repository (AWR) is central to the N
(related to object usage, SQL whole framework of self and automatic management. It
statement efficiency, session works with internal Oracle database components to
history, etc) over a defined time process, maintain, and access performance statistics
period. for problem detection and self-tuning. The statistics are
available to external users or performance monitoring
tools, routines, or scripts. Trends analysis can be done
with AWR data. Queries that overtax the system could
be a security threat.
Remediation:
Implement AWR to record all database performance
statistics (related to object usage, SQL statement
efficiency, session history, etc) over a defined time
period.
Audit:
None
11.04 Fine grained access Use fine grain access control Rationale: √ √ 2
within objects. Fine grained access control can provide both column N
and row level security. This can provide an additional
layer of access control to objects by limiting the access
(select, update, insert, delete) within the object and
should be used wherever possible. For fine grained
access to function properly, use the cost-based
optimizer.
Remediation:
Evaluate sensitive areas of the Oracle database and
enable fine grain access control .
Audit:
None
112 | P a g e
12. General Policy and Procedures
Remediation:
Do not install Oracle on an Internet facing server
migrate internet facing oracle servers to a backend or
protected environment.
Audit:
None
Remediation:
Assign an administrator or DBA to review the log files.
Audit:
None
113 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.02 Database creation Remove or secure Rationale: √ √ 1
scripts on host System creation scripts can provide an attacker with N
valuable information about the Oracle setup or instance
and often contain errors.
Remediation:
Delete the scripts from the database host. After the
database has been created, remove the scripts or at a
minimum move them to a safe repository area.
Audit:
None
Remediation:
Edit /etc/group remove the oracle_account from
the root group
Audit:
grep oracle_account /etc/group
Remediation:
Remove unnecessary users from the DBA group.
Audit:
cat /etc/group
114 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.05 Sensitive information in Avoid or encrypt Rationale: √ √ 1
process list on host Revealing username and password information in the N
process list will give anyone able to perform a process
listing a valid set of user credentials for the Oracle
database.
Remediation:
An enforced policy must exist to ensure that no scripts
are running that display sensitive information in the
process list such as the Oracle username and
password. A privileged process must be used to get
and decrypt encrypted passwords.
Audit:
None
Remediation:
Encrypt passwords used in cron on batch jobs.
Audit:
None
115 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.07 Sensitive information in Avoid or encrypt Rationale: √ √ 1
at jobs (or jobs in An enforced policy must exist to ensure that no at jobs N
Windows scheduler) on (or jobs in Windows scheduler) have sensitive
host information such as database username and
passwords. A privileged process must be used to get
and decrypt encrypted passwords.
Remediation:
Encrypt password used for scheduled jobs and scripts.
Audit:
None
Remediation:
Do not store sensitive password in environment
variables on the host.
Audit:
None
116 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.09 Sensitive information in Avoid or encrypt Rationale: √ √ 1
batch files on host An enforced policy must exist to ensure that no batch N
files have sensitive information such as database
usernames and passwords. A privileged process must
be used to get and decrypt encrypted passwords.
Remediation:
Do not store sensitive passwords in batch scripts on
the host.
Audit:
None
Remediation:
Split the location of the Oracle software distribution,
redo logs, data files, and indexes onto separate disks
and controllers for resilience.
Audit:
None
Remediation:
Only put database files on file systems exclusively used
by Oracle. Oracle files must not be on the same
partition as the operating system.
Audit:
None
117 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.12 Optimal Flexible Implement Rationale: √ √ 1
Architecture Systems that are flexible and easy to understand N
reduce administration complexity and increase overall
manageability and security.
Remediation:
Follow the Oracle Optimal Flexible Architecture
guidelines to provide for consistency and ease of
administration.
Audit:
None
Remediation:
sha1sum pl_file.psql
Audit:
sha1sum pl_file.psql
118 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.14 All database objects Monitor Rationale: √ √ 1
Maliciously altered objects can compromise Oracle or N
system security and can go undetected if not properly
audited.
Remediation:
Store the results of the time stamps of the creation,
reload, and compilation of database objects and review
the results regularly to ensure no unauthorized
changes have occurred.
Audit:
None
Remediation:
Disallow ad-hoc queries on production databases. This
recommendation may not be suitable for all
environments, for example, data warehouses. Test all
queries and provide an application interface for
exercising queries on production databases.
Audit:
None
119 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.16 Remote shell access Encrypt session Rationale: √ √ 1
on host All remote access from users and administrators to the N
Oracle host must be encrypted. An attacker on the local
network can sniff or intercept unencrypted sessions.
Remediation:
If remote shell access is required, use SSH or a VPN
solution to ensure that session traffic is encrypted. In a
cluster environment (RAC or OPS) RSH and RCP are
required between the nodes for the Oracle software
owner. In the case of a cluster environment, the
access must be restricted by user and host.
Audit:
None
Remediation:
Review and control which applications access the
database.
Audit:
None
120 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.18 Location of Separate server from production Rationale: √ √ 1
development database database Regulatory, compliance, and security best practices N
require production and test environments to be
separate. Test environments generally have lax
security and mirror production systems. These can
provide a staging point or attack vector for a malicious
user if hosted in a single environment.
Remediation:
Test and development databases must not be located
on the same server as the production system.
Audit:
None
Remediation:
If possible, place production databases on a different
network segment from test and development
databases.
Audit:
None
121 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.20 Monitor for Prevent development on Rationale: √ √ 1
development on production databases Development of applications on production databases N
production databases violates security best practices and leaves debugging
and other information useful to an attacker on the
production host.
Remediation:
Check for evidence of development occurring on
production databases.
Audit:
None
Remediation:
Database access from development and test
databases to production databases must be prohibited.
Audit:
None
Remediation:
Remove login or authentication means for direct
developer access.
Audit:
None
122 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.23 Developer accounts on Remove developer accounts Rationale: √ √ 1
production databases Remove any developer accounts that exist in the N
production database.
Remediation:
userdel <account>
Audit:
cat /etc/passwd
Remediation:
Maintain separate user accounts for test and
production databases and hosts.
Audit:
None
Remediation:
Remove all sensitive data from production hosts before
granting access to tester and developers. Clear tables
that contain PII, password hashes, or other sensitive
data.
Audit:
None
123 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.26 Account Management Document and enforce account Rationale: √ √ 1
management procedures Create and regularly review procedures for account N
management. This must include the creation of new
user accounts, moving a user to a new group or role,
and handling of dormant or inactive accounts.
Remediation:
Document the system of controls and checks that
surround management procedures.
Audit:
None
Remediation:
Adoption of a change management system.
Audit:
None
Remediation:
Review the disaster recovery procedures.
Audit:
None
124 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.29 Backdoors Eliminate Rationale: √ √ 1
Tight change control management procedures and N
checksums of the source code can help prevent
backdoors into the database.
Remediation:
Review or audit source code both in development and
deployed to production systems.
Audit:
None
Remediation:
The posting of database information such as SIDs,
hostnames, and IP addresses to newsgroups and
mailing lists must not be allowed.
Audit:
None
Remediation:
If an organizational policy does not exist, 15 minutes
must be set as the standard.
Audit:
None
125 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.32 Distribution of Include only necessary Rationale: √ √ 1
tnsnames.ora files to tnsnames.ora when If clients connect to the database using tnsnames.ora N
clients distributing to clients files, ensure that only necessary entries are included in
the file when distributing to clients. Providing additional
information about database configuration provides a list
of hosts and instances to target and violates security
best practices.
Remediation:
Remove entries from tnsnames.ora
Audit:
None
Remediation:
Windows Event Logs and Unix System logs must be
regularly monitored for errors related to the Oracle
database.
Audit:
None
Remediation:
Remove username and password
Audit:
None
126 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.35 Oracle Installation Oracle software owner account Rationale: √ √ 2
name NOT „oracle‟ Do not name the Oracle software owner account S
„oracle‟ as it is very well known and used in many
automated attacks and brute forcing tools.
Remediation:
Upon oracle installation create a separate user account
with the username other than Oracle.
Audit:
None
Remediation:
For Unix systems, create unique user accounts for
each Oracle process/service in order to differentiate
accountability and file access controls. The listener,
the Oracle http server, and the database process
accounts must be separate. Separate accounts are not
recommended for Windows environments. The
requirement for the Management/Intelligent Agent
process is listed in section 10 of this document.
Audit:
None
127 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.37 Alerts on high priority Create processes to alert Rationale: √ √ 2
incidents Monitoring high priority incidents will help in the event N
of a security incident.
Remediation:
Create processes to monitor and alert on high priority
incidents.
Audit:
None
Remediation:
If the database server is accessible via the Internet, do
not use the Intelligent Agent. This may not be practical
for OEM or SNMP monitored databases.
Audit:
None
Remediation:
If appropriate to the environment, implement Oracle
Advanced Security to encrypt all traffic between the
client and server, OAS solutions include IPSec and
mutually authenticated SSL.
Audit:
None
128 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.40 Application PL/SQL Encrypt Rationale: √ √ 2
code The wrap program provided by Oracle encodes the N
PL/SQL source code but does not encrypt it.
Remediation:
Encrypt the PL/SQL code, do not rely on the wrap
functionality to protect highly sensitive information.
Audit:
None
12.41 Hard coded data in Avoid or encrypt Rationale: √ √ 2
PL/SQL and Do not use unencrypted hard coded usernames, N
application source passwords, or other critical data in the PL/SQL code.
code PL/SQL code is often viewable by many users of the
Oracle system and stored in code repositories.
Remediation:
Avoid hardcoded data in code. Use a secure data
storage mechanism. Strip all sensitive information from
PL/SQL code before storage into a repository.
Audit:
None
Remediation:
Ensure that all associated binaries, users, batch
process, and access rights are removed when
applications are decommissioned.
Audit:
None
129 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.43 DDL statements in Disallow Rationale: √ √ 2
application Applications must not alter the database schema. N
Remediation:
Only allow updates of the database schema though a
DBA or approved change management system.
Audit:
None
Remediation:
Block unnecessary ports used for monitoring and
remote interfaces to the Database. This includes
operations management consolidation suites.
Audit:
None
Remediation:
The account that is used to run batch processes must
be enabled only during the time that the batch
processes run.
Audit:
None
130 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.46 Passwords for batch Secure Rationale: √ √ 2
processes Passwords for batch processes must not be a N
command line parameter or an environment variable.
Remediation:
Remove passwords from batch files and scripts; ensure
that passwords are not set as environment variables.
Audit:
None
Remediation:
Forbid the usage of batch process to access the Oracle
database.
Audit:
None
Remediation:
Restrict test development databases.
Audit:
None
131 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.49 Procedures for backup Review Rationale: √ √ 2
tape retrieval Loss of a tape can compromise other measures taken N
to protect database information.
Remediation:
Ensure the procedures for backup tape retrieval are
documented and are adequate to prevent social
engineering attacks to steal data.
Audit:
None
Remediation:
Use a host based Intrusion Detection System on the
server hosting the Oracle database.
Audit:
None
Remediation:
SECURE_CONTROL_listener_name=(TCPS,IPC)
Audit:
None
132 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.52 Multiple listeners Create separate listeners for Rationale: √ √ 2
clients and administration. An administrative listener, protected by IPSec, could N
Protect the administrative allow administrators access to the server if the client
listener with IPSec ESP or OAS listener(s) fail.. Preference of implementation is IPSec
SSL and a host-based firewall. ESP, otherwise SSL and host-based firewall. If SSL is
not possible, use OAS native encryption/integrity with a
host firewall.. Access must be limited to specific
administrative workstations.
Remediation:
Create separate listeners for clients and administration.
Protect the administrative listener with IPSec ESP, SSL
or OAS . and a host firewall.
Audit:
None
Remediation:
Purge policy caches.
Audit:
None
133 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.54 Policy Functions Users should not have execute, Rationale: √ √ 2
alter or drop privileges on policy The ability to manipulate policy functions could be used N
functions. to defeat row level security.
Remediation:
Users should not have EXECUTE, ALTER or DROP
privileges on policy functions.
Audit:
None
Remediation:
Remove all passwords post installation.
Audit:
None
Remediation:
Connections between Data Guard servers should be
authenticated using SSL certificates
Audit:
None
134 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
12.57 Data Guard Mode Select Maximum Protection Rationale: √ √ 2
Loss of data can result in the loss of system integrity or N
audit trails. Setting Data Guard to maximum mode
ensures no information is lost in the event of a failure.
Remediation:
If possible configure Data Guard for Maximum
Protection to ensure that zero data loss occurs if a
primary database fails.
Audit:
None
Remediation:
Connections for Redo services should be authenticated
using SSL certificates.
Audit:
None
Remediation:
Ensure the minimal amount of sensitive information is
sent to Oracle and destroy Incident Packages after
submission.
Audit:
None
135 | P a g e
136 | P a g e
13. Auditing Policy and Procedures
Remediation:
Unused schemas should be first audited to ensure that
they are in fact unused. After verification, they should
be dropped.
Audit:
None
Remediation:
None
Audit:
None
137 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.03 Auditing Audit all logons and logoffs. Rationale: √ √ 2
Auditing logon and logoff events may provide additional S
information for isolating the cause of security incidents.
Remediation:
AUDIT CREATE SESSION
Audit:
SELECT USER_NAME, SUCCESS, FAILURE FROM
DBA_PRIV_AUDIT_OPTS WHERE
PRIVILEGE=‟CREATE SESSION‟
Remediation:
Ex. AUDIT SELECT ON TABLE WHENEVER NOT
SUCCESSFUL
Audit:
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE
OBJECT_NAME=‟<OBJECT_NAME>‟;
138 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.05 Auditing Where appropriate or required Rationale: √ √ 2
by security or legal The flexibility, column specific sensitivity, SQL S
requirements, engage and use capturing, and event handler capabilities of FGA
the Fine-Grained Auditing (FGA) provide auditors and security personnel with valuable
feature. information.
Remediation:
DBMS_FGA.ADD_POLICY(
<Policy config>
);
Audit:
SELECT policy_name FROM
DBA_AUDIT_POLICIES;
Remediation:
DBMS_FGA.ADD_POLICY(
<Policy config>
);
Audit:
SELECT policy_name FROM
DBA_AUDIT_POLICIES
139 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.07 Auditing Audit ALTER ANY TABLE Rationale: √ √ 2
Unauthorized table alters can results in application S
failures or be the precursor to an attack.
Remediation:
Audit ALTER ANY table;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟ALTER ANY TABLE‟;
Remediation:
AUDIT ALTER USER;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟ALTER USER‟;
Remediation:
AUDIT CREATE ANY <object>;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION LIKE(„CREATE%‟);
140 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.10 Auditing Audit CREATE ROLE Rationale: √ √ 2
Auditing the creation of roles will provide a record to S
ensure the appropriate use of account administration
privileges. This information is also useful when
investigating certain security events.
Remediation:
AUDIT CREATE ROLE;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟CREATE ROLE‟;
Remediation:
AUDIT CREATE USER;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟CREATE USER‟;
Remediation:
AUDIT CREATE SESSION;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
UDIT_OPTION=‟CREATE SESSION;
141 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.13 Auditing Audit any DROP statement Rationale: √ √ 2
Auditing the removal of database objects, such as S
tables or databases, will provide a record of events that
may be useful when investigating security events.
Remediation:
AUDIT DROP {PRIV};
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION LIKE(„DROP%‟);
Remediation:
AUDIT DROP ANY PROCEDURE;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=„DROP PROCEDURE‟;
Remediation:
AUDIT DROP ANY TABLE;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=„DROP ANY TABLE‟;
142 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.16 Auditing Audit GRANT ANY PRIVILEGE Rationale: √ √ 2
Auditing the grants will provide a record to ensure the S
appropriate use of account administration privileges.
This information is also useful when investigating
certain security events.
Remediation:
audit GRANT ANY PRIVILEGE;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=„GRANT ANY PRIVILEGE‟;
Remediation:
AUDIT GRANT ANY ROLE;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=„GRANT ANY ROLE‟;
Remediation:
AUDIT INSERT ON objectname WHENEVER NOT
SUCCESSFUL;
Audit:
SELECT OBJECT_NAME, INS, FROM
DBA_OBJ_AUDIT_OPTS;
143 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.19 Auditing Audit EXECUTE PROCEDURE Rationale: √ √ 2
Audit EXECUTE PROCEDURE failures attempted into S
critical data objects. Auditing the EXECUTE
PROCEDURE will provide a record of the procedures
that were executed and by whom. This information is
also useful when investigating a security event
Remediation:
AUDIT EXECUTE PROCEDURE;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=„EXECUTE PROCEDURE‟;
Remediation:
AUDIT SELECT ANY DICTIONARY;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟SELECT ANY DICTIONARY‟;
144 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.21 Auditing Audit GRANT ANY OBJECT Rationale: √ √ 2
Audit the use of the GRANT ANY OBJECT. Auditing the S
grants will provide a record of the scope of the user
object rights to ensure the appropriate use of account
administration privileges. This information is also useful
when investigating certain security events.
Remediation:
AUDIT GRANT ANY OBJECT;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟GRANT ANY OBJECT‟;
Remediation:
AUDIT CREATE LIBRARY;
Audit:
SELECT * FROM DBA_STMT_AUDIT_OPTS WHERE
AUDIT_OPTION=‟CREATE LIBRARY‟;
Remediation:
Create triggers against all tables and system events
that are meaningful to the database and application.
Audit:
None
145 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.24 Auditing Use triggers to implement row Rationale: √ √ 2
level auditing If specific rows of data need to be audited create N
triggers to alarm on auditable events. This will reduce
the overall system resources for auditing specific tables
and help reduce false alarms.
Remediation:
Use triggers to enforce row level auditing for important
data.
Audit:
None
Remediation:
Assign administrative or DBA time to review report
generation logic.
Audit:
None
Remediation:
AUDIT ALL ON SYS.AUD$ BY ACCESS;
Audit:
SELECT * FROM DBA_OBJ_AUDIT_OPTS WHERE
OBJECT_NAME=‟AUD$‟;
146 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
13.27 Auditing Regularly purge the audit trail Rationale: √ √ 2
Archive and delete the audit trail as necessary or in line N
with local data administration policies. The audit trail
can consume substantial system resources leading to a
denial of services.
Remediation:
Review the purging procedures to ensure that the audit
trail is purged regularly.
Audit:
None
Remediation:
Audit any XML DB or PL/SQL procedures that have
been exposed as web services.
Audit:
None
147 | P a g e
Appendix A – Additional Settings (not scored)
Remediation:
Where possible enable and apply Oracle label security.
This can be cost prohibitive depending on licensing
with Oracle.
Audit:
None
148 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
14.02 Oracle Label Security Hide label column. Rationale: √ √ 2
If the status of the hidden label column needs to be N
changed, the values of the label column may be copied
to an added column, then the hidden column can be
removed, the column copies, and then removes the
policy dropping the row label column. Reinstate the
policy and then copy the values from the added column
to the row label column and then remove the added
column.
Remediation:
Where possible, when using OLS, hide the label
column.
Audit:
None
149 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
14.03 Oracle Label Security Include LABEL_UPDATE Rationale: √ √ 2
This ensures the user cannot reclassify the data in the N
record by changing the label.
Remediation:
Include the LABEL_UPDATE as a value for
TABLE_OPTIONS parameter when the OLS policy is
applied to a table.
Audit:
None
Remediation:
Where possible, use a trusted procedure to limit and
control the manipulation of the labels.
Audit:
None
150 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
14.05 Oracle Label Security Backup data. Rationale: √ √ 2
OLS introduces an additional hidden column into a N
table. For some tables the addition of a column or a
hidden column may render the table unusable. For
applications that expect to see all the data, OLS may
be interpreted as corrupt data.
Remediation:
Have a secure and separate data copy before
implementing OLS.
Audit:
None
Remediation:
Where applicable and possible, store labels in the
Oracle Internet Directory (OID).
Audit:
None
Remediation:
Create RAID partitions for the Oracle database and
files.
Audit:
None
151 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
14.08 Magnetically wipe Implement Rationale: √ √ 2
failed disks Sensitive data or information can be recovered from N
magnetic or data media if not properly erased.
Remediation:
Magnetically wipe old, no longer used, or failed disks.
This issue is most likely handled by system
administrators.
Audit:
None
Remediation:
Set proper permissions on oracle data files stored on
backup tapes.
Audit:
None
Remediation:
Implement off site backup storage procedures.
Audit:
None
152 | P a g e
Item Configuration Item Action / Recommended Rationale/Remediation W U Level
I n &
# Parameters n
d I Score
o x Status
w
s
14.11 Recovery procedures Document and Test Rationale: √ √ 2
Failure to properly implement and test recovery N
procedures can result in loss of data and compromise
system integrity.
Remediation:
Ensure that database recovery procedures are fully
documented and regularly tested.
Audit:
None
Remediation:
Implement a screening router to restrict access to the
database host.
Audit:
None
Remediation:
None
Audit:
None
153 | P a g e
Appendix B – Acknowledgments
The contributions to the consensus process made by the following people were instrumental in the creation of this
guide:
Sheila Christman
Dana Hemlock
Chad Hughes
Brian P. McDonald
Alf-Ivar Holm
Don Granaman
154 | P a g e
Appendix C – Waivers and Exceptions
Justification
By their nature, the justifications for waivers or exception cannot be predicted. Reasons might include situations
where compliance with the standard would adversely affect the accomplishment of the mission of the computer
system, or where compliance with the standard would cause a major financial impact on the operator, which is not
offset by concurrent or subsequent cost of a security breach.
Nature
The nature of the waiver or exception delineates where within the hierarchy of software, hardware, physical,
infrastructure, or personnel the exemption will be effected. If the deviation from the standards of the baseline is of
a scope to cover multiple elements, then the effect on each element must be documented.
Scope
The scope of the waiver or exception provides the range to which operating system/s, application/s, machine/s,
network/s, person/s or procedures will be covered by the exemption.
Compensation
The compensation of the waiver or exception details what will be put in place as a substitute for the mandated
settings, procedures or protocols. The explanation of the compensation must include how it will meet or exceed
the existing standards for security.
Duration
The duration of the waiver or exception explains how long the exemption will be in effect.
Importance of duration
In almost all cases, a waiver or exception should not be accepted as a static modification, but should be
considered as an exemption of fixed duration that will be resolved by the restoration of the software, hardware,
procedure, personnel, or other security element/s to the defined security standard.
155 | P a g e
Appendix D – Using Enterprise Manager Grid Control for Patch and Policy Management
The Oracle 11g Enterprise Manager Grid Control application has two functions directly related to securing Oracle
and its host. If the Oracle Enterprise Manager Grid Control application is deployed, follow these
recommendations. For more detailed information of this functionality please refer to the Oracle documentation,
Oracle® Database 2 Day DBA 11g Release 1 (11.1) Part Number B28301-02
Patching Setup:
The Oracle 11g Enterprise Manager Grid Control application can be set up to automatically access Oracle
MetaLink to search for and download any new patches available for your Oracle installs. The administrator can
then schedule and apply the patch(es) to any host in the enterprise.
Policy Violations:
The Oracle 11g Enterprise Manager Grid Control application can show policy violations for any database or host
in the enterprise. The violations can be fixed or ignored so they will not show up in future reports.
156 | P a g e