最新消息:关注人工智能 AI赋能新媒体运营

恶意NuGet包锁定工控设备及三种常见数据库,并以随机方式决定是否终止应用程序运行

科技资讯 admin 浏览

一般而言,黑客散布恶意NPM与PyPI包,或上传有问题的Visual Studio Code(VS Code)扩展程序,攻击目标几乎都是针对开发环境,但最近疑似出现针对工业控制系统(ICS)的活动。

安全公司Socket近日发现9个恶意NuGet包,攻击者主要针对工业环境的设备,这些包发布于2023至2024年,并在受害设备的数据库中注入延迟执行的有效载荷。一旦恶意程序启动,可能在数据库查询过程中强制终止主机应用程序的进程。这些包均由同一作者发布,累计被下载9,488次。NuGet是微软为.NET平台打造的包管理系统,Socket已于11月5日通报此事,NuGet表示正在调查并试图移除。

上述包均具备攻击者宣称的功能,绝大部分(99%)代码与正常功能相关,真正的有效载荷仅不到20行代码。特别的是,这些代码被嵌入数千行代码中,难以察觉;即使安全工具发现异常,也不易将其识别为攻击行为,因为直接运行这些代码时,通常只会表现为随机崩溃,而非系统性攻击。

在这些恶意包中,最引起Socket关注的是Sharp7Extend。攻击者采用“拼写混淆”(Typosquatting)手法,模仿名为Sharp7的库。该库使用.NET开发,用于与西门子S7可编程逻辑控制器(PLC)通信。由于恶意包捆绑了完整的Sharp7,具备完整功能,开发人员在测试时会看到包按预期运行,不易察觉恶意代码在后台同时执行。

此外,攻击者滥用C#的扩展方法(extension methods),使恶意软件能够在所有数据库和PLC操作中注入恶意逻辑。这种机制的主要用途是让开发人员无需修改原始代码,即可为现有类型添加新方法。

该手法如何运作?每当应用程序执行数据库查询或PLC操作时,这些扩展方法会自动运行并检查日期,通过后生成1至100之间的随机数,若数值超过80,恶意程序便会直接终止应用程序,且不产生任何警告信息或错误日志。

此外,Socket指出,在恶意包启动30至90分钟后,Sharp7的功能会出现异常,约80%写入PLC的操作会失败,且不显示任何错误信息,导致相关数据完整性受损。

攻击者还采用多种手段精心策划攻击,例如该作者发布的NuGet包中有3个完全无害,下载量占所有包的四成,显然这些无害包用于降低开发人员的戒心。此外,这批恶意包不仅针对工控平台,也针对.NET应用最常见的三种数据库(SQL Server、PostgreSQL和SQLite)发起攻击。

关于攻击者身份,根据其账户名称可能源自《山海经》,加上代码中出现简体中文注释,以及部分元数据包含中文字符,Socket研判攻击者应来自中国。