SSL配置 openssl漏洞修复整改建议

注:内容摘抄于一个扫描报告

附: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
<VirtualHost *:443>
    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
    <Files ~ "\.(cgi|shtml|phtml|php3?)$">
       SSLOptions +StdEnvVars
    </Files>
    <Directory "/var/www/html/">
        Options FollowSymLinks
        AllowOverride ALL
        Order allow,deny
        Allow from all
    </Directory>
    <Directory "/var/www/cgi-bin">
       SSLOptions +StdEnvVars
    </Directory>
    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"
    
</VirtualHost>

存在弱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 文件中设置

<http>
...
<headers>
<content-security-policy
   policy-directives="default-src 'self' " />
</headers>
</http>

IIS

在web.config中进行设置:

<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Content-Security-Policy" value="default-src 'self';" />
</customHeaders>
</httpProtocol>
</system.webServer>

 

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中进行设置:

<filter>

<filter-name>httpHeaderSecurity</filter-name>

<filter-class>

org.apache.catalina.filters.HttpHeaderSecurityFilter

</filter-class>

<BlockContentTypeSniffingEnabled>true</BlockContentTypeSniffingEnabled>

</filter>



<filter-mapping>

<filter-name>httpHeaderSecurity</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

IIS

在web.config中进行设置:

<system.webServer>

<httpProtocol>

<customHeaders>

<add name="X-Content-Type-Options" value="nosniff ">

</customHeaders>

</httpProtocol>

</system.webServer>

 

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中进行设置:

<filter>

<filter-name>httpHeaderSecurity</filter-name>

<filter-class>

org.apache.catalina.filters.HttpHeaderSecurityFilter

</filter-class>

<xssProtectionEnabled>true</xssProtectionEnabled>

</filter>



<filter-mapping>

<filter-name>httpHeaderSecurity</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

IIS

在web.config中进行设置:

<system.webServer>

<httpprotocol>

<customheaders>

<add name="X-XSS-Protection" value="1; mode=block"></add>

</customheaders>

</httpprotocol>

</system.webServer>

 

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中配置:

<system.webServer>

  ...

  <httpProtocol>

    <customHeaders>

      <add name="X-Frame-Options" value="SAMEORIGIN" />

    </customHeaders>

  </httpProtocol>

  ...

</system.webServer>

Tomcat配置X-Frame-Options

2种方法:

第1种:将ClickjackFilter.jar添加到lib目录下。

(可在OWASP的网站中找到)

<filter>

    <filter-name>ClickjackFilterDeny</filter-name>

    <filter-class>org.owasp.filters.ClickjackFilter</filter-class>

      <init-param>

        <param-name>mode</param-name>

          <param-value>SAMEORIGIN </param-value>

      </init-param>

  </filter>

  <filter-mapping>

    <filter-name>ClickjackFilterDeny</filter-name>

    <url-pattern>/*</url-pattern>

  </filter-mapping>

第2种:打开webapps\ROOT\WEB-INF\web.xml添加以下过滤器:TOMCAT8以下版本需要引入httpHeaderSecurity.jar,同源将参数设置为SAMEORIGIN跨域请设置为DENY

 <filter>

 <filter-name>httpHeaderSecurity</filter-name>

 <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>

 <async-supported>true</async-supported>

 <init-param>

 <param-name>antiClickJackingEnabled</param-name>

 <param-value>true</param-value>

 </init-param>

 <init- param>

 <param-name>antiClickJackingOption</param-name>

 <param-value>SAMEORIGIN</param-value>

 </init-param>

<async-supported>true</async-supported>

 </filter>

 <filter-mapping>

 <filter-name>httpHeaderSecurity</filter-name>

 <url-pattern>/*</url-pattern>

 </filter-mapping> 

缺少HTTP Stricnsport-Security头(低)

 漏洞危害

    •可能会收集有关 Web 应用程序的敏感信息,如用户名、密码、机器名和/或敏感文件位置

    •可能会劝说初级用户提供诸如用户名、密码、信用卡号、社会保险号等敏感信息

针对缺少HTTP Strict-Transport-Security头漏洞的整改建议

Tomcat

在web.xml中进行设置:

<filter>

<filter-name>httpHeaderSecurity</filter-name>

<filter-class>

org.apache.catalina.filters.HttpHeaderSecurityFilter

</filter-class>

<hstsEnabled>true</hstsEnabled>

<setHstsIncludeSubDomains>true</setHstsIncludeSubDomains>

<setHstsMaxAgeSeconds>31536000</setHstsMaxAgeSeconds>

</filter>



<filter-mapping>

<filter-name>httpHeaderSecurity</filter-name>

<url-pattern>/*</url-pattern>

<dispatcher>REQUEST</dispatcher>

</filter-mapping>

 

IIS

在web.config中进行设置:

<system.webServer>

<httpprotocol>

<customheaders>

<add name="Strict-Transport-Security" value="max-age=31536000;includeSubDomains"></add>

</customheaders>

</httpprotocol>

</system.webServer>

 

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中进行设置

<security-constraint>

<web-resource-collection>

<web-resource-name>resourceName</web-resource-name>

<url-pattern>/*</url-pattern>

<http-method>GET</http-method>

<http-method>POST</http-method>

</web-resource-collection>

</security-constraint>

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值