OpenSSH漏洞:SSH Weak Algorithms Supported的分析与解决方案

by LauCyun Oct 22,2017 21:10:29 73,702 views

前几天,在公安部三所产品检测的时候,产品爆出一个名为SSH Weak Algorithms Supported的中危漏洞,经过一番沟通后,得知他们用Nessus做的漏洞扫描检测。为此对这个问题稍作了研究和大家分享一下。

1 漏洞描述

如下图,该漏洞为一个中危漏洞,名为SSH Weak Algorithms Supported

SSH Weak Algorithms Supported

该漏洞的详细描述如下图:

大意为Nessus检测到了SSH服务配置中存在Arcfour加密算法或没有配置加密算法。

2 解决方案

在ssh配置文件/etc/ssh/sshd_config中添加下面这行配置。

# CentOS
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se
# Debian/Ubuntu
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com,chacha20-poly1305@openssh.com,blowfish-cbc,aes128-cbc,3des-cbc,cast128-cbc,aes192-cbc,aes256-cbc

保存后,重启ssh服务。

3 漏洞简析

根据Nessus给的描述可以看出,这个漏洞属于SSH的配置缺陷,SSH服务启用了Arcfour(也称RC4)这个不安全算法,我们用man查看一下关于sshd_config文件的帮助,其中可以看到关于Ciphers的条目。

# CentOS6
$ man sshd_config
...
     Ciphers
             Specifies the ciphers allowed for protocol version 2.  Multiple ciphers must be comma-separated.  The supported ciphers are “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”,
             “aes192-ctr”, “aes256-ctr”, “arcfour128”, “arcfour256”, “arcfour”, “blowfish-cbc”, “rijndael-cbc@lysator.liu.se”, and “cast128-cbc”.  The default is:

                aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
                aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
                aes256-cbc,arcfour,rijndael-cbc@lysator.liu.se
...

# Debian/Ubuntu
     Ciphers
             Specifies the ciphers allowed.  Multiple ciphers must be comma-separated.  If the specified value begins with a ‘+’ character, then the specified ciphers will be appended to the default set instead of replacing them.

             The supported ciphers are:

                   3des-cbc
                   aes128-cbc
                   aes192-cbc
                   aes256-cbc
                   aes128-ctr
                   aes192-ctr
                   aes256-ctr
                   aes128-gcm@openssh.com
                   aes256-gcm@openssh.com
                   arcfour
                   arcfour128
                   arcfour256
                   blowfish-cbc
                   cast128-cbc
                   chacha20-poly1305@openssh.com

             The default is:

                   chacha20-poly1305@openssh.com,
                   aes128-ctr,aes192-ctr,aes256-ctr,
                   aes128-gcm@openssh.com,aes256-gcm@openssh.com

             The list of available ciphers may also be obtained using the -Q option of ssh(1) with an argument of “cipher”.

可以看到,在默认的情况下,sshd_config文件中如果没有指定加密算法的话,默认会使用的算法列表中存在Arcfour算法。

因此这个漏洞的修复只需要手动配置ssh加密算法,并去除Arcfour算法即可。

4 Arcfour算法的风险

关于启用Arcfour存在的风险,可以参考Wiki上的词条:RC4 - Wikipedia(需要梯子),没有梯子的请参考:RC4_百度百科

简单的说就是RC4算法本身存在漏洞,在特定情况下,它密文可以被破译得到明文,因此这是一种不安全加密算法。

Tags