This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
Overview
Download & View Database Security Issues as PDF for free.
Database Security Issues The database should meet the criteria indicated in the security policy are highlighted below. Following listed violations are against the security policy. Violations are listed in order of severity; those exposing the highest risk. Default Accounts and Passwords Detailed Description: Oracle databases have several well-known default username/password combinations. These combinations include the following: SCOTT/TIGER, DBSNMP/DBSNMP, SYSTEM/MANAGER, SYS/CHANGE_ON_INSTALL, TRACESVR/TRACE, CTXSYS/CTXSYS, MDSYS/MDSYS, DEMO/DEMO, CTXDEMO/CTXDEMO, APPLSYS/FND, PO8/PO8, AMES/NAMES, SYSADM/SYSADM, ORDPLUGINS/ORDPLUGINS, OUTLN/OUTLN, ADAMS/WOOD, BLAKE/PAPER, JONES/STEEL, CLARK/CLOTH, AURORA$ORB$UNAUTHENTICATED/INVALID, and APPS/APPS. These default combinations may provide unauthorized access to the server. Fix: Change the default password to a value that is difficult to guess. Change the password for an account by executing the following command: ALTER USER <username> IDENTIFIED BY Note: If you use Oracle Intelligent Agent and change the password for the DBSNMP account, you must also place the new password in the snmp_rw.ora file. Weak Account Passwords Detailed Description: Oracle versions prior to 8.0 do not provide a mechanism to enforce password strength. In Oracle 8.0 and higher, a password verification script can be used to include some validation of password strength. Accounts configured with easily-guessed passwords are targets for password guessing. This check ensures that account passwords are not found in the specified dictionary or are not one of the following common passwords: - password same as the account name - password same as the account name reversed - password same as the server name - password is the account name appended with a number between 1 and 100 Fix: Require accounts to use passwords with a minimum of 6 characters and a combination of letters, numbers, and special characters. If you are using Oracle 8 or higher, verify that you have a strong password verification script in place. Change passwords by executing the command: ALTER USER IDENTIFIED BY <password> Note: If you use Oracle Intelligent Agent and change the password for the DBSNMP account, you must also place the new password in the snmp_rw.ora file. Failed Login Attempts
Detailed Description: Profiles have been found that exceed the specified resource usage on the Failed Login Attempts parameter. The FAILED_LOGIN_ATTEMPTS value serves as a limit to the number of failed login attempts allowed before an account is locked. Setting this value limits the ability of unauthorized users to guess passwords and alerts the DBA when password guessing has occurred (accounts display as locked). Once an account is locked it can not be logged on to for a specified number of days or until the DBA unlocks the account. FAILED_LOGIN_ATTEMPTS can be set to a specific number of attempts; to UNLIMITED, meaning never lock an account; or to DEFAULT, which uses the value indicated in the DEFAULT profile. This feature is set for profiles. These profiles then must be associated with an account. Fix: Modify the FAILED_LOGIN_ATTEMPTS profile parameter by executing the following command: ALTER PROFILE <profile name> LIMIT FAILED_LOGIN_ATTEMPTS xxx Modify the users associated with a profile by executing the following command: ALTER USER <username> PROFILE Unlock a user account by executing the following command: ALTER USER <username> ACCOUNT UNLOCK Database Link Password Encryption Detailed Description: The Oracle configuration parameter DBLINK_ENCRYPT_LOGIN specifies whether attempts to connect to remote Oracle databases through database links should use encrypted passwords. Prior to Oracle 7.2, passwords were not encrypted before being sent over the network. In order to connect to older servers, Oracle included this parameter to retry failed connections using the unencrypted format. If the DBLINK_ENCRYPT_LOGIN parameter is TRUE, and the connection fails, Oracle does not reattempt the connection. If this parameter is FALSE, Oracle reattempts the connection using an unencrypted version of the password. Servers with DBLINK_ENCRYPT_LOGIN set to FALSE can be coerced into sending unencrypted passwords by computers between linked servers. Fix: Change the parameter to ensure that the line DBLINK_ENCRYPT_LOGIN = TRUE appears in the init.ora configuration file. Restart the server for the setting to take effect. NOTE: Oracle Version 7.1 or earlier will not run if you make this change. Expired Passwords Found in Oracle 8 Detailed Description: Oracle 8 introduced the ability to limit password lifetime through the use of profiles. This check uses the built-in password aging functionality of Oracle for version 8 servers and higher. The password lifetime will be taken from the profile associated with the accounts. Requiring password changes on a regular basis counters undetected password compromises. By determining and setting an appropriate password lifetime, the security risk associated with password authentication can be reduced. The longer a password is in use, the more likely the password will become exposed, whether through brute force, eavesdropping, or other avenues. Fix: Remind users to change their passwords on a regular basis. Change a password by executing the command ALTER USER <username> IDENTIFIED BY <password>. Database Link Password Unencrypted
Detailed Description: Database link passwords have been found stored in plaintext. A database link is a mechanism used to provide a method of transparently accessing one server from another. When creating a link, a user name and password of an account on the remote server can be specified. If this is done, all queries using the link will have the privilege of the indicated account on the remote server. By omitting an account and password when creating a database link, the account and password of the user connecting through the link is used. Indicating the username and password of an account to use for all connections through a link can lead to passwords being exposed. Database link passwords are stored unencrypted in the database. Users with SELECT privilege to the SYS.LINK$ table can view the passwords in plaintext. Setting up links to authenticate as the current user prevents unencrypted passwords from being exposed, helps prevent linked servers from being compromised, and provides increased accountability. Fix: Drop the database link and create a link without specifying an account and passwords. To drop a database link, execute the command DROP DATABASE LINK . To re-create a link without hard coding the password, execute the command CREATE DATABASE LINK USING . Password Life Time Detailed Description: The PASSWORD_LIFE_TIME value serves as a limit to the number of days after which a password expires. Setting this value ensures users are changing their passwords. PASSWORD_LIFE_TIME can be set to a specific number of days; to UNLIMITED, meaning never require an account to change the password; or to DEFAULT, which uses the value indicated in the DEFAULT profile. Leaving this value on UNLIMITED allows users to use the same passwords indefinitely. This feature is set for profiles. These profiles then must be associated with an account. Fix: Modify the PASSWORD_LIFE_TIME profile parameter by executing the following command: ALTER PROFILE <profile name> LIMIT PASSWORD_LIFE_TIME xx Modify the users associated with a profile value by executing the following command: ALTER USER <username> PROFILE Use of RESOURCE Default Role Detailed Description: Accounts have been found with the RESOURCE role. The built-in role RESOURCE is not recommended for application users. This role includes privileges that are not required by most accounts functioning within the bounds of an application and conveys no indication of the purpose of the privilege by its name. Fix: Remove any accounts in the role and delete the role. Create a more appropriate role with only the required permissions. PUBLIC Object Permissions Detailed Description: Permissions on objects may be granted to users and roles and to the user group PUBLIC. Because every database user is a member of the PUBLIC group, granting object permissions to PUBLIC gives all users in the database access to that object. In a secure environment, granting object permissions to PUBLIC should be restricted to those objects that all users are allowed to access.
Fix: To revoke permissions from PUBLIC, execute the following statement: REVOKE <privilege> ON