SV-278390r1172747_rule
V-278390
SRG-APP-000157
NGNX-APP-000590
CAT II
10
Implement a replay-resistant authentication method for any NGINX Plus resource that allows network access.
Option A: JWT with expiration:
Configure NGINX to use JWT authentication:
auth_jwt "Protected";
auth_jwt_key_file /etc/nginx/keys/jwt_key.pub;
auth_jwt_require exp iat;
Ensure the token issuer includes a short-lived exp (e.g., less than five minutes) and iat claims.
Option B: Mutual TLS:
Enable client certificate authentication:
ssl_verify_client on;
ssl_client_certificate /etc/nginx/certs/client_ca.pem;
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.
Identify authentication mechanism in use by checking whether NGINX is configured to protect access to administrative interfaces or APIs:
grep -Ri 'auth_' /etc/nginx/nginx.conf
grep -Ri 'proxy_pass' /etc/nginx/nginx.conf
grep -Ri 'ssl_verify_client' /etc/nginx/nginx.conf
Also inspect references to:
auth_jwt
auth_request
ssl_client_certificate
If JWT is in use, validate the config:
auth_jwt_key_file /etc/nginx/jwt.pub;
auth_jwt_require exp iat;
Ensure the token includes expiration (exp) and ideally issued-at (iat) fields.
If using mutual TLS:
ssl_verify_client on;
ssl_client_certificate /etc/nginx/certs/ca.pem;
Ensure client-side certificate verification is required and the certificate authority (CA) trust is defined.
If using auth_request:
Ensure the upstream authentication server is enforcing replay resistance (such as nonce or short-lived tokens). Validate token behavior and session timeout logic.
If no replay-resistant mechanism is found for network-based access, this is a finding.
V-278390
False
NGNX-APP-000590
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.
Identify authentication mechanism in use by checking whether NGINX is configured to protect access to administrative interfaces or APIs:
grep -Ri 'auth_' /etc/nginx/nginx.conf
grep -Ri 'proxy_pass' /etc/nginx/nginx.conf
grep -Ri 'ssl_verify_client' /etc/nginx/nginx.conf
Also inspect references to:
auth_jwt
auth_request
ssl_client_certificate
If JWT is in use, validate the config:
auth_jwt_key_file /etc/nginx/jwt.pub;
auth_jwt_require exp iat;
Ensure the token includes expiration (exp) and ideally issued-at (iat) fields.
If using mutual TLS:
ssl_verify_client on;
ssl_client_certificate /etc/nginx/certs/ca.pem;
Ensure client-side certificate verification is required and the certificate authority (CA) trust is defined.
If using auth_request:
Ensure the upstream authentication server is enforcing replay resistance (such as nonce or short-lived tokens). Validate token behavior and session timeout logic.
If no replay-resistant mechanism is found for network-based access, this is a finding.
M
5720