APP下载

乌克兰电力系统BlackEnergy病毒分析与防御

2017-02-24王勇王钰茗张琳张林鹏

网络与信息安全学报 2017年1期
关键词:攻击者漏洞组件

王勇,王钰茗,张琳,张林鹏

(上海电力学院计算机科学与技术学院,上海 200090)

乌克兰电力系统BlackEnergy病毒分析与防御

王勇,王钰茗,张琳,张林鹏

(上海电力学院计算机科学与技术学院,上海 200090)

2015年12月,乌克兰电力系统遭到BlackEnergy病毒攻击,导致伊万诺—弗兰科夫斯克州地区发生多处同时停电的事故,该病毒也威胁到我国电力系统安全。通过获取不同版本的BlackEnergy病毒样本,构建了分析环境,发现了BlackEnergy攻击方式,并给出了防御方法。

BlackEnergy病毒;病毒分析;入侵防御

1 引言

2015年12月14日,乌克兰的伊万诺—弗兰科夫斯克州地区[1]发生多处同时停电的事件,黑客控制了电力系统,并远程关闭了电网。紧接着,2015年12月27日,乌克兰电力公司网络系统再次遭到黑客攻击,这是首次由黑客攻击行为导致的大规模停电事件,据统计,此次影响导致成千上万的乌克兰家庭无电可用。乌克兰的国家安全局(SBU)表示,这起停电是由黑客以恶意软件攻击电网所造成,2016 年 1 月 4 日,安全公司iSight Partners[2]表示乌克兰电力系统感染了名为BlackEnergy的恶意软件,并且已取得造成该起大规模停电的恶意程序代码。

在此事件发生后的第一时间,由哈尔滨安天科技股份有限公司、北京四方继保自动化股份有限公司与复旦大学创建的联合分析小组正式启动,哈尔滨安天科技股份有限公司[3]对乌克兰电力运行系统和相关样本进行分析后指出,这次乌克兰停电事故是以 BlackEnergy病毒为主要攻击手段,通过BOTNET 体系进行前期的资料采集和环境预置的有目的网络攻击事件;将恶意代码通过电子邮件传播,通过远程控制下达断电指令来操控和毁坏SCADA系统;同时以DDoS服务电话作为干扰,最终感染了至少3个地区[4]电力部门的基础设施,导致发电设备产生故障,引起公众恐慌。

就我国电力系统情况而言,在电力系统中应用最为广泛的SCADA系统多以相对封闭网络为主,通过横向隔离装置[4]进行单比特的校验和单比特的回送确认,像 BlackEnergy这样的恶意代码很难渗入到电力二次系统。但是,目前国内的电力系统仍然有许多潜在风险,安全威胁主要来自外部与内部2个方面:1) 外部威胁,如非授权用户进入控制系统,访问内部资源,造成机密信息泄露、系统控制权被夺取等无法挽回的影响;2) 内部威胁主要集中在自身故障、授权用户对系统的攻击等方面。对此次乌克兰事件,如果在攻击者病毒中加入所需要的控制指令或攻击代码,只要设法将病毒带入系统环境,那么在访问文件或者调用动态链接库时,就会触发病毒,再加入相关的定时器代码,与本地时钟同步后,就可以对电厂发起定时攻击,危害电力系统的运行。

本文通过对 BlackEnergy样本的分析,简述其攻击过程、恶意破坏行为以及造成的后果,概括了 BlackEnergy的演变过程及每一代BlackEnergy的特点,给出了BlackEnergy的漏洞封堵和防御措施。

2 BlackEnergy病毒简介

BlackEnergy的雏形最早形成于2007年,是一种近年来颇为流行的攻击工具,广泛用于实施网络犯罪活动。

