文章目录

等保检测风险处理方案1. Apache HTTP Server "httpOnly" Cookie信息泄露漏洞(CVE-2012-0053))2. 检测到目标web应用表单存在口令猜测攻击3. X-Content-Type-Options响应头缺失4. X-XSS-Protection响应头缺失5. Content-Security-Policy响应头缺失6. Referrer-Policy响应头缺失7. X-Permitted-Cross-Domain-Policies响应头缺失8. X-Download-Options响应头缺失9. X-Frame-Options未配置10. Strict-Transport-Security响应头缺失11. 会话cookie中缺少HttpOnly属性12. 服务器版本信息泄露13. 备份文件或敏感目录泄露

等保检测风险处理方案

该方案仅针对 PHP 相关业务,其他服务端语言未实践,可作为参考。关于请求头漏洞风险相关的配置,都写在 index.php 入口文件中(由于写在 nginx 配置文件中无作用),后续有新增漏洞风险会持续补充。请求头相关配置如下(目录1-11)header("X-Content-Type-Options: nosniff");

header("X-XSS-Protection: 1");

header("Content-Security-Policy: script-src '*', unsafe-inline, unsafe-eval");

header("Referrer-Policy: origin");

header("X-Permitted-Cross-Domain-Policies: none");

header("X-Download-Options: noopen");

header("X-Frame-Options: SAMEORIGIN");

header("Strict-Transport-Security: max-age=15552000");

header("Set-Cookie: Path=/, HttpOnly, Secure");

1. Apache HTTP Server “httpOnly” Cookie信息泄露漏洞(CVE-2012-0053))

风险等级:中危漏洞建议:目前厂商已发布升级补丁以修复漏洞,详情请关注厂商主页:http://svn.apache.org/viewvc?view=revision&revision=1235454处理方案:升级apache/卸载apache说 明:升级服务器上安装的apache版本到最新版本后,依然有此问题,怀疑检测机制有问题,直接卸载了apache(未用到该服务),对方依然表示能检测到该问题,无解,遂告知他们已卸载,协商后,检测机构通过了该风险检测。

2. 检测到目标web应用表单存在口令猜测攻击

风险等级:低危漏洞建议:在登录界面添加验证码防止口令猜测,或添加ip锁定处理方案:登录页面新增图形验证码或其他验证码验证方式(目的是增加密码猜测复杂度)说 明:无

3. X-Content-Type-Options响应头缺失

风险等级:低危漏洞建议:将您的服务器配置为在所有传出请求上发送值为“nosniff”的“X-Content-Type-Options”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html\r\n处理方案:header(“X-Content-Type-Options: nosniff”);说 明:无

4. X-XSS-Protection响应头缺失

风险等级:低危漏洞建议:将您的服务器配置为在所有传出请求上发送值为“1”(例如已启用)的“X-XSS-Protection”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html\r\n处理方案:header(“X-XSS-Protection: 1”);说 明:无

5. Content-Security-Policy响应头缺失

风险等级:低危漏洞建议:将您的服务器配置为发送“Content-Security-Policy”头。对于 Apache,请参阅: http://httpd.apache.org/docs/2.2/mod/mod_headers.html 对于 IIS,请参阅: https://technet.microsoft.com/pl-pl/library/cc753133%28v=ws.10%29.aspx 对于 nginx,请参阅: http://nginx.org/en/docs/http/ngx_http_headers_module.html\r\n处理方案:header(“Content-Security-Policy: script-src ‘*’, unsafe-inline, unsafe-eval”);说 明:无

6. Referrer-Policy响应头缺失

风险等级:低危漏洞建议:1)修改服务端程序,给 HTTP 响应头加上 Referrer-Policy 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“Referrer-Policy”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“Referrer-Policy: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “Referrer-Policy”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“Referrer-Policy”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“Referrer-Policy”] = “value”; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Referrer-Policy 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Referrer-Policy value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Referrer-Policy “value”。\r\n处理方案:header(“Referrer-Policy: origin”);说明:无

7. X-Permitted-Cross-Domain-Policies响应头缺失

