.NET 开发人员以恶意 NuGet 程序包为目标

.NET 开发人员以恶意 NuGet 程序包为目标

.NET 开发人员以恶意 NuGet 包为目标 PlatoBlockchain 数据智能。垂直搜索。人工智能。

面包师在 .NET 软件开发人员的 NuGet 存储库中托管的一打软件包实际上是恶意特洛伊木马组件,它们会破坏安装系统并下载具有后门功能的窃取密码的恶意软件。

软件供应链安全公司 JFrog 在 21 月 13 日发布的一份分析报告中表示,这 166,000 个软件包已被下载超过 1 次,并冒充了 Coinbase 和 Microsoft ASP.NET 等其他合法软件。 JFrog 在公司的研究人员注意到文件(init.psXNUMX)在安装时执行然后下载可执行文件并运行时发现可疑活动时检测到攻击。

尽管 .NET 和 C# 编程语言在攻击者中鲜为人知,但恶意代码的发现突显出攻击者正在进一步扩展到软件供应链,以此来危害粗心的开发人员,安全研究主管 Shachar Menashe 说。 J青蛙。

“让恶意代码在 NuGet 程序包安装上执行的技术虽然微不足道,但与 Python 或 JavaScript 相比,记录的更少,其中一些已被弃用,因此一些新手攻击者可能认为这是不可能的,”他说。 “也许 NuGet 可以更好地自动过滤恶意包。”

软件供应链越来越多地成为攻击者的目标,他们试图破坏开发人员的系统或通过开发人员的应用程序将未被注意的代码传播给最终用户。 Python 包索引 (PyPI) 和以 JavaScript 为中心的节点包管理器 (npm) 生态系统是 频繁 供应链攻击的目标 针对开源项目。

对 .NET 软件生态系统的攻击,包括 近 350,000 个独特的包裹, 据 JFrog 称,这是恶意软件包首次以 NuGet 为目标,尽管该公司指出垃圾邮件活动已经 之前将网络钓鱼链接推送给开发者.

域名仿冒仍然是一个问题

这次攻击凸显了域名仿冒仍然是一个问题。 这种攻击方式涉及创建与合法包具有相似发音名称(或具有常见拼写错误的相同名称)的包,希望用户输入错误的常见包或不会注意到这些错误。

JFrog 研究人员表示,开发人员在将新包纳入编程项目之前应该好好看看它们 Natan Nehorai 和 Brian Moussalli 在在线咨询中写道.

他们写道:“尽管之前没有在 NuGet 存储库中观察到恶意代码攻击,但我们至少能够找到最近一次使用域名仿冒等方法传播恶意代码的活动的证据。” “与其他存储库一样,在软件开发生命周期的每一步都应采取安全措施,以确保软件供应链保持安全。”

立即执行代码是有问题的

研究人员表示,由开发工具自动执行的文件是一个安全漏洞,应该消除或限制以减少攻击面。 与 Go 包生态系统相比,该功能是 npm 和 PyPI 生态系统存在中毒问题的重要原因。

“尽管发现的恶意包已从 NuGet 中删除,但 .NET 开发人员仍然面临恶意代码的高风险,因为 NuGet 包仍然包含在包安装后立即运行代码的工具,”JFrog 研究人员在博客文章中表示. “[A]虽然它已被弃用,但 Visual Studio 仍然支持[初始化]脚本,并且在安装 NuGet 包时将在没有任何警告的情况下运行。”

JFrog 建议开发人员检查导入和安装包中的拼写错误,并表示开发人员应确保不要“意外地将它们安装到他们的项目中,或将它们作为依赖项提及,”该公司表示。

另外,开发者应该查看包的内容,确保没有正在下载并自动执行的可执行文件。 虽然此类文件在某些​​软件生态系统中很常见,但它们通常表明存在恶意。

JFrog 的 Menashe 说,通过各种对策,NuGet 存储库以及 npm 和 PyPI 正在缓慢但肯定地消除安全漏洞。 

“我不希望 NuGet 在未来成为更多的目标,特别是如果 NuGet 维护者要完全取消对在安装包时运行代码的支持——他们已经部分完成了,”他说。

时间戳记:

更多来自 暗读