Check: NGNX-APP-001960
F5 NGINX STIG:
NGNX-APP-001960
(in version v1 r1)
Title
NGINX must be configured to use FIPS-approved algorithms to protect the confidentiality and integrity of transmitted information. (Cat II impact)
Discussion
Without protection of the transmitted information, confidentiality and integrity may be compromised since unprotected communications can be intercepted and either read or altered. 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 transmitting data, applications need to leverage transmission protection mechanisms, such as TLS, TLS VPNs, or IPsec. Communication paths outside the physical protection of a controlled boundary are exposed to the possibility of interception and modification. Protecting the confidentiality and integrity of organizational information can be accomplished by physical means (e.g., employing physical distribution systems) or by logical means (e.g., employing cryptographic techniques). If physical means of protection are employed, then logical means (cryptography) do not have to be employed, and vice versa. Satisfies: SRG-APP-000439, SRG-APP-000156, SRG-APP-000219, SRG-APP-000231, SRG-APP-000395, SRG-APP-000440, SRG-APP-000441, SRG-APP-000442, SRG-APP-000514, SRG-APP-000555, SRG-APP-000620
Check Content
Determine the path to NGINX config file(s): nginx -qT | grep "# configuration" # configuration file /etc/nginx/nginx.conf: Note: The default NGINX configuration is "/etc/nginx/nginx.conf", though various files may also be included. Examine the SSL configuration settings: grep -R 'ssl_' /etc/nginx/nginx.conf Verify TLS versions: ssl_protocols TLSv1.2 TLSv1.3; Verify cipher suites: ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_prefer_server_ciphers on; Note: The cipher list can be more restrictive if defined by the organization. If non-FIPS ciphers or weak protocols (e.g., TLSv1.0/1.1, RC4, MD5, 3DES) are present, this is a finding.
Fix Text
Restrict TLS versions to FIPS-approved protocols: ssl_protocols TLSv1.2 TLSv1.3; Configure only FIPS compliant ciphers: ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; Do not allow clients to select the ciphers: ssl_prefer_server_ciphers on; Restart NGINX to apply changes: sudo nginx -t && sudo systemctl reload nginx
Additional Identifiers
Rule ID: SV-278405r1171967_rule
Vulnerability ID: V-278405
Group Title: SRG-APP-000439
Expert Comments
CCIs
| Number | Definition |
|---|---|
| CCI-001184 |
Protect the authenticity of communications sessions. |
| CCI-001199 |
Protects the confidentiality and/or integrity of organization-defined information at rest. |
| CCI-001941 |
Implement replay-resistant authentication mechanisms for access to privileged accounts and/or non-privileged accounts. |
| CCI-001967 |
Authenticate organization-defined devices and/or types of devices before establishing a local, remote, and/or network connection using bidirectional authentication that is cryptographically based. |
| CCI-002418 |
Protect the confidentiality and/or integrity of transmitted information. |
| CCI-002420 |
Maintain the confidentiality and/or integrity of information during preparation for transmission. |
| CCI-002421 |
Implement cryptographic mechanisms to prevent unauthorized disclosure of information and/or detect changes to information during transmission. |
| CCI-002422 |
Maintain the confidentiality and/or integrity of information during reception. |
| CCI-002450 |
Implement organization-defined types of cryptography for each specified cryptography use. |
| CCI-003123 |
Implement organization-defined cryptographic mechanisms to protect the confidentiality of nonlocal maintenance and diagnostic communications. |
Controls
| Number | Title |
|---|---|
| IA-2(8) |
Access to Accounts — Replay Resistant |
| IA-3(1) |
Cryptographic Bidirectional Authentication |
| MA-4(6) |
Cryptographic Protection |
| SC-8 |
Transmission Confidentiality and Integrity |
| SC-8(1) |
Cryptographic Protection |
| SC-8(2) |
Pre- and Post-transmission Handling |
| SC-13 |
Cryptographic Protection |
| SC-23 |
Session Authenticity |
| SC-28 |
Protection of Information at Rest |