V-72895
Severity: Medium
Generated
2019-05-20 15:48:11.984914
Status
PostgreSQL must maintain the confidentiality and integrity of information during reception.
NIST 800-53
STIG # | Description | Result |
---|---|---|
SC-8 | SC-8: Transmission Confidentiality And Integrity | failed |
Guidance
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 compromise the confidentiality or integrity of the information. This requirement applies only to those applications that are either distributed or can allow access to data nonlocally. Use of this requirement will be limited to situations where the data owner has a strict requirement for ensuring data integrity and confidentiality is maintained at every step of the data transfer and handling process. When receiving data, PostgreSQL, associated applications, and infrastructure must leverage protection mechanisms. PostgreSQL uses OpenSSL SSLv23_method() in fe-secure-openssl.c; while the name is misleading, this function enables only TLS encryption methods, not SSL. See OpenSSL: https://mta.openssl.org/pipermail/openssl-dev/2015-May/001449.htm.
Check
If the data owner does not have a strict requirement for ensuring data integrity and confidentiality is maintained at every step of the data transfer and handling process, this is not a finding.
As the database administrator (shown here as “postgres”), verify SSL is enabled in postgresql.conf by:
First, open the postgresql.conf file and ensure the ssl paramater is set to on:
$ vi
is set and not commented out with a ‘#’.
Second, run the following SQL:
$ sudo su - postgres $ psql -c “SHOW ssl”
If SSL is off, this is a finding.
If PostgreSQL, associated applications, and infrastructure do not employ protective measures against unauthorized disclosure and modification during reception, this is a finding.
Fix
Implement protective measures against unauthorized disclosure and modification during reception. To configure PostgreSQL to use SSL, see supplementary content APPENDIX-G for instructions on enabling SSL.
Test Results
Result | |
---|---|
PostgreSQL query: SHOW ssl; output should not match /off|false/i | failed |
Code
control "V-72895" do
title "PostgreSQL must maintain the confidentiality and integrity of
information during reception."
desc "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 compromise the confidentiality or
integrity of the information.
This requirement applies only to those applications that are either
distributed or can allow access to data nonlocally. Use of this requirement
will be limited to situations where the data owner has a strict requirement
for ensuring data integrity and confidentiality is maintained at every step of
the data transfer and handling process.
When receiving data, PostgreSQL, associated applications, and infrastructure
must leverage protection mechanisms.
PostgreSQL uses OpenSSL SSLv23_method() in fe-secure-openssl.c; while the name
is misleading, this function enables only TLS encryption methods, not SSL.
See OpenSSL: https://mta.openssl.org/pipermail/openssl-dev/2015-May/001449.htm."
impact 0.5
tag "severity": "medium"
tag "gtitle": "SRG-APP-000442-DB-000379"
tag "gid": "V-72895"
tag "rid": "SV-87547r1_rule"
tag "stig_id": "PGS9-00-003000"
tag "cci": "CCI-002422"
tag "nist": ["SC-8 (2)", "Rev_4"]
tag "check": "If the data owner does not have a strict requirement for
ensuring data integrity and confidentiality is maintained at every step of the
data transfer and handling process, this is not a finding.
As the database administrator (shown here as \"postgres\"), verify SSL is
enabled in postgresql.conf by:
First, open the postgresql.conf file and ensure the ssl paramater is set to on:
$ vi <pg_conf_dir>/postgresql.conf
$ ssl = 'on'
is set and not commented out with a '#'.
Second, run the following SQL:
$ sudo su - postgres
$ psql -c \"SHOW ssl\"
If SSL is off, this is a finding.
If PostgreSQL, associated applications, and infrastructure do not employ
protective measures against unauthorized disclosure and modification during
reception, this is a finding."
tag "fix": "Implement protective measures against unauthorized disclosure and
modification during reception.
To configure PostgreSQL to use SSL, see supplementary content APPENDIX-G for
instructions on enabling SSL."
sql = postgres_session(PG_DBA, PG_DBA_PASSWORD, PG_HOST)
describe sql.query('SHOW ssl;', [PG_DB]) do
its('output') { should_not match /off|false/i }
end
end