BlackEnergy已经形成了僵尸网络(botnet)体系,它是采集目标节点相关信息的有力工具,通过配置build_id[5]的值来甄别受感染的目标,再从中选取较为容易攻破的系统进行内网纵深攻击。经过不断发展,BlackEnergy开始支持Rootkit的技术、组件技术、远程代码执行、采集信息等一系列功能,更具有威胁的是,BlackEnergy可以针对不同攻击目标,由黑客选择特定的组件组合使用。其更进一步的升级包括支持代理服务器、越过用户账户便能够认证(UAC)技术,以及针对64 bit Windows系统的签名驱动等。

2.1 BlackEnergy 1

最早的BlackEnergy主要用于DDoS攻击。它配有一套完整的生成器[6],被触发后就会自动生成客户端程序和基于C&C(指挥和控制)服务器的命令生成脚本。攻击者使用它建立僵尸网络,只需在 C&C服务器端下达简单指令,僵尸网络受害主机便会统一地执行这一指令。与众不同的是,这种bot并不与僵尸网络IRC通信,也看不到任何从这个服务器上发起的攻击。不同于传统的 IRC,这是一个小(小于 50 kB)二进制的Windows平台使用的简单程序。

2.2 BlackEnergy 2

BlackEnergy 2[5]依然是一个DDoS类僵尸网络程序,但在新的样本中发现增加了加密程序,以欺瞒病毒软件。驱动文件释放后以名为服务方式注入系统进程,随后远程连接服务器,下载攻击插件,根据配置文件对目标发起DDoS攻击。

图1 BlackEnergy 2 工作原理

任何可以接触到 BlackEnergy 2的人都可以非常容易地利用它发起攻击,而不需要复杂的部署和管理。黑客利用支持升级的组件更容易修改和扩展其功能,只要远程控制中心发布命令,就可以快速实现组件的安装和升级。

BlackEnergy 2的3个主要功能组件是SYN、HTTP以及DDoS攻击组件[5],样本将下载后的攻击组件加载到内存中执行,实现对服务器的远程控制。BlackEnergy利用Windows Installer安装包,将自身的安装程序伪装成名为 msiexec.exe的系统进程。此版本的最核心功能位于主DLL组件。该组件可以根据攻击者的目标定制一个维护僵尸网络的框架,用于与 C&C进行通信,同时它本身被隐藏在驱动组件中,文件系统无法察觉。但是主DLL组件只提供了一个最小的命令集合。

表1为乌克兰病毒变种所支持的命令集合。主DLL组件通过一系列的API调用和组件进行通信,它为插件产生一些函数调用,同时,插件也依赖导出2个函数才能工作。

表1 乌克兰病毒变种所支持的命令集合

2.3 BlackEnergy 3

根据 2014年 9月 F-Secure[7]发布的报告,BlackEnergy又出现了新的变种,BlackEnergy2的代码几乎全部被重写而且采用不同的格式对配置数据进行保存。该变种不再使用驱动组件,但目前对该版本的攻击事件还比较稀少。

BlackEnergy3 安装程序的文件名仍为msiexec.exe,它的释放器会在前台打开一个看似无害的文件,从而悄然释放病毒文件并执行。曾经检测到样本伪装成一个Adobe Flash安装程序,它不使用任何欺骗性的文档或应用层程序,而且重启后便不再运行。此版本实现了代理服务器技术、使用Windows 64 bit环境下绕过UAC和驱动程序签名的相关技术。随着不断地演化,BlackEnergy不仅可以向Windows计算机发起攻击,还对基于ARM或MIPS架构的路由器和Linux系统造成破坏。

3 BlackEnergy样本分析

3.1 样本获取

在撰写本文时,笔者无法准确得知受害者是如何接收到BlackEnergy恶意软件的,但可以合理地推测出是他们在接收包含恶意附件的邮件时感染了该恶意软件。在各方面的努力下,笔者获取了一些 BlackEnergy样本,通过对其进行分析和筛选,选择具有典型代表的BlackEnergy 1样本和BlackEnergy 3样本,并对其分析过程进行详述。BlackEnergy 1样本带有一个构建器(builder)应用程序,生成感染受害者机器的客户端,同时该工具还配备了服务器端脚本,用于构建命令及控制(C&C)服务器。这些脚本也提供了一个接口,攻击者可以通过接口控制僵尸机。该工具具有简单易用的特点,即任何人只要能接触到这个工具,就可以利用它来构建自己的僵尸网络。

