Crunchy Data PostgreSQL Security Technical Implementation Guide

Description

This Security Technical Implementation Guide is published as a tool to improve the security of Department of Defense (DoD) information systems. The requirements are derived from the National Institute of Standards and Technology (NIST) 800-53 and related documents. Comments or proposed revisions to this document should be sent via email to the following address: [email protected]

Details

Version / Release: V1R1

Published: 2020-12-11

Updated At: 2021-02-04 18:20:34

Actions

Download

Filter

Findings
Severity Open Not Reviewed Not Applicable Not a Finding
Overall 0 0 0 0
Low 0 0 0 0
Medium 0 0 0 0
High 0 0 0 0
Drop CKL or SCAP (XCCDF) results here.

    Vuln Rule Version CCI Severity Title Description Status Finding Details Comments
    SV-233511r617335_rule CD12-00-000100 CCI-000382 MEDIUM PostgreSQL must be configured to prohibit or restrict the use of organization-defined functions, ports, protocols, and/or services, as defined in the PPSM CAL and vulnerability assessments. To prevent unauthorized connection of devices, unauthorized transfer of information, or unauthorized tunneling (i.e., embedding of data types within data types), organizations must disable or restrict unused or unnecessary physical and logical ports/proto
    SV-233512r617333_rule CD12-00-000200 CCI-000134 MEDIUM PostgreSQL must produce audit records containing sufficient information to establish the outcome (success or failure) of the events. Information system auditing capability is critical for accurate forensic analysis. Without information about the outcome of events, security personnel cannot make an accurate assessment as to whether an attack was successful or if changes were made to the
    SV-233513r617333_rule CD12-00-000300 CCI-002605 MEDIUM Security-relevant software updates to PostgreSQL must be installed within the time period directed by an authoritative source (e.g., IAVM, CTOs, DTMs, and STIGs). Security flaws with software applications, including database management systems, are discovered daily. Vendors are constantly updating and patching their products to address newly discovered security vulnerabilities. Organizations (including any contract
    SV-233514r617333_rule CD12-00-000400 CCI-000163 MEDIUM 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 veracity of audit data the information system and/or the applica
    SV-233515r617333_rule CD12-00-000500 CCI-000015 HIGH PostgreSQL must integrate with an organization-level authentication/access mechanism providing account management and automation for all users, groups, roles, and any other principals. Enterprise environments make account management for applications and databases challenging and complex. A manual process for account management functions adds the risk of a potential oversight or other error. Managing accounts for the same person in multi
    SV-233516r617333_rule CD12-00-000600 CCI-001312 MEDIUM 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 of error messages need to be carefully considered by the
    SV-233517r617333_rule CD12-00-000700 CCI-001499 MEDIUM 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 change management process. Accordingly, only qualified and a
    SV-233518r617333_rule CD12-00-000710 CCI-001499 MEDIUM 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 change management process. Accordingly, only qualified and a
    SV-233519r617333_rule CD12-00-000800 CCI-000197 MEDIUM 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 requires Authorizing Official (AO) approval. In such cases, pass
    SV-233520r617333_rule CD12-00-000900 CCI-000213 MEDIUM PostgreSQL must enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies. Authentication with a DoD-approved PKI certificate does not necessarily imply authorization to access PostgreSQL. To mitigate the risk of unauthorized access to sensitive information by entities that have been issued certificates by DoD-approved PKIs, all
    SV-233521r617333_rule CD12-00-001100 CCI-002264 MEDIUM PostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in transmission. 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 basic properties or characteristics of an entity (e.g., subje
    SV-233522r617333_rule CD12-00-001200 CCI-000054 MEDIUM 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 Service (DoS) attack by exhausting connection resources; and
    SV-233523r617333_rule CD12-00-001300 CCI-001499 MEDIUM 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 robust change management process. Accordingly, only qualif
    SV-233524r617333_rule CD12-00-001400 CCI-000804 MEDIUM PostgreSQL must uniquely identify and authenticate non-organizational users (or processes acting on behalf of non-organizational users). Non-organizational users include all information system users other than organizational users, which includes organizational employees or individuals the organization deems to have equivalent status of employees (e.g., contractors, guest researchers, indi
    SV-233525r617333_rule CD12-00-001700 CCI-002262 MEDIUM 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 basic properties or characteristics of an entity (e.g., subje
    SV-233526r617333_rule CD12-00-001800 CCI-001310 MEDIUM 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 application behavior, potentially leading to an application or i
    SV-233527r617333_rule CD12-00-001900 CCI-001310 MEDIUM 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 programming languages, including dialects of SQL. In such ca
    SV-233528r617333_rule CD12-00-002000 CCI-001310 MEDIUM 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 programming languages, including dialects of SQL. In such ca
    SV-233529r617333_rule CD12-00-002100 CCI-001849 MEDIUM PostgreSQL must allocate audit record storage capacity in accordance with organization-defined audit record storage requirements. To ensure sufficient storage capacity for the audit logs, PostgreSQL must be able to allocate audit record storage capacity. Although another requirement (SRG-APP-000515-DB-000318) mandates that audit data be off-loaded to a centralized log management sys
    SV-233530r617333_rule CD12-00-002200 CCI-002165 MEDIUM PostgreSQL must enforce discretionary access control policies, as defined by the data owner, over defined subjects and objects. Discretionary Access Control (DAC) is based on the notion that individual users are "owners" of objects and therefore have discretion over who should be authorized to access the object and in which mode (e.g., read or write). Ownership is usually acquired
    SV-233531r617333_rule CD12-00-002300 CCI-000164 MEDIUM 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 veracity of audit data, the information system and/or the applica
    SV-233532r617333_rule CD12-00-002400 CCI-001890 MEDIUM PostgreSQL must record time stamps, in audit records and application data that can be mapped to Coordinated Universal Time (UTC, formerly GMT). If time stamps are not consistently applied and there is no common time reference, it is difficult to perform forensic analysis. Time stamps generated by PostgreSQL must include date and time. Time is commonly expressed in UTC, a modern continuation of G
    SV-233533r617333_rule CD12-00-002500 CCI-001314 MEDIUM 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 considered by the organization and development team. The e
    SV-233534r617333_rule CD12-00-002600 CCI-000171 MEDIUM PostgreSQL must allow only the Information System Security Manager (ISSM), or individuals or roles appointed by the ISSM, to select which auditable events are to be audited. Without the capability to restrict which roles and individuals can select which events are audited, unauthorized personnel may be able to prevent or interfere with the auditing of critical events. Suppression of auditing could permit an adversary to evad
    SV-233535r617333_rule CD12-00-002700 CCI-001858 MEDIUM PostgreSQL must provide an immediate alert to appropriate support staff of all audit log failures. It is critical for the appropriate personnel to be aware if a system is at risk of failing to process audit logs as required. Without a real-time alert, security personnel may be unaware of an impending failure of the audit capability, and system operatio
    SV-233536r617333_rule CD12-00-002800 CCI-000140 LOW 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; failures in the audit capturing mechanisms; and audit storage
    SV-233537r617333_rule CD12-00-002900 CCI-000140 MEDIUM PostgreSQL must by default shut down upon audit failure, to include the unavailability of space for more audit log records; or must be configurable to shut down upon audit failure. 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; failures in the audit capturing mechanisms; and audit storage
    SV-233538r617333_rule CD12-00-003000 CCI-002422 MEDIUM PostgreSQL must maintain the confidentiality and integrity of information during reception. Information can be either unintentionally or maliciously disclosed or modified during reception, including, for example, during aggregation, at protocol transformation points, and during packing/unpacking. These unauthorized disclosures or modifications c
    SV-233539r617333_rule CD12-00-003100 CCI-001499 MEDIUM 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 can be coded using definer's rights. This allows anyone w
    SV-233540r617333_rule CD12-00-003200 CCI-001499 MEDIUM The PostgreSQL software installation account must be restricted to authorized users. When dealing with change control issues, it should be noted any changes to the hardware, software, and/or firmware components of the information system and/or application can have significant effects on the overall security of the system. If the system
    SV-233541r617333_rule CD12-00-003300 CCI-001499 MEDIUM Database software, including PostgreSQL configuration files, must be stored in dedicated directories separate from the host OS and other applications. When dealing with change control issues, it should be noted, any changes to the hardware, software, and/or firmware components of the information system and/or application can potentially have significant effects on the overall security of the system. Mu
    SV-233542r617333_rule CD12-00-003500 CCI-000135 MEDIUM PostgreSQL must include additional, more detailed, organization-defined information in the audit records for audit events identified by type, location, or subject. Information system auditing capability is critical for accurate forensic analysis. Reconstruction of harmful events or forensic analysis is not possible if audit records do not contain enough information. To support analysis, some types of events will nee
    SV-233543r617333_rule CD12-00-003600 CCI-002233 MEDIUM Execution of software modules (to include functions and trigger procedures) with elevated privileges must be restricted to necessary cases only. In certain situations, to provide required functionality, PostgreSQL needs to execute internal logic (stored procedures, functions, triggers, etc.) and/or external code modules with elevated privileges. However, if the privileges required for execution ar
    SV-233544r617333_rule CD12-00-003700 CCI-002754 MEDIUM When invalid inputs are received, PostgreSQL must behave in a predictable and documented manner that reflects organizational and system objectives. A common vulnerability is unplanned behavior when invalid inputs are received. This requirement guards against adverse or unintended system behavior caused by invalid inputs, where information system responses to the invalid input may be disruptive or cau
    SV-233545r617333_rule CD12-00-003800 CCI-001844 MEDIUM PostgreSQL must utilize centralized management of the content captured in audit records generated by all components of PostgreSQL. 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 con
    SV-233546r617333_rule CD12-00-004000 CCI-001084 MEDIUM PostgreSQL must isolate security functions from non-security functions. An isolation boundary provides access control and protects the integrity of the hardware, software, and firmware that perform security functions. Security functions are the hardware, software, and/or firmware of the information system responsible for enf
    SV-233547r617333_rule CD12-00-004100 CCI-001814 MEDIUM PostgreSQL must produce audit records of its enforcement of access restrictions associated with changes to the configuration of PostgreSQL or database(s). Without auditing the enforcement of access restrictions against changes to configuration, it would be difficult to identify attempted attacks and an audit trail would not be available for forensic investigation for after-the-fact actions. Enforcement act
    SV-233548r617333_rule CD12-00-004150 CCI-001762 MEDIUM PostgreSQL must disable network functions, ports, protocols, and services deemed by the organization to be nonsecure, in accord with the Ports, Protocols, and Services Management (PPSM) guidance. Use of nonsecure network functions, ports, protocols, and services exposes the system to avoidable threats.
    SV-233549r617333_rule CD12-00-004200 CCI-000162 MEDIUM The audit information produced by PostgreSQL must be protected from unauthorized read access. If audit data were to become compromised, then competent forensic analysis and discovery of the true source of potentially malicious system activity is difficult, if not impossible, to achieve. In addition, access to audit records provides information an
    SV-233550r617333_rule CD12-00-004300 CCI-002617 MEDIUM When updates are applied to PostgreSQL software, any software components that have been replaced or made unnecessary must be removed. Previous versions of PostgreSQL components that are not removed from the information system after updates have been installed may be exploited by adversaries. Some PostgreSQL installation tools may remove older versions of software automatically from the
    SV-233551r617333_rule CD12-00-004400 CCI-000172 MEDIUM PostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is accessed. Changes in categories of information must be tracked. Without an audit trail, unauthorized access to protected data could go undetected. For detailed information on categorizing information, refer to FIPS Publication 199, Standards for Security Categoriz
    SV-233552r617333_rule CD12-00-004500 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to access security objects occur. Changes to the security configuration must be tracked. This requirement applies to situations where security data is retrieved or modified via data manipulation operations, as opposed to via specialized security functionality. In an SQL environment, typ
    SV-233553r617333_rule CD12-00-004600 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful logons or connection attempts occur. For completeness of forensic analysis, it is necessary to track failed attempts to log on to PostgreSQL. While positive identification may not be possible in a case of failed authentication, as much information as possible about the incident must be captu
    SV-233554r617333_rule CD12-00-004700 CCI-000172 MEDIUM PostgreSQL must generate audit records showing starting and ending time for user access to the database(s). For completeness of forensic analysis, it is necessary to know how long a user's (or other principal's) connection to PostgreSQL lasts. This can be achieved by recording disconnections, in addition to logons/connections, in the audit logs. Disconnection
    SV-233555r617333_rule CD12-00-004800 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to modify security objects occur. Changes in the database objects (tables, views, procedures, functions) that record and control permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized changes to the security subsystem could go u
    SV-233556r617333_rule CD12-00-004900 CCI-000172 MEDIUM PostgreSQL must generate audit records when privileges/permissions are added. Changes in the permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized elevation or restriction of privileges could go undetected. Elevated privileges give users access to information and functio
    SV-233557r617333_rule CD12-00-005000 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to delete categorized information (e.g., classification levels/security levels) occur. Changes in categorized information must be tracked. Without an audit trail, unauthorized access to protected data could go undetected. To aid in diagnosis, it is necessary to keep track of failed attempts in addition to the successful ones. For detailed
    SV-233558r617333_rule CD12-00-005100 CCI-000172 MEDIUM 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.
    SV-233559r617333_rule CD12-00-005200 CCI-000172 MEDIUM 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.
    SV-233560r617333_rule CD12-00-005300 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to retrieve privileges/permissions occur. Under some circumstances, it may be useful to monitor who/what is reading privilege/permission/role information. Therefore, it must be possible to configure auditing to do this. PostgreSQLs typically make such information available through views or functi
    SV-233561r617333_rule CD12-00-005400 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to delete privileges/permissions occur. Failed attempts to change the permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized attempts to elevate or restrict privileges could go undetected. In a SQL environment, deleting permissions i
    SV-233562r617333_rule CD12-00-005500 CCI-000172 MEDIUM PostgreSQL must be able to generate audit records when privileges/permissions are retrieved. Under some circumstances, it may be useful to monitor who/what is reading privilege/permission/role information. Therefore, it must be possible to configure auditing to do this. PostgreSQLs typically make such information available through views or functi
    SV-233563r617333_rule CD12-00-005600 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to modify categorized information (e.g., classification levels/security levels) occur. Changes in categorized information must be tracked. Without an audit trail, unauthorized access to protected data could go undetected. To aid in diagnosis, it is necessary to keep track of failed attempts in addition to the successful ones. For detailed
    SV-233564r617333_rule CD12-00-005700 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful accesses to objects occur. Without tracking all or selected types of access to all or selected objects (tables, views, procedures, functions, etc.), it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for o
    SV-233565r617333_rule CD12-00-005800 CCI-000172 MEDIUM PostgreSQL must generate audit records for all privileged activities or other system-level access. Without tracking privileged activity, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. System documentation should include a definition of the functionality consider
    SV-233566r617333_rule CD12-00-005900 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to access categorized information (e.g., classification levels/security levels) occur. Changes in categories of information must be tracked. Without an audit trail, unauthorized access to protected data could go undetected. To aid in diagnosis, it is necessary to keep track of failed attempts in addition to the successful ones. For detail
    SV-233567r617333_rule CD12-00-006000 CCI-000172 MEDIUM PostgreSQL must be able to generate audit records when security objects are accessed. Changes to the security configuration must be tracked. This requirement applies to situations where security data is retrieved or modified via data manipulation operations, as opposed to via specialized security functionality. In a SQL environment, type
    SV-233568r617333_rule CD12-00-006100 CCI-000172 MEDIUM PostgreSQL must generate audit records when privileges/permissions are deleted. Changes in the permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized elevation or restriction of privileges could go undetected. Elevated privileges give users access to information and functio
    SV-233569r617333_rule CD12-00-006200 CCI-000172 MEDIUM PostgreSQL must generate audit records when concurrent logons/connections by the same user from different workstations occur. For completeness of forensic analysis, it is necessary to track who logs on to PostgreSQL. Concurrent connections by the same user from multiple workstations may be valid use of the system; or such connections may be due to improper circumvention of the
    SV-233570r617333_rule CD12-00-006300 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to delete security objects occur. The removal of security objects from the database/PostgreSQL would seriously degrade a system's information assurance posture. If such an action is attempted, it must be logged. To aid in diagnosis, it is necessary to keep track of failed attempts in add
    SV-233571r617333_rule CD12-00-006400 CCI-000172 MEDIUM PostgreSQL must generate audit records when privileges/permissions are modified. Changes in the permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized elevation or restriction of privileges could go undetected. Elevated privileges give users access to information and functio
    SV-233572r617333_rule CD12-00-006500 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to execute privileged activities or other system-level access occur. Without tracking privileged activity, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. System documentation should include a definition of the functionality considere
    SV-233573r617333_rule CD12-00-006600 CCI-000172 MEDIUM PostgreSQL must generate audit records when security objects are modified. Changes in the database objects (tables, views, procedures, functions) that record and control permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized changes to the security subsystem could go u
    SV-233574r617333_rule CD12-00-006700 CCI-000172 MEDIUM PostgreSQL must generate audit records when categories of information (e.g., classification levels/security levels) is modified. Changes in categories of information must be tracked. Without an audit trail, unauthorized access to protected data could go undetected. For detailed information on categorizing information, refer to FIPS Publication 199, Standards for Security Categoriz
    SV-233575r617333_rule CD12-00-006800 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to modify privileges/permissions occur. Failed attempts to change the permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized attempts to elevate or restrict privileges could go undetected. Modifying permissions is done via the GRANT
    SV-233576r617333_rule CD12-00-006900 CCI-000172 MEDIUM PostgreSQL must generate audit records when unsuccessful attempts to add privileges/permissions occur. Failed attempts to change the permissions, privileges, and roles granted to users and roles must be tracked. Without an audit trail, unauthorized attempts to elevate or restrict privileges could go undetected. In a SQL environment, adding permissions is
    SV-233577r617333_rule CD12-00-007000 CCI-000185 MEDIUM PostgreSQL, when utilizing PKI-based authentication, must validate certificates by performing RFC 5280-compliant certification path validation. The DoD standard for authentication is DoD-approved PKI certificates. A certificate's certification path is the path from the end entity certificate to a trusted root certification authority (CA). Certification path validation is necessary for a relying
    SV-233578r617333_rule CD12-00-007100 CCI-000132 MEDIUM PostgreSQL must produce audit records containing sufficient information to establish where the events occurred. Information system auditing capability is critical for accurate forensic analysis. Without establishing where events occurred, it is impossible to establish, correlate, and investigate the events relating to an incident. To compile an accurate risk asses
    SV-233579r617333_rule CD12-00-007200 CCI-002420 MEDIUM PostgreSQL must maintain the confidentiality and integrity of information during preparation for transmission. Information can be either unintentionally or maliciously disclosed or modified during preparation for transmission, including, for example, during aggregation, at protocol transformation points, and during packing/unpacking. These unauthorized disclosures
    SV-233580r617333_rule CD12-00-007400 CCI-000169 MEDIUM PostgreSQL must be configured to provide audit record generation for DoD-defined auditable events within all DBMS/database components. Without the capability to generate audit records, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those responsible for one. Audit records can be generated from various components within Post
    SV-233581r617333_rule CD12-00-007700 CCI-001889 MEDIUM PostgreSQL must generate time stamps, for audit records and application data, with a minimum granularity of one second. Without sufficient granularity of time stamps, it is not possible to adequately determine the chronological order of records. Time stamps generated by PostgreSQL must include date and time. Granularity of time measurements refers to the precision availa
    SV-233582r617333_rule CD12-00-007800 CCI-001487 MEDIUM PostgreSQL must produce audit records containing sufficient information to establish the identity of any user/subject or process associated with the event. Information system auditing capability is critical for accurate forensic analysis. Without information that establishes the identity of the subjects (i.e., users or processes acting on behalf of users) associated with the events, security personnel cannot
    SV-233583r617333_rule CD12-00-008000 CCI-002450 HIGH PostgreSQL must implement NIST FIPS 140-2 validated cryptographic modules to generate and validate cryptographic hashes. Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The application must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides ass
    SV-233584r617333_rule CD12-00-008100 CCI-002450 MEDIUM PostgreSQL must use NSA-approved cryptography to protect classified information in accordance with the data owner’s requirements. Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The application must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides ass
    SV-233585r617333_rule CD12-00-008200 CCI-002450 HIGH PostgreSQL must implement NIST FIPS 140-2 validated cryptographic modules to protect unclassified information requiring confidentiality and cryptographic protection, in accordance with the data owner’s requirements. Use of weak or untested encryption algorithms undermines the purposes of utilizing encryption to protect data. The application must implement cryptographic modules adhering to the higher standards approved by the federal government since this provides ass
    SV-233586r617333_rule CD12-00-008300 CCI-001199 MEDIUM PostgreSQL must protect the confidentiality and integrity of all information at rest. This control is intended to address the confidentiality and integrity of information at rest in non-mobile devices and covers user information and system information. Information at rest refers to the state of information when it is located on a secondary
    SV-233587r617333_rule CD12-00-008400 CCI-001812 MEDIUM PostgreSQL must prohibit user installation of logic modules (functions, trigger procedures, views, etc.) without explicit privileged status. Allowing regular users to install software, without explicit privileges, creates the risk that untested or potentially malicious software will be installed on the system. Explicit privileges (escalated or administrative privileges) provide the regular use
    SV-233588r617333_rule CD12-00-008500 CCI-001082 MEDIUM PostgreSQL must separate user functionality (including user interface services) from database management functionality. Information system management functionality includes functions necessary to administer databases, network components, workstations, or servers and typically requires privileged user access. The separation of user functionality from information system ma
    SV-233589r617333_rule CD12-00-008600 CCI-001464 MEDIUM 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 for the whole time PostgreSQL is running.
    SV-233590r617333_rule CD12-00-008700 CCI-002475 MEDIUM PostgreSQL must implement cryptographic mechanisms to prevent unauthorized modification of organization-defined information at rest (to include, at a minimum, PII and classified information) on organization-defined information system components. PostgreSQLs handling data requiring data-at-rest protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. These cryptographic mechanisms may be native to PostgreSQL or implemented via
    SV-233591r617333_rule CD12-00-008800 CCI-000133 MEDIUM PostgreSQL must produce audit records containing sufficient information to establish the sources (origins) of the events. Information system auditing capability is critical for accurate forensic analysis. Without establishing the source of the event, it is impossible to establish, correlate, and investigate the events relating to an incident. To compile an accurate risk ass
    SV-233592r617333_rule CD12-00-008900 CCI-000381 MEDIUM Unused database components, PostgreSQL software, and database objects must be removed. Information systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). It is de
    SV-233593r617333_rule CD12-00-009100 CCI-000381 MEDIUM Access to external executables must be disabled or restricted. Information systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). It is det
    SV-233594r617333_rule CD12-00-009200 CCI-000381 MEDIUM Unused database components that are integrated in PostgreSQL and cannot be uninstalled must be disabled. Information systems are capable of providing a wide variety of functions and services. Some of the functions and services, provided by default, may not be necessary to support essential organizational operations (e.g., key missions, functions). It is det
    SV-233595r617333_rule CD12-00-009400 CCI-002263 MEDIUM PostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in process. 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 basic properties or characteristics of an entity (e.g., subje
    SV-233596r617333_rule CD12-00-009500 CCI-000196 MEDIUM If passwords are used for authentication, PostgreSQL must store only hashed, salted 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 requires Authorizing Official (AO) approval. In such cases, data
    SV-233597r617333_rule CD12-00-009600 CCI-001813 MEDIUM PostgreSQL must enforce access restrictions associated with changes to the configuration of PostgreSQL or database(s). Failure to provide logical access restrictions associated with changes to configuration may have significant effects on the overall security of the system. When dealing with access restrictions pertaining to change control, it should be noted that any ch
    SV-233598r617333_rule CD12-00-009700 CCI-000166 MEDIUM PostgreSQL must protect against a user falsely repudiating having performed organization-defined actions. Non-repudiation of actions taken is required in order to maintain data integrity. Examples of particular actions taken by individuals include creating information, sending a message, approving information (e.g., indicating concurrence or signing a contrac
    SV-233599r617333_rule CD12-00-009900 CCI-001855 MEDIUM The system must provide a warning to appropriate support staff when allocated audit record storage volume reaches 75 percent of maximum audit record storage capacity. Organizations are required to use a central log management system, so under normal conditions, the audit space allocated to PostgreSQL on its own server will not be an issue. However, space will still be required on PostgreSQL server for audit records in
    SV-233600r617339_rule CD12-00-010000 CCI-001914 MEDIUM PostgreSQL must provide the means for individuals in authorized roles to change the auditing to be performed on all application components, based on all selectable event criteria within organization-defined time thresholds. If authorized individuals do not have the ability to modify auditing parameters in response to a changing threat environment, the organization may not be able to effectively respond, and important forensic information may be lost. This requirement enable
    SV-233601r617333_rule CD12-00-010100 CCI-002038 MEDIUM PostgreSQL must require users to reauthenticate when organization-defined circumstances or situations require reauthentication. The DoD standard for authentication of an interactive user is the presentation of a Common Access Card (CAC) or other physical token bearing a valid, current, DoD-issued Public Key Infrastructure (PKI) certificate, coupled with a Personal Identification N
    SV-233602r617333_rule CD12-00-010200 CCI-000186 HIGH PostgreSQL must enforce authorized access to all PKI private keys stored/utilized by PostgreSQL. The DoD standard for authentication is DoD-approved PKI certificates. PKI certificate-based authentication is performed by requiring the certificate holder to cryptographically prove possession of the corresponding private key. If the private key is stol
    SV-233603r617340_rule CD12-00-010300 CCI-002470 MEDIUM PostgreSQL must only accept end entity certificates issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs) for the establishment of all encrypted sessions. Only DoD-approved external PKIs have been evaluated to ensure security controls and identity vetting procedures are in place that are sufficient for DoD systems to rely on the identity asserted in the certificate. PKIs lacking sufficient security controls
    SV-233604r617333_rule CD12-00-010400 CCI-000130 MEDIUM PostgreSQL must produce audit records containing sufficient information to establish what type of events occurred. Information system auditing capability is critical for accurate forensic analysis. Without establishing what type of event occurred, it would be difficult to establish, correlate, and investigate the events relating to an incident or identify those respon
    SV-233605r617333_rule CD12-00-010500 CCI-002476 MEDIUM PostgreSQL must implement cryptographic mechanisms preventing the unauthorized disclosure of organization-defined information at rest on organization-defined information system components. PostgreSQLs handling data requiring data-at-rest protections must employ cryptographic mechanisms to prevent unauthorized disclosure and modification of the information at rest. These cryptographic mechanisms may be native to PostgreSQL or implemented via
    SV-233606r617333_rule CD12-00-010600 CCI-001185 MEDIUM PostgreSQL must invalidate session identifiers upon user logout or other session termination. Captured sessions can be reused in "replay" attacks. This requirement limits the ability of adversaries to capture and continue to employ previously valid session IDs. This requirement focuses on communications protection for PostgreSQL session rather th
    SV-233607r617333_rule CD12-00-010700 CCI-001493 MEDIUM PostgreSQL must protect its audit features from unauthorized access. Protecting audit data also includes identifying and protecting the tools used to view and manipulate log data. Depending upon the log format and application, system and application log tools may provide the only means to manipulate and manage applicatio
    SV-233608r617333_rule CD12-00-011100 CCI-000131 MEDIUM PostgreSQL must produce audit records containing time stamps to establish when the events occurred. Information system auditing capability is critical for accurate forensic analysis. Without establishing when events occurred, it is impossible to establish, correlate, and investigate the events relating to an incident. In order to compile an accurate ri
    SV-233609r617333_rule CD12-00-011200 CCI-001495 MEDIUM PostgreSQL must protect its audit features from unauthorized removal. Protecting audit data also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit data. Applications providing tools to interface with
    SV-233610r617333_rule CD12-00-011300 CCI-001851 MEDIUM PostgreSQL must off-load audit data to a separate log management facility; this must be continuous and in near real time for systems with a network connection to the storage facility and weekly or more often for stand-alone systems. Information stored in one location is vulnerable to accidental or incidental deletion or alteration. Off-loading is a common process in information systems with limited audit storage capacity. PostgreSQL may write audit records to database tables, to f
    SV-233611r617333_rule CD12-00-011400 CCI-001188 MEDIUM PostgreSQL must maintain the authenticity of communications sessions by guarding against man-in-the-middle attacks that guess at Session ID values. One class of man-in-the-middle, or session hijacking, attack involves the adversary guessing at valid session identifiers based on patterns in identifiers already known. The preferred technique for thwarting guesses at Session IDs is the generation of un
    SV-233612r617333_rule CD12-00-011500 CCI-000764 MEDIUM PostgreSQL must uniquely identify and authenticate organizational users (or processes acting on behalf of organizational users). To ensure accountability and prevent unauthenticated access, organizational users must be identified and authenticated to prevent potential misuse and compromise of the system. Organizational users include organizational employees or individuals the org
    SV-233613r617333_rule CD12-00-011600 CCI-002361 MEDIUM PostgreSQL must automatically terminate a user session after organization-defined conditions or trigger events requiring session disconnect. This addresses the termination of user-initiated logical sessions in contrast to the termination of network connections that are associated with communications sessions (i.e., network disconnect). A logical session (for local, network, and remote access)
    SV-233614r617333_rule CD12-00-011700 CCI-002235 HIGH PostgreSQL must prevent non-privileged users from executing privileged functions, to include disabling, circumventing, or altering implemented security safeguards/countermeasures. Preventing non-privileged users from executing privileged functions mitigates the risk that unauthorized individuals or processes may gain unnecessary access to information or privileges. System documentation should include a definition of the functiona
    SV-233615r617333_rule CD12-00-011800 CCI-000187 MEDIUM PostgreSQL must map the PKI-authenticated identity to an associated user account. The DoD standard for authentication is DoD-approved PKI certificates. Once a PKI certificate has been validated, it must be mapped to PostgreSQL user account for the authenticated identity to be meaningful to PostgreSQL and useful for authorization decisi
    SV-233616r617333_rule CD12-00-011900 CCI-001090 MEDIUM Database contents must be protected from unauthorized and unintended information transfer by enforcement of a data-transfer policy. Applications, including PostgreSQL, must prevent unauthorized and unintended information transfer via shared system resources. Data used for the development and testing of applications often involves copying data from production. It is important that spe
    SV-233617r617333_rule CD12-00-012000 CCI-001090 MEDIUM Access to database files must be limited to relevant processes and to authorized, administrative users. Applications, including PostgreSQL, must prevent unauthorized and unintended information transfer via shared system resources. Permitting only DBMS processes and authorized, administrative users to have access to the files where the database resides helps
    SV-233618r617333_rule CD12-00-012200 CCI-001494 MEDIUM PostgreSQL must protect its audit configuration from unauthorized modification. Protecting audit data also includes identifying and protecting the tools used to view and manipulate log data. Therefore, protecting audit tools is necessary to prevent unauthorized operation on audit data. Applications providing tools to interface with
    SV-233619r617333_rule CD12-00-012300 CCI-000803 HIGH PostgreSQL must use NIST FIPS 140-2 validated cryptographic modules for cryptographic operations. Use of weak or not validated cryptographic algorithms undermines the purposes of utilizing encryption and digital signatures to protect data. Weak algorithms can be easily broken and not validated cryptographic modules may not implement algorithms correct
    SV-233620r617333_rule CD12-00-012500 CCI-000172 MEDIUM Audit records must be generated when categorized information (e.g., classification levels/security levels) is deleted. Changes in categorized information must be tracked. Without an audit trail, unauthorized access to protected data could go undetected. For detailed information on categorizing information, refer to FIPS Publication 199, Standards for Security Categorizat
    SV-233621r617333_rule CD12-00-012600 CCI-000172 MEDIUM PostgreSQL must generate audit records when successful accesses to objects occur. Without tracking all or selected types of access to all or selected objects (tables, views, procedures, functions, etc.), it would be difficult to establish, correlate, and investigate the events relating to an incident, or identify those responsible for
    SV-233622r617333_rule CD12-00-012700 CCI-000172 MEDIUM PostgreSQL must generate audit records for all direct access to the database(s). In this context, direct access is any query, command, or call to the DBMS that comes from any source other than the application(s) that it supports. Examples would be the command line or a database management utility program. The intent is to capture all
    SV-233623r617333_rule CD12-00-012800 CCI-000803 HIGH The DBMS must be configured on a platform that has a NIST certified FIPS 140-2 installation of OpenSSL. Postgres uses OpenSSL for the underlying encryption layer. Currently only Red Hat Enterprise Linux is certified as a FIPS 140-2 distribution of OpenSSL. For other operating systems, users must obtain or build their own FIPS 140-2 OpenSSL libraries.