regreSSHion:OpenSSH服务器中的远程未经认证代码执行漏洞
Qualys威胁研究小组(TRU)发现了基于glibc的Linux系统中OpenSSH服务器(sshd)中的一个远程未经认证代码执行(RCE)漏洞。该漏洞被分配了CVE-2024-6387编号。
该漏洞是OpenSSH服务器(sshd)中的一个信号处理程序竞态条件,允许在基于glibc的Linux系统上以root身份进行未经认证的远程代码执行(RCE),这带来了重大的安全风险。此竞态条件影响默认配置的sshd。
通过Censys和Shodan的搜索,我们发现超过1400万个潜在的易受攻击的OpenSSH服务器实例暴露在互联网上。来自Qualys CSAM 3.0的匿名数据和外部攻击面管理数据表明,大约有70万个面向外部的互联网实例是易受攻击的。这占我们全球客户群中所有面向互联网的OpenSSH实例的31%。有趣的是,超过0.14%的易受攻击的面向互联网的OpenSSH服务实例运行的是已停止服务/停止支持版本的OpenSSH。
在我们的安全分析中,我们确定该漏洞是先前已修补的CVE-2006-5051漏洞的回归。回归在此上下文中意味着一个已修复的漏洞在后续软件发布中重新出现,通常是由于更改或更新无意中重新引入了该问题。此事件突显了彻底回归测试的重要性,以防止已知漏洞重新进入环境。此回归出现在2020年10月(OpenSSH 8.5p1)。
Qualys已经开发了一个有效的regreSSHion漏洞利用工具。作为披露过程的一部分,我们成功地向OpenSSH团队展示了该漏洞利用工具,以帮助他们理解和解决问题。我们不会发布我们的漏洞利用工具,因为我们必须给补丁应用留出时间。然而,尽管漏洞利用工具复杂,我们相信其他独立研究人员能够复制我们的结果。
什么是 OpenSSH?
OpenSSH(Open Secure Shell)是一套基于Secure Shell(SSH)协议的安全网络工具,对于在不安全的网络上进行安全通信至关重要。它提供强大的加密功能,以确保隐私和安全的文件传输,使其成为远程服务器管理和安全数据通信的必备工具。以其广泛的安全和认证功能而著称,OpenSSH支持各种加密技术,并在包括macOS和Linux在内的多个类Unix系统上成为标准。
OpenSSH的实现是安全通信的关键工具。其企业价值在于其可扩展性以及在各种环境中实施强大访问控制和安全自动化过程的能力。这包括从自动备份和批处理到复杂的DevOps实践,涉及跨多个系统和位置的敏感数据的安全处理。其持续的发展和广泛采用突显了其在维护网络通信机密性和完整性方面的重要性。
OpenSSH作为软件安全的标杆,体现了强大的纵深防御方法。尽管最近出现了漏洞,其整体记录仍然异常出色,在该领域作为模范和灵感的源泉。
受影响的OpenSSH版本:
- 早于4.4p1的OpenSSH版本容易受到此信号处理程序竞态条件的影响,除非它们已修补CVE-2006-5051和CVE-2008-4109。
- 从4.4p1到但不包括8.5p1的版本由于CVE-2006-5051的变革性补丁而不易受影响,该补丁使一个先前不安全的函数变得安全。
- 从8.5p1到但不包括9.8p1的版本由于一个函数中关键组件的意外移除而重新出现了该漏洞。
OpenBSD系统不受此漏洞影响,因为OpenBSD在2001年开发了一种安全机制来防止此漏洞。
该漏洞是否可远程利用?
是的,该漏洞可以被远程利用,允许未经认证的远程代码执行(RCE)作为root,构成重大的安全风险。
regreSSHion漏洞的潜在影响
如果该漏洞被利用,可能导致系统完全失陷,攻击者可以以最高权限执行任意代码,从而接管系统、安装恶意软件、篡改数据和创建后门以实现持久访问。它可能促进网络传播,使攻击者能够利用受害系统作为跳板,遍历并利用组织内的其他易受攻击系统。
此外,获得root访问权限将使攻击者能够绕过防火墙、入侵检测系统和日志记录机制等关键安全机制,进一步掩盖其活动。这也可能导致重大数据泄露,攻击者能够访问系统上存储的所有数据,包括可能被盗或公开披露的敏感或专有信息。
由于其远程竞态条件性质,该漏洞难以利用,需要多次尝试才能成功攻击。这可能导致内存损坏,并需要克服地址空间布局随机化(ASLR)。深度学习的进步可能显著增加漏洞利用率,潜在地为攻击者在利用此类安全漏洞方面提供重大优势。
立即采取的风险缓解措施
解决OpenSSH中的regreSSHion漏洞,该漏洞允许在Linux系统上进行远程代码执行,需要采取集中和分层的安全方法。以下是企业防范此重大威胁的简洁步骤和战略建议:
- 补丁管理:快速应用OpenSSH的可用补丁,并优先考虑持续更新过程。
- 增强访问控制:通过基于网络的控制限制SSH访问,以尽量减少攻击风险。
- 网络分段和入侵检测:划分网络以限制未经授权的访问和关键环境中的横向移动,并部署系统以监控和警报指示利用尝试的异常活动。
该漏洞有任何缓解措施吗?
如果sshd无法更新或重新编译,请在配置文件中将LoginGraceTime
设置为0。这会使sshd暴露于通过占用所有MaxStartups
连接的拒绝服务攻击,但可以防止远程代码执行风险。
新的安全修复如何在不同版本中实施?
此修复是重大更新的一部分,因此难以回溯移植。因此,用户将有两种更新选项:升级到周一发布的最新版本(9.8p1)或按照公告中的说明对旧版本应用修复,这是大多数供应商将采用的方法。