注:内容摘抄于一个扫描报告
附:apache的ssl配置
LoadModule ssl_module modules/mod_ssl.so
Listen 443
NameVirtualHost *:443
SSLPassPhraseDialog builtin
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
DocumentRoot /var/www/html/
ServerName xxx.xxx.com
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn
#针对缺失"Content-Security-Policy"头漏洞整改建议
Header set Content-Security-Policy "default-src 'self' 'unsafe-inline' data: blob:;script-src 'self' 'unsafe-eval' 'unsafe-inline';img-src *;"
#针对缺失"X-Content-Type-Options"头漏洞整改建议
Header set X-Content-Type-Options nosniff
#针对缺失"X-XSS-Protection"头漏洞整改建议
Header set X-XSS-Protection "1; mode=block"
#针对点击劫持:X-Frame-Options头缺失漏洞的整改建议
Header always append X-Frame-Options SAMEORIGIN
#针对缺少HTTP Strict-Transport-Security头漏洞的整改建议
Header set Strict-Transport-Security "max-age=31536000;includeSubDomains;"
#针对Options方法已启用漏洞的整改建议
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(GET|POST)
RewriteRule .* - [F]
SSLHonorCipherOrder On
#针对弱ssl协议漏洞整改
SSLEngine on
SSLProtocol ALL -SSLv2 -SSLv3 -TLSv1
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /etc/httpd/conf/xxx-xxx-com.crt
SSLCertificateKeyFile /etc/httpd/conf/xxx-xxx-com.key
SSLCertificateChainFile /etc/httpd/conf/CAChains.crt
SSLOptions +StdEnvVars
Options FollowSymLinks
AllowOverride ALL
Order allow,deny
Allow from all
SSLOptions +StdEnvVars
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
存在弱SSL协议(中)
使用一个如TLSv1.0、SSL2.0、SSL3.0的弱协议容易受到中间人攻击。这将允许攻击者读取和修改在一个安全的TLS连接数据,从而影响用户的安全和隐私。它的使用也将限制使用强大的密码套件,这些套件是有助于保护数据的完整性和保密性
针对存在弱SSL协议漏洞整改建议
在服务器上禁用支持TLSv1\SSLv2\SSLv3协议。NIST 800-52和PCI DSS V3.1强烈建议升级到最新的版本的TLS v1.2。或者,至少升级到TLS v1.1。
关于SSLv2、SSLv3、TLSv1.0,心血漏洞 、弱加密协议漏洞检测的方法
安装linux sslscan 参考地址 点击前往
安装windows sslscan (不支持扫描心血漏洞,SSLv2、SSLv3)下载地址 点击前往,解压即可使用 使用命令 cmd执行 sslscan 域名:端口号
Ubuntu使用apt默认安装的不支持检测SSLv2和SSLv3漏洞,使用git或者安装包安装。会附带openssl-1.0.2g,高版本都不支持检测SSLv2和SSLv3
踩个坑:如果网站在防火墙【例如H3C防火墙】后布置,交换机防火墙做ssl访问转发。扫描报告很有可能会有误,最准确的方法是在服务器上安装扫描工具,在本机上扫描本机,不过防火墙转发请求,./sslscan 127.0.0.1:443【猜测:扫描工具进行访问,防火墙进行所有路由转发,不论是否网站能访问,扫描工具认为访问成功,所以会爆出网站有漏洞】
Apache
在httpd-ssl.conf中进行设置
SSLProtocol ALL –SSLv2 -SSLv3 -TLSv1
Nginx
在nginx.conf中进行设置
ssl_protocols tlsv1.1 tlsv1.2;
IIS
确保服务器操作系统至少升级到Windows Server 2008 R2 版
1禁用TLS 1.0
1.1运行注册表编辑器regedit
1.2寻找或创建注册表项目
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\
1.3在此项下面创建名为Server的注册表项
1.4在Server项下创建名为Enabled的值,将其设置为0。
2启用TLS 1.1或TLS 1.2
2.1运行注册表编辑器regedit
2.2寻找或创建注册表项目
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\
2.3在上面两项下分别创建名为Server的注册表项
2.4在Server项下寻找或创建名为Enabled的值,将其设置为1。
缺失"Content-Security-Policy"头(低)
漏洞危害
•可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
•可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
针对缺失"Content-Security-Policy"头漏洞整改建议
Content-Security-Policy 参考地址 点击前往
Java Content-Security-Policy过滤器
可使用下面的开源项目添加Content-Security-Policy响应头,使用说明参见项目注释。
https://github.com/ronaldploeger/ContentSecurityPolicyFilter/blob/master/src/main/java/de/saville/csp/ContentSecurityPolicyFilter.java
Spring
使用 spring security框架
在 security-config-xml 文件中设置
...
IIS
在web.config中进行设置:
Nginx
在nginx.conf中进行设置:
server {
…
add_header Content-Security-Policy "default-src 'self';";
}
Apache
在httpd.conf中进行设置:
Header set Content-Security-Policy "default-src 'self';"
缺失"X-Content-Type-Options"头(低)
漏洞危害
•可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
•可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
针对缺失"X-Content-Type-Options"头漏洞整改建议
Tomcat
在web.xml中进行设置:
httpHeaderSecurity
org.apache.catalina.filters.HttpHeaderSecurityFilter
true
httpHeaderSecurity
/*
REQUEST
IIS
在web.config中进行设置:
Nginx
在nginx.conf中进行设置
server {
…
add_header X-Content-Type-Options nosniff;
}
Apache
在httpd.conf中进行设置
Header set X-Content-Type-Options nosniff
缺失"X-XSS-Protection"头(低)
漏洞危害
•可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
•可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
针对缺失"X-XSS-Protection"头漏洞整改建议
Tomcat(建议升级8以上版本,tomcat8以下版本无此配置)
在web.xml中进行设置:
httpHeaderSecurity
org.apache.catalina.filters.HttpHeaderSecurityFilter
true
httpHeaderSecurity
/*
REQUEST
IIS
在web.config中进行设置:
Nginx
在nginx.conf中进行设置
http {
…
add_header X-XSS-Protection "1; mode=block";
}
Apache
在httpd.conf中进行设置
Header set X-XSS-Protection "1; mode=block"
点击劫持:X-Frame-Options头缺失(低)
漏洞危害
点击劫持(ClickJacking)是一种视觉上的欺骗手段。攻击者使用一个透明的、不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户将在不知情的情况下点击透明的iframe页面。通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上。
针对点击劫持:X-Frame-Options头缺失漏洞的整改建议
针对不同应用,请选用不同配置,如下
Apache配置X-Frame-Options
在站点配置文件httpd.conf中添加如下配置,限制只有站点内的页面才可以嵌入iframe。
Header always append X-Frame-Options SAMEORIGIN
配置之后重启apache使其生效。该配置方式对IBM HTTP Server同样适用。
如果同一apache服务器上有多个站点,只想针对一个站点进行配置,可以修改.htaccess文件,添加如下内容:
Header append X-FRAME-OPTIONS "SAMEORIGIN"
Nginx 配置X-Frame-Options
到 nginx/conf文件夹下,修改nginx.conf ,添加如下内容:
add_header X-Frame-Options "SAMEORIGIN";
重启Nginx服务。
IIS配置X-Frame-Options
在web站点的web.config中配置:
...
...
Tomcat配置X-Frame-Options
2种方法:
第1种:将ClickjackFilter.jar添加到lib目录下。
(可在OWASP的网站中找到)
ClickjackFilterDeny
org.owasp.filters.ClickjackFilter
mode
SAMEORIGIN
ClickjackFilterDeny
/*
第2种:打开webapps\ROOT\WEB-INF\web.xml添加以下过滤器:TOMCAT8以下版本需要引入httpHeaderSecurity.jar,同源将参数设置为SAMEORIGIN跨域请设置为DENY
httpHeaderSecurity
org.apache.catalina.filters.HttpHeaderSecurityFilter
true
antiClickJackingEnabled
true
antiClickJackingOption
SAMEORIGIN
true
httpHeaderSecurity
/*
缺少HTTP Stricnsport-Security头(低)
漏洞危害
•可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置
•可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息
针对缺少HTTP Strict-Transport-Security头漏洞的整改建议
Tomcat
在web.xml中进行设置:
httpHeaderSecurity
org.apache.catalina.filters.HttpHeaderSecurityFilter
true
true
31536000
httpHeaderSecurity
/*
REQUEST
IIS
在web.config中进行设置:
Nginx
在nginx.conf中进行设置:
server {
listen 443 ssl;
…
add_header Strict-Transport-Security "max-age=31536000;
includeSubdomains;";
}
Apache
在httpd.conf中进行设置:
Header set Strict-Transport-Security "max-age=31536000;includeSubDomains;"
Options方法已启用(低)
漏洞危害
可能导致敏感信息泄露,有助于恶意攻击者进一步攻击。
针对Options方法已启用漏洞的整改建议
Tomcat
在web.xml中进行设置
resourceName
/*
GET
POST
Apache
在 httpd.conf 中进行设置
RewriteEngine On
RewriteCond %{REQUEST_METHOD} !^(GET|POST)
RewriteRule .* - [F]
Trace方法已启用(低)
漏洞危害
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。
针对Trace方法已启用漏洞的整改建议
解决方案: 禁用这些方式。
1、在各虚拟主机的配置文件里添加如下语句:
在\conf\http.conf里解除
LoadModule rewrite_module modules/mod_rewrite.so的注释
再增加
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
2、Available in Apache 1.3.34, 2.0.55 and later
TraceEnable off