3.2 分析环境

由于BlackEnergy可以影响Windows 2000、Windows XP、Windows7、Vista等众多平台,本文对各个平台下的实验结果进行了对比和总结,并简要概括具有代表性的 Windows 平台下的实验过程和结果。为了更好地对 BlackEnergy样本进行监测,本文所涉及的测试都是在vmware虚拟机Windows XP、Windows 7 系统上进行的。

3.3 BlackEnergy病毒分析

图2为BlackEnergy病毒1.7版本的生成器界面;修改Web服务文件,如图3所示;登录C&C服务器,界面如图4所示;Web服务器运行界面如图5所示。

图2 BlackEnergy病毒1.7版本生成器界面

图3 Web服务文件

图4 Web服务器登录界面

图5 Web服务器运行界面

该 Web版本服务器将受害者机器相关信息Base 64编码后回传到C&C服务器中,可以看出Base 64解码后的内容就是服务器上的配置信息加上一个上线ID号,BlackEnergy配置还包含一个叫build_id的值,该字符串是个特殊字符串,用来甄别受感染个体。Base 64加密和解密分别如图6和图7所示。

图6 Base 64加密

图7 Base 64解密

程序在执行后,首先会查看当前系统是否安装病毒自身。如果没有,程序运行后会释放文件到系统目录下,名为mssrv32.exe,并创建一个互斥量来确保只运行一个程序,并删除自身程序,创建新的线程注入到SVCHOST.EXE中,联网访问服务器页面。

图8为释放文件到系统目录下并创建互斥量的代码。在文件的.bdata节中,存放着Base64编码数据。解码后得到的是生成器的配置信息。如图9所示。

图8 Ollydbg分析结果1

图9 Ollydbg分析结果2

病毒创建一个名为Microsoft defender update service的服务,如图 10所示。使用该名称来欺骗用户启动看似正常的系统安全服务程序,通过该服务程序启动病毒复制自身到Windows目录下的svchost.exe文件,如图11所示,启动命令行的是svchost.exe -service。

图10 创建Microsoft security update service服务

图11 Windows目录下的svchost.exe文件

程序运行后会释放文件到系统目录下,名为mssrv32.exe,并创建一个互斥量来确保只运行一个程序,并删除自身程序,创建新的线程注入到svchost.exe中,联网访问服务器页面。如图12和图13所示。

河南省旅游资源丰富,近年来旅游产业发展迅速。但由于旅游资源、旅游接待设施等客观原因,河南省旅游经济发展不均衡,城市间的旅游经济联系差异也较大。郑州市虽作为河南省中心城市,但增长极作用没有得到充分发挥,各城市间旅游经济联系不足,缺乏进一步发展的动力。而学者们对河南旅游经济的研究侧重于旅游经济的演化和发展对策[20-21],对河南省旅游经济联系的网络化探讨不足。本文借助万有引力模型,以旅游经济联系为基础,运用社会网络分析方法,对2010-2016年河南省18个城市之间旅游经济网络结构特征及其影响因素进行深入探讨,以期为河南省旅游业的持续协调发展提供理论指导。

然后,该BlackEnergy 客户端通过HTTP与C和 Cserver沟通。它使用 HTTP POST请求stat.php页,如图14所示。POST请求数据然后登录到“统计”表中,信息发送的 HTTP POST请求消息包括ID和建立ID参数。

ID参数是一个组合的SMB主机名和C:被感染机器的卷信息。DDoS攻击的 BlackEnergy僵尸网络可以启动控制的“洪水”命令的参数,如下。

icmp:一个基于icmp ping洪水。

syn:基于TCP syn洪水。

udp:基于udp流量洪水。

http:http GET请求洪水。这个命令格式的洪水如下。

URI http 〈主机名〉 〈可选〉,如“洪水 http www.li-da.org index . php”。

