--- myst: html_meta: "description lang=en": "Kasm Workspaces hardening Postgres with CIS or STIG benchmarks" "keywords": "Kasm, Server, Configuration, STIGs, Security, CIS, DISA, Workspaces, postgres, hardening" "property=og:locale": "en_US" --- ```{title} Postgres ``` # Postgres Kasm Workspaces uses the official Postgres Docker image, which does not include the optional PG_AUDIT module required to meet many of the STIG requirements. The following table lists which STIGs pass with the default Kasm configuration and which require the optional pg_audit module. There are two options to meet the pg_audit checks. The first option is to use an external database, rather than the containerized version used for Kasm by default. Kasm currently ships with Postgres version 12, however, clients have deployed the Kasm database on Postgres 13 and 14 servers. Kasm will also operate on Postgres compatible solutions such as AWS RDS, AWS Aurora, AWS Aurora Serverless V2, MS Azure Database for Postgres, and similar platforms. See our documentation on using an {doc}`external database`. The second option is to use the Kasm Technologies maintained Postgres container, which includes the PG_AUDIT module. The [open-source project](https://github.com/kasmtech/kasm-db) for this Docker image, contains the instructions needed alter a deployment to use it. After the deployment is running on this database container, you will be able to edit the postgres configuration to meet the remaining STIG requirements. | Finding ID | Status | Severity | Title | Notes | |---|---|---|---|---| | [V-214048](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214048) | Pass | 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. | | | [V-214049](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214049) | pg_audit | Medium | PostgreSQL must produce audit records containing sufficient information to establish the outcome (success or failure) of the events. | | | [V-214050](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214050) | Pass (See Notes) | 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). | On installation and upgrades to Kasm, the latest minor release for the current major version of Postgres used is pulled. | | [V-214051](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214051) | Pass | Medium | The audit information produced by PostgreSQL must be protected from unauthorized modification. | | | [V-214052](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214052) | See Notes | 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. | Kasm does not recommend nor support using another authentication provider for the kasmapp account used for service authentication to the database. The fix text does say that accounts that use authentication methods other than gss, sspi, or ldap should be docuemented with justification. Work with your ISSO to document the use of local authentication for the kasmapp account, used by Kasm micro services for authentication in your systems SSP. | | [V-214053](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214053) | Pass | 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. | | | [V-214054](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214054) | Pass | Medium | Privileges to change PostgreSQL software modules must be limited. | | | [V-214055](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214055) | Pass | Medium | PostgreSQL must limit privileges to change functions and triggers, and links to software external to PostgreSQL. | | | [V-214056](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214056) | Pass | High | If passwords are used for authentication, PostgreSQL must transmit only encrypted representations of passwords. | | | [V-214057](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214057) | Pass | High | PostgreSQL must enforce approved authorizations for logical access to information and system resources in accordance with applicable access control policies. | | | [V-214058](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214058) | N/A (See Notes) | Medium | PostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in transmission. | The Kasm API service and manager service are the only services with access to the database. These services make decisions and enforce access to row level data. These enforcements are based on user group membership. For this reason, security labeling at the database level is not required. Per the check text, this STIG only applies if labeling is required. | | [V-214059](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214059) | Pass | Medium | PostgreSQL must limit the number of concurrent sessions to an organization-defined number per user for all accounts and/or account types. | | | [V-214060](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214060) | | 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. | | | [V-214061](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214061) | Pass (See Notes) | Medium | PostgreSQL must uniquely identify and authenticate non-organizational users (or processes acting on behalf of non-organizational users). | By default, the Kasm Postgres database has only one user, used by the Kasm micro services. If admin access for individual users is required, you will need to define them. | | [V-214062](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214062) | N/A (See Notes) | Medium | PostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in storage. | The Kasm API service and manager service are the only services with access to the database. These services make decisions and enforce access to row level data. These enforcements are based on user group membership. For this reason, security labeling at the database level is not required. Per the check text, this STIG only applies if labeling is required. | | [V-214063](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214063) | N/A (See Notes) | Medium | PostgreSQL must check the validity of all data inputs except those specifically identified by the organization. | Kasm utilizes a Object Relational Mapper (ORM) framework called SQLAlchemy and does not directly call database functions or stored procedures. The use of an ORM library ensures that database input is sanitized and meets validity checks prior to being written to the database. | | [V-214064](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214064) | N/A (See Notes) | Medium | PostgreSQL and associated applications must reserve the use of dynamic code execution for situations that require it. | Kasm utilizes a Object Relational Mapper (ORM) framework called SQLAlchemy and does not directly call database functions or stored procedures. The use of an ORM library ensures that database input is sanitized and meets validity checks prior to being written to the database. | | [V-214065](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214065) | N/A (See Notes) | 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. | Kasm utilizes a Object Relational Mapper (ORM) framework called SQLAlchemy and does not directly call database functions or stored procedures. The use of an ORM library ensures that database input is sanitized and meets validity checks prior to being written to the database. | | [V-214066](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214066) | | Medium | PostgreSQL must allocate audit record storage capacity in accordance with organization-defined audit record storage requirements. | Kasm writes postgres logs to /opt/kasm/current/log/postgres, ensure this location has space required and that logs are forwarded to a centralized logging solution. | | [V-214067](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214067) | | Medium | PostgreSQL must enforce discretionary access control policies, as defined by the data owner, over defined subjects and objects. | | | [V-214068](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214068) | Pass | Medium | The audit information produced by PostgreSQL must be protected from unauthorized deletion. | | | [V-214069](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214069) | Pass | Medium | PostgreSQL must record time stamps, in audit records and application data, that can be mapped to Coordinated Universal Time (UTC, formerly GMT). | | | [V-214070](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214070) | Pass | Medium | PostgreSQL must reveal detailed error messages only to the ISSO, ISSM, SA and DBA. | | | [V-214071](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214071) | | Medium | PostgreSQL must allow only the ISSM (or individuals or roles appointed by the ISSM) to select which auditable events are to be audited. | | | [V-214072](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214072) | | Medium | PostgreSQL must provide an immediate real-time alert to appropriate support staff of all audit log failures. | Kasm writes postgres logs to /opt/kasm/current/log/postgres, ensure this location has space required and that logs are forwarded to a centralized logging solution with proper alerting. | | [V-214073](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214073) | | Medium | PostgreSQL must maintain the confidentiality and integrity of information during reception. | SSL Client certificat authentication is not configured by default. Per the STIG guideance, work with your ISSO to properly document the exception or configure SSL Client cert authentication. | | [V-214074](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214074) | | 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. | | | [V-214075](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214075) | | High | The PostgreSQL software installation account must be restricted to authorized users. | | | [V-214076](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214076) | Pass | Medium | Database software, including PostgreSQL configuration files, must be stored in dedicated directories separate from the host OS and other applications. | | | [V-214077](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214077) | pg_audit | Medium | PostgreSQL must include additional, more detailed, organization-defined information in the audit records for audit events identified by type, location, or subject. | | | [V-214078](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214078) | N/A (See Notes) | Medium | Execution of software modules (to include functions and trigger procedures) with elevated privileges must be restricted to necessary cases only. | Kasm utilizes a Object Relational Mapper (ORM) framework called SQLAlchemy and does not directly call database functions or stored procedures. | | [V-214079](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214079) | Pass | Medium | When invalid inputs are received, PostgreSQL must behave in a predictable and documented manner that reflects organizational and system objectives. | The kasm postgres database is configured to log syntax errors in SQL commands as shown in this findings check text. The Kasm application has exception handling and will log SQL syntax errors in the Kasm application logs as well. | | [V-214080](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214080) | See Notes | Medium | PostgreSQL must utilize centralized management of the content captured in audit records generated by all components of PostgreSQL. | The kasm postgres database is configured to log to file at /opt/kasm/current/log/postgres. There will be a log file for each day. A log forwarder should be installed and confirgured to forward those logs to a centralized logging solution. | | [V-214081](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214081) | | Medium | PostgreSQL must isolate security functions from non-security functions. | | | [V-214082](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214082) | pg_audit | Medium | PostgreSQL must produce audit records of its enforcement of access restrictions associated with changes to the configuration of PostgreSQL or database(s). | | | [V-214083](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214083) | Pass | Medium | The audit information produced by PostgreSQL must be protected from unauthorized read access. | The kasm postgres database is configured to log to file at /opt/kasm/current/log/postgres. Files at this location have 0600 permissions and are owned by the kasm_db (postgres) user. | | [V-214084](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214084) | Pass | Medium | When updates are applied to PostgreSQL software, any software components that have been replaced or made unnecessary must be removed. | Since Kasm uses a containerized database, updates to Postgres replace the entire container, thus no old components are left behind. | | [V-214085](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214085) | pg_audit | Medium | PostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is accessed. | | | [V-214086](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214086) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to access security objects occur. | | | [V-214087](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214087) | See Notes | Medium | PostgreSQL must generate audit records when unsuccessful logons or connection attempts occur. | Edit /opt/kasm/current/conf/database/postgres.sql, change log_disconnections to on and log_connections to on.. Do not alter the current log_line_prefix as the configured format meets multiple STIGs including this one. | | [V-214088](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214088) | See Notes | Medium | PostgreSQL must generate audit records showing starting and ending time for user access to the database(s). | Edit /opt/kasm/current/conf/database/postgres.sql, change log_disconnections to on and log_connections to on.. Do not alter the current log_line_prefix as the configured format meets multiple STIGs including this one. | | [V-214089](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214089) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to modify security objects occur. | | | [V-214090](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214090) | pg_audit | Medium | PostgreSQL must generate audit records when privileges/permissions are added. | | | [V-214091](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214091) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to delete categorized information (e.g., classification levels/security levels) occur. | | | [V-214092](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214092) | See Notes | Medium | PostgreSQL must generate audit records when successful logons or connections occur. | Edit /opt/kasm/current/conf/database/postgres.sql, change log_disconnections to on and log_connections to on.. Do not alter the current log_line_prefix as the configured format meets multiple STIGs including this one. | | [V-214093](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214093) | pg_audit | Medium | PostgreSQL must generate audit records when security objects are deleted. | | | [V-214094](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214094) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to retrieve privileges/permissions occur. | | | [V-214095](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214095) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to delete privileges/permissions occur. | | | [V-214096](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214096) | pg_audit | Medium | PostgreSQL must be able to generate audit records when privileges/permissions are retrieved. | | | [V-214097](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214097) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to modify categorized information (e.g., classification levels/security levels) occur. | | | [V-214098](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214098) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful accesses to objects occur. | | | [V-214099](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214099) | pg_audit | Medium | PostgreSQL must generate audit records for all privileged activities or other system-level access. | | | [V-214100](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214100) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to access categorized information (e.g., classification levels/security levels) occur. | | | [V-214101](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214101) | pg_audit | Medium | PostgreSQL must be able to generate audit records when security objects are accessed. | | | [V-214102](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214102) | pg_audit | Medium | PostgreSQL must generate audit records when privileges/permissions are deleted. | | | [V-214103](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214103) | See Notes | Medium | PostgreSQL must generate audit records when concurrent logons/connections by the same user from different workstations occur. | Edit /opt/kasm/current/conf/database/postgres.sql, change log_disconnections to on and log_connections to on.. Do not alter the current log_line_prefix as the configured format meets multiple STIGs including this one. | | [V-214104](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214104) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to delete security objects occur. | | | [V-214105](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214105) | pg_audit | Medium | PostgreSQL must generate audit records when privileges/permissions are modified. | | | [V-214106](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214106) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to execute privileged activities or other system-level access occur. | | | [V-214107](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214107) | pg_audit | Medium | PostgreSQL must generate audit records when security objects are modified. | | | [V-214108](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214108) | pg_audit | Medium | PostgreSQL must generate audit records when categorized information (e.g., classification levels/security levels) is modified. | | | [V-214109](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214109) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to modify privileges/permissions occur. | | | [V-214110](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214110) | pg_audit | Medium | PostgreSQL must generate audit records when unsuccessful attempts to add privileges/permissions occur. | | | [V-214111](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214111) | N/A | Medium | PostgreSQL, when utilizing PKI-based authentication, must validate certificates by performing RFC 5280-compliant certification path validation. | | | [V-214112](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214112) | Pass | Medium | PostgreSQL must produce audit records containing sufficient information to establish where the events occurred. | | | [V-214113](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214113) | Pass | Medium | PostgreSQL must maintain the confidentiality and integrity of information during preparation for transmission. | | | [V-214114](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214114) | pg_audit | Medium | PostgreSQL must provide audit record generation capability for DoD-defined auditable events within all DBMS/database components. | | | [V-214115](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214115) | Pass | Medium | PostgreSQL must generate time stamps, for audit records and application data, with a minimum granularity of one second. | | | [V-214116](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214116) | Pass | Medium | PostgreSQL must produce audit records containing sufficient information to establish the identity of any user/subject or process associated with the event. | | | [V-214117](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214117) | See Notes | High | PostgreSQL must implement NIST FIPS 140-2 or 140-3 validated cryptographic modules to generate and validate cryptographic hashes. | This is a system level setting, ensure FIPS mode is enabled on the OS. | | [V-214119](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214119) | See Notes | High | PostgreSQL must implement NIST FIPS 140-2 or 140-3 validated cryptographic modules to protect unclassified information requiring confidentiality and cryptographic protection, in accordance with the data owners requirements. | This is a system level setting, ensure FIPS mode is enabled on the OS. | | [V-214120](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214120) | Pass (See Notes) | High | PostgreSQL must protect the confidentiality and integrity of all information at rest. | Kasm encrypts sensitive fields at the application layer. Since the STIG guidance seems to provide leeway in the implementation, we believe our native encryption of sensitive data meets the requirement, however, your system owner may desire full disk encryption.. If the system owner wants full database encryption, you will need to use an externally managed Postgres database, such as AWS RDS, Azure Database Postgres, or a traditional Postgres database server. | | [V-214121](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214121) | | Medium | PostgreSQL must prohibit user installation of logic modules (functions, trigger procedures, views, etc.) without explicit privileged status. | | | [V-214122](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214122) | | Medium | PostgreSQL must separate user functionality (including user interface services) from database management functionality. | | | [V-214123](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214123) | pg_audit | Medium | PostgreSQL must initiate session auditing upon startup. | | | [V-214124](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214124) | See Notes | 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. | Read the finding details to see if this check applies to your system or not. Then read the notes column of this table for V-214120. | | [V-214125](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214125) | Pass | Medium | PostgreSQL must produce audit records containing sufficient information to establish the sources (origins) of the events. | | | [V-214126](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214126) | Pass | Medium | Unused database components, PostgreSQL software, and database objects must be removed. | Kasm uses a containerized postgres database, no additional software is included in the image. | | [V-214127](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214127) | Pass | Medium | Access to external executables must be disabled or restricted. | | | [V-214128](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214128) | Pass | Medium | Unused database components which are integrated in PostgreSQL and cannot be uninstalled must be disabled. | Kasm uses a containerized postgres database, no additional software is included in the image. | | [V-214129](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214129) | N/A (See Notes) | Medium | PostgreSQL must associate organization-defined types of security labels having organization-defined security label values with information in process. | The Kasm API service and manager service are the only services with access to the database. These services make decisions and enforce access to row level data. These enforcements are based on user group membership. For this reason, security labeling at the database level is not required. Per the check text, this STIG only applies if labeling is required. | | [V-214130](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214130) | Pass | High | If passwords are used for authentication, PostgreSQL must store only hashed, salted representations of passwords. | | | [V-214131](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214131) | | Medium | PostgreSQL must enforce access restrictions associated with changes to the configuration of PostgreSQL or database(s). | | | [V-214132](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214132) | pg_audit | Medium | PostgreSQL must protect against a user falsely repudiating having performed organization-defined actions. | | | [V-214133](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214133) | See Notes | 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. | This is a system level control or a control that applies to your centalized logging solution. | | [V-214135](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214135) | | Medium | PostgreSQL must require users to reauthenticate when organization-defined circumstances or situations require reauthentication. | The STIG does not seem to provide a Fix Text with implementation. | | [V-214136](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214136) | See Notes | High | PostgreSQL must enforce authorized access to all PKI private keys stored/utilized by PostgreSQL. | The postgres database will show /etc/ssl/certs/db_server.crt and /etc/ssl/certs/db_server.key for the cert file and key file respectively. These are mapped into the container and stored on the host at /opt/kasm/current/certs/. If your organization requires storing these files on a FIPS 140-2 or 140-3 cryptographic module, you will need to move these files to the location on the file system that the device is mounted to. After moving the files, you will need to stop the Kasm services by running 'sudo /opt/kasm/bin/stop', then edit /opt/kasm/current/docker/docker-compose.yaml and changing the volume mappings in the kasm_db service, for the two files. Then start the Kasm services backup, '/opt/kasm/bin/start'. This needs to be done only on the database server. | | [V-214137](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214137) | See Notes | 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. | To swap the Kasm generated certs with DoD approved certificates, stop the Kasm services by running 'sudo /opt/kasm/bin/stop', then rename the /opt/kasm/current/certs/db_server.crt and /opt/kasm/current/certs/db_server.key files and place your cert and key file at this loction using teh db_server.crt and .key filenames. Start the kasm services back up using 'sudo /opt/kasm/bin/start' | | [V-214138](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214138) | pg_audit | Medium | PostgreSQL must produce audit records containing sufficient information to establish what type of events occurred. | | | [V-214139](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214139) | | Medium | PostgreSQL must implement cryptographic mechanisms preventing the unauthorized disclosure of organization-defined information at rest on organization-defined information system components. | Read the finding details to see if this check applies to your system or not. Then read the notes column of this table for V-214120. | | [V-214140](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214140) | See Notes | Medium | PostgreSQL must invalidate session identifiers upon user logout or other session termination. | Edit /opt/kasm/current/conf/database/postgres.sql per the STIG Fix Text. Restart the kasm database, 'sudo docker restart kasm_db' | | [V-214141](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214141) | pg_audit | Medium | PostgreSQL must protect its audit features from unauthorized access. | | | [V-214142](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214142) | pg_audit | Medium | PostgreSQL must produce audit records containing time stamps to establish when the events occurred. | | | [V-214143](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214143) | pg_audit | Medium | PostgreSQL must protect its audit features from unauthorized removal. | | | [V-214144](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214144) | See Notes | 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. | The kasm postgres database is configured to log to file at /opt/kasm/current/log/postgres. There will be a log file for each day. A log forwarder should be installed and confirgured to forward those logs to a centralized logging solution. | | [V-214145](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214145) | Pass | Medium | PostgreSQL must maintain the authenticity of communications sessions by guarding against man-in-the-middle attacks that guess at Session ID values. | | | [V-214146](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214146) | See Notes | Medium | PostgreSQL must uniquely identify and authenticate organizational users (or processes acting on behalf of organizational users). | End users never access the Kasm database. The kasm application layer implements its own authentication and authorization check for all data access. | | [V-214147](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214147) | | Medium | PostgreSQL must automatically terminate a user session after organization-defined conditions or trigger events requiring session disconnect. | | | [V-214148](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214148) | See Notes | High | PostgreSQL must prevent non-privileged users from executing privileged functions, to include disabling, circumventing, or altering implemented security safeguards/countermeasures. | Kasm utilizes a Object Relational Mapper (ORM) framework called SQLAlchemy and does not directly call database functions or stored procedures. The use of an ORM library ensures that database input is sanitized and meets validity checks prior to being written to the database. End users do not have access to the database. The Kasm application layer enforces authentication and authorization for data retrieved from the database on behalf of the user. | | [V-214149](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214149) | See Notes | Medium | PostgreSQL must map the PKI-authenticated identity to an associated user account. | Kasm utilizes a Object Relational Mapper (ORM) framework called SQLAlchemy and does not directly call database functions or stored procedures. The use of an ORM library ensures that database input is sanitized and meets validity checks prior to being written to the database. End users do not have access to the database. The Kasm application layer enforces authentication and authorization for data retrieved from the database on behalf of the user. Kasm applicaiton logs cotain all requests by users with the data required for application logging, including username, timestamp, requested data, result of request, and more. | | [V-214150](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214150) | | Medium | Database contents must be protected from unauthorized and unintended information transfer by enforcement of a data-transfer policy. | | | [V-214151](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214151) | Pass | Medium | Access to database files must be limited to relevant processes and to authorized, administrative users. | | | [V-214152](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214152) | Pass | Medium | PostgreSQL must protect its audit configuration from unauthorized modification. | | | [V-214153](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214153) | See Notes | High | PostgreSQL must use NIST FIPS 140-2 or 140-3 validated cryptographic modules for cryptographic operations. | This is a system level setting, ensure FIPS mode is enabled on the OS. | | [V-214154](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214154) | pg_audit | Medium | Audit records must be generated when categorized information (e.g., classification levels/security levels) is deleted. | | | [V-214155](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214155) | pg_audit | Medium | PostgreSQL must generate audit records when successful accesses to objects occur. | | | [V-214156](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214156) | pg_audit | Medium | PostgreSQL must generate audit records for all direct access to the database(s). | | | [V-214157](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-214157) | See Notes | High | The DBMS must be configured on a platform that has a NIST certified FIPS 140-2 or 140-3 installation of OpenSSL. | This is a system level setting, ensure FIPS mode is enabled on the OS. Kasm recommends using Ubuntu 20.04LTS Advantage. | | [V-220321](https://www.stigviewer.com/stig/postgresql_9.x/2022-06-13/finding/V-220321) | Pass | Medium | PostgreSQL must use NSA-approved cryptography to protect classified information in accordance with the data owners requirements. | This passes with default Kasm configs according to the STIG check, however, the underlying system really should have FIPS mode is enabled. |