Are Your Oraclel 11g Databases Secure?
Author: Joseph Cuesta, DBA, Ross Group Inc.
March 2010
Situation
Your company has Oracle 11g databases with sensitive and confidential data and it is your responsibility to make sure the databases and the data are secure.
Problem
There have been numerous attempts to breach the security of your network and databases.
Tips and Tricks to keeping Your Oracle Databases Secure
User Account and Privilege Policies
Practice the principle of least privilege.
- Grant necessary privileges only.
- Restrict the CREATE ANY JOB, BECOME USER, EXP_FULL_DATABASE, and IMP_FULL_DATABASE privileges.
- Do not allow non-administrative users access to objects owned by the SYS schema.
- Revoke unnecessary privileges from the PUBLIC user group.
- Restrict permissions on run-time facilities.
Lock and expire default (predefined) user accounts.
Use the following views to ensure that access is granted. Only users and roles that need access should be granted access to them.
DBA_*
DBA_ROLES
DBA_SYS_PRIVS
DBA_ROLE_PRIVS
DBA_TAB_PRIVS
DBA_AUDIT_TRAIL (if standard auditing is enabled)
DBA_FGA_AUDIT_TRAIL (if fine-grained auditing is enabled)
Monitor the granting of the following privileges only to users and roles who need these privileges.
By default, Oracle Database audits the following privileges:
ALTER SYSTEM
AUDIT SYSTEM
o CREATE EXTERNAL JOB
Revoke access to the following:
- The
SYS.USER_HISTORY$ table from all users except SYS and DBA accounts
- The
RESOURCE role from typical application accounts
- The
CONNECT role from typical application accounts
- The
DBA role from users who do not need this role
Grant privileges only to roles.
Granting privileges to roles and not individual users makes the management and tracking of privileges much easier.
Role Policies
Guidelines for managing roles:
- Grant a role to users only if they need all privileges of the role.
- Do not grant user roles to application developers.
- Create and assign roles specific to each Oracle Database installation.
- For enterprise users, create global roles.
Password Policies
Simple management policies:
- Enable password complexity requirements.
- Change default user passwords.
- Change default passwords of administrative users.
- Enforce password management.
- Do not store user passwords in clear text in Oracle tables.
Secure Your Data
Guidelines to secure data on your system:
- Enable data dictionary protection.
- Restrict operating system access.
- Encrypt sensitive data and all backup media that contains database files.
- Enforce access controls effectively and authenticate clients stringently.
- Configure the connection to use encryption.
- Use Secure Sockets Layer (SSL) when administering the listener.
- Monitor listener activity.
Secure the Network
Secure the Network Connection
You can monitor listener activity by using Enterprise Manager Database Control. In the Database Control home page, under General, click the link for your listener. The Listener page appears. This page provides detailed information, such as the category of alert generated, alert messages, when the alert was triggered, and so on. This page provides other information as well, such as performance statistics for the listener.
- Prevent online administration by requiring the administrator to have the write privilege on the listener password and on the listener.ora file on the server.
- Do not set the listener password.
- When a host computer has multiple IP addresses associated with multiple network interface controller (NIC) cards, configure the listener to the specific IP address.
- Restrict the privileges of the listener, so that it cannot read or write files in the database or the Oracle server address space.
- Use encryption to secure the data in flight.
- Use a firewall.
Prevent unauthorized administration of the Oracle listener.
Check network IP addresses.
tcp.validnode_checking = YES
tcp.excluded_nodes = {list of IP addresses}
tcp.invited_nodes = {list of IP addresses}
Encrypt network traffic.
Secure SSL
- Ensure that configuration files (for example, for clients and listeners) use the correct port for SSL, which is the port configured upon installation.
- Ensure that TCPS is specified as the PROTOCOL in the ADDRESS parameter in the tnsnames.ora file (typically on the client or in the LDAP directory).
- Ensure that the SSL mode is consistent for both ends of every communication. For example, the database (on one side) and the user or application (on the other) must have the same SSL mode.
- Ensure that the server supports the client cipher suites and the certificate key algorithm in use.
- Enable DN matching for both the server and client, to prevent the server from falsifying its identity to the client during connections.
- Do not remove the encryption from your RSA private key inside your server.key file, which requires that you enter your pass phrase to read and parse this file.
- Audit Sensitive Information
- Enable Default Auditing of SQL Statements and Privileges
- Keep Audited Information Manageable
- Audit Typical Database Activity
- Audit Suspicious Database Activity
Audit
These are just a few of the highlights for keeping your Oracle databases secure, for more detailed information regarding database security for your Oracle databases, please see http://www.oracle.com/pls/db112/homepage.
If you have any questions or need support to protect and keep your Oracle databases secure, please contact Gary Codeluppi at 937-912-3273 or visit the Ross Group Inc web site at www.rossgroupinc.com.