NGINX must be configured to use FIPS-approved algorithms to protect the confidentiality and integrity of transmitted information.
Severity | Group ID | Group Title | Version | Rule ID | Date | STIG Version |
|---|---|---|---|---|---|---|
| medium | V-278405 | SRG-APP-000439 | NGNX-APP-001960 | SV-278405r1171967_rule | 2026-01-07 | 1 |
| Description |
|---|
| 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 |
|---|
| 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 |
|---|
| 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 |