安全研究人员已发布了一份关于 OpenSSH 代理转发功能中严重远程代码执行(RCE)漏洞(CVE-2023-38408)的详细技术分析报告,该漏洞于 2023 年 7 月被披露。
Qualys 威胁研究部门发现了这一漏洞,它影响了 9.3p2 版本之前的所有 OpenSSH 版本,并且在通用漏洞披露(CVE)评分中接近满分,达到了 9.8 分。
SSH 代理转发功能允许用户在无需在中间系统上存储私钥的情况下对多个服务器进行身份验证。启用该功能后,它会在远程服务器上创建一个与本地 ssh-agent 进行通信的套接字。
尽管这项功能很方便,但长期以来一直被认为存在潜在危险,OpenSSH 自身的文档也对其安全隐患发出了警告。
漏洞详情
根据 Vicarius 的技术分析,该漏洞源于 “可信度不足的搜索路径”,当 SSH 代理被转发到攻击者控制的系统时,这会允许从不安全的路径(/usr/lib)加载代码。这一问题是在 2016 年修复了之前的一个漏洞(CVE-2016-10009)之后出现的安全缺口。
该漏洞存在于 OpenSSH 的 PKCS#11 功能中,当 SSH 代理被转发到受攻击的系统时,攻击者能够借此执行恶意代码。这凸显了许多系统管理员和开发人员日常所依赖的一项常见功能中存在的重大安全风险。
攻击利用过程复杂但危害极大。能够访问用户 SSH 代理被转发到的服务器的攻击者可以:
1.通过加载特定的共享库,使 ssh-pkcs11-helper 的堆栈可执行。
2.将 shellcode 注入到进程内存中。
3.改变内存布局并替换信号处理程序。
4.触发一个段错误,从而执行恶意代码。
这一执行链条使得攻击者能够以转发其 SSH 代理的用户权限运行任意命令。
安全研究人员估计,该漏洞的影响范围相当大。根据分析中提到的 Shodan 搜索结果,超过 800 万个系统使用了可能存在漏洞的 OpenSSH 版本,其中大约有 46000 个系统专门暴露了 OpenSSH 代理。
实际影响可能更大,因为这些数字并未考虑到内部网络部署的情况。
漏洞披露时间线显示了所有相关方的妥善处理。2023 年 7 月 6 日,最初的安全公告草案和补丁被提交给 OpenSSH,随后进行了修订和反馈交流。
OpenSSH 在 7 月 19 日宣布了仅针对安全问题的版本发布,当时进行了协调后的漏洞披露。
安全修复措施
OpenSSH 9.3p2 中实施的修复方案通过多项安全增强措施来解决该漏洞:
1.终止无效的 PKCS#11 提供程序的进程。
2.默认情况下,禁止远程添加 FIDO/PKCS11 提供程序。
3.预先验证库,以确保它们包含预期的符号。
4.为每个 PKCS11 模块创建单独的辅助进程。
安全专家建议了几种缓解策略:
1.立即升级到 OpenSSH 9.3p2 或更高版本。
2.仅将 PKCS#11 提供程序的使用限制在受信任的来源。
3.极其谨慎地使用 SSH 代理转发功能,并且仅在受信任的环境中使用。
4.定期进行安全扫描,以检测潜在的攻击利用行为。
这一漏洞凸显了即使在修复了先前的漏洞之后,保护复杂网络协议安全方面仍然存在的挑战。详细的技术分析提供了有价值的见解,同时也强调了理解便利性功能所带来的安全影响的重要性。
发表评论
您还未登录,请先登录。
登录