某个我们对某个服务进行了漏洞扫描,在扫描报告中发现了一个低微漏洞
[ 低风险 ] OpenSSH CBC模式信息泄露漏洞
该漏洞描述为:
OpenSSH是一种开放源码的SSH协议的实现,初始版本用于OpenBSD平台,现在已经被移植到多种Unix/Linux类操作系统下。
如果配置为CBC模式的话,OpenSSH没有正确地处理分组密码算法加密的SSH会话中所出现的错误,导致可能泄露密文中任意块最多32位纯文本。在以标准配置使用OpenSSH时,攻击者恢复32位纯文本的成功概率为2^{-18}, 此外另一种攻击变种恢复14位纯文本的成功概率为2^{-14}。
修改ssh配置文件/etc/ssh/sshd_config
,首先查找该文件中是否有下面关键字的配置项
# Ciphers and keying
Ciphers ....
如果存在则修改为下面这段,不存在则在这个文件的末尾加上下面这段
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],arcfour
重启SSH服务就可以完成配置
CentOS 7 以上的SSH服务重启命令
systemctl restart sshd
CentOS 7 以下的SSH服务重启命令
service sshd restart
使用SSH针对CBC分组类型的加密算法进行检查
ssh -vv -oCiphers=aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc <你的主机名>
如:
ssh -vv -oCiphers=aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc 127.0.0.1
屏幕打印的日志的最后一行:
....
no matching cipher found: client aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc server aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],arcfour
出现 no matching cipher found: client aes128-cbc,3des-cbc … 说明配置生效。(此时的SSH登录并未成功)
如果有兴趣可以阅读下面的解决思路
导致该问题的原因是SSH CBC的加密模式可能存在风险,所以只要关闭CBC模式的分组加密就可以。
如何查看默认SSH支持加密算法分组类型
man sshd_config
打开手册,通过PageDown
按键翻页,我们可以找到Ciphers
的配置项
按
q
退出,Enter
下一行。
从这个描述中我们可以得到,默认情况下支持的加密算法如下:
The default is:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
[email protected],[email protected],
[email protected],
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
其中包括了包含CBC分组类型的加密算法如下:
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc
所以只需要把这些算法去掉就可以得到一个新的配置信息,然后写入/etc/ssh/sshd_config
文件中
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,[email protected],[email protected],[email protected],arcfour
[1] 努力改个网名 . 低微漏洞处理办法记录 . https://www.cnblogs.com/lsdb/p/8204578.html