STIGQter STIGQter: STIG Summary: EDB Postgres Advanced Server v11 on Windows Security Technical Implementation Guide Version: 2 Release: 1 Benchmark Date: 23 Oct 2020:

When invalid inputs are received, the EDB Postgres Advanced Server must behave in a predictable and documented manner that reflects organizational and system objectives.

DISA Rule

SV-224210r508023_rule

Vulnerability Number

V-224210

Group Title

SRG-APP-000447-DB-000393

Rule Version

EP11-00-009700

Severity

CAT II

CCI(s)

Weight

10

Fix Recommendation

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

Check Contents

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.

Vulnerability Number

V-224210

Documentable

False

Rule Version

EP11-00-009700

Severity Override Guidance

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.

Check Content Reference

M

Target Key

4107

Comments