Oracle Database Checklist
Oracle Database Checklist
Level Version
0.1 Identify and patch known and reported Vulnerabilities 1 ALL ALL
0.2 Identify and record software (Oracle and OS and Applications) versions and patch levels on the 1 ALL ALL
0.3 System Install only the database features that are needed 1 ALL ALL
0.5 Record database security configuration and store securely 2 ALL ALL
0.7 Store copies of the media used to build Oracle database off site 3 ALL ALL
1.1.1 Check owner of Oracle software owns all files in $ORACLE_HOME/bin 1 ALL ALL
1.1.3 Do not name Oracle software owner account oracle 2 ALL ALL
1.1.5 Use separate owners for different components of Oracle such as grid, database and GGS agent 2 ALL ALL
1.2.4 Set file system type, user name, group name and file permission issues for Windows 1 Win ALL
1.2.5 Location of temp directories pointed at by TMP_DIR and TMPDIR 1 Unix ALL
1.2.6 Check windows groups used for ORACLE_HOME and ORACLE_BASE 1 Win ALL
1.3.3 Don’t use the name dba for the OSDBA group 1 Unix ALL
1.3.4 Don’t use the name ORA_DBA for the OSDBA group on Windows Check trace file 2 Win ALL ALL ALL
1.4.2 Remove tkprof from production database Remove the otrace utility 3
1.4.3 2
1.4.8 Check for remote data access files (RDA) 3 ALL ALL
1.5.3 Search shell history files for usernames and passwords 2 Unix ALL
1.6.1 Secure network transmissions 3 ALL ALL
1.6.5 JDBC thin driver transmissions – ensure minimum permissions of connections used 1 ALL ALL
1.7.2 Check for non Oracle SUID and SGID files in $ORACLE_HOME 3 Unix ALL
1.8.1 Audit environment variables for usernames and password 3 ALL ALL
1.8.2 Audit the machine for scripts containing usernames and passwords 2 ALL ALL
1.8.4 Audit client machines for configuration files containing usernames and passwords 2 ALL ALL
1.9.2 Save log files to a separate server using Syslog or Windows event viewer 2 ALL ALL
1.11.2 Audit trace files for attempts to read database internal structures 3 ALL ALL
1.11.3 Ensure no user has ALTER SESSION and ALTER SYSTEM privileges 1 ALL ALL
1.13.1 Locate archive log files and check no user except software owner can read them 2 ALL ALL
1.16 Be aware of key files containing hashes or passwords or other sensitive information 3 ALL ALL
1.17.1 Password protected listener can be shut down 3 Win ALL
2. Oracle Authentication
2.1.4 Establish a policy that prevents users from sharing account ID’s 2 ALL ALL
2.1.5 Use proxy authentication to help resolve SSO issues 3 ALL >= 8
2.2.7 Create business process to audit default accounts regularly 2 ALL ALL
2.2.10 Modify Oracle scripts for default accounts that are used 1 ALL ALL
2.2.11 Audit known default role passwords 1 ALL ALL
2.3.1 Audit users accounts for passwords same as username 2 ALL ALL
2.3.3 Lock dormant database accounts and remove after time delay 3 ALL ALL
2.3.5 Use obfuscated naming convention for users accounts 5 ALL ALL
2.3.7 Review database accounts, ensuring they belong to business users. 2 ALL ALL
2.5.1 Change SID and service name for third-party applications 4 ALL ALL ALL ALL
2.6.1 Audit third party and home grown applications authentication systems 3
3.6.13 Periodically confirm parameters in database are the same as the configuration file 3 ALL ALL
3.6.14 Audit use of IFILE and the contents of files pointed to by IFILE 3 ALL >= 9i
3.6.16 Check that pfile and spfile can only be written to and read by the software owner. 2 ALL ALL
3.6.17 Check that exempt access policy privilege is revoked 2 ALL >= 9i
3.7.1 Check for non sys objects in system tablespace 1 ALL ALL
3.8.1 Check for users who have dba privilege 1 ALL ALL
3.8.2 Check for users or roles granted ALL PRIVILEGES 1 ALL ALL
3.8.3 Check for privileges with ANY keyword granted 1 ALL ALL
3.8.7 Check for application objects owned by privileged users 2 ALL ALL
3.8.8 Check for direct access granted to tables and objects 2 ALL ALL
3.8.15 Check for users with “BECOME USER” privilege 2 ALL ALL
3.9.2 Check for external users who are dba 1 ALL ALL
3.9.3 Check for external users who have “ALL PRIVILEGES” 1 ALL ALL
3.9.4 Ensure external users have the least privileges possible 2 ALL ALL
3.9.6 Check that no external users have SYSDBA or SYSOPER 1 ALL ALL
3.10.5 Audit public execute privileges on sys owned packages. 1 ALL ALL
3.10.8 Revoke any privileges on dbms_sql and dbms_sys_sql granted 1 ALL ALL
3.10.9 Audit packages available via a database link 1 ALL ALL
3.14.5 Set up profiles for each class of database user 3 ALL ALL
3.16.1 Objects in application tablespaces not owned by schema owner should be dropped 3 ALL ALL
3.17.1 Audit quota use per user 3 ALL ALL ALL ALL
3.17.2 Establish different users for schema management and data management 3 ALL ALL
3.18.1 Set up naming conventions for schema owners and administrators and users Audit users 5 ALL ALL
3.20.1 Audit access to critical sys owned views like user$, link$ etc 1 ALL ALL
3.20.2 Audit access to all dba and sys owned views Revoke SELECT ANY TABLE 1 ALL ALL ALL ALL
3.20.3 1
3.21.1 Revoke object creation privileges from all but schema owners and DBA’s 2 ALL ALL
3.21.2 Ensure users can only see the objects they need 2 ALL ALL
3.22.1 Audit views to ensure only select access is allowed 2 ALL ALL
3.24.1 Prevent the dba reading system tables Prevent the dba from reading application data 2 ALL ALL ALL ALL
3.25.1 4
4. Auditing
4.3.5 Audit the use of create user Audit use of create role 3 ALL ALL ALL ALL
4.3.6 3
4.3.8 Establish procedures to review audit logs 3 ALL ALL ALL ALL
4.4.2 Limit users who can change the audit trail 2 ALL ALL
4.6.1 Ensure reports and alerts are in place to deal with irregularities found through audit 3 ALL ALL
4.7.2 Use VPD, RLS and label security for full data protection 3 ALL >= 8
4.10.1 Audit and review the Oracle generated log files 2 ALL ALL
5. Networking
5.1.5 Force the MTS dispatcher to use specific ports 4 ALL ALL
5.1.6 Do not use the standard listener ports 1521, 1526 2 ALL ALL
5.1.7 Do not use known SID or service names such as ORCL 2 ALL ALL ALL ALL
5.2.2 Use connection manager and Oracle names to restrict connections by source 2 ALL ALL
5.7.1 Audit database links for hard clear text passwords 1 ALL ALL
5.7.2 Discover what objects can be seen in the linked database 2 ALL ALL
5.7.5 Audit what links exist into and from the database 1 ALL ALL
5.8.1 Confirm the file permissions in the network admin directory 2 ALL ALL
5.8.2 Add only minimum configuration files to all clients 2 ALL ALL
5.9.1 Keep up to date with Oracle listener vulnerabilities and patch 2 ALL ALL
5.11.2 Disable Oracle ports that are not needed. 3 ALL ALL
5.12.2 Protect clear text passwords for SNMP 2 ALL ALL ALL ALL
6.1.1 Review and document backup and restore procedures 3 ALL ALL
6.3.3 Ensure archive logs are written to backup and are purged 3 ALL ALL
6.4.1 Separate the Oracle software from data and from on-line redo and archive 3 ALL ALL
6.4.4 Use striping and mirroring or RAID for Oracle data 4 ALL ALL
6.5.1 Magnetically wipe old disks that have contained database data. 2 ALL ALL
7. Application Development
7.1.1 Identify and wrap all PL/SQL code in the database Checksum all PL/SQL objects in the 2 ALL ALL ALL ALL
7.1.2 database 3
7.1.3 Audit PL/SQL code for hard coded usernames and passwords 3 ALL ALL
7.1.4 Audit PL/SQL code for possible SQL injection attacks 2 ALL ALL
7.1.5 Ensure as little information as possible about schema structure is available from the code in 3 ALL ALL
Oracle
7.1.6 Pre-compile Java code before loading into the database 3 ALL ALL ALL ALL
7.2.1 Review which applications access the database and how and from where 2
7.2.2 Implement procedures to limit which applications can access the database and from where 2 ALL ALL
7.2.3 Limit administration tools from accessing the database 3 ALL ALL
7.3.1 When decommissioning old applications remove all binaries and files 4 ALL ALL
7.5.1 Establish procedures for movers, leavers and joiners 2 ALL ALL
7.9.1 Review users permissions in test and development databases 2 ALL ALL
7.9.2 Check for database links with access to production databases from development or test 2 ALL ALL
systems
7.9.3 Ensure “live” data held in test or development is mangled or obfuscated. 2 ALL ALL
7.9.4 Do not locate test and development databases on the same server as production 2 ALL ALL
7.9.5 Ensure there is no access from test and development to production 2 ALL ALL
7.9.8 Backups and exports copy passwords to test and development – ensure they are not the 2 ALL ALL
same
7.9.9 Place development and test on different network segment to production 2 ALL ALL
7.10.1 Move all non application objects from application tablespaces 2 ALL ALL
7.12.2 Do not use one database login to authenticate all other users 2 ALL ALL
7.13.1 Do not use schema owners for administration tasks 2 ALL ALL
7.15.1 Do not hard code usernames and passwords in application source code 2 ALL ALL
7.16.1 Batch processes should access the database through one designed account 1 ALL ALL
7.16.2 Do not use external accounts for batch processes 1 ALL ALL
7.16.4 Enable batch database accounts only when needed 1 ALL ALL
7.19.2 Audit public libraries used for know vulnerabilities 2 ALL ALL
7.23.1 Ensure no tool offers better access to the database than the application 2 ALL ALL
7.25.1 Start the Oracle HTTP Server as a non privileged user 1 ALL >= 9i
Oracle Portal
8.1.3 Secure the portal users passwords in the database 1 ALL 9iAS
8.1.6 Revoke DBA from portal admin database users 1 ALL 9iAS
8.1.7 Restrict access to OWA_UTL and other PL/SQL packages 1 ALL 9iAS
Oracle Wireless Portal
8.3.1 Check permissions on file containing Webcache admin password 1 ALL 9iAS
Oracle iCache
8.4.1 Reset default account passwords in database cache database 1 ALL 9iAS
8.4.2 Check permissions for export files used to create database cache 2 ALL 9iAS
Apache
8.5.2 SYSTEM password appears in Apache install window title 3 ALL 9iAS
8.5.8 Protect against an attacker reading JSP class files 1 ALL 9iAS
8.5.9 Restrict dynamic monitoring services 1 ALL 9iAS
8.8.7 Delete the XSQL XDK from production databases 2 ALL 9iAS
8.8.9 Change the mapping for the servlet URL 3 ALL 9iAS