规则描述:
使用特权用户运行不符合最小授权原则。如果Nginx应用存在安全漏洞(比如XSS、注入漏洞等),恶意代码的执行权限就只是运行Nginx的帐号权限。例如,如果Nginx是以root身份运行的,不巧Nginx应用存在注入漏洞或缓冲溢出漏洞(通常是使用了高危的字符串处理函数,而且对外部输入没有做有效的检查),被攻击者发现了,利用该漏洞注入或植入了恶意代码,并且成功的让CPU执行了这段恶意代码。这个时候恶意代码也是以root身份运行的,可以执行任意操作,包括创建后台用户,导致整个系统被攻击者控制。如果该进程使用非root帐号来运行,即使该进程被攻击,植入了恶意代码,但恶意代码拥有的权限有限,无法对整个系统造成破坏,减少了损失。
根据:
审计描述:
执行如下命令:
#grep -v '^\s*#' $NGINX_HOME/conf/nginx.conf | grep user
输出为空或者user user nginxuser; #nginxuser为非root。
修改建议:
如果启动Nginx进程的用户是root,在Nginx主配置文件nginx.conf使用指令user来指定Nginx执行用户。如果启动进程用户是非root,不需要单独配置也满足该要求。
#运行用户,例如指定nginx运行用户是是www-data.
user www-data;
检测用例信息: