PostgreSQL must use centralized management of the content captured in audit records generated by all components of PostgreSQL.

Severity
Group ID
Group Title
Version
Rule ID
Date
STIG Version
mediumV-261917SRG-APP-000356-DB-000314CD16-00-007000SV-261917r1000962_rule2024-06-171
Description
Without the ability to centrally manage the content captured in the audit records, identification, troubleshooting, and correlation of suspicious behavior would be difficult and could lead to a delayed or incomplete analysis of an ongoing attack. The content captured in audit records must be managed from a central location (necessitating automation). Centralized management of audit records and logs provides for efficiency in maintenance and management of records, as well as the backup and archiving of those records. PostgreSQL may write audit records to database tables, to files in the file system, to other kinds of local repository, or directly to a centralized log management system. Whatever the method used, it must be compatible with offloading the records to the centralized system.
ℹ️ Check
On Unix systems, PostgreSQL can be configured to use stderr, csvlog, and syslog. To send logs to a centralized location, syslog should be used. As the database owner (shown here as "postgres"), ensure PostgreSQL uses syslog by running the following SQL: $ sudo su - postgres $ psql -c "SHOW log_destination" As the database owner (shown here as "postgres"), check to which log facility PostgreSQL is configured by running the following SQL: $ sudo su - postgres $ psql -c "SHOW syslog_facility" Check with the organization to refer to how syslog facilities are defined in their organization. If PostgreSQL audit records are not written directly to or systematically transferred to a centralized log management system, this is a finding.
✔️ Fix
Note: The following instructions use the PGDATA and PGVER environment variables. Refer to APPENDIX-F for instructions on configuring PGDATA and APPENDIX-H for PGVER. To ensure logging is enabled, review supplementary content APPENDIX-C for instructions on enabling logging. With logging enabled, as the database owner (shown here as "postgres"), configure the following parameters in postgresql.conf: Note: Consult the organization on how syslog facilities are defined in the syslog daemon configuration. $ sudo su - postgres $ vi ${PGDATA?}/postgresql.conf log_destination = 'syslog' syslog_facility = 'LOCAL0' syslog_ident = 'postgres' As the system administrator, reload the server with the new configuration: $ sudo systemctl reload postgresql-${PGVER?}