图12 成功创建并设置为自启动服务

图13 释放文件并创建互斥量

图14 使用HTTP POST请求stat.php页

data:一个基本的二进制包洪水。

例如,http攻击指令http_start,如图15所示。

图15 http攻击指令

stop命令指示的 bot客户端暂时停止 DDoS洪水,如图16所示。

图16 stop命令指示

die命令指示的bot客户端删除自己受感染的系统,它调用退出当前进程,终止进程并停止所有的DDoS活动。如图17所示。

图17 die命令指示

图18为BlackEnergy病毒的样本,DOC文档中包含了宏病毒,当用户启用宏,病毒就会伴随着文档的打开而自动进行感染系统。

图18 携带宏病毒的Excel文件

本文通过使用 oledump软件攻击不运行Word提取其中的宏,文件中包含的宏病毒一旦被打开就会自动释放.exe文件。如图19和图20所示。

图19 oledump提取宏代码 1

图20 oledump提取宏代码 2

如图21所示,首先通过25个函数定义768个数组,并在数组中写入二进制数据。

图21 oledump提取宏代码 3

宏指令通过循环将二进制数据写入到指定磁盘文件(“vba_macro.exe”),即 BlackEnergy Dropper,此文件随后通过Shell命令被执行。

4 BlackEnergy的攻击与防御

4.1 漏洞利用

Microsoft Windows OLE(对象链接与嵌入)是美国微软公司的一种允许应用程序共享数据和功能的技术。其中存在的一个漏洞CVE-2014-4114[8],几乎对目前所有Windows版本构成威胁,该漏洞以邮件附件为传播手段,在office文档中嵌入恶意程序。office2007系列组件是一个主要的漏洞攻击载体。

iSIGHT Partners厂商[9]宣称发现,新的0day被俄罗斯黑客用在针对北约的名为“SandWorm”的APT攻击中,该漏洞首次被发现。经过初步分析,CVE-2014-4114漏洞也能被BlackEnergy利用,其触发的核心在于 office系列组件加载 Ole对象,Ole对象可以通过远程下载,在加载 Ole包时,会下载2个文件,一个为inf文件,一个为gif(实质上是可执行病毒文件)。将下载的gif文件的后缀名改为exe并加入到开机启动项,此病毒文件就是 BlackEnergy。随后调用 C:Win dowsSystem32InfDefaultInstall.exe 执行下载下来的inf文件,从而造成了远程任意代码执行。

4.2 攻击步骤

攻击者首先将恶意代码嵌入电子邮件的office附件中,入侵目标主机后,利用漏洞CVE-2014-4114迷惑目标主机执行病毒exe程序,远程连接 C&C服务器进行交互,将目标主机的关键信息发送给攻击者。

宏病毒利用工控HMI(人机界面)远程执行漏洞(CVE-2014-0751[10])对内网发起攻击,远程攻击者可通过向TCP 10212端口发送特制报文利用该漏洞执行任意代码,从而控制内网的HMI。

攻击者将 BlackEnergy嵌入内网 HMI,BlackEnergy开启DropbearSSH[11]后门,SSH服务器连接端口6789。在被感染的内网运行SSH,攻击者可以进退自如。

攻击者启动BlackEnergy的KillDisk组件,该组件的主要目的是破坏原有数据,用随机数据覆盖原文件,并且让系统无法重启。

4.3 防御措施

通过对 BlackEnergy和乌克兰事件各方面的分析可以看出,SCADA系统很大程度上仍受制于所采用操作系统自身的漏洞和缺陷。因此本文从以下几个方面对SCADA系统进行安全防护。虽然过去的工控系统相对封闭,但是随着移动互联的发展,很多工控的采集点[11]都已经暴露在互联网上,可以轻易被攻击,并以此为基础进入管理系统,因此加强系统与互联网之间的安全防护级别至关重要,尽量避免把系统任何部分直接暴露在互联网上。对工控系统采用的国外产品进行全面的安全检查,以避免可被利用的后门存在的风险,同时监测第三方供货商提供任何管理员级别账户的动作,删除或重命名系统默认账户;安装工控系统专用防火墙,对各部分通信行为进行严格监管,禁止外接设备,使用专用的安全U盘,阻断潜在的攻击路径。关闭系统中不必要的应用和服务,安排专人对工控设备做定时的升级和打补丁操作。

