SSH协议中发现新安全漏洞CVE-2023-48795

德国波鸿鲁尔大学的一组研究人员发现了 Secure Shell (SSH) 协议中的新安全漏洞,攻击者可能会利用该漏洞破坏 SSH 连接的完整性。

该漏洞名为 Terrapin Attack,编号为(CVE-2023-48795,CVSS 评分:5.9),该漏洞被描述为“有史以来第一个实际可利用的前缀截断攻击”。

SSH 是一种网络协议,用于在不安全的网络上安全访问远程服务器和服务。它使用加密技术确保连接安全,并对服务器进行身份验证。SSH 被系统管理员和开发人员广泛用于管理服务器和基础设施。

研究人员发现 SSH 存在两个核心问题,它们破坏了加密信息流的完整性:

  • SSH 无法完全验证客户端与服务器之间的初始握手。这使得攻击者可以注入信息并操纵用于验证数据包顺序的序列号。

  • 激活加密密钥时,SSH 不会重置序列号。因此,加密前对序列号的任何操作在安全通道内仍然有效。

通过利用这些缺陷,研究人员演示了一种 "前缀截断攻击",攻击者可以在不被发现的情况下删除 SSH 会话开始时的加密数据包。客户端和服务器都不会注意到丢失的数据包。

Terrapin 攻击是 SSH 协议本身的一种新型攻击,通过中间人(MITM)攻击,导致被攻击的客户端错误地认为服务器不支持用户身份验证中使用的最新签名算法。

该漏洞会影响所有 SSH 连接。

本研究将重点关注 OpenSSH 实现。有两种易受攻击的 OpenSSH 配置:

  • ChaCha20-Poly1305

  • 任何使用默认 MAC 的 aes(128|192|256)-cbc ciphers(或任何使用 Encrypt-then-MAC, EtM 的 MAC,例如 - hmac-sha2-256-etm@openssh.com)。

默认的 OpenSSH 客户端和服务器容易受到这种攻击,因为它们被配置为允许使用易受攻击的 ChaCha20-Poly1305 密码。

注意:仅更新服务器或客户端是不够的!两者都必须打补丁。连接到固定服务器的易受攻击客户端仍会导致易受攻击连接。

研究人员展示了几种可以使用前缀截断攻击的实用方法:

  • 通过欺骗客户端了解服务器的能力,降低所支持的密钥交换和身份验证算法的等级。

  • 禁用 OpenSSH 9.5 中最近推出的防范密码输入过程中击键计时攻击的对策。

  • 将用户在 AsyncSSH 上的 SSH 登录重定向到攻击者控制的 shell,从而完全控制会话。

  • 用攻击者选择的信息替换客户端的扩展协商信息,从而操纵会话。

通过全网扫描,研究人员发现 77% 的 SSH 服务器支持易受攻击的加密模式,因此它们都有可能受到攻击。

SSH 设计中发现的根本原因
根据分析,造成这些缺陷的根本原因是

  • SSH 握手不验证完整的副本,只验证选择性部分。这就允许 MitM 注入不支持的信息。
  • SSH 的设计目的是在整个连接过程中单调递增序列号。更改密钥时重置序列号并不是最初设计的一部分。

这些弱点以前没有被利用,是因为多年来添加的新加密模式和协议扩展开始以不可预见的方式相互作用,暴露了底层漏洞。

研究人员建议对 SSH 规范进行两项主要修改,以解决这些问题:

  • 激活加密密钥时,将序列号重置为零。这样可以防止在握手过程中操纵数字影响安全通道。

  • 在安全通道开始时验证完整握手副本的哈希值,类似于 TLS 中的 "完成 "信息。这样就能检测出任何篡改握手过程的恶意软件。

对于现在的客户端和服务器,可以通过避免使用易受攻击影响的加密算法(如 ChaCha20-Poly1305 和 CBC-EtM)来减少漏洞。不过,要想获得长期的解决方案,建议修复协议中的根本原因。

https://www.jdon.com/71521.html

为了应对CVE-2023-48795CVE-2023-46445和CVE-2023-46446这三个安漏洞,你需要按照以下步骤在CentOS 7系统上安地更新OpenSSH至9.6p1版本。首先,确认当前OpenSSH版本,可以使用命令`sshd -V`查看。如果版本低于9.6p1,继续按照以下步骤操作。 参考资源链接:[CentOS 7紧急升级OpenSSH至9.6p1防范安漏洞](https://wenku.youkuaiyun.com/doc/2c0n3iue15?spm=1055.2569.3001.10343) 第一步,卸载旧的OpenSSH版本。使用以下命令: ``` yum remove openssh openssh-clients openssh-server ``` 第二步,安装必要的依赖包。这一步是为了确保在编译安装OpenSSH时能够满足所有依赖,运行以下命令: ``` yum install gcc-c++ glib-devel cmake autoconf openssl-devel pam-devel pam-zlib-devel vim ``` 第三步,下载并编译安装OpenSSL 1.1.1w版本。这是因为CentOS 7可能使用的是较旧的OpenSSL版本,而新版本的OpenSSH需要更高版本的OpenSSL支持。具体步骤包括下载源码包,配置、编译和安装: ``` wget *** *** *** *** ``` 安装完成后,使用`openssl version`确认安装的版本。 第四步,下载OpenSSH 9.6p1源码包并编译安装。这里也需要配置、编译和安装: ``` wget *** *** *** *** ``` 安装过程中可能会出现提示,需要指定OpenSSL的路径,确保指向新安装的版本。 第五步,重新配置并启动sshd服务。这一步需要重启sshd服务,并确保配置文件是最新版本支持的格式: ``` systemctl restart sshd ``` 在完成上述步骤后,你的CentOS 7系统上的OpenSSH服务应该已经升级至9.6p1版本,并且补上了这些安漏洞。为了验证升级是否成功,可以再次使用`sshd -V`命令确认版本。 为了进一步学习和巩固OpenSSH的升级和配置知识,建议查阅《CentOS 7紧急升级OpenSSH至9.6p1防范安漏洞》一文。该文档详细记录了整个升级过程,包括对可能出现的错误信息的解释和解决方案,适合希望深入了解OpenSSH升级细节的用户。 参考资源链接:[CentOS 7紧急升级OpenSSH至9.6p1防范安漏洞](https://wenku.youkuaiyun.com/doc/2c0n3iue15?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值