摘要:据软件供应链安全公司 Socket 称,这些软件包由名为“ shanhai666 ”的用户于 2023 年和 2024 年发布,旨在 2027 年 8 月和 2028 年 11 月的特定触发日期后运行恶意代码。这些软件包总共被下载了 9488 次。
研究人员发现一组九个恶意 NuGet 包能够投放延迟引信有效载荷,以破坏数据库操作和破坏工业控制系统。
据软件供应链安全公司 Socket 称,这些软件包由名为“ shanhai666 ”的用户于 2023 年和 2024 年发布,旨在 2027 年 8 月和 2028 年 11 月的特定触发日期后运行恶意代码。这些软件包总共被下载了 9488 次。
安全研究员 Kush Pandya表示:“最危险的软件包 Sharp7Extend 针对工业 PLC,具有双重破坏机制:安装后 30-90 分钟内立即随机终止进程和静默写入故障,这会影响制造环境中的安全关键系统。”
恶意软件包列表如下:
MyDbRepository(上次更新时间:2023年5月13日)
MCDbRepository(上次更新时间:2024年6月5日)
Sharp7Extend(最后更新于2024年8月14日)
SqlDbRepository(上次更新时间:2024年10月24日)
SqlRepository(上次更新时间:2024年10月25日)
SqlUnicornCoreTest(上次更新时间:2024年10月26日)
SqlUnicornCore(上次更新时间:2024年10月26日)
SqlUnicorn.Core(上次更新时间:2024年10月27日)
SqlLiteRepository(上次更新时间:2024年10月28日)
Socket 表示,所有九个恶意软件包都能按宣传的那样运行,这使得攻击者能够赢得下游开发者的信任,这些开发者最终可能会下载这些软件包,却没有意识到它们内部嵌入了一个逻辑炸弹,该炸弹计划在未来引爆。
经查,该攻击者共发布了 12 个软件包,其中其余 3 个软件包运行正常,不包含任何恶意功能。所有这些软件包均已从 NuGet 中移除。该公司补充说,Sharp7Extend 旨在攻击合法 Sharp7 库的用户,该库是一个用于与西门子 S7 可编程逻辑控制器 (PLC) 通信的 .NET 实现。
虽然将 Sharp7 打包到 NuGet 包中会给人一种虚假的安全感,但这掩盖了这样一个事实:当应用程序执行数据库查询或 PLC 操作时,该库会利用 C# 扩展方法偷偷注入恶意代码。
Pandya解释说:“扩展方法允许开发人员在不修改原始代码的情况下向现有类型添加新方法——这是C#的一项强大功能,攻击者会利用它进行拦截。每次应用程序执行数据库查询或PLC操作时,这些扩展方法都会自动执行,并将当前日期与触发日期进行比较(大多数包中硬编码了触发日期,Sharp7Extend中则使用了加密配置)。”
一旦触发日期到来,恶意软件有 20% 的概率终止整个应用程序进程。以 Sharp7Extend 为例,恶意逻辑会在安装后立即激活,并持续运行至 2028 年 6 月 6 日,届时终止机制将自动停止。
该软件包还包含一项功能,可在 30 至 90 分钟的随机延迟后,有 80% 的概率阻止对 PLC 的写入操作。这也意味着,一旦宽限期结束,随机进程终止和写入失败这两个触发器将同时生效。
另一方面,与其他软件包关联的某些 SQL Server、PostgreSQL 和 SQLite 实现分别将于 2027 年 8 月 8 日(MCDbRepository)和 2028 年 11 月 29 日(SqlUnicornCoreTest 和 SqlUnicornCore)触发。
Pandya表示:“这种分阶段的方法让攻击者有更长的时间来收集受害者,然后再触发延迟激活的恶意软件,同时立即破坏工业控制系统。”
目前尚不清楚是谁发动了此次供应链攻击。
该公司总结道:“此次攻击活动展示了在 NuGet 供应链攻击中罕见的复杂技术组合。2024 年安装软件包的开发人员到 2027-2028 年数据库恶意软件触发时,可能已经转移到其他项目或公司,而 20% 的概率执行机制会将系统性攻击伪装成随机崩溃或硬件故障。”
“这使得事件响应和取证调查几乎不可能,组织无法追溯恶意软件的引入点,无法确定是谁安装了被入侵的依赖项,也无法建立清晰的入侵时间线,从而有效地抹去了攻击的痕迹。”
技术报告:
来源:会杀毒的单反狗