发布于12月3日12月3日 NuGet平台上出现了多个恶意软件包,其中包含计划于2027年至2028年激活的破坏性负载。攻击目标直接针对数据库部署环境和西门子S7工控设备。这些嵌入的恶意代码采用概率触发机制,是否被激活取决于受感染设备上的一系列参数配置。 NuGet 是一个开源包管理器和软件分发系统,开发人员可以通过它下载现成的.NET 类库并将其集成到自己的项目中。 Socket 研究人员在NuGet 上发现了9 个恶意软件包,全部以开发者名称“shanhai666”发布。这些软件包看似具有合法功能,但实际上隐藏着有害代码。 这些恶意软件包“针对.NET 应用程序中常用的三大数据库提供商(SQL Server、PostgreSQL、SQLite)”。其中最危险的是Sharp7Extend 包——,它伪装成合法的Sharp7 类库,用于与西门子可编程逻辑控制器(PLC) 进行以太网通信,并专门针对其用户。 Socket 研究人员表示:“攻击者在受信任的Sharp7 名称中添加‘Extend’后缀,以诱导搜索Sharp7 扩展或增强功能的开发人员下载它。” NuGet平台上的“shanhai666”账号共列出了12个包,其中9个包含恶意代码,如下: 1.SqlUnicorn.Core 2.SqlDb存储库 3.SqlLite存储库 4.SqlUnicornCore测试 5.SqlUnicornCore 6. SQL存储库 7.MyDb存储库 8.MCDb存储库 9.Sharp7扩展 目前,该开发者帐户下没有列出相关软件包,但需要注意的是,这些软件包在被删除时已被下载了近9,500 次。 隐藏的“定时炸弹” Socket研究人员指出,这些恶意包中99%都是合法代码,造成了安全可信的假象,并且只嵌入了大约20行恶意负载。 Socket 在本周发布的一份报告中解释道:“该恶意软件利用C# 扩展方法,秘密地将恶意逻辑注入到每个数据库操作和PLC 操作中。” 每次应用程序执行数据库查询或PLC 操作时都会触发这些扩展方法。同时,该代码将受感染系统的当前日期与范围从2027年8月8日到2028年11月29日的硬编码触发日期进行比较。 2028 年11 月触发日期 如果日期条件匹配,代码将创建一个“Random”类来生成1 到100 之间的随机数。如果该值大于80(触发概率为20%),则将调用“Process.GetCurrentProcess().Kill()”函数立即终止主机进程。 对于频繁调用事务或连接方法的典型PLC 客户端来说,这将导致操作操作立即中断。 伪装成合法Sharp7类库(西门子S7 PLC中常用的.NET通信层)的Sharp7Extend包使用相反的逻辑:在20%的情况下直接终止PLC通信。该机制将于2028年6月6日到期。 Sharp7Extend包还包含第二种破坏手段:代码尝试读取不存在的配置值,导致初始化操作不可避免地失败。 第三种机制为内部PLC操作创建过滤值,并设置30至90分钟的加载执行延迟。延时结束后,通过过滤器的PLC写操作有80%的概率被篡改,从而导致执行器无法接收指令、设定值无法更新、安全系统无法启动、生产参数无法修改等严重后果。 PLC写入损坏 Socket 研究人员表示:“通过BeginTran() 函数进行的随机即时进程终止,再加上通过ResFliter 进行的延迟写入篡改,会产生一种随着时间的推移而演变的复杂的多层攻击。” 目前尚不清楚这些恶意扩展的具体攻击目标和来源,但建议潜在受影响的组织立即检查资产是否安装了上述9个软件包。如果是这样,他们必须假设自己已受到损害并采取对策。 对于运行Sharp7Extend包的工业环境,需要检查PLC写操作的完整性,检查安全系统日志中是否有指令丢失或启动失败记录,并对关键操作部署写验证机制。