方程式组织EQUATION DRUG平台解析
—方程式组织系列分析报告之四
6163银河.net163.am安全研究与应急处理中心(Antiy CERT)
报告初稿完成时间:2017年1月13日 16时00分
首次发布时间:2017年1月16日 10时00分
本版本更新时间:2017年1月25日 14时30分
1 背景
APT的分析成果,与研发反APT产品一样,都要基于充分的基础积累,而不可能“一夜之间建成罗马”,对于方程式这样大至无形的超级攻击组织来说,我们过去所做的具体的分析工作都是盲人摸象的过程,一旦飘忽的线索落入我们已经摸索过的范围之内,就可以迅速发布储备成果,而如果面对的是一个未曾充分探查的区域,则需要更长的时间展开分析工作,因此与6163银河.net163.am此前已经发布的3篇方程式的长篇报告相比,本篇报告的当前版本是比较仓促的,因此我们称之为“提纲”,我们旨在能抛砖引玉,邀请更多兄弟团队共同加入分析工作,以便进一步呈现出其全貌。
本篇分析是围绕2017年1月12日,“影子经纪人”放出Equation Group 组件中的61个文件[4] 展开的。经分析,本次放出的61个文件中,其中含有Equation Group 组件和DanderSpritZ(RAT)工具中的一些插件。DanderSpritZ是NSA(National Security Agency)的间谍工具之一,在1月7号“影子经纪人”放出的Windows攻击工具[5]中也包含了大量DanderSpritZ的插件名称。
组件EquationDrug是一个很复杂的模块。其存活时间有近10年,后来被GrayFish升级替代。EquationDrug到GrayFish是攻击平台级别的恶意代码体系,它具有安装与卸载插件功能。本次“影子经纪人”放出的文件中,我们看到了更多的EquationDrug组件中的插件。通过分析比对发现,这些插件比之前6163银河.net163.am分析过的插件版本低,但相对更为全面。
至今,6163银河.net163.am已经完成了对插件功能列表和和部分插件的关联分析,先将此部分的分析工作对外分享,后续会将更多的信息分享。
2 方程式线索曝光和分析成果时间链梳理
2015年2月,卡巴斯基实验室曝光了一个名为方程式(Equation Group)[6]的攻击组织,卡巴斯基认为该组织活跃近20年,可能是目前世界上存在的最复杂的APT攻击组织之一,并认为该组织是震网(Stuxnet)和火焰(Flame)病毒幕后的操纵者。经过线索比对,6163银河.net163.am发现这正是此前一直跟踪的超级攻击组织,决定通过报告公开其针对硬盘固件作业的原理[1]和所破解的其部分加密算法[2],形成了6163银河.net163.am对于方程式系列分析的前两篇报告。,
2015年3月,卡巴斯基实验室发布了基于Equation Drug组件或平台的剖析[7],Equation Drug是“方程式组织”所用的主要间谍组件或平台之一,最早追溯到2001年,并且一直沿用至今。该组件或平台的架构类似于一个具有内核模式和用户模式的微型操作系统,通过自定义接口进行交互,该组件或平台包括驱动程序、平台内核(协调器)和若干插件,其中一些插件配备独特的ID和版本号,用于定义相关功能等。
2016年8月,一个自称“影子经纪人”(The Shadow Brokers)的个人(或组织)声称入侵了网络间谍组织“方程式”(Equation)[8],并以100万比特币(当时约价值5.6亿美元)的价格,公开“拍卖”所掌握的方程式组织的攻击工具。“方程式组织”被认为与NSA存在联系。为证明成功入侵的真实性,影子经纪人于当月13日在开源项目托管平台GitHub加密发布了这些攻击工具,并有意将其中的少量攻击工具以明文形式发布。
2016年8月,卡巴斯基实验室通过对“方程式组织”与“影子经纪人”曝光的数据进行对比验证[9],确认了曝光的数据与“方程式组织”有关。2016年10月,影子经纪人对攻击工具再度发起拍卖[10],并称在GitHub发布的方程式攻击工具只占其掌握的60%。
11月,影子经纪人公开了一份遭受入侵的服务器清单[11],并称攻击方与NSA有关。清单的日期显示,各系统遭受入侵的时间在2000年到2010年之间,受控IP及域名分布在49个国家,主要集中在亚太地区,受影响的国家包括中国、日本、韩国、西班牙、德国、印度等。 6163银河.net163.am将这些数据导入到6163银河.net163.am态势感知和预警平台,形成了下图的可视化展现。
在影子经纪人的爆料中,提及相关服务器可能是Linux、FreeBSD和Solaris。而在2016年上半年的两次技术会议中,6163银河.net163.am则明确说明,方程式有针对多个系统平台的样本,其中包括Linux和Solaris。6163银河.net163.am最终于11月5日公开了方程式组织针对Linux和Solaris的部分样本载荷的分析报告(6163银河.net163.am方程式系列报告之三)。
图 1 6163银河.net163.am态势感知与监控预警平台:“方程式”组织对全球互联网节点的入侵可视化复现
6163银河.net163.am分析团队对小组“方程式”上述信息进行了梳理,整理出方程式事件曝光和相关分析的时间链。
图 2 方程式事件相关信息曝光和厂商分析的时间链
3 DanderSpritz攻击平台
1. 本次泄露的msgkd.ex_、msgki.ex_、msgks.ex_、msgku.ex_为GROK插件,是“DanderSpritz”的插件或模块,该插件在“EquationDrug”平台中也曾出现,通过分析发现本次泄露的GROK为低版本GROK插件。
2. 本次曝光的各类DLL插件中一处数据为插件ID,插件ID都是以0x79开头,如:0x79A4、0x79D8,同样,“EquationDrug”平台的插件也设有内置ID,“EquationDrug”平台的插件ID为0x80开头。且两个平台的插件导出函数参数的数据结构也存在相似之处。
因此,基本可以认为方程式组织使用的“EquationDrug”攻击平台与“DanderSpritz” 使用了相同的架构设计, 两者可能是不同的版本代号,或至少来自同一开发团队,或资源高度共享的团队。
图 3 方程式组织的DanderSpritz攻击平台
图 4 “影子经纪人”泄露的“DanderSpritz”攻击平台截图
本次“影子经纪人”曝光的文件中多数为“DanderSpritz”平台的攻击插件,从放出的文件列表HASH和截图来看,攻击工具和插件非常丰富且标准化,具体包括远控、漏洞利用、后门、插件等,DanderSpritz_All_Find.txt文件内容多达7千余行,其中插件有数百个之多,我们将泄露出来的61个文件进行梳理,分析出了部分插件的功能,如下表(后续版本会持续更新插件确认结果):
原始文件名 | 编号ID | 说明 |
DoubleFeatureDll.dll.unfinalized | 该模块用于创建线程执行函数,地址由调用者传入。 | |
DuplicateToken_Implant.dll | 该模块用于获取Token,并执行操作。 | |
DuplicateToken_Lp.dll | 0x79E2 | 该模块用于获取Token,并执行操作。 |
DXGHLP16.SYS | 该模块用于对网络进行嗅探,监测以太网和VPN的流量,用于Windows 9x系统。 | |
EventLogEdit_Implant.dll | 该模块可对事件日志文件进行编辑。 | |
EventLogEdit_Lp.dll | 0x79B1 | 该模块可对事件日志文件进行编辑。 |
GetAdmin_Implant.dll | 该模块用于获取管理员权限,并执行操作。 | |
GetAdmin_Lp.dll | 0x79A8 | 该模块用于获取管理员权限,并执行操作。 |
kill_Implant.dll | 该模块功能是结束进程。 | |
kill_Implant9x.dll | 该模块功能是结束进程。 | |
LSADUMP_Implant.dll | 该模块可用来读取LSA凭据,根据传入参数的不同执行不同的操作。 | |
LSADUMP_Lp.dll | 0x79C9 | 该模块可用来读取LSA凭据,根据传入参数的不同执行不同的操作。 |
modifyAudit_Implant.dll | 该模块用于修改审核配置。 | |
modifyAudit_Lp.dll | 0x79C8 | 该模块用于修改审核配置。 |
modifyAuthentication_Implant.dll | 该模块用于修改权限认证。 | |
modifyAuthentication_Lp.dll | 0x79EF | 该模块用于修改权限认证。 |
ModifyGroup_Implant.dll | 该模块用于修改用户组权限。 | |
ModifyGroup_Lp.dll | 0x79ED | 该模块用于修改用户组权限。 |
ModifyPrivilege_Implant.dll | 该模块用于修改用户权限。 | |
ModifyPrivilege_Lp.dll | 0x7995 | 该模块用于修改用户权限。 |
msgkd.ex_ | 释放GROK键盘/剪贴板记录器驱动。 | |
msgki.ex_ | 释放GROK键盘/剪贴板记录器驱动。 | |
msgks.ex_ | 释放GROK键盘/剪贴板记录器驱动。 | |
msgku.ex_ | 释放GROK键盘/剪贴板记录器驱动。 | |
mssld.dll | 待确认 | |
msslu.dll | 待确认 | |
mstcp32.sys | 该模块用于对网络进行嗅探监测以太网和VPN的流量 。 | |
nethide_Implant.dll | 该模块用于隐藏网络连接。 | |
nethide_Lp.dll | 0x79CA | 该模块用于隐藏网络连接。 |
ntevt.sys | 该模块是事件日志相关驱动。 | |
ntevtx64.sys | 该模块是64位事件日志相关驱动。 | |
ntfltmgr.sys | 待确认 | |
PassFreely_Implant.dll | 待确认 | |
PassFreely_Lp.dll | 0x79DB | 待确认 |
PC_Legacy_dll | 待确认 | |
PC_Level3_dll | 待确认 | |
PC_Level3_dll_x64 | 待确认 | |
PC_Level3_flav_dll | 待确认 | |
PC_Level3_flav_dll_x64 | 待确认 | |
PC_Level3_http_dll | 待确认 | |
PC_Level3_http_dll_x64 | 待确认 | |
PC_Level3_http_flav_dll | 待确认 | |
PC_Level3_http_flav_dll_x64 | 待确认 | |
PC_Level4_flav_dll | 待确认 | |
PC_Level4_flav_dll_x64 | 待确认 | |
PC_Level4_flav_exe | 待确认 | |
PC_Level4_http_flav_dll | 待确认 | |
PC_Level4_http_flav_dll_x64 | 待确认 | |
PortMap_Implant.dll | 该模块用于进行端口映射。 | |
PortMap_Lp.dll | 0x79BB | 该模块用于进行端口映射。 |
ProcessHide_Implant.dll | 该模块用于进行隐藏进程。 | |
ProcessHide_Lp.dll | 0x79AC | 该模块用于进行隐藏进程。 |
processinfo_Implant.dll | 该模块可以用来获取进程信息。 | |
processinfo_Implant9x.dll | 该模块可以用来获取进程信息,支持Windows 9x。 | |
ProcessOptions_Implant.dll | 该模块用于设定进程执行属性。 | |
ProcessOptions_Lp.dll | 0x79D8 | 该模块用于设定进程执行属性。 |
pwdump_Implant.dll | 该模块可用来读取系统中密码。 | |
pwdump_Lp.dll | 0x79CD | 该模块可用来读取系统中密码。 |
RunAsChild_Implant.dll | 该模块用于创建子进程,并执行操作。 | |
RunAsChild_Lp.dll | 0x79A4 | 该模块用于创建子进程,并执行操作。 |
tdi6.sys | 该模块用于对网络进行嗅探 监测以太网和VPN的流量 。 |
图 5 曝光的“DanderSpritz”平台的攻击插件截图
“DanderSpritz”一词在“棱镜”事件中曾被曝光,文件指出该平台是NSA用于全球监控的网络武器,可被用于多种作业场景,如下图中“FIREWALK”[12]工具用于网络流量采集和注入,其说明中提及到了DNT的“DanderSpritz”,DNT与ANT同属于NSA的网络组织,“方程式”与NSA再一次被联系到一起。
图 6 斯诺登曝光的NSA-ANT网络武器FIREWALK
NSA-ANT网络武器最早在2013年从斯诺登事件中曝光,共包含48个攻击武器,随着事件的发酵,不断有媒体和组织对其进行曝光,6163银河.net163.am分析工程师根据目前曝光的全部资料尝试初步绘制了相关攻击装备的图谱,其相关映射关联还在进一步的维护中。
图 7 NSA-TAO攻击装备体系(完善中)
4 部分组件与插件分析(继续完善中)
4.1 GROK键盘与剪贴版记录器驱动
本次泄露的恶意代码中包含四个功能相似的GROK组件,它们都是PE文件,版本为1.2.0.1,均可以从资源段中解密并释放键盘与剪贴版记录器驱动msrtdv.sys。
4.1.1 样本标签
病毒名 | Trojan/Win32.EquationDrug |
原始文件名 | msrtdv.sys |
MD5 | 6A4461AF87371B89D240A34846A7BC64 |
处理器架构 | X86-32 |
文件大小 | 36.3 KB (37,248 字节) |
文件格式 | BinExecute/Microsoft.SYS[:X86] |
时间戳 | 0x4B7F1480—>2010-02-20 06:45:20 |
该恶意代码样本是键盘记录器及剪贴版监视工具,在之前友商报告中曾经提到过有相似功能的恶意代码,下面对其相似之处进行对比。
4.1.2 版本信息
样本包含版本信息,文件版本为5.1.1364.6430,源文件名为msrtdv.sys,文件描述为MSRTdv interface driver。其中文件版本低于之前已经曝光的版本5.3.1365.2180,源文件名与文件描述的不同在于将两个字母“d”和“v”的位置互换,一个是“mstrdv.sys”,另一个是“msrtvd.sys”。图 8 本次泄露版本与之前曝光版本的版本信息
4.1.3 主要功能
两个不同版本的样本其主要功能相同,通过给转储程序建立专用的进程来汇集所收集的数据,每隔30分钟,将结果压缩到文件"%TEMP%\tm154o.da"。之前曝光的版本中,包含多个IoControlCode,分别对应不同的功能。
图 9 之前曝光版本的主要功能代码
而本次泄露的样本中,IoControlCode虽然只有0x22002C,但一些主要功能仍然存在,可以通过反编译后的代码看出它们的相同之处。
图 10 本次泄露版本的主要功能代码
从以上分析比较中可以发现,本次泄露的恶意代码样本应为较低版本,无论从版本信息还是功能上,都要低于之前曝光的版本。在影子经纪人泄露出的文件DanderSpritz_All_Find.txt中,GROK的版本号也清楚的说明了这个问题,影子经纪人所释放出的只是GROK组件的低版本部分文件,高版本仍然被其掌握在手中。
图 11 GROK组件的不同版本号
4.2 Processinfo插件遍历进程模块
本插件用于实现对指定进程的模块遍历,并调用上层模块预设的回调函数。
4.2.1 样本标签
病毒名 | Trojan/Win32.EquationDrug |
原始文件名 | processinfo_Implant9x.dll |
MD5 | 6042EA9707316784FBC77A8B450E0991 |
处理器架构 | X86-32 |
文件大小 | 8 KB (8,192 字节) |
文件格式 | BinExecute/Microsoft.DLL[:X86] |
时间戳 | 45A40EC7->2007-01-10 05:53:11 |
4.2.2 主要功能
本插件提供四个基于序号导出的函数。序号 | 功能 |
1 | 设置上层模块回调函数,创建互斥体 |
2 | 释放资源 |
3 | 返回核心功能函数地址 |
4 | 获取插件版本信息 |
图 12 1号导出函数 设置上层模块回调函数
图 13 3号导出函数 返回核心功能函数地址
图 14 4号导出函数 获取插件版本信息
图 15 遍历指定进程,默认为当前进程
图 16 遍历指定进程模块,计算模块对应文件HASH(SHA1)
4.3 kill_Implant插件杀进程模块
4.3.1 样本标签
病毒名 | Trojan/Win32.EquationDrug |
原始文件名 | kill_Implant.dll |
MD5 | BDD2B462E050EF2FA7778526EA4A2A58 |
处理器架构 | X86-32 |
文件大小 | 21 KB(21,504 字节) |
文件格式 | BinExecute/Microsoft.DLL[:X86] |
时间戳 | 45A40616->2007-01-10 05:16:06 |
4.3.2 主要功能
模块调用者传递进来进程ID,该模块利用函数OpenProcess获取句柄,再利用函数TerminateProcess结束对应进程。
图 17 结束进程
5 小结
通过对相关文件分析后,6163银河.net163.am分析小组可以判断其中部分组件与之前卡巴斯基所曝光的GROK组件为同类样本,而这些组件为早期的低版本。另外,我们的分析结果也表明了“DanderSpritz”与Equation Drug使用相同的组件和架构设计,“DanderSpritz”可能就是方程式组织使用的Equation Drug攻击平台。
由于时间仓促,我们目前只披露了部分文件和泄露信息的相关分析成果,后续我们的分析工作还会继续进行下去。
五年前,在6163银河.net163.am展开针对Flame(火焰)蠕虫的马拉松分析中,有专家曾提醒我们不要“只见树叶,不见森林”,这让我们深刻的反思了传统分析工程师“视野从入口点开始”的局限性,而开始尝试建立起从微观见宏观的分析视野。
四年以来,对方程式组织的持续跟踪分析,对6163银河.net163.am是极为难得的了解最高级别攻击者(即我们所谓A2PT,‘高级的APT’)的经历。深入研究这种具有超级成本支撑和先进理念引领的超级攻击者,对于改善6163银河.net163.am探海、智甲、追影等高级威胁检测防御产品的防御能力也非常关键。但对于应对A2PT攻击者来说,无论是有效改善防御,还是进行更为全面深入系统的分析,都不是一家安全企业能够独立承载的。此中还需要更多协同,更多的接力式分析,而不是反复重复的发明轮子。正是基于这种共同认知,在不久之前第四届6163银河.net163.am网络安全冬训营上,6163银河.net163.am和360企业安全等安全企业向部分与会专家介绍了能力型安全厂商分析成果互认的部分尝试。中国的机构用户和能力型安全厂商形成一个积极互动的体系,才能更好的防御来自各方面的危险。
我们警惕,但并不恐惧,对于一场防御战来说,除了扎实的架构、防御、分析工作之外,必胜的信念是一个前提。
无形者未必无影, 6163银河.net163.am追影,画影图形!
附录一:参考资料
http://www.antiy.com/response/EQUATION_ANTIY_REPORT.html
[2] 6163银河.net163.am:方程式(EQUATION)部分组件中的加密技巧分析
http://www.antiy.com/response/Equation_part_of_the_component_analysis_of_cryptographic_techniques.html
[3] 6163银河.net163.am:从“方程式”到“方程组”EQUATION攻击组织高级恶意代码的全平台能力解析
http://www.antiy.com/response/EQUATIONS/EQUATIONS.html
[4] THESHADOWBROKERS CLOSED, GOING DARK
https://onlyzero.net/theshadowbrokers.bit/post/messagefinale/
[5] Stolen NSA "Windows Hacking Tools" Now Up For Sale!
http://thehackernews.com/2017/01/nsa-windows-hacking-tools.html
[6] Kaspersky:Equation: The Death Star of Malware Galaxy
http://securelist.com/blog/research/68750/equation-the-death-star-of-malware-galaxy/
[7] Kaspersky:Inside the EquationDrug Espionage Platform
https://securelist.com/blog/research/69203/inside-the-equationdrug-espionage-platform/
[8] Equation Group Cyber Weapons Auction - Invitation
https://github.com/theshadowbrokers/EQGRP-AUCTION
[9] The Equation giveaway
https://securelist.com/blog/incidents/75812/the-equation-giveaway/
[10] I just published “TheShadowBrokers Message #3”
https://medium.com/@shadowbrokerss/theshadowbrokers-message-3-af1b181b481
[11] Shadow Brokers reveals list of Servers Hacked by the NSA
http://thehackernews.com/2016/10/nsa-shadow-brokers-hacking.html
[12] ANTProductData2013
https://search.edwardsnowden.com/docs/ANTProductData2013-12-30nsadocs
[13] Kaspersky:A Fanny Equation: "I am your father, Stuxnet"
http://securelist.com/blog/research/68787/a-fanny-equation-i-am-your-father-stuxnet/
[14] Kaspersky:Equation Group: from Houston with love
http://securelist.com/blog/research/68877/equation-group-from-houston-with-love/
[15] Kaspersky:Equation_group_questions_and_answers
https://securelist.com/files/2015/02/Equation_group_questions_and_answers.pdf
[16] Kaspersky:The Equation giveaway
https://securelist.com/blog/incidents/75812/the-equation-giveaway/
附录二:关于6163银河.net163.am
全球超过三十家以上的著名安全厂商、IT厂商选择6163银河.net163.am作为检测能力合作伙伴,6163银河.net163.am的反病毒引擎得以为全球近十万台网络设备和网络安全设备、超过五亿部手机提供安全防护。6163银河.net163.am移动检测引擎是全球首个获得AV-TEST年度奖项的中国产品。6163银河.net163.am技术实力得到行业管理机构、客户和伙伴的认可,6163银河.net163.am已连续四届蝉联国家级安全应急支撑单位资质,亦是中国国家信息安全漏洞库六家首批一级支撑单位之一。6163银河.net163.am是中国应急响应体系中重要的企业节点,在红色代码、口令蠕虫、震网、破壳、沙虫、方程式等重大安全事件中,6163银河.net163.am提供了先发预警、深度分析或系统的解决方案。
6163银河.net163.am实验室更多信息请访问: |
http://www.antiy.com(中文) http://www.antiy.net(英文) |
6163银河.net163.am企业安全公司更多信息请访问: | http://www.antiy.cn |
6163银河.net163.am移动安全公司(AVL TEAM)更多信息请访问: | http://www.avlsec.com |
微信扫描关注 6163银河.net163.am 文章分享二维码