O121-C2-007000 - The DBMS must generate audit records for the DoD-selected list of auditable events, to the extent such information is available.

Information

Audit records can be generated from various components within the information system, such as network interfaces, hard disks, modems, etc. From an application perspective, certain specific application functionalities may be audited, as well.

The list of audited events is the set of events for which audits are to be generated. This set of events is typically a subset of the list of all events for which the system is capable of generating audit records (i.e., auditable events, timestamps, source and destination addresses, user/process identifiers, event descriptions, success/fail indications, file names involved, and access control or flow control rules invoked).

Organizations may define the organizational personnel accountable for determining which application components shall provide auditable events.

Auditing provides accountability for changes made to the DBMS configuration or its objects and data. It provides a means to discover suspicious activity and unauthorized changes. Without auditing, a compromise may go undetected and without a means to determine accountability.

The Department of Defense has established the following as the minimum set of auditable events. Most can be audited via Oracle settings; some - marked here with an asterisk - cannot, and may require OS settings.
- Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g. classification levels).
- Successful and unsuccessful logon attempts, privileged activities or other system level access
- Starting and ending time for user access to the system, concurrent logons from different workstations.
- Successful and unsuccessful accesses to objects.
- All program initiations.
- *All direct access to the information system.
- All account creations, modifications, disabling, and terminations.
- *All kernel module loads, unloads, and restarts.

NOTE: Nessus has not performed this check. Please review the benchmark to ensure target compliance.

Solution

Configure the DBMS's auditing settings to include auditing of events on the DoD-selected list of auditable events.

1) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels)

To audit granting and revocation of any privilege:
create audit policy policy1 actions grant;
create audit policy policy2 actions revoke;

To audit grants of object privileges on a specific object:
create audit policy policy3 actions grant on <schema>.<object>;

If Oracle Label Security is enabled, this will audit all OLS administrative actions:
create audit policy policy4 actions component = OLS all;

2) Successful and unsuccessful logon attempts, privileged activities or other system-level access

To audit all user logon attempts:
create audit policy policy5 actions logon;

To audit only logon attempts using administrative privileges (e.g. AS SYSDBA):
audit policy policy5 by SYS, SYSOPER, SYSBACKUP, SYSDG, SYSKM;

3) Starting and ending time for user access to the system, concurrent logons from different workstations

This policy will audit all logon and logoff events. An individual session is identified in the UNIFIED_AUDIT_TRAIL by the tuple (DBID, INSTANCE_ID, SESSIONID) and the start and end time will be indicated by the EVENT_TIMESTAMP of the logon and logoff events:
create audit policy policy6 actions logon, logoff;

4) Successful and unsuccessful accesses to objects

To audit all accesses to a specific table:
create audit policy policy7 actions select, insert, delete, alter on <schema>.<object>;

Different actions are defined for other object types. To audit all supported actions on a specific object:
create audit policy policy8 actions all on <schema>.<object>;

5) All program initiations

To audit execution of any PL/SQL program unit:
create audit policy policy9 actions EXECUTE;

To audit execution of a specific function, procedure, or package:
create audit policy policy10 actions EXECUTE on <schema>.<object>;

6) All direct access to the information system

[Not applicable to Database audit. Monitor using OS auditing.]

7) All account creations, modifications, disabling, and terminations

To audit all user administration actions:
create audit policy policy11 actions create user, alter user, drop user, change password;

8) All kernel module loads, unloads, and restarts

[Not applicable to Database audit. Monitor using OS auditing.]

9) All database parameter changes

To audit any database parameter changes, dynamic or static:
create audit policy policy12 actions alter database, alter system, create spfile;

Applying the Policy

The following command will enable the policy in all database sessions and audit both successful and unsuccessful actions:
audit policy policy1;

To audit only unsuccessful actions, add the WHENEVER NOT SUCCESSFUL modifier:
audit policy policy1 whenever not successful;

Either command above can be limited to only database sessions started by a specific user as follows:
audit policy policy1 by <user>;
audit policy policy1 by <user> whenever not successful;

See Also

https://dl.dod.cyber.mil/wp-content/uploads/stigs/zip/U_Oracle_Database_12c_V3R1_STIG.zip

Item Details

Category: AUDIT AND ACCOUNTABILITY

References: 800-53|AU-12c., CAT|II, CCI|CCI-000172, Rule-ID|SV-220269r960885_rule, STIG-ID|O121-C2-007000, STIG-Legacy|SV-76115, STIG-Legacy|V-61625, Vuln-ID|V-220269

Plugin: OracleDB

Control ID: b47c809e51bf00fc2488071e75679734f1ee55725f290d59dc9e4179f3f745e8