STIGQter STIGQter: STIG Summary: PostgreSQL 9.x Security Technical Implementation Guide

Version: 1

Release: 6 Benchmark Date: 25 Oct 2019

CheckedNameTitle
SV-87493r2_rulePostgreSQL 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.
SV-87495r3_rulePostgreSQL must produce audit records containing sufficient information to establish the outcome (success or failure) of the events.
SV-87497r1_ruleSecurity-relevant software updates to PostgreSQL must be installed within the time period directed by an authoritative source (e.g., IAVM, CTOs, DTMs, and STIGs).
SV-87499r2_ruleThe audit information produced by PostgreSQL must be protected from unauthorized modification.
SV-87501r1_rulePostgreSQL must integrate with an organization-level authentication/access mechanism providing account management and automation for all users, groups, roles, and any other principals.
SV-87503r3_rulePostgreSQL must provide non-privileged users with error messages that provide information necessary for corrective actions without revealing information that could be exploited by adversaries.
SV-87505r2_rulePrivileges to change PostgreSQL software modules must be limited.
SV-87507r1_rulePostgreSQL must limit privileges to change functions and triggers, and links to software external to PostgreSQL.
SV-87509r1_ruleIf passwords are used for authentication, PostgreSQL must transmit only encrypted representations of passwords.
SV-87511r2_rulePostgreSQL must enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies.
SV-87513r1_rulePostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in transmission.
SV-87515r2_rulePostgreSQL must limit the number of concurrent sessions to an organization-defined number per user for all accounts and/or account types.
SV-87517r1_ruleThe 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.
SV-87519r1_rulePostgreSQL must uniquely identify and authenticate non-organizational users (or processes acting on behalf of non-organizational users).
SV-87521r1_rulePostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in storage.
SV-87523r1_rulePostgreSQL must check the validity of all data inputs except those specifically identified by the organization.
SV-87525r1_rulePostgreSQL and associated applications must reserve the use of dynamic code execution for situations that require it.
SV-87527r1_rulePostgreSQL and associated applications, when making use of dynamic code execution, must scan input data for invalid values that may indicate a code injection attack.
SV-87529r1_rulePostgreSQL must allocate audit record storage capacity in accordance with organization-defined audit record storage requirements.
SV-87535r1_rulePostgreSQL must enforce discretionary access control policies, as defined by the data owner, over defined subjects and objects.
SV-87537r3_ruleThe audit information produced by PostgreSQL must be protected from unauthorized deletion.
SV-87539r2_rulePostgreSQL must record time stamps, in audit records and application data, that can be mapped to Coordinated Universal Time (UTC, formerly GMT).
SV-87541r2_rulePostgreSQL must reveal detailed error messages only to the ISSO, ISSM, SA and DBA.
SV-87543r1_rulePostgreSQL must allow only the ISSM (or individuals or roles appointed by the ISSM) to select which auditable events are to be audited.
SV-87545r1_rulePostgreSQL must provide an immediate real-time alert to appropriate support staff of all audit failure events requiring real-time alerts.
SV-87547r1_rulePostgreSQL must maintain the confidentiality and integrity of information during reception.
SV-87549r2_ruleDatabase 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.
SV-87551r1_ruleThe PostgreSQL software installation account must be restricted to authorized users.
SV-87553r2_ruleDatabase software, including PostgreSQL configuration files, must be stored in dedicated directories separate from the host OS and other applications.
SV-87555r1_rulePostgreSQL must include additional, more detailed, organization-defined information in the audit records for audit events identified by type, location, or subject.
SV-87557r2_ruleExecution of software modules (to include functions and trigger procedures) with elevated privileges must be restricted to necessary cases only.
SV-87559r2_ruleWhen invalid inputs are received, PostgreSQL must behave in a predictable and documented manner that reflects organizational and system objectives.
SV-87561r2_rulePostgreSQL must utilize centralized management of the content captured in audit records generated by all components of PostgreSQL.
SV-87563r1_rulePostgreSQL must isolate security functions from non-security functions.
SV-87565r1_rulePostgreSQL must produce audit records of its enforcement of access restrictions associated with changes to the configuration of PostgreSQL or database(s).
SV-87567r2_ruleThe audit information produced by PostgreSQL must be protected from unauthorized read access.
SV-87569r1_ruleWhen updates are applied to PostgreSQL software, any software components that have been replaced or made unnecessary must be removed.
SV-87571r2_rulePostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is accessed.
SV-87573r1_rulePostgreSQL must generate audit records when unsuccessful attempts to access security objects occur.
SV-87575r2_rulePostgreSQL must generate audit records when unsuccessful logons or connection attempts occur.
SV-87577r2_rulePostgreSQL must generate audit records showing starting and ending time for user access to the database(s).
SV-87579r1_rulePostgreSQL must generate audit records when unsuccessful attempts to modify security objects occur.
SV-87581r2_rulePostgreSQL must generate audit records when privileges/permissions are added.
SV-87583r2_rulePostgreSQL must generate audit records when unsuccessful attempts to delete categorized information (e.g., classification levels/security levels) occur.
SV-87585r2_rulePostgreSQL must generate audit records when successful logons or connections occur.
SV-87591r2_rulePostgreSQL must generate audit records when security objects are deleted.
SV-87593r1_rulePostgreSQL must generate audit records when unsuccessful attempts to retrieve privileges/permissions occur.
SV-87597r2_rulePostgreSQL must generate audit records when unsuccessful attempts to delete privileges/permissions occur.
SV-87599r2_rulePostgreSQL must be able to generate audit records when privileges/permissions are retrieved.
SV-87601r2_rulePostgreSQL must generate audit records when unsuccessful attempts to modify categorized information (e.g., classification levels/security levels) occur.
SV-87603r2_rulePostgreSQL must generate audit records when unsuccessful accesses to objects occur.
SV-87605r2_rulePostgreSQL must generate audit records for all privileged activities or other system-level access.
SV-87607r2_rulePostgreSQL must generate audit records when unsuccessful attempts to access categorized information (e.g., classification levels/security levels) occur.
SV-87609r2_rulePostgreSQL must be able to generate audit records when security objects are accessed.
SV-87611r2_rulePostgreSQL must generate audit records when privileges/permissions are deleted.
SV-87613r2_rulePostgreSQL must generate audit records when concurrent logons/connections by the same user from different workstations occur.
SV-87615r2_rulePostgreSQL must generate audit records when unsuccessful attempts to delete security objects occur.
SV-87617r2_rulePostgreSQL must generate audit records when privileges/permissions are modified.
SV-87621r1_rulePostgreSQL must generate audit records when unsuccessful attempts to execute privileged activities or other system-level access occur.
SV-87623r2_rulePostgreSQL must generate audit records when security objects are modified.
SV-87625r2_rulePostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is modified.
SV-87627r2_rulePostgreSQL must generate audit records when unsuccessful attempts to modify privileges/permissions occur.
SV-87629r2_rulePostgreSQL must generate audit records when unsuccessful attempts to add privileges/permissions occur.
SV-87631r2_rulePostgreSQL, when utilizing PKI-based authentication, must validate certificates by performing RFC 5280-compliant certification path validation.
SV-87633r2_rulePostgreSQL must maintain the confidentiality and integrity of information during preparation for transmission.
SV-87635r1_rulePostgreSQL must provide audit record generation capability for DoD-defined auditable events within all DBMS/database components.
SV-87637r2_rulePostgreSQL must generate time stamps, for audit records and application data, with a minimum granularity of one second.
SV-87639r2_rulePostgreSQL must produce audit records containing sufficient information to establish the identity of any user/subject or process associated with the event.
SV-87641r1_rulePostgreSQL must implement NIST FIPS 140-2 validated cryptographic modules to generate and validate cryptographic hashes.
SV-87643r2_rulePostgreSQL must use NSA-approved cryptography to protect classified information in accordance with the data owners requirements.
SV-87645r1_rulePostgreSQL 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.
SV-87647r2_rulePostgreSQL must protect the confidentiality and integrity of all information at rest.
SV-87649r1_rulePostgreSQL must prohibit user installation of logic modules (functions, trigger procedures, views, etc.) without explicit privileged status.
SV-87651r1_rulePostgreSQL must separate user functionality (including user interface services) from database management functionality.
SV-87653r2_rulePostgreSQL must initiate session auditing upon startup.
SV-87655r1_rulePostgreSQL 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.
SV-87657r2_rulePostgreSQL must produce audit records containing sufficient information to establish the sources (origins) of the events.
SV-87659r2_ruleUnused database components, PostgreSQL software, and database objects must be removed.
SV-87661r1_ruleAccess to external executables must be disabled or restricted.
SV-87663r2_ruleUnused database components which are integrated in PostgreSQL and cannot be uninstalled must be disabled.
SV-87665r1_rulePostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in process.
SV-87667r2_ruleIf passwords are used for authentication, PostgreSQL must store only hashed, salted representations of passwords.
SV-87669r2_rulePostgreSQL must enforce access restrictions associated with changes to the configuration of PostgreSQL or database(s).
SV-87671r2_rulePostgreSQL must protect against a user falsely repudiating having performed organization-defined actions.
SV-87675r2_ruleThe system must provide a warning to appropriate support staff when allocated audit record storage volume reaches 75% of maximum audit record storage capacity.
SV-87677r2_rulePostgreSQL 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.
SV-87679r1_rulePostgreSQL must require users to reauthenticate when organization-defined circumstances or situations require reauthentication.
SV-87681r2_rulePostgreSQL must enforce authorized access to all PKI private keys stored/utilized by PostgreSQL.
SV-87683r1_rulePostgreSQL must only accept end entity certificates issued by DoD PKI or DoD-approved PKI Certification Authorities (CAs) for the establishment of all encrypted sessions.
SV-87685r2_rulePostgreSQL must produce audit records containing sufficient information to establish what type of events occurred.
SV-87687r1_rulePostgreSQL must implement cryptographic mechanisms preventing the unauthorized disclosure of organization-defined information at rest on organization-defined information system components.
SV-87689r2_rulePostgreSQL must invalidate session identifiers upon user logout or other session termination.
SV-87691r2_rulePostgreSQL must protect its audit features from unauthorized access.
SV-87693r2_rulePostgreSQL must produce audit records containing time stamps to establish when the events occurred.
SV-87695r2_rulePostgreSQL must protect its audit features from unauthorized removal.
SV-87697r2_rulePostgreSQL 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.
SV-87699r2_rulePostgreSQL must maintain the authenticity of communications sessions by guarding against man-in-the-middle attacks that guess at Session ID values.
SV-87701r1_rulePostgreSQL must uniquely identify and authenticate organizational users (or processes acting on behalf of organizational users).
SV-87703r2_rulePostgreSQL must automatically terminate a user session after organization-defined conditions or trigger events requiring session disconnect.
SV-87705r1_rulePostgreSQL must prevent non-privileged users from executing privileged functions, to include disabling, circumventing, or altering implemented security safeguards/countermeasures.
SV-87707r1_rulePostgreSQL must map the PKI-authenticated identity to an associated user account.
SV-87709r2_ruleDatabase contents must be protected from unauthorized and unintended information transfer by enforcement of a data-transfer policy.
SV-87711r2_ruleAccess to database files must be limited to relevant processes and to authorized, administrative users.
SV-87713r1_rulePostgreSQL must protect its audit configuration from unauthorized modification.
SV-87715r1_rulePostgreSQL must use NIST FIPS 140-2 validated cryptographic modules for cryptographic operations.
SV-87717r2_ruleAudit records must be generated when categorized information (e.g., classification levels/security levels) is deleted.
SV-87719r3_rulePostgreSQL must generate audit records when successful accesses to objects occur.
SV-87721r2_rulePostgreSQL must generate audit records for all direct access to the database(s).
SV-87723r3_ruleThe DBMS must be configured on a platform that has a NIST certified FIPS 140-2 installation of OpenSSL.
SV-87775r1_rulePostgreSQL must produce audit records containing sufficient information to establish where the events occurred.