研究人员发现新的 ICS 恶意软件工具包旨在导致电力中断

news2024/12/26 10:58:48

在过去几年中,国家支持的攻击者一直在提高攻击电网等关键基础设施以造成严重破坏的能力。

这个武器库的新成员是一个恶意软件工具包,它似乎是由一家俄罗斯网络安全公司为红队演习开发的。

该恶意软件被 Mandiant 的研究人员称为 COSMICENERGY,它可以与远程终端单元 (RTU) 和其他操作技术 (OT) 设备交互,这些设备通过专门的 IEC 60870-5-104 (IEC-104) 协议进行通信,通常用于电气工程和电力自动化。

研究人员在他们的报告中说:COSMICENERGY 是能够造成网络物理影响的专门 OT 恶意软件的最新例子,这种影响很少被发现或披露。

对恶意软件及其功能的分析表明,它的功能可与之前的事件和恶意软件中使用的功能相媲美,例如 INDUSTROYER 和 INDUSTROYER.V2,这两种恶意软件都是过去部署的恶意软件变体,通过 IEC-104 影响电力传输和分配”。

受过去攻击启发的红队框架

INDUSTROYER,也称为 Crashoverride,是一种恶意软件程序,于 2016 年用于攻击乌克兰电网,导致该国首都基辅五分之一的地区断电一小时。

恶意软件通过充当数据历史记录器的 MS-SQL 服务器到达 OT 网络上的 RTU,然后通过 IEC-104 发出开/关命令以影响电力线开关和断路器。

INDUSTROYER 的创建和使用归功于 Sandworm,这是一个 APT 组织,据信是俄罗斯军事情报部门 GRU 内的网络战单位。

2022 年,Sandworm 试图使用名为 INDUSTROYER.V2 的更新版恶意软件再次攻击乌克兰的电网。

2021 年 12 月,俄罗斯某人将 Mandiant 发现的新 COSMICENERGY 工具包上传到公共恶意软件扫描服务。

对该代码的分析表明,它是为一家名为 Rostelecom-Solar 的俄罗斯网络安全公司主持的红队演习而创建的,该公司与俄罗斯政府有联系。

虽然我们还没有找到足够的证据来确定 COSMICENERGY 的起源或目的,但我们认为该恶意软件可能是由 Rostelecom-Solar 或关联方开发的,目的是重现针对电网资产的真实攻击场景。

该恶意软件可能用于支持演习,例如 Rostelecom-Solar 在 2021 年与俄罗斯能源部合作举办的演习或在 2022 年为圣彼得堡国际经济论坛 (SPIEF) 举办的演习。

Rostelecom-Solar 已获得俄罗斯政府的资助,用于培训网络安全专家并开展电力中断和应急响应演习。

恶意软件工具包中的一个模块包含对 Solar Polygon 的引用,该术语的搜索者将其与 Rostelecom-Solar 联系起来。

根据Mandiant的说法,尽管它与红队演习有明显的联系,但这种恶意软件工具包有可能已经或可以重新用于现实世界的攻击,包括之前使用私人承包商开发工具的俄罗斯民族国家行为者。

手动部署的两部分恶意软件负载

COSMICENERGY 由两部分组成:一个用 Python 编写,一个用 C++ 编写。基于 Python 的组件被 Mandiant 称为 PIEHOP,旨在连接到 MS-SQL 服务器并上传文件或发出命令。

连接后,它会部署名为 LIGHTWORK 的第二个组件,该组件旨在通过 TCP 通过 IEC-104 向连接的 RTU 发出开和关命令。

它制作可配置的 IEC-104 应用服务数据单元 (ASDU) 消息,以将 RTU 信息对象地址 (IOA) 的状态更改为开或关。LIGHTWORK 利用目标设备、端口和 IEC-104 命令的位置命令行参数。

IOA 与 RTU 上的输入和输出相关联,这取决于配置和部署可以映射到连接的断路器或电源线开关。不同 RTU 制造商、单个设备甚至环境之间的 IOA 映射可能不同,这意味着攻击者需要拥有关于他们所针对的部署的预先存在的侦察信息。

分析的 LIGHTWORK 样本有八个硬编码 IOA,但在不知道确切的目标资产的情况下,很难确定攻击者在向它们发出命令时的意图。

此外,PIEHOP 组件和恶意软件本身没有任何内置的网络发现功能,这意味着攻击者需要已经拥有有关目标 MSSQL 服务器和 RTU 的信息,例如凭据和 IP 地址,才能成功部署组件。这使它成为入侵后工具包。

