Skip to content

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

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.

Capacity
Modules