从此次乌克兰电力系统遭受黑客攻击导致停电的事件中,可以看到如下问题:存在安全防护体系方面的漏洞,工控系统与网络直接相连没有任何隔离措施;BlackEnergy病毒入侵工控系统后存在一定的潜伏期,但由于网络安全监控不到位并未发现任何病毒入侵异常;攻击者通过发送伪装邮件的方式致使乌克兰方面的工作人员打开了恶意植入程序,虽然在此之前国际安全机构曾向其发出过预警信息,但由于网络信息安全防范方面的意识薄弱,并未得到重视。

5 结束语

本文概括地介绍了 BlackEnergy病毒的发展历程,将 BlackEnergy三代病毒分别进行了初步分析,通过对现有样本模拟攻击以及反汇编原理的分析,得出了 BlackEnergy的入侵方法,分析推测得出乌克兰事件 BlackEnergy的攻击过程,以及此病毒对系统漏洞的利用从而逐步感染电力系统的过程。同时根据 BlackEnergy的行为特点和乌克兰事件所造成严重的后果指出了目前SCADA系统在网络信息安全方面存在的隐患及不足。同时也给出了在电力安全工控系统当中,针对网络安全方面的一些可防护入侵措施。

但本文只是在理论分析层面以及BlackEnergy的入侵步骤等基础方向进行了初步分析,所给出的预防措施也没有根据我国国情具体考虑在不同地区不同领域实际的可行度。未来的研究方向是,通过此次乌克兰事件收集更多可用的信息,找到最新的病毒版本进行分析,获取BlackEnergy病毒的源代码,并且构建一套完整的模拟电力工控系统的体系,进行实际的病毒入侵实验,在实际操作过程中确认防护入侵措施的有效性、可行性,从而进一步完善电力工控系统的安全性措施。

[1] Brian Prince(2014). Researchers go inside black energy malware[EB/OL]. http://www.securityweek.com/researchers-go-insideblackenergy-malware.

[2] John Hultquist(2014). Sandworm team – targeting SCADA systems[EB/OL]. https://www.isightpartners.com/2014/10/sandwormteam-targeting-scada-systems/.

[3] 安天实验室. 乌克兰停电事件启示录[J]. 中国信息安全, 2016(4):48-53. Antiy Lab. Revelation of blackout in Ukraine[J]. China Information Security , 2016(4):48-53.

[4] 绿盟科技(2016). 从乌电事件看我国电力安全[EB/OL]. http://www. aiweibang.com/yuedu/82697112.html. NSFOCUS.(2016). Power safety in China from Ukraine's power grid incident[EB/OL]. http://www. aiweibang.com/yuedu/ 82697112. html.

[5] 哈尔滨安天科技股份有限公司、北京四方继保自动化股份有限公司、复旦大学网络空间治理研究中心. 乌克兰电力系统遭受攻击事件综合分析[J]. 信息安全研究, 2016(3):243. Harbin Antiy Tech. Co. Ltd., Beijing Sifang Automation Co. Ltd., Fudan University Network Space Management Research Center. Comprehensive analysis of Ukraine's power grid incident[J].Journal of Information Security Research, 2016(3):243.

[6] 安天实验室安全研究与应急处理中心. BlackEnergy简报[EB/OL]. http://www.antiy.com/response/BlackEnergy/BlackEnergy.html. Antiy CERT. BlackEnergy briefing[EB/OL]. http://www.antiy.com/ response/BlackEnergy/ Black-Energy.html.

[7] F-secure. (2014) BLACKENERGY & QUEDAGH: the convergence of crimeware and APT attacks[EB/OL]. https://www.f-secure.com/ documents/996508/1030745/blackenergy_whitepaper.pdf