虽然 COSMICENERGY 不与以前的 OT 恶意软件工具共享任何代码,但它确实借鉴了其中几个工具的技术,除了 INDUSTROYER:IRONGATE 和 TRITON 也观察到使用 Python 进行 OT 恶意软件开发;使用实施专有 OT 协议并降低开发此类威胁的门槛的开源库;滥用 IEC-104 等设计不安全且缺乏身份验证或加密机制的协议。

如何缓解和检测 CONSMICENERGY

虽然没有证据表明 COSMICENERGY 已被用于野外攻击,但这种可能性不容忽视,至少它可以为其他 OT 恶意软件开发人员提供灵感,就像 INDUSTROYER 为其创建者提供灵感一样。

报告包含妥协指标和文件哈希值,该公司还建议组织进行主动威胁搜寻:

  • 为皇冠上的明珠系统(例如人机界面 (HMI)、工程工作站 (EWS) 和环境中的 OPC 客户端服务器)建立基于主机的日志的收集和聚合,并查看日志以获取 Python 脚本或未经授权的代码执行的证据这些系统。

  • 识别并调查在 OT 系统或有权访问 OT 资源的系统上创建、传输和/或执行未经授权的 Python 打包可执行文件(例如 PyInstaller 或 Py2Exe)。

  • 监视有权访问 OT 资源的系统,以创建合法的临时文件夹、文件、工件和外部库,作为执行打包的 Python 脚本的证据,例如。创建临时“_MEIPASS”PyInstaller 文件夹。

  • 监控可访问 OT 系统和网络的 MSSQL 服务器以获取以下证据:MSSQL 服务器和凭据的侦察和枚举活动、与 MSSQL 服务器的未授权网络连接 (TCP/1433) 以及不规则或未授权的身份验证、SQL 扩展存储过程的启用和使用Windows shell 命令执行以及 base64 编码可执行文件的传输、创建、暂存和解码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/581735.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

资源配额(ResourceQuota) 资源限制(LimitRange)

资源配额 ResourceQuota 资源配额 ResourceQuota:限制命名空间总容量。 当多个团队、多个用户共享使用K8s集群时,会出现不均匀资源使用,默认情况下先到先得,这时可以通过ResourceQuota来对命名空间资源使用总量做限制,…

当 BLIP-2 遇上 Diffusion!可控图像生成的最优解,图像主题、风格任意切换,指哪改哪

夕小瑶科技说 原创 作者 | 智商掉了一地、ZenMoore 关于 P 图,本懒人想说的简直太多了,之前想换个背景总会把主体抠成毛边,随着最近越来越多的强大图像或多模态工具的诞生,人们在图像创作方面的技术实力越来越强大。比如&#x…

chatgpt赋能python:Python中cwd的介绍与使用

Python中cwd的介绍与使用 在Python编程中,经常需要获取当前工作目录(current working directory,缩写为cwd),以便进行文件操作、路径拼接等操作。本文将介绍如何使用Python中的os模块和pathlib模块获取和修改cwd&…

整型在内存中的存储,整型最大值最小值的推导,以及大小端的介绍

整数在内存中的存储 我们知道C语言有以下基本的整型类型&#xff1a; char //字符型 short //短整型 int //整型 long //长整型 long long //更长的整型我们可以用操作符sizeof和在<limits.h>头文件下&#xff0c;可以查看到各基本数据类型的所占字节的大小以及整形所…

【笔记整理】常见聚类算法

【笔记整理】常见聚类算法 文章目录 【笔记整理】常见聚类算法一、均值偏移 - Mean-shift&#xff08;★★★★&#xff09;1、概述 & 图解&#xff08;“偏心”&#xff09;2、公式 & 步骤1&#xff09;基本公式&#xff08;“偏移量更新圆心”&#xff09;2&#xff…

chatgpt赋能python:Python两数相加代码:基础知识和实现方法

Python两数相加代码&#xff1a;基础知识和实现方法 简介 Python是一门高级编程语言&#xff0c;以其简洁、易读的语法和强大的库而被广泛应用于数据分析、机器学习、Web开发等领域。在这篇文章中&#xff0c;我们将介绍如何使用Python编写一个简单的两数相加代码&#xff0c…

约瑟夫环的线性解法

参考:https://www.luogu.com.cn/problem/P8671 参考:https://zhuanlan.zhihu.com/p/121159246 参考:https://blog.csdn.net/doge__/article/details/82429348 #include <bits/stdc.h> using namespace std; int n,k,s; int main(){cin>>n>>k;for(int i2;i&…

chatgpt赋能python:Python中的importmath

Python中的import math Python是一种高级编程语言&#xff0c;有众多强大的功能库可供使用。其中一个非常常用的功能库就是math。math库提供了许多用于进行数学运算的函数。在本文中&#xff0c;我们将介绍Python中的import math。 什么是import math&#xff1f; 在Python中…

chatgpt赋能python:Python中Decode函数详解:什么是Decode函数,它有什么作用?