风险等级:低危漏洞建议:1)修改服务端程序,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“X-Permitted-Cross-Domain-Policies”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“X-Permitted-Cross-Domain-Policies: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “X-Permitted-Cross-Domain-Policies”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“X-Permitted-Cross-Domain-Policies”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“X-Permitted-Cross-Domain-Policies”] = “value”; 2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Permitted-Cross-Domain-Policies value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Permitted-Cross-Domain-Policies “value”。\r\n处理方案:header(“X-Permitted-Cross-Domain-Policies: none”);说 明:无

8. X-Download-Options响应头缺失

风险等级:低危漏洞建议:1)修改服务端程序,给 HTTP 响应头加上 X-Download-Options 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(““X-Download-Options””, ““value””) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(““X-Download-Options: value””) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader ““X-Download-Options””, ““value”” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[““X-Download-Options””] = ““value”” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[““X-Download-Options””] = ““value””;\n2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Download-Options 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Download-Options value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Download-Options ““value””。处理方案:header(“X-Download-Options: noopen”);说 明:无

9. X-Frame-Options未配置

风险等级:低危漏洞建议:" 修改web服务器配置,添加X-Frame-Options响应头。赋值有如下三种:\n1、DENY:不能被嵌入到任何iframe或者frame中。\n2、SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。\n3、ALLOW-FROM uri:只能被嵌入到指定域名的框架中。\n例如:\napache可配置http.conf如下:\n\n Header always append X-Frame-Options ““DENY””\n\n\nIIS可配置相关网站的Web.config如下:\n\n …\n\n \n \n \n \n \n\n …\n"\r\n处理方案:header(“X-Frame-Options: SAMEORIGIN”);说 明:无

10. Strict-Transport-Security响应头缺失

风险等级:低危漏洞建议:“1)修改服务端程序,给 HTTP 响应头加上 Strict-Transport-Security 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(”“Strict-Transport-Security”“, ““value””) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(”“Strict-Transport-Security: value”“) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader ““Strict-Transport-Security””, ““value”” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[”“Strict-Transport-Security”“] = ““value”” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[”“Strict-Transport-Security”“] = ““value””;\n2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Strict-Transport-Security 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Strict-Transport-Security value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add Strict-Transport-Security ““value””。”\r\n处理方案:header(“Strict-Transport-Security: max-age=15552000”);说 明:无

11. 会话cookie中缺少HttpOnly属性

风险等级:低危漏洞建议:向所有会话cookie中添加“HttpOnly”属性。 Java示例: HttpServletResponse response2 = (HttpServletResponse)response; response2.setHeader( “Set-Cookie”, “name=value; HttpOnly”); C#示例: HttpCookie myCookie = new HttpCookie(“myCookie”); myCookie.HttpOnly = true; Response.AppendCookie(myCookie); VB.NET示例: Dim myCookie As HttpCookie = new HttpCookie(“myCookie”) myCookie.HttpOnly = True Response.AppendCookie(myCookie)\r\n处理方案:header(“Set-Cookie: Path=/, HttpOnly, Secure”);说 明:无

12. 服务器版本信息泄露

风险等级:低危漏洞建议:1.隐藏响应的server版本信息\n2.隐藏响应的X-Powered-By版本信息处理方案:

服务端语言为PHP时,隐藏 PHP 版本 编辑PHP配置文件php.ini,找到 expose_php On 改成 expose_php Off,保存并退出,重启php-fpm。Web服务器为NGINX时,隐藏NGINX版本 编辑NGINX配置文件nginx.conf,加入以下一行配置server_tokens off;

保存并退出,重启nginx服务。Web服务器为apache时,隐藏apache版本 编辑apache配置文件httpd.conf或apache2.conf,加入以下两行配置:ServerTokens Prod

ServerSignature Off

保存并退出,重启apache服务。 说 明:无

13. 备份文件或敏感目录泄露

风险等级:低危漏洞建议:1、禁止在网站目录下存放网站备份文件或包含敏感信息的文件。\n2、如需存放该类文件,对文件名、目录进行鉴权处理。处理方案:针对域名对应的nginx配置文件,在server{}内加入如下内容(根据检测出的文件名称进行配置,不一定是composer.json和LICENSE):#composer.json文件

location ^~ /composer.json {

return 404;

}

#LICENSE文件

location ^~ /vendor/composer/LICENSE {

return 404;

}

说 明:无

*******************************只要思想不滑坡,办法总比困难多*******************************

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: