Oracle Database - 12c
Oracle Database - 12c
1.3 Ensure All Sample Data And Users Have Been Removed
5.1.11 Ensure the 'GRANT ANY OBJECT PRIVILEGE' Audit Option Is Enabled
5.1.12 Ensure the 'GRANT ANY PRIVILEGE' Audit Option Is Enabled
The 'AUDIT_SYS_OPERATIONS' setting provides for the auditing of all user activities
conducted under the 'SYSOPER' and 'SYSDBA' accounts. The setting should be set to
'TRUE' to enable this auditing._x000D_
_x000D_
Rationale:_x000D_
If the parameter 'AUDIT_SYS_OPERATIONS' is 'FALSE', all statements except for
Startup/Shutdown and Logon by 'SYSDBA'/'SYSOPER' users are not audited.
The information about patch/update release number provides information about the
exact patch/update release that is currently running on the database. This is sensitive
information that should not be revealed to anyone who requests it._x000D_
_x000D_
Rationale:_x000D_
Allowing the database to return information about the patch/update release number
could facilitate unauthorized users' attempts to gain access based upon known patch
weaknesses.
The 'SQL92_SECURITY' parameter setting 'TRUE' requires that a user must also be
granted the 'SELECT' object privilege before being able to perform 'UPDATE' or
'DELETE' operations on tables that have 'WHERE' or 'SET' clauses. The setting should
have a value of TRUE._x000D_
_x000D_
Rationale:_x000D_
A user without 'SELECT' privilege can still infer the value stored in a column by
referring to that column in a 'DELETE' or 'UPDATE' statement. This setting prevents
inadvertent information disclosure by ensuring that only users who already have
'SELECT' privilege can execute the statements that would allow them to infer the
stored values.
The '_trace_files_public' setting determines whether or not the system's trace file is
world readable. This setting should have a value of FALSE to restrict trace file
access._x000D_
_x000D_
Rationale:_x000D_
Making the file world readable means anyone can read the instance's trace file, which
could contain sensitive information about instance operations.
The 'audit_trail' setting determines whether or not Oracle's basic audit features are
enabled. It can be set to 'Operating System'('OS'); 'DB'; 'DB,EXTENDED'; 'XML'; or
'XML,EXTENDED'. The value should be set according to the needs of the organization.
Rationale:
Enabling the basic auditing features for the Oracle instance permits the collection of
data to troubleshoot problems, as well as provides valuable forensic logs in the case
of a system breach this value should be set according to the needs of the
organization.
The 'global_names' setting requires that the name of a database link matches that of
the remote database it will connect to. This setting should have a value of
'TRUE'._x000D_
_x000D_
Rationale:_x000D_
Not requiring database connections to match the domain that is being called
remotely could allow unauthorized domain sources to potentially connect via brute-
force tactics.
Upon creation database users are assigned to the DEFAULT profile unless otherwise
specified._x000D_
_x000D_
It is recommended that users be created with function-appropriate profiles. The
DEFAULT profile, being defined by Oracle, is subject to change at any time (e.g. by
patch or version update).
TheDEFAULTprofilehasunlimitedsettingsthatareoftenrequiredbytheSYSuser when
patching; such unlimited settings should be tightly reserved and not applied to
unnecessary users.
The 'PASSWORD_LOCK_TIME' setting determines how many days must pass for the
user's account to be unlocked after the set number of failed login attempts has
occurred. The suggested value for this is one day or greater._x000D_
_x000D_
Rationale:_x000D_
Locking the user account after repeated failed login attempts can block further brute-
force login attacks, but can create administrative headaches as this account unlocking
process always requires DBA intervention.
The 'PASSWORD_GRACE_TIME' setting determines how many days can pass after the
user's password expires before the user's login capability is automatically locked out.
The suggested value for this is five days or less._x000D_
_x000D_
Rationale:_x000D_
Locking the user account after the expiration of the password change requirement's
grace period can help prevent password-based attacks against any forgotten or
disused accounts, while still allowing the account and its information to be accessible
by DBA intervention.
The Oracle database 'DBMS_ADVISOR' package can be used to write files located on
the server where the Oracle instance is installed. The user 'PUBLIC' should not be able
to execute 'DBMS_ADVISOR'._x000D_
_x000D_
Rationale:_x000D_
Use of the 'DBMS_ADVISOR' package could allow an unauthorized user to corrupt
operating system files on the instance's host.
The Oracle database 'DBMS_SQL' package is used for running dynamic SQL
statements. The user 'PUBLIC' should not be able to execute 'DBMS_SQL'._x000D_
_x000D_
Rationale:_x000D_
The 'DBMS_SQL' package could allow privilege escalation if input validation is not
done properly.
The Oracle database 'UTL_FILE' package can be used to read/write files located on the
server where the Oracle instance is installed. The user 'PUBLIC' should not be able to
execute 'UTL_FILE'._x000D_
_x000D_
Rationale:_x000D_
Use of the 'UTL_FILE' package could allow an user to read OS files. These files could
contain sensitive information (e.g. passwords in '.bash_history').
The Oracle database 'UTL_INADDR' package can be used to create specially crafted
error messages or send information via DNS to the outside. The user 'PUBLIC' should
not be able to execute 'UTL_INADDR'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_INADDR' package is often used in SQL injection attacks from the web it
should be revoked from public.
The Oracle database 'UTL_TCP' package can be used to read/write file to TCP sockets
on the server where the Oracle instance is installed. The user 'PUBLIC' should not be
able to execute 'UTL_TCP'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_TCP' package could allow an unauthorized user to corrupt the TCP stream
used to carry the protocols that communicate with the instance's external
communications.
The Oracle database 'UTL_MAIL' package can be used to send email from the server
where the Oracle instance is installed. The user 'PUBLIC' should not be able to
execute 'UTL_MAIL'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_MAIL' package could allow an unauthorized user to corrupt the SMTP
function to accept or generate junk mail that can result in a denial-of-service
condition due to network saturation.
The Oracle database 'UTL_SMTP' package can be used to send email from the server
where the Oracle instance is installed. The user 'PUBLIC' should not be able to
execute 'UTL_SMTP'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_SMTP' package could allow an unauthorized user to corrupt the SMTP
function to accept or generate junk mail that can result in a denial-of-service
condition due to network saturation.
The Oracle database 'UTL_DBWS' package can be used to read/write file to web-
based applications on the server where the Oracle instance is installed. This package
is not automatically installed for security reasons. The user 'PUBLIC' should not be
able to execute 'UTL_DBWS'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_DBWS' package could allow an unauthorized user to corrupt the HTTP
stream used to carry the protocols that communicate for the instance's web-based
external communications.
The 'DBMS_CRYPTO' settings provide a toolset that determines the strength of the
encryption algorithm used to encrypt application data and is part of the 'SYS' schema.
The 'DES' (56-bit key), '3DES' (168-bit key), '3DES-2KEY' (112-bit key), 'AES'
(128/192/256-bit keys), and 'RC4' are available. The user 'PUBLIC' should not be able
to execute 'DBMS_CRYPTO'._x000D_
_x000D_
Rationale:_x000D_
Execution of these cryptography procedures by the user 'PUBLIC' can potentially
endanger portions of or all of the data storage.
The Oracle database 'UTL_ORAMTS' package can be used to perform HTTP requests.
This could be used to send information to the outside. The user 'PUBLIC' should not
be able to execute 'UTL_ORAMTS'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_ORAMTS' package could be used to send (sensitive) information to external
websites. The use of this package should be restricted according to the needs of the
organization.
The Oracle database 'UTL_HTTP' package can be used to perform HTTP requests. This
could be used to send information to the outside. The user 'PUBLIC' should not be
able to execute 'UTL_HTTP'._x000D_
_x000D_
Rationale:_x000D_
The 'UTL_HTTP' package could be used to send (sensitive) information to external
websites. The use of this package should be restricted according to the needs of the
organization.
The Oracle database 'HTTPURITYPE' object type can be used to perform HTTP
requests. The user 'PUBLIC' should not be able to execute 'HTTPURITYPE'._x000D_
_x000D_
Rationale:_x000D_
The ability to perform HTTP requests could be used to leak information from the
database to an external destination.
The Oracle database 'DBMS_JAVA' package can run Java classes (e.g. OS commands)
or grant Java privileges. The user 'PUBLIC' should not be able to execute
'DBMS_JAVA'._x000D_
_x000D_
Rationale:_x000D_
The 'DBMS_JAVA' package could allow an attacker to run OS commands from the
database.
The Oracle database 'DBMS_JAVA_TEST' package can run Java classes (e.g. OS
commands) or grant Java privileges. The user 'PUBLIC' should not be able to execute
'DBMS_JAVA_TEST'._x000D_
_x000D_
Rationale:_x000D_
The 'DBMS_JAVA_TEST' package could allow an attacker to run operating system
commands from the database.
The Oracle database 'DBMS_JOB' package schedules and manages the jobs sent to
the job queue and has been superseded by the 'DBMS_SCHEDULER' package, even
though 'DBMS_JOB' has been retained for backwards compatibility. The user 'PUBLIC'
should not be able to execute 'DBMS_JOB'._x000D_
_x000D_
Rationale:_x000D_
Use of the 'DBMS_JOB' package could allow an unauthorized user to disable or
overload the job queue. It has been superseded by the 'DBMS_SCHEDULER' package.
The Oracle database 'DBMS_LDAP' package contains functions and procedures that
enable programmers to access data from LDAP servers. The user 'PUBLIC' should not
be able to execute 'DBMS_LDAP'._x000D_
_x000D_
Rationale:_x000D_
Use of the 'DBMS_LDAP' package can be used to create specially crafted error
messages or send information via DNS to the outside.
The Oracle database 'DBMS_LOB' package provides subprograms that can manipulate
and read/write on 'BLOBs', 'CLOBs', 'NCLOBs', 'BFILEs', and temporary 'LOBs'. The user
'PUBLIC' should not be able to execute 'DBMS_LOB'._x000D_
_x000D_
Rationale:_x000D_
Use of the 'DBMS_LOB' package could allow an unauthorized user to manipulate
'BLOBs', 'CLOBs', 'NCLOBs', 'BFILEs', and temporary 'LOBs' on the instance, either
destroying data or causing a denial-of-service condition due to corruption of disk
space.
The Oracle database 'SELECT ANY DICTIONARY' privilege allows the designated user to
access 'SYS' schema objects. Unauthorized grantees should not have that
privilege._x000D_
_x000D_
Rationale:_x000D_
The Oracle password hashes are part of the 'SYS' schema and can be selected using
'SELECT ANY DICTIONARY' privileges.
The Oracle database 'GRANT ANY OBJECT PRIVILEGE' keyword provides the grantee
the capability to grant access to any single or multiple combinations of objects to any
grantee in the catalog of the database. Unauthorized grantees should not have that
keyword assigned to them._x000D_
_x000D_
Rationale:_x000D_
The 'GRANT ANY OBJECT PRIVILEGE' capability can allow an unauthorized user to
potentially access or change confidential data, or damage the data catalog due to
potential complete instance access.
The Oracle database 'GRANT ANY ROLE' keyword provides the grantee the capability
to grant any single role to any grantee in the catalog of the database. Unauthorized
grantees should not have that keyword assigned to them._x000D_
_x000D_
Rationale:_x000D_
The 'GRANT ANY ROLE' capability can allow an unauthorized user to potentially access
or change confidential data or damage the data catalog due to potential complete
instance access.
The Oracle database 'GRANT ANY PRIVILEGE' keyword provides the grantee the
capability to grant any single privilege to any item in the catalog of the database.
Unauthorized grantees should not have that privilege._x000D_
_x000D_
Rationale:_x000D_
The 'GRANT ANY PRIVILEGE' capability can allow an unauthorized user to potentially
access or change confidential data or damage the data catalog due to potential
complete instance access.
The Oracle database 'SELECT ANY TABLE' privilege allows the designated user to open
any table, except 'SYS', to view it. Unauthorized grantees should not have that
privilege._x000D_
_x000D_
Rationale:_x000D_
Assignment of the 'SELECT ANY TABLE' privilege can allow the unauthorized viewing
of sensitive data.
The Oracle database 'AUDIT SYSTEM' privilege allows changes to auditing activities on
the system. Unauthorized grantees should not have that privilege._x000D_
_x000D_
Rationale:_x000D_
The 'AUDIT SYSTEM' privilege can allow the unauthorized alteration of system audit
activities, such as disabling the creation of audit trails.
The Oracle database 'EXEMPT ACCESS POLICY' keyword provides the user the
capability to access all the table rows regardless of row-level security lockouts.
Unauthorized grantees should not have that keyword assigned to them._x000D_
_x000D_
Rationale:_x000D_
The 'EXEMPT ACCESS POLICY' privilege can allow an unauthorized user to potentially
access and change data.
The Oracle database 'BECOME USER' privilege allows the designated user to inherit
the rights of another user. Unauthorized grantees should not have that
privilege._x000D_
_x000D_
Rationale:_x000D_
The 'BECOME USER' privilege can allow the unauthorized use of another user's
privileges, this capability should be restricted according to the needs of the
organization.
The Oracle database 'CREATE PROCEDURE' privilege allows the designated user to
create a stored procedure that will fire when given the correct command sequence.
Unauthorized grantees should not have that privilege._x000D_
_x000D_
Rationale:_x000D_
The 'CREATE PROCEDURE' privilege can lead to severe problems in unauthorized
hands, such as rogue procedures facilitating data theft or denial-of-service by
corrupting data tables.
The Oracle database 'ALTER SYSTEM' privilege allows the designated user to
dynamically alter the instance's running operations. Unauthorized grantees should
not have that privilege._x000D_
_x000D_
Rationale:_x000D_
The 'ALTER SYSTEM' privilege can lead to severe problems, such as the instance's
session being killed or the stopping of redo log recording, which would make
transactions unrecoverable.
The Oracle database 'CREATE ANY LIBRARY' privilege allows the designated user to
create objects that are associated to the shared libraries. Unauthorized grantees
should not have that privilege._x000D_
_x000D_
Rationale:_x000D_
The 'CREATE ANY LIBRARY' privilege can allow the creation of numerous library-
associated objects and potentially corrupt the libraries' integrity.
The Oracle database 'CREATE LIBRARY' privilege allows the designated user to create
objects that are associated to the shared libraries. Unauthorized grantees should not
have that privilege._x000D_
_x000D_
Rationale:_x000D_
The 'CREATE LIBRARY' privilege can allow the creation of numerous library-associated
objects and potentially corrupt the libraries' integrity.
The Oracle database 'DBA' role is the default database administrator role provided for
the allocation of administrative privileges. Unauthorized grantees should not have
that role._x000D_
_x000D_
Rationale:_x000D_
Assignment of the 'DBA' role to an ordinary user can provide a great number of
unnecessary privileges to that user and open the door to data breaches, integrity
violations, and denial-of-service conditions.
The Oracle database 'SYS.AUD$' table contains all the audit records for the database
of the non-Data Manipulation Language (DML) events, such as 'ALTER', 'DROP', and
'CREATE', and so forth. (DML changes need trigger-based audit events to record data
alterations.) Unauthorized grantees should not have full access to that table._x000D_
_x000D_
Rationale:_x000D_
Permitting non-privileged users the authorization to manipulate the 'SYS.AUD$' table
can allow distortion of the audit records, hiding unauthorized activities.
The Oracle database 'SYS.USER_HISTORY$' table contains all the audit records for the
user's password change history. (This table gets updated by password changes if the
user has an assigned profile that has a password reuse limit set, e.g.,
'PASSWORD_REUSE_TIME' set to other than 'UNLIMITED'.) Unauthorized grantees
should not have full access to that table._x000D_
_x000D_
Rationale:_x000D_
Permitting non-privileged users the authorization to manipulate the records in the
'SYS.USER_HISTORY$' table can allow distortion of the audit trail, potentially hiding
unauthorized data confidentiality attacks or integrity changes.
The Oracle database 'SYS.LINK$' table contains all the user's password information
and data table link information. Unauthorized grantees should not have full access to
that table._x000D_
_x000D_
Rationale:_x000D_
Permitting non-privileged users to manipulate or view the 'SYS.LINK$' table can allow
capture of password information and/or corrupt the primary database linkages.
The Oracle database 'SYS.USER$' table contains the users' hashed password
information. Unauthorized grantees should not have full access to that table._x000D_
_x000D_
Rationale:_x000D_
Permitting non-privileged users the authorization to open the 'SYS.USER$' table can
allow the capture of password hashes for the later application of password cracking
algorithms to breach confidentiality.
The Oracle database 'DBA_' views show all information which is relevant to
administrative accounts. Unauthorized grantees should not have full access to those
views._x000D_
_x000D_
Rationale:_x000D_
Permitting users the authorization to manipulate the 'DBA_' views can expose
sensitive data.
The table 'sys.user$mig' is created during migration and contains the Oracle password
hashes before the migration starts. This table should be dropped._x000D_
_x000D_
Rationale:_x000D_
The table 'sys.user$mig' is not deleted after the migration. An attacker could access
the table containing the Oracle password hashes.
The Oracle database 'ANY' keyword provides the user the capability to alter any item
in the catalog of the database. Unauthorized grantees should not have that keyword
assigned to them._x000D_
_x000D_
Rationale:_x000D_
Authorization to use the 'ANY' expansion of a privilege can allow an unauthorized user
to potentially change confidential data or damage the data catalog.
The Oracle database 'WITH_ADMIN' privilege allows the designated user to grant
another user the same privileges. Unauthorized grantees should not have that
privilege._x000D_
_x000D_
Rationale:_x000D_
Assignment of the 'WITH_ADMIN' privilege can allow the granting of a restricted
privilege to an unauthorized user.
The 'USER' object allows for creating accounts that can interact with the database
according to the roles and privileges allotted to the account. It may also own database
objects. Enabling the audit option causes auditing of all activities and requests to
create, drop or alter a user, including a user changing their own password. (The latter
is not audited by 'audit ALTER USER'.)_x000D_
_x000D_
Rationale:_x000D_
Any unauthorized attempts to create, drop or alter a user should cause concern,
whether successful or not. Auditing can also be useful in forensics if an account is
compromised, and auditing is mandated by many common security initiatives. An
abnormally high number of these activities in a given period might be worth
investigation. Any failed attempt to drop a user or create a user may be worth further
review.
The 'SELECT ANY DICTIONARY' capability allows the user to view the definitions of all
schema objects in the database. Enabling the audit option causes all user activities
involving this capability to be audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of user activities involving the capability to access the description of all
schema objects in the database can provide forensic evidence about a pattern of
unauthorized activities, the audit capability should be enabled.
'GRANT ANY OBJECT PRIVILEGE' allows the user to grant or revoke any object
privilege, which includes privileges on tables, directories, mining models, etc. Enabling
this audit option causes auditing of all uses of that privilege._x000D_
_x000D_
Rationale:_x000D_
Logging of privilege grants that can lead to the creation, alteration, or deletion of
critical data, the modification of objects, object privilege propagation and other such
activities can be critical to forensic investigations.
'GRANT ANY PRIVILEGE' allows a user to grant any system privilege, including the
most powerful privileges typically available only to administrators - to change the
security infrastructure, to drop/add/modify users and more._x000D_
_x000D_
Rationale:_x000D_
Auditing the use of this privilege is part of a comprehensive auditing policy that can
help in detecting issues and can be useful in forensics.
The 'AUDIT DROP ANY PROCEDURE' command is auditing the dropping of procedures.
Enabling the option causes auditing of all such activities._x000D_
_x000D_
Rationale:_x000D_
Dropping procedures of another user could be part of a privilege escalation exploit
and should be audited.
The logging of attempts to alter the audit trail in the 'SYS.AUD$' table (open for
read/update/delete/view) will provide a record of any activities that may indicate
unauthorized attempts to access the audit trail. Enabling the audit option will cause
these activities to be audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of attempts to alter the 'SYS.AUD$' table can provide forensic evidence
of the initiation of a pattern of unauthorized activities, this logging capability should
be enabled.
'ALTER SYSTEM' allows one to change instance settings, including security settings and
auditing options. Additionally, 'ALTER SYSTEM' can be used to run operating system
commands using undocumented Oracle functionality. Enabling the audit option will
audit all attempts to perform 'ALTER SYSTEM', whether successful or not and
regardless of whether or not the 'ALTER SYSTEM' privilege is held by the user
attempting the action._x000D_
_x000D_
Rationale:_x000D_
Any unauthorized attempt to alter the system should be cause for concern.
Alterations outside of some specified maintenance window may be of concern. In
forensics, these audit records could be quite useful.
A 'TRIGGER' may be used to modify 'DML' actions or invoke other (recursive) actions
when some types of user-initiated actions occur. Enabling this audit option will cause
auditing of any attempt, successful or not, to create, drop, enable or disable any
schema trigger in any schema regardless of privilege or lack thereof. For enabling and
disabling a trigger, it covers both 'ALTER TRIGGER' and 'ALTER TABLE'._x000D_
_x000D_
Rationale:_x000D_
Triggers are often part of schema security, data validation and other critical
constraints upon actions and data. A trigger in another schema may be used to
escalate privileges, redirect operations, transform data and perform other sorts of
perhaps undesired actions. Any unauthorized attempt to create, drop or alter a
trigger in another schema may be cause for investigation.
Enabling this audit option will cause auditing of all attempts to connect to the
database, whether successful or not, as well as audit session disconnects/logoffs. The
commands to audit 'SESSION', 'CONNECT' or 'CREATE SESSION' all accomplish the
same thing - they initiate statement auditing of the connect statement used to create
a database session._x000D_
_x000D_
Rationale:_x000D_
Auditing attempts to connect to the database is basic and mandated by most security
initiatives. Any attempt to logon to a locked account, failed attempts to logon to
default accounts or an unusually high number of failed logon attempts of any sort, for
any user, in a particular time period may indicate an intrusion attempt. In forensics,
the logon record may be first in a chain of evidence and contain information found in
no other type of audit record for the session. Logon and logoff in the audit trail define
the period and duration of the session.
The 'ROLE' object allows for the creation of a set of privileges that can be granted to
users or other roles. Enabling the audit option causes auditing of all attempts,
successful or not, to create, drop, alter or set roles._x000D_
_x000D_
Rationale:_x000D_
Roles are a key database security infrastructure component. Any attempt to create,
drop or alter a role should be audited. This statement auditing option also audits
attempts, successful or not, to set a role in a session. Any unauthorized attempts to
create, drop or alter a role may be worthy of investigation. Attempts to set a role by
users without the role privilege may warrant investigation.
Enabling the audit option for the 'SYSTEM GRANT' object causes auditing of any
attempt, successful or not, to grant or revoke any system privilege or role, regardless
of privilege held by the user attempting the operation._x000D_
_x000D_
Rationale:_x000D_
Logging of all grant and revokes (roles and system privileges) can provide forensic
evidence about a pattern of suspect/unauthorized activities. Any unauthorized
attempt may be cause for further investigation.
The 'PROFILE' object allows for the creation of a set of database resource limits that
can be assigned to a user, so that that user cannot exceed those resource limitations.
Enabling the audit option causes auditing of all attempts, successful or not, to create,
drop or alter any profile._x000D_
_x000D_
Rationale:_x000D_
As profiles are part of the database security infrastructure, auditing the creation,
modification, and deletion of profiles is recommended.
Enabling the audit option for the DATABASE LINK object causes all activities on
database links to be audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of user activities involving the creation or dropping of a 'DATABASE
LINK' can provide forensic evidence about a pattern of unauthorized activities, the
audit capability should be enabled.
The 'PUBLIC DATABASE LINK' object allows for the creation of a public link for an
application-based 'user' to access the database for connections/session creation.
Enabling the audit option causes all user activities involving the creation, alteration, or
dropping of public links to be audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of user activities involving the creation, alteration, or dropping of a
'PUBLIC DATABASE LINK' can provide forensic evidence about a pattern of
unauthorized activities, the audit capability should be enabled.
The 'PUBLIC SYNONYM' object allows for the creation of an alternate description of
an object. Public synonyms are accessible by all users that have the appropriate
privileges to the underlying object. Enabling the audit option causes all user activities
involving the creation or dropping of public synonyms to be audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of user activities involving the creation or dropping of a 'PUBLIC
SYNONYM' can provide forensic evidence about a pattern of unauthorized activities,
the audit capability should be enabled.
The 'SYNONYM' operation allows for the creation of an alternative name for a
database object such as a Java class schema object, materialized view, operator,
package, procedure, sequence, stored function, table, view, user-defined object type,
or even another synonym. This synonym puts a dependency on its target and is
rendered invalid if the target object is changed/dropped. Enabling the audit option
causes all user activities involving the creation or dropping of synonyms to be
audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of user activities involving the creation or dropping of a 'SYNONYM' can
provide forensic evidence about a pattern of suspect/unauthorized activities, the
audit capability should be enabled.
The 'DIRECTORY' object allows for the creation of a directory object that specifies an
alias for a directory on the server file system, where the external binary file 'LOBs'
('BFILEs')/ table data are located. Enabling this audit option causes all user activities
involving the creation or dropping of a directory alias to be audited._x000D_
_x000D_
Rationale:_x000D_
As the logging of user activities involving the creation or dropping of a 'DIRECTORY'
can provide forensic evidence about a pattern of unauthorized activities, the audit
capability should be enabled.
Recommendation
Perform the following step for remediation:_x000D_
_x000D_
Download and apply the latest quarterly Critical Patch Update patches.
Remediate this setting by executing the following SQL statement for each 'PROFILE'
returned by the audit procedure._x000D_
_x000D_
ALTER PROFILE \_x000D_
_x000D_
LIMIT FAILED_LOGIN_ATTEMPTS 5;
To remediate this recommendation, execute the following SQL statement for each
user returned by the audit query using a functional-appropriate profile._x000D_
_x000D_
ALTER USER <username> PROFILE <appropriate_profile>
Remediate this setting by executing the following SQL statement for each 'PROFILE'
returned by the audit procedure._x000D_
_x000D_
ALTER PROFILE \_x000D_
_x000D_
LIMIT PASSWORD_LOCK_TIME 1;
Remediate this setting by executing the following SQL statement for each PROFILE
returned by the audit procedure.
ALTER PROFILE \
Remediate this setting by executing the following SQL statement for each 'PROFILE'
returned by the audit procedure._x000D_
_x000D_
ALTER PROFILE \_x000D_
_x000D_
LIMIT PASSWORD_REUSE_MAX 20;
Remediate this setting by executing the following SQL statement for each 'PROFILE'
returned by the audit procedure._x000D_
_x000D_
ALTER PROFILE \_x000D_
_x000D_
LIMIT PASSWORD_REUSE_TIME 365;
Remediate this setting by executing the following SQL statement for each 'PROFILE'
returned by the audit procedure._x000D_
_x000D_
ALTER PROFILE \_x000D_
_x000D_
LIMIT PASSWORD_GRACE_TIME 5;
Replace <Non-DBA/SYS grantee> in the query below, with the Oracle login(s) or
role(s) returned from the associated audit procedure and execute:_x000D_
_x000D_
REVOKE ALL ON DBA_ FROM <Non-DBA/SYS grantee>;
To remediate this setting execute the following SQL statement for each '[PRIVILEGE]'
returned (other than 'CONNECT') by running the audit procedure._x000D_
_x000D_
REVOKE \_x000D_
_x000D_
FROM \_x000D_
_x000D_
;