Python中Decode函数详解&#xff1a;什么是Decode函数&#xff0c;它有什么作用&#xff1f; 介绍Decode函数 在Python编程中&#xff0c;我们经常需要处理文本数据。数据的处理可能涉及到不同的编码格式&#xff0c;比如ASCII、UTF-8、GBK等等。而Decode函数就是Python中用于…

安装并新建windows下wxwroks7.0 bootrom工程

双击steup.exe 直接next 直接next 选择typical&#xff0c;然后next I accept 安装完成finish 现在双击Workbench 4&#xff0c;新建vxworks7.0工程&#xff0c;会出现下面的情况&#xff0c;因为没有licence 安装licence&#xff0c;将zwrsLicense-vx7-perm.lic粘贴到安装目…

chatgpt赋能python:Python中的Dash框架:数据可视化新选择

Python中的Dash框架&#xff1a;数据可视化新选择 随着大数据时代的到来&#xff0c;数据可视化成为日益重要的一环。Python早已成为数据科学家和工程师的首选语言之一&#xff0c;然而如何将数据转化为可视化图表呢&#xff1f;这时候&#xff0c;Dash框架应运而生。 什么是…

AHB-to-APB Bridge——08burst_test(rdy、nrdy、slverr、tight)、地址

-------------- burst_test:与single_test不同的是&#xff0c;需要在run_phase中使用fork join 让AHB侧和APB侧同时工作&#xff08;不能等AHB都发完APB才工作&#xff09;&#xff1b;num_apb_seq为APB已传输的个数&#xff0c;当APB侧传输数据的个数&#xff0c;大于或等于A…

dbn_svm电池容量soc预测,深度信念网络DBN+支持向量机SVM的电池容量SOC预测

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) LSTM长短期神经网络的原理 DBN+SVM的时间序列电容预测 基本结构 主要参数 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,本文用DBN提取特征,用SVM分类,…

chatgpt赋能python:Python中0.0和0的相同性探究

Python中0.0和0的相同性探究 Python是一种动态且解释型的编程语言&#xff0c;被广泛应用于编写Web应用程序、数据分析、人工智能等领域。当我们在Python中进行数值比较时&#xff0c;可能会遇到这样一个问题&#xff1a;0.0和0是否相同&#xff1f;本文将会进行探究&#xff…

【Python】一个简单的小程序,实现批量修改图片格式(附完整代码及程序)

程序下载地址&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1ser7iEMRS54syvwl1cck1Q?pwdjr66 提取码&#xff1a;jr66 一、完整代码 如果想要测试代码&#xff0c;记得在使用前先保证已经安装了Python的PIL模块 import os from tkinter import Tk, Button, messa…

数据库基础——7.多表查询

这篇文章来讲一下数据库中的多表查询 目录 1. 一个案例引发的多表连接 1.1 案例说明 1.2 笛卡尔积&#xff08;或交叉连接&#xff09;的理解 1.3 案例分析与问题解决 2. 多表查询分类讲解 2.1 等值连接 vs 非等值连接 2.1.1等值连接 2.1.2 非等值连接 2.2 自连接 vs…

chatgpt赋能python:PythonDemo:快速了解Python编程语言

Python Demo&#xff1a;快速了解Python编程语言 如果你是一个对编程感兴趣的人&#xff0c;或者正在学习编程&#xff0c;那么你一定听说过Python这个编程语言。Python是一个非常易学易用的语言&#xff0c;同时也是非常流行的语言之一。Python具有众多的库和框架&#xff0c…

从RE到RSE:聊聊无线产品EMC认证测试中的辐射项(下)

当无线产品开启个人通信时代之际&#xff0c;EUT这个载体变了&#xff0c;辐射发射测试标准要不要变&#xff1f;怎么变&#xff1f; 回答这个问题的不再是ANSI和CISPR&#xff0c;而是联合国下属机构国际电信联盟无线电通信部门&#xff08;ITU-R&#xff09;以及著名的移动通…

Django学习笔记002之resetfull应用

学习目标&#xff1a; 学习resetfull接口 掌握Django web基础设施 学习内容&#xff1a; 1.学习resetfull接口 简介 人工智能解释&#xff1a; 应用场景 以下是人工智能使用Django框架实现的restfull接口代码&#xff1a; #views.py from django.http import JsonRespon…

maven环境变量配置zsh: command not found: mvn。

在输入命令vim ~/.zshrc的时候出现下面的报错&#xff1a; 解决办法 第一步输入下面的命令vim -r 文件名&#xff08;文件名也就是第二行双引号里面的所有字母字符&#xff09; 第二步输入下面的命令rm -f xx.swp 在配置好maven的环境变量但是在输入mvn -v的时候会报错 zsh:…