转载

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

事件回顾

2016年1月6日,据英国《金融时报》报道,上周乌克兰电网系统遭黑客攻击,数百户家庭供电被迫中断,这是有史以来首次导致停电的网络攻击,此次针对工控系统的攻击无疑具有里程碑意义,引起国内外媒体高度关注。 

据iSight Partners网络间谍情报负责人约翰•胡尔特奎斯特(John Hultquist)表示,本次攻击来自俄罗斯黑客组织,使用的恶意软件被称为BlackEnergy(黑暗力量)。

Black Energy简介

Black Energy(黑暗力量)最早可以追溯到2007年,由俄罗斯地下黑客组织开发并广泛使用在BOTNET,主要用于建立僵尸网络,对定向目标实施DDoS攻击。

此后,Black Energy的攻击开始转向政治目标,在2008年,俄罗斯与格鲁吉亚冲突期间黑客组织利用Black Energy曾一度攻击格鲁吉亚政府。自2014年夏季,陆续从乌克兰政府及企事业单位截获Black Energy样本,可以预见其矛头开始瞄准乌克兰政府组织,并主要用于机密信息窃取和持续攻击。

Black Energy有一套完整的生成器,可以生成感染受害主机的客户端程序和架构在C&C (指挥和控制)服务器的命令生成脚本。攻击者利用这套黑客软件可以方便地建立僵尸网络,只需在C&C服务器下达简单指令,僵尸网络受害主机便统一执行其指令。

经过数年的发展,Black Energy逐渐加入了Rootkit技术,插件支持,远程代码执行, 数据采集等功能,已能够根据攻击目的和对象,由黑客来选择特制插件进行APT攻击。进一步升级,包括支持代理服务器,绕过用户账户认证(UAC)技术,以及针对64位Windows系统的签名驱动等等。

Black Energy攻击过程

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

Black Energy感染流程

上图展示了Black Energy入侵目标主机的过程。黑客通过收集目标用户邮箱,然后向其定向发送携带恶意文件的Spam邮件,疏于安全防范的用户打开了带宏病毒的Office文档(或利用Office漏洞的文档)即可运行Installer(恶意安装程序),Installer则会释放并加载Rootkit内核驱动,之后Rootkit使用APC线程注入系统关键进程svchost.exe(注入体main.dll),main.dll会开启本地网络端口,使用HTTPS协议主动连接外网主控服务器,一旦连接成功,开始等待黑客下发指令就可以下载其他黑客工具或插件。

相关样本分析

此次袭击事件发生后,金山安全反病毒实验室第一时间从各个渠道采集到在乌克兰爆发的BlackEnergy样本。

从样本中分析得到样本连接恶意IP如下:

5.9.32.230 31.210.111.154 88.198.25.92

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

事件发生之后,这3台服务器已经无法正常连接,其中截获的HTTPS POST请求URL:

https://5.9.32.230/Microsoft/Update/KS1945777.php  https://31.210.111.154/Microsoft/Update/KS081274.php  https://88.198.25.92/fHKfvEhleQ/maincraft/derstatus.php

同时,实验室截获的Black Energy样本经过验证,均可在32位的XP – 8.1系统上正常运行。

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

恶意样本伪装为微软 USB MDM Driver 驱动文件,但缺乏数字签名

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

驱动被Installer加载后,首先执行解压脱壳,然后创建设备驱动,名字为:/DosDevice/{C9059FFF-1C49-83E8-4F16387C720},用来与用户端(main.dll)通信。

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

随后,驱动开始向svchost.exe申请内存空间并写入shellcode,再通过APC线程注入方式注入svchost.exe。

APC注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的。

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

注入的shellcode与Rootkit代码,黑客统一使用了通过压栈API函数的HASH值,调用_GetFuncAddr动态获取API函数地址,用来干扰和对抗逆向分析

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

由APC注入的线程会启动一个主线程

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

与Rootkit内核模块建立通信

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

连接C&C服务器,不知是不是事件发生之后,该IP就再也连不上了

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

上图是与C&C服务器通信的控制指令

至此,Black Energy整体攻击架构已经呈现出来,一旦用户机器被渗透攻击成功,黑客便可轻易控制并实施具体攻击。也证明了在此次乌克兰电网断电事件,Black Energy完全有能力实施精确打击。

防御Black Energy

乌克兰电网遭黑客攻击事件之Black Energy(黑暗力量)深入分析

针对Black Energy的攻击过程可以在三个阶段进行有效拦截。首先,用户接收到邮件时对邮件内包含的所有文件进行动态行为鉴定,一旦判定文件具有恶意行为会将其删除或隔离。第二,对系统关键进程进行监控,一旦发现可疑操作立即阻断其执行。第三,阻断恶意代码对外连接,设置一个IP黑白库对系统外连的ip地址进行过滤,拦截与恶意服务器交互的所有网络数据包。

总结

乌克兰电厂遭袭事件是第一次经证实的计算机恶意程序导致停电的事件,证明了通过网络攻击手段是可以实现工业破坏的。虽然针对工控系统的网络安全保护早已提上日程,目前国内也没有发生类似攻击,但此次事件再次给相关部门敲响警钟。未来安全形势必将越来越严峻,需要相关各方严格部署网络安全措施,加强网络安全防范。

*作者:金山安全(企业账号),转载请注明来自FreeBuf黑客与极客(FreeBuf.COM) 

原文  http://www.freebuf.com/articles/network/93092.html
正文到此结束
Loading...