一、漏洞描述

ssh服务器配置为支持密码块链接(cbc)加密。这可能允许攻击者从密文中恢复明文消息。注意,这个插件只检查ssh服务器的选项,不检查易受攻击的软件版本。

CBC(Cipher-block chaining,密码分组链接模式),它具备依赖性,加密过程是串行的,无法被并行化,但是解密可以并行化,因为一个密文会影响到该明文与后一个明文,不会对其他明文产生影响。消息必须是块大小的整数倍,不够需要填充。但无法直接从密文中看出明文信息块的规律,所以安全性比较好。另因密文块依赖于所有的信息块,加密时,若明文块有一个消息改变则影响所有密文块。

一般经过我们的加固,Linux环境中一般都已经采用AES这种算法加密,AES有五种加密模式(CBC、ECB、CTR、OCF、CFB),centos7.x系统启动sshd服务后,系统默认选择CBC的机密模式,在对安全要求比较高的生产环境中,一般是不允许CBC加密的,我们需要将CBC的加密方式修改为CTR或者GCM。

风险级别:低

修复建议:禁用CBC模式密码加密,并启用CTR或GCM密码模式加密。

二、处理过程

1)编辑ssh配置文件

man /etc/ssh/sshd_config  //查看当前支持的加密算法/模式,多个加密算法之间使用逗号分隔

ssh -Q cipher //查看你当前ssh使用的算法

vim /etc/ssh/sshd_config

#Ciphers and keying  注释该行

Ciphers aes128-ctr,aes192-ctr,aes256-ctr  //加密方式配置使用ctr

#也可对指定项目指定,Ciphers 指定 ssh 使能的加密算法。当 Ciphers 的值以 + 字符开始时,指定的加密算法将附加到默认集合,不影响默认集合中的其它算法。当 Ciphers 的值以 ‘-’ 字符开始时,指定的加密算法将会从默认集合中移除,不影响默认集合中的其它项目。

Ciphers -aes128-cbc,aes192-cbc,aec256-cbc,3des-cbc
Ciphers +aes128-ctr,aes192-ctr,aes256-ctr

完成后重启服务:
systemctl stop sshd.service
systemctl start sshd.service

2)验证

nmap --script “ssh2*” 目标ip //没有出现CBC,diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1等弱加密算法则成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