服务器如何修复旧加密算法漏洞
大周末的,收到客户发来的《网络安全隐患告知书》,里面有个主机扫描报告,有个中危漏洞需要修复,客户修复不了,找过来,漏洞如下:
其实这个漏洞很常见,最近接触的客户发来的要求修复的漏洞中,都存在这个问题,所以今天记录下
这个 RC4 的漏洞是个老的漏洞了,是加密算法的问题,只要是在使用 RC4 加密算法的旧的系统中,都存在这个问题,比如常见的 web,Nginx、Apache、IIS、Tomcat 等,以及 linux 下的 openssl,windows 服务器的远程桌面服务,有使用 RC4 算法的,都有这个问题
所以这里顺便整理下这个问题要怎么修复
客户给到的是一台 windows 2008 R2 sp1 的服务器,而公安局通过安恒的漏洞扫描扫出的是远程桌面服务的 RC4 加密问题,所以这里先解决 windows 上面的这个问题
解决这个问题的方法其实很简单,因为官方也没有给出 RC4 的补丁,所以最简单的方法就是禁用 RC4 加密算法
在 windows 中,禁用 RC4 加密算法,需要修改注册表,所以废话不多说,先做个系统快照,以防万一
做完快照,就开始操作了,在修改注册表之前,需要先安装一个补丁(KB2868725),从微软官方下一个对应系统版本的这个补丁包,安装
安装完成后,在命令行通过 regedit,打开注册表,找到如下两个位置,没有的话创建
如图,在注册表中,禁用 RC4 之后,因为没有安恒的漏扫工具,用 nessus 扫描前后对比如下:
禁用后,漏洞扫描结果中已经没有 RC4 算法相关漏洞
RC4 算法除了在远程服务中使用,在 web 服务中也是很常使用,所以下面整理了常见 web 的处理方式
nginx 处理方式:
在 ssl 的配置中,配置加密套件的位置,即 ssl_ciphers 的加密套件最后加!RC4,来禁用 RC4 加密算法
之后,重新加载 nginx 配置即可
Apache 处理方式:
在 ssl 配置中,SSLCipherSuite 的位置,添加!RC4 的配置来禁用 RC4 加密算法
完成后,重启 Apache 服务
Tomcat 处理方式:
在 server.xml 中,配置 SSL_connector 中 ciphers 的部分添加!RC4 来禁用 RC4 算法
IIS 处理方式:
IIS 的处理方式和上面 windows 远程桌面服务处理一样,修改注册表,这里我写好了注册信息,复制保存为 fix_rc4.reg,双击运行即可,其中还禁用了一些其他已经不安全的加密套件
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES56/56]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC240/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC256/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC440/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC456/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC464/128]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT1.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL2.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Server]"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL3.0\Client]"DisabledByDefault"=dword:00000001
通过以上方法,即可修复改 RC4 漏洞,如果没有 Nessus,可以通过其他方式进行验证,这里提供两种验证方式
openssl s_client -connect 网站地址 -cipher RC4
nmap -p 443 --script=ssl-enum-ciphers 目标服务器
版权声明: 本文为 InfoQ 作者【运维研习社】的原创文章。
原文链接:【http://xie.infoq.cn/article/49c271470928fe32d4d106cae】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论