NuGet 平台出现多款恶意软件包,内含定于 2027 年至 2028 年激活的破坏载荷,攻击目标直指数据库部署环境与西门子 S7 工业控制设备。这些嵌入的恶意代码采用概率触发机制,是否激活取决于受感染设备上的一系列参数配置。
NuGet 是开源包管理器及软件分发系统,开发者可通过它下载现成的 .NET 类库并集成到自身项目中。
Socket 的研究人员在 NuGet 上发现 9 款恶意包,均以 "shanhai666" 为开发者名称发布,这些包表面具备合法功能,实则隐藏有害代码。
这些恶意包 " 有针对性地瞄准 .NET 应用中常用的三大数据库提供商(SQL Server、PostgreSQL、SQLite)"。其中最危险的是 Sharp7Extend 包——该包伪装成用于与西门子可编程逻辑控制器(PLC)进行以太网通信的合法 Sharp7 类库,专门针对其用户发起攻击。
Socket 研究人员表示:" 攻击者在可信的 Sharp7 名称后添加‘ Extend ’后缀,诱导那些搜索 Sharp7 扩展或增强功能的开发者下载。"
NuGet 平台上 "shanhai666" 账号共列出 12 款包,其中 9 款包含恶意代码,具体如下:
1. SqlUnicorn.Core
2. SqlDbRepository
3. SqlLiteRepository
4. SqlUnicornCoreTest
5. SqlUnicornCore
6. SqlRepository
7. MyDbRepository
8. MCDbRepository
9. Sharp7Extend
目前,该开发者账号下已无相关包列出,但需注意的是,这些包下架时下载量已接近 9500 次。
暗藏 " 定时炸弹 "
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 写入操作的完整性、检查安全系统日志中是否存在指令丢失或启动失败记录,并为关键操作部署写入验证机制。


登录后才可以发布评论哦
打开小程序可以发布评论哦