Crunchy Data PostgreSQL Security Technical Implementation Guide
Rules, Groups, and Values defined within the XCCDF Benchmark
-
SRG-APP-000090-DB-000065
Group -
SRG-APP-000503-DB-000350
Group -
PostgreSQL must generate audit records when successful logons or connections occur.
For completeness of forensic analysis, it is necessary to track who/what (a user or other principal) logs on to PostgreSQL.Rule Medium Severity -
SRG-APP-000099-DB-000043
Group -
SRG-APP-000456-DB-000390
Group -
SRG-APP-000119-DB-000060
Group -
The audit information produced by PostgreSQL must be protected from unauthorized modification.
If audit data were to become compromised, then competent forensic analysis and discovery of the true source of potentially malicious system activity is impossible to achieve. To ensure the veraci...Rule Medium Severity -
SRG-APP-000023-DB-000001
Group -
SRG-APP-000501-DB-000336
Group -
PostgreSQL must generate audit records when security objects are deleted.
The removal of security objects from the database/PostgreSQL would seriously degrade a system's information assurance posture. If such an event occurs, it must be logged.Rule Medium Severity -
SRG-APP-000091-DB-000325
Group -
PostgreSQL must initiate session auditing upon startup.
Session auditing is for use when a user's activities are under investigation. To ensure the capture of all activity during those periods when session auditing is in use, it needs to be in operation...Rule Medium Severity -
SRG-APP-000266-DB-000162
Group -
PostgreSQL must provide non-privileged users with error messages that provide information necessary for corrective actions without revealing information that could be exploited by adversaries.
Any PostgreSQL or associated application providing too much information in error messages on the screen or printout risks compromising the data and security of the system. The structure and content...Rule Medium Severity -
SRG-APP-000133-DB-000179
Group -
Privileges to change PostgreSQL software modules must be limited.
If the system were to allow any user to make changes to software libraries, those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust cha...Rule Medium Severity -
SRG-APP-000133-DB-000179
Group -
PostgreSQL must limit privileges to change functions and triggers, and links to software external to PostgreSQL.
If the system were to allow any user to make changes to software libraries, those changes might be implemented without undergoing the appropriate testing and approvals that are part of a robust cha...Rule Medium Severity -
SRG-APP-000172-DB-000075
Group -
If passwords are used for authentication, PostgreSQL must transmit only encrypted representations of passwords.
The DoD standard for authentication is DoD-approved PKI certificates. Authentication based on User ID and Password may be used only when it is not possible to employ a PKI certificate, and require...Rule High Severity -
SRG-APP-000033-DB-000084
Group -
SRG-APP-000428-DB-000386
Group -
SRG-APP-000314-DB-000310
Group -
SRG-APP-000001-DB-000031
Group -
PostgreSQL must limit the number of concurrent sessions to an organization-defined number per user for all accounts and/or account types.
Database management includes the ability to control the number of users and user sessions utilizing PostgreSQL. Unlimited concurrent connections to PostgreSQL could allow a successful Denial of Ser...Rule Medium Severity -
SRG-APP-000133-DB-000362
Group -
The role(s)/group(s) used to modify database structure (including but not necessarily limited to tables, indexes, storage, etc.) and logic modules (functions, trigger procedures, links to software external to PostgreSQL, etc.) must be restricted to authorized users.
If PostgreSQL were to allow any user to make changes to database structure or logic, those changes might be implemented without undergoing the appropriate testing and approvals that are part of a r...Rule Medium Severity -
SRG-APP-000180-DB-000115
Group -
SRG-APP-000311-DB-000308
Group -
PostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in storage.
Without the association of security labels to information, there is no basis for PostgreSQL to make security-related access-control decisions. Security labels are abstractions representing the bas...Rule Medium Severity -
SRG-APP-000251-DB-000160
Group -
PostgreSQL must check the validity of all data inputs except those specifically identified by the organization.
Invalid user input occurs when a user inserts data or characters into an application's data entry fields and the application is unprepared to process that data. This results in unanticipated applic...Rule Medium Severity -
SRG-APP-000251-DB-000391
Group -
PostgreSQL and associated applications must reserve the use of dynamic code execution for situations that require it.
With respect to database management systems, one class of threat is known as SQL Injection, or more generally, code injection. It takes advantage of the dynamic execution capabilities of various pr...Rule Medium Severity -
SRG-APP-000251-DB-000392
Group -
PostgreSQL and associated applications, when making use of dynamic code execution, must scan input data for invalid values that may indicate a code injection attack.
With respect to database management systems, one class of threat is known as SQL Injection, or more generally, code injection. It takes advantage of the dynamic execution capabilities of various pr...Rule Medium Severity -
SRG-APP-000328-DB-000301
Group -
SRG-APP-000120-DB-000061
Group -
The audit information produced by PostgreSQL must be protected from unauthorized deletion.
If audit data were to become compromised, then competent forensic analysis and discovery of the true source of potentially malicious system activity is impossible to achieve. To ensure the veracit...Rule Medium Severity -
SRG-APP-000374-DB-000322
Group -
SRG-APP-000267-DB-000163
Group -
PostgreSQL must reveal detailed error messages only to the ISSO, ISSM, SA, and DBA.
If PostgreSQL provides too much information in error logs and administrative messages to the screen, this could lead to compromise. The structure and content of error messages need to be carefully ...Rule Medium Severity -
SRG-APP-000360-DB-000320
Group -
SRG-APP-000109-DB-000321
Group -
PostgreSQL must be configurable to overwrite audit log records, oldest first (First-In-First-Out [FIFO]), in the event of unavailability of space for more audit log records.
It is critical that when PostgreSQL is at risk of failing to process audit logs as required, it take action to mitigate the failure. Audit processing failures include software/hardware errors; fail...Rule Low Severity -
SRG-APP-000109-DB-000049
Group -
SRG-APP-000442-DB-000379
Group -
SRG-APP-000133-DB-000200
Group -
Database objects (including but not limited to tables, indexes, storage, trigger procedures, functions, links to software external to PostgreSQL, etc.) must be owned by database/DBMS principals authorized for ownership.
Within the database, object ownership implies full privileges to the owned object, including the privilege to assign access to the owned objects to other subjects. Database functions and procedures...Rule Medium Severity -
SRG-APP-000133-DB-000198
Group
Node 2
The content of the drawer really is up to you. It could have form fields, definition lists, text lists, labels, charts, progress bars, etc. Spacing recommendation is 24px margins. You can put tabs in here, and can also make the drawer scrollable.