Information
Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one.
Audit records can be generated from various components within MariaDB (e.g., process, module). 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.
DoD has defined the list of events for which MariaDB will provide an audit record generation capability as the following:
(i) Successful and unsuccessful attempts to access, modify, or delete privileges, security objects, security levels, or categories of information (e.g., classification levels);
(ii) Access actions, such as 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, and all direct access to the information system; and
(iii) All account creation, modification, disabling, and termination actions.
Organizations may define additional events requiring continuous or ad hoc auditing.
NOTE: Nessus has provided the target output to assist in reviewing the benchmark to ensure target compliance.
Solution
Configure MariaDB to generate audit records for at least the DoD minimum set of events.
Edit the mariadb-enterprise.cnf configuration file located in /etc/my.cnf.d/.
Under [mariadb], add the following:
server_audit_logging = ON
Save the configuration file. This change will not take effect until MariaDB Enterprise Server is restarted.
Using the MariaDB Enterprise Audit plugin, MariaDB can be configured to audit these requests.
The MariaDB Enterprise Audit plugin can be configured to audit these changes.
Update necessary audit filters. Ex:
MariaDB> DELETE FROM mysql.server_audit_filters WHERE filtername = 'default';
MariaDB> INSERT INTO mysql.server_audit_filters (filtername, rule)
VALUES ('default',
JSON_COMPACT(
'{
'connect_event': [
'CONNECT',
'DISCONNECT'
],
'query_event': [
'ALL'
]
}'
));
More information about MariaDB auditing can be found here: https://mariadb.com/docs/security/mariadb-enterprise-audit/