PostgreSQL 9.x Security Technical Implementation Guide

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: V1R7

Published: 2020-03-23

Updated At: 2020-05-11 21:07:51

Compare/View Releases

Select any two versions of this STIG to compare the individual requirements

Select any old version/release of this STIG to view the previous requirements

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-87493r2_rule PGS9-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. In order 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 po
    SV-87495r3_rule PGS9-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-87497r1_rule PGS9-00-000300 CCI-002605 HIGH 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-87499r2_rule PGS9-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-87501r1_rule PGS9-00-000500 CCI-000015 MEDIUM 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-87503r3_rule PGS9-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-87505r2_rule PGS9-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-87507r1_rule PGS9-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-87509r1_rule PGS9-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 AO approval. In such cases, passwords need to be protec
    SV-87511r2_rule PGS9-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-87513r1_rule PGS9-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-87515r2_rule PGS9-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-87517r1_rule PGS9-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-87519r1_rule PGS9-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-87521r1_rule PGS9-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-87523r1_rule PGS9-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-87525r1_rule PGS9-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-87527r1_rule PGS9-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-87529r1_rule PGS9-00-002100 CCI-001849 MEDIUM PostgreSQL must allocate audit record storage capacity in accordance with organization-defined audit record storage requirements. In order 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 manag
    SV-87535r1_rule PGS9-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-87537r3_rule PGS9-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-87539r2_rule PGS9-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 Coordinated Universal Time (UTC
    SV-87541r2_rule PGS9-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-87543r1_rule PGS9-00-002600 CCI-000171 MEDIUM PostgreSQL must allow only the 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-87545r2_rule PGS9-00-002700 CCI-001858 MEDIUM PostgreSQL must provide an immediate real-time 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-87547r1_rule PGS9-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-87549r2_rule PGS9-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-87551r1_rule PGS9-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-87553r2_rule PGS9-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-87555r1_rule PGS9-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-87557r2_rule PGS9-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-87559r2_rule PGS9-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-87561r2_rule PGS9-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-87563r1_rule PGS9-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-87565r1_rule PGS9-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-87567r2_rule PGS9-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-87569r1_rule PGS9-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-87571r2_rule PGS9-00-004400 CCI-000172 MEDIUM PostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is accessed. 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-87573r1_rule PGS9-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-87575r2_rule PGS9-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-87577r2_rule PGS9-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-87579r1_rule PGS9-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-87581r2_rule PGS9-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-87583r2_rule PGS9-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-87585r2_rule PGS9-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-87591r2_rule PGS9-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-87593r1_rule PGS9-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-87597r2_rule PGS9-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 an SQL environment, deleting permissions
    SV-87599r2_rule PGS9-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-87601r2_rule PGS9-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-87603r2_rule PGS9-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-87605r2_rule PGS9-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-87607r2_rule PGS9-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 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-87609r2_rule PGS9-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 an SQL environment, typ
    SV-87611r2_rule PGS9-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-87613r2_rule PGS9-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-87615r2_rule PGS9-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-87617r2_rule PGS9-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-87621r1_rule PGS9-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-87623r2_rule PGS9-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-87625r2_rule PGS9-00-006700 CCI-000172 MEDIUM PostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is modified. 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-87627r2_rule PGS9-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-87629r2_rule PGS9-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 an SQL environment, adding permissions is
    SV-87631r2_rule PGS9-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 relyin
    SV-87633r2_rule PGS9-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-87635r1_rule PGS9-00-007400 CCI-000169 MEDIUM PostgreSQL must provide audit record generation capability 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-87637r2_rule PGS9-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-87639r2_rule PGS9-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-87641r1_rule PGS9-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-87643r2_rule PGS9-00-008100 CCI-002450 MEDIUM PostgreSQL must use NSA-approved cryptography to protect classified information in accordance with the data owners 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-87645r1_rule PGS9-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 owners 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-87647r2_rule PGS9-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-87649r1_rule PGS9-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-87651r1_rule PGS9-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-87653r2_rule PGS9-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 be sure of capturing 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-87655r1_rule PGS9-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 v
    SV-87657r2_rule PGS9-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. In order to compile an accurate
    SV-87659r2_rule PGS9-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 d
    SV-87661r1_rule PGS9-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 de
    SV-87663r2_rule PGS9-00-009200 CCI-000381 MEDIUM Unused database components which 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
    SV-87665r1_rule PGS9-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-87667r2_rule PGS9-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 AO approval. In such cases, database passwords stored i
    SV-87669r2_rule PGS9-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-87671r2_rule PGS9-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-87675r2_rule PGS9-00-009900 CCI-001855 MEDIUM The system must provide a warning to appropriate support staff when allocated audit record storage volume reaches 75% 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-87677r2_rule PGS9-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-87679r1_rule PGS9-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-87681r2_rule PGS9-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-87683r1_rule PGS9-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 that they have security controls and identity vetting procedures in place which are sufficient for DoD systems to rely on the identity asserted in the certificate. PKIs lacking sufficient secur
    SV-87685r2_rule PGS9-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-87687r1_rule PGS9-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 v
    SV-87689r2_rule PGS9-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-87691r2_rule PGS9-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-87693r2_rule PGS9-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-87695r2_rule PGS9-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-87697r2_rule PGS9-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-87699r2_rule PGS9-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-87701r1_rule PGS9-00-011500 CCI-000764 MEDIUM PostgreSQL must uniquely identify and authenticate organizational users (or processes acting on behalf of organizational users). To assure 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-87703r2_rule PGS9-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-87705r1_rule PGS9-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-87707r1_rule PGS9-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-87709r2_rule PGS9-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
    SV-87711r2_rule PGS9-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-87713r1_rule PGS9-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-87715r1_rule PGS9-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-87717r2_rule PGS9-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-87719r3_rule PGS9-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-87721r2_rule PGS9-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-87723r3_rule PGS9-00-012800 CCI-000803 HIGH The DBMS must be configured on a platform that has a NIST certified FIPS 140-2 installation of OpenSSL. PostgreSQL uses OpenSSL for the underlying encryption layer. It must be installed on an operating system that contains a certified FIPS 140-2 distribution of OpenSSL. For other operating systems, users must obtain or build their own FIPS 140-2 OpenSSL lib
    SV-87775r1_rule PGS9-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. In order to compile an accurate r