黑客利用 Libgcrypt 加密漏洞使目标计算机执行任意代码
自由源代码库中的漏洞可能已移植到多个应用程序中。
Libgcrypt项目已经发布了针对免费源码加密库1.9.0版中一个严重漏洞的修复程序。利用此漏洞,攻击者可以将任意数据写入目标计算机并执行代码。
该安全漏洞是Libgcrypt 1.9.0中的堆缓冲区溢出漏洞(于1月19日发布,以前的版本不受影响),研究人员说,仅解密数据块即可利用此漏洞。该问题已在Libgcrypt版本1.9.1中修复(CVE等待中)。
Libgcrypt是一个通用的密码库,供开发人员在构建应用程序时使用,最初是基于GNU Privacy Guard的代码(GnuPG是Symantec的PGP加密软件套件的免费软件替代品)。Libgcrypt是POSIX兼容的,这意味着它可以在Linus,Unix和macOSX应用程序中使用,并且可以使用适用于Microsoft Windows的交叉编译系统来启用。
据发现并报告了这个问题的Google Project Zero研究人员Tavis Ormandy称,该漏洞“易于利用”。
“由于块缓冲区管理代码中的漏洞假设,Libgcrypt中存在堆缓冲区溢出。只是解密一些数据可能会使攻击者控制的数据溢出堆缓冲区,在漏洞发生之前没有任何验证或签名得到验证。” Ormandy在他的报告中解释说,该报告是Libgcrypt上周五的通报的一部分。
尽管该漏洞版本不再可供下载,但尚不清楚有多少开发人员在将其撤下之前下载了该版本以用于构建其应用程序。Libgcrypt的作者指出,开发人员应该用最新版本替换有漏洞的库。
密码学家Filippo Valsorda指出,自制软件受到有漏洞的库的影响。Homebrew是一种开源软件包管理系统,可简化在Apple macOS操作系统和Linux上的软件安装。Homebrew的经理确认了该漏洞并解决了该问题。
他还发布了一条推文,指出该修复程序在Intel CPU计算机上存在问题。
第三方开放源代码:供应链问题
部署修补程序后,第三方库中的漏洞往往会在应用程序中徘徊。实际上,根据Veracode最新的《软件安全状况报告》,当今使用的应用程序中有70%至少具有一个由于使用开源库而产生的安全漏洞。
“仅通过较小的版本更新就可以解决应用程序中大多数库引入的漏洞(将近75%)。根据Veracode报告,通常不需要对主要库进行升级。“这个数据点表明,这个问题是发现和跟踪的问题之一,而不是大量的代码重构。”
网络犯罪分子也明白,代码库和第三方库是通过向其植入恶意代码来发起供应链型攻击的诱人途径。在上个月的最新示例中,三个恶意软件包被发布到npm,npm是JavaScript开发人员共享和重用代码块的代码存储库。
这些软件包可能已被用作各种Web应用程序中的构建块。研究人员说,任何被代码破坏的应用程序都可以从Discord用户那里窃取令牌和其他信息。
去年12月,RubyGems,一个用于Ruby Web编程语言的开源软件包存储库和管理器,在发现其中两个软件包被恶意软件包围后,不得不将其两个软件包脱机。
这些gems包含的恶意软件会在受感染的Windows机器上持续运行,并将它在用户剪贴板上找到的任何比特币或加密货币钱包地址替换为攻击者的地址。
Sonatype研究员Axa Sharma说:“我们屡次看到…GitHub,npm和RubyGems受到了开源恶意软件的攻击 ,攻击者可以利用开源社区内部的信任来提供几乎所有恶意软件,从复杂的间谍特洛伊木马程序(例如njRAT)到CursedGrabber…… ”
