两年前,一个名为“shanhai666”的账户上传了九个恶意NuGet包,由此引发了一场复杂的软件供应链攻击。.
据供应链安全公司Socket称,这些软件包已被累计下载9488次。此外,还设定了2027年8月和2028年11月的特定触发条件。.
Socket团队成员Kush Pandya发现了此次攻击活动的幕后黑手,该黑手共发布了12个软件包。其中9个软件包包含恶意程序,而3个则是功能齐全的实现,它们将其余软件包伪装成“可信”的程序。
Pandya 认为,黑客将合法库与恶意库结合使用,诱骗开发人员安装软件包,而未在例行测试中发现异常。.
他在 11 月 6 日的一份报告中写道:“合法的功能掩盖了隐藏在数千行合法代码中的约 20 行恶意有效载荷,并且延迟了发现,因为即使在激活之后,崩溃也会表现为随机错误而不是matic 攻击。”.
合法代码中隐藏的 9 个 NuGet 威胁
九个 已dent的 恶意软件包可能会影响 .NET 应用程序中使用的所有三大数据库提供商:Microsoft SQL Server、PostgreSQL 和 SQLite。其中一个名为 Sharp7Extend 的软件包专门针对用于制造和过程自动化的工业 PLC。
Socket 的研究表明,该数据库可能容易受到双重用途的供应链攻击,从而威胁软件开发和关键基础设施运营。.
Pandya 将 Sharp7Extend 软件包称为最危险的 恶意软件包,它是合法 Sharp7 库 .NET 实现的拼写错误,该库用于与 Siemens S7 可编程逻辑控制器通信。

在受信任名称后添加“Extend”可能会帮助恶意软件包“dent地”通过搜索 Sharp7 改进功能的自动化工程师安装代码。该软件包将完整的、未经修改的 Sharp7 库与其恶意有效载荷捆绑在一起。在测试期间,标准的 PLC 通信可能看起来一切正常,但嵌入的恶意软件却被掩盖了。.
“Sharp7Extend 针对工业 PLC 实施双重破坏机制:立即随机终止进程,以及在安装后 30-90 分钟开始的静默写入失败,”这位安全研究人员说。.
这些恶意软件包利用 C# 扩展方法,在不修改原始代码的情况下,向数据库和 PLC 操作中添加危险代码。对于数据库软件包,会在命令类型中添加 `.Exec()` 方法;而 Sharp7Extend 则会向 S7Client 对象添加 `.BeginTran()` 方法。.
这些扩展程序会在应用程序每次执行 PLC 操作或查询时matic运行。触发日期过后,恶意软件会生成一个介于 1 到 100 之间的随机数。.
如果该数值超过 80(这种情况有 20% 的概率会发生),该程序包会立即使用 `Process.GetCurrentProcess().Kill()` 终止正在运行的进程。此时进程会突然终止,不会发出任何警告或日志记录,因此不会出现类似网络不稳定、硬件故障或其他“非警报性”系统错误的情况。.
Sharp7Extend 还通过一个定时器实现了延迟写入损坏机制,该定时器设置了 30 到 90 分钟的宽限期。宽限期过后,名为 ResFliter.fliter() 的过滤方法会静默地使 80% 的写入操作失败。.
受影响的方法包括 WriteDBSingleByte、WriteDBSingleInt 和 WriteDBSingleDInt。操作看似成功,但数据实际上并未写入 PLC。.
定时器设置为2027年8月至2028年11月
Socket Security 的报告称,此次攻击活动中某些以数据库为中心的软件包,包括 MCDbRepository,计划于 2027 年 8 月 8 日执行其有效载荷。SqlUnicornCore 和 SqlUnicornCoreTest 可能于 2028 年 11 月 29 日激活。.
Pandya解释说:“这种分阶段的方法让攻击者有更长的时间来收集受害者,然后再触发延迟激活的恶意软件,同时立即破坏工业控制系统。”.
Socket 的调查发现,“shanhai666”这个名称和部分源代码源自中国。.
9 月,网络安全分析师在微软互联网信息服务 (IIS) 服务器上发现了自 2003 年以来一直在 利用漏洞的 。该操作涉及用于远程命令执行和搜索引擎优化 (SEO) 欺诈的恶意 IIS 模块。

