SV-224210r508023_rule
V-224210
SRG-APP-000447-DB-000393
EP11-00-009700
CAT II
10
Revise and deploy the source code for database program objects (stored procedures, functions, triggers) and application source code, to implement the documented behavior.
To enable EDB Auditing, execute the following SQL statements as the enterprisedb user:
ALTER SYSTEM SET edb_audit = csv;
SELECT pg_reload_conf();
or
ALTER SYSTEM SET edb_audit = xml;
SELECT pg_reload_conf();
To configure the edb_audit_statement parameter, execute the following SQL statements as the enterprisedb user:
ALTER SYSTEM SET edb_audit_statement = 'all';
SELECT pg_reload_conf();
or
Update the system documentation to note the organizationally approved setting and corresponding justification of the setting for this requirement.
If EDB SQL/Protect is being used to monitor and protect the EDB Postgres Advanced Server database from unexpected or unauthorized actions performed on database tables, install and configure SQL/Protect as documented in section "Protecting Against SQL Injection Attacks" in the EDB Postgres Advanced Server Guide available at the following link:
https://www.enterprisedb.com/edb-docs/p/edb-postgres-advanced-server
Review system documentation to determine how input errors are to be handled in general and if any special handling is defined for specific circumstances.
Review the source code for database program objects (stored procedures, functions, triggers) and application source code to identify how the system responds to invalid input.
If it does not implement the documented behavior, this is a finding.
Verify that EDB auditing is enabled.
Execute the following SQL as enterprisedb:
SHOW edb_audit;
If the result is not "csv" or "xml", this is a finding.
Verify that EDB Audit is logging errors at a minimum, and unless otherwise documented and approved, also logging DDL and DML actions performed on the EDB Postgres Advanced Server database.
Execute the following SQL as enterprisedb:
SHOW edb_audit_statement;
If the result is "all", this is not a finding.
Otherwise, if the result is not at least "error,ddl,dml" and if the current setting for this requirement has not been noted and approved by the organization in the system documentation, this is a finding.
If EDB SQL/Protect is being used to monitor and protect the EDB Postgres Advanced Server database from unexpected or unauthorized actions performed on database tables, verify that it has been configured according to documented organizational needs.
1) Execute the following SQL as enterprisedb:
SELECT name, setting FROM pg_settings WHERE name LIKE 'edb\_sql\_protect.%' ESCAPE '\';
If the results of the above query show that the edb_sql_protect.enabled parameter is set to 'off' or if the edb_sql_protect.level is not set to an approved value, this is a finding.
2) In all the databases that are to be monitored with EDB SQL/Protect, execute the following SQL as enterprisedb:
\dn
If the "sqlprotect" schema is not listed, this is a finding.
3) In all the databases that are to be monitored with EDB SQL/Protect, execute the following SQL as enterprisedb:
SELECT * FROM sqlprotect.list_protected_users;
If the database and user that handles user input is not listed or the remaining settings are not set to approved values, this is a finding.
V-224210
False
EP11-00-009700
Review system documentation to determine how input errors are to be handled in general and if any special handling is defined for specific circumstances.
Review the source code for database program objects (stored procedures, functions, triggers) and application source code to identify how the system responds to invalid input.
If it does not implement the documented behavior, this is a finding.
Verify that EDB auditing is enabled.
Execute the following SQL as enterprisedb:
SHOW edb_audit;
If the result is not "csv" or "xml", this is a finding.
Verify that EDB Audit is logging errors at a minimum, and unless otherwise documented and approved, also logging DDL and DML actions performed on the EDB Postgres Advanced Server database.
Execute the following SQL as enterprisedb:
SHOW edb_audit_statement;
If the result is "all", this is not a finding.
Otherwise, if the result is not at least "error,ddl,dml" and if the current setting for this requirement has not been noted and approved by the organization in the system documentation, this is a finding.
If EDB SQL/Protect is being used to monitor and protect the EDB Postgres Advanced Server database from unexpected or unauthorized actions performed on database tables, verify that it has been configured according to documented organizational needs.
1) Execute the following SQL as enterprisedb:
SELECT name, setting FROM pg_settings WHERE name LIKE 'edb\_sql\_protect.%' ESCAPE '\';
If the results of the above query show that the edb_sql_protect.enabled parameter is set to 'off' or if the edb_sql_protect.level is not set to an approved value, this is a finding.
2) In all the databases that are to be monitored with EDB SQL/Protect, execute the following SQL as enterprisedb:
\dn
If the "sqlprotect" schema is not listed, this is a finding.
3) In all the databases that are to be monitored with EDB SQL/Protect, execute the following SQL as enterprisedb:
SELECT * FROM sqlprotect.list_protected_users;
If the database and user that handles user input is not listed or the remaining settings are not set to approved values, this is a finding.
M
4107