Rule version APWS-AT-000240 · STIG v2 · 2026-08-24
In the case of a production web server, areas for content development and testing will not exist, as this type of content is only permissible on a development website.
The process of developing on a functional production website entails a degree of trial and error and repeated testing. This process is often accomplished in an environment where debugging, sequencing, and formatting of content are the main goals. The opportunity for a malicious user to obtain files that reveal business logic and login schemes is high in this situation. The existence of such immature content on a web server represents a significant security risk that is totally avoidable.
The Automation Controller NGINX front-end web server must enforce, either internally or through an external utility, the signing of modules before they are implemented into a production environment. By signing modules, the author guarantees that the module has been reviewed and tested before production implementation.
The Automation Controller does not require any NGINX dynamic expansion modules to function.
As a system administrator for each Automation Controller NGINX web server host:
NGINXMODPATH=$(nginx -V 2>&1 | tr ' ' '\n' | grep modules-path | sed -ne '/modules-path/{s/.*modules-path=\(.*\)/\1/;p}')
nginx -T 2>&1 | grep -q load_module && echo FAILED [ $(ls -1 $NGINXMODPATH 2>/dev/null | wc -l) == 0 ] || echo FAILED
If "FAILED" is displayed, this is a finding.
As a system administrator for each Automation Controller NGINX web server host:
NGINXMODPATH=$(nginx -V 2>&1 | tr ' ' '\n' | grep modules-path | sed -ne '/modules-path/{s/.*modules-path=\(.*\)/\1/;p}') sudo rm -f ${NGINXMODPATH}/*
Identify active config files and remove any load_module lines: nginx -T 2>&1 | grep '# configuration file'
Edit each file and remove lines containing load_module.
Save the file and exit the text editor.
Run the following command to apply the changes: sudo systemctl restart nginx