[8] CVE通用漏洞与披露(2014). Microsoft Windows OLE 远程执行代码漏洞(CNNVD-201410-268)[EB/OL]. http://cve.scap.org.cn/ CVE-2014-4114.html. CVE Common vulnerabilities and disclosures(2014). Windows OLE remote code execution vulnerability (CNNVD-201410-268) [EB/OL]. http://cve.scap.org.cn/CVE-2014-4114.html.

[9] 翰海源安全(2014). Windows任意代码执行0day (CVE-2014-4114)分析报告[EB/OL]. http://www.freebuf. com/news/46956.html. Nanjing Vulnhunt Information Security Inc. Analysis report of Windows arbitrary code execution of 0day (CVE-2014-4114) [EB/OL]. http://www.freebuf.com/news/46956.html.

[10] CVE通用漏洞与披露(2014). GE intelligent platforms proficy HMI/SCADA-CIMPLICITY 目录遍历漏洞(CNNVD-201401-524) [EB/OL]. http://cve.scap.org.cn/CVE-2014-0751.html. CVE Common vulnerabilities and disclosures. GE Intelligent platforms proficy HMI/SCADA-CIMPLICITY directory traversal vulnerability (CNNVD-201401-524) [EB/OL]. http://cve.scap.org. cn/CVE-2014-0751.html.

[11] 王得金. 从乌克兰电网被攻击事件看我国基础电网面临的安全风险及处置建议[J]. 中国信息安全, 2016(3): 91-93. WANG D J. Security risks faced by China's basic power grids and suggestions on disposal from the attacked events in Ukraine power grid[J]. China Information Security, 2016(3): 91-93.

Analysis and defense of the BlackEnergy malware in the Ukrainian electric power system

WANG Yong, WANG Yu-ming, ZHANG Lin, ZHANG Lin-peng

(School of Computer Science and Technology, Shanghai University of Electric Power, Shanghai 200090, China)

Ukrainian electric power system suffered BlackEnergy virus attacks in December 2015, resulting in blackout accident occurred simultaneously at multiple areas in Ivano-Frankovsk region, the malware also pose a threat to the electric power system security in China. Based on different versions of samples of BlackEnergy acquired, the attack mode was analyzed and the prevention of the virus was provided under the proper analysis environment.

BlackEnergy virus, virus analysis, intrusion prevention

TP393

A

10.11959/j.issn.2096-109x.2017.00139

王勇(1973-),男,河南驻马店人,博士,上海电力学院教授,主要研究方向为电力系统攻防试验床、病毒分析、入侵检测。

王钰茗(1994-),女,山东烟台人,上海电力学院本科生,主要研究方向为病毒分析。

张琳(1995-),女,黑龙江绥化人,上海电力学院本科生,主要研究方向为病毒分析。

张林鹏(1991-),男,河北邢台人,上海电力学院硕士生,主要研究方向为电力系统防火墙。

2016-10-14;

2016-12-30。通信作者:王钰茗,bubugab@163.com

上海科委地方能力建设基金资助项目(No.15110500700);上海市浦江人才计划基金资助项目(No.16PJ1433100);上海自然科学基金资助项目(No.16ZR1436300);上海科委中小企业创新基金资助项目(No.1601H1E2600)

Foundation Items: The Project of Shanghai Science and Technology Committee (No.15110500700), Shanghai Pujiang Program (No.16PJ1433100), Shanghai Municipal Natural Science Foundation (No.16ZR1436300), Shanghai Science and Technology Innovation Fund for Small and Medium Enterprises (No.1601H1E2600)

猜你喜欢

攻击者漏洞组件
漏洞
无人机智能巡检在光伏电站组件诊断中的应用
机动能力受限的目标-攻击-防御定性微分对策
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
正面迎接批判
三明:“两票制”堵住加价漏洞
漏洞在哪儿
高铁急救应补齐三漏洞
有限次重复博弈下的网络攻击行为研究