写点什么

服务器如何修复旧加密算法漏洞

发布于: 2021 年 04 月 06 日

大周末的,收到客户发来的《网络安全隐患告知书》,里面有个主机扫描报告,有个中危漏洞需要修复,客户修复不了,找过来,漏洞如下:



其实这个漏洞很常见,最近接触的客户发来的要求修复的漏洞中,都存在这个问题,所以今天记录下


这个 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 目标服务器

发布于: 2021 年 04 月 06 日阅读数: 18
用户头像

运维技术社区,坚持运维技术研究与分享 2020.07.14 加入

「运维研习社」技术社区发起人,同名公众号「运维研习社」、知识星球,专注运维技术研究分享,坚持原创,希望能和大家在运维路上结伴而行!

评论

发布
暂无评论
服务器如何修复旧加密算法漏洞