![2021Duqu和Stuxnet同源性分析报表_第1页](http://file4.renrendoc.com/view12/M08/33/22/wKhkGWYmj5uAThsaAAJVJfBRcc0905.jpg)
![2021Duqu和Stuxnet同源性分析报表_第2页](http://file4.renrendoc.com/view12/M08/33/22/wKhkGWYmj5uAThsaAAJVJfBRcc09052.jpg)
![2021Duqu和Stuxnet同源性分析报表_第3页](http://file4.renrendoc.com/view12/M08/33/22/wKhkGWYmj5uAThsaAAJVJfBRcc09053.jpg)
![2021Duqu和Stuxnet同源性分析报表_第4页](http://file4.renrendoc.com/view12/M08/33/22/wKhkGWYmj5uAThsaAAJVJfBRcc09054.jpg)
![2021Duqu和Stuxnet同源性分析报表_第5页](http://file4.renrendoc.com/view12/M08/33/22/wKhkGWYmj5uAThsaAAJVJfBRcc09055.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Duqu和Stuxnet同源性分析摘要同源(Homology),是生物遗传学领域的重要概念,主要用于描述物种或DNA序列是否具有相同的祖先。计算机病毒分析工程师也经常通过分析病毒同源性的方法,追踪病毒制造者的身份——比如,dvldr(口令蠕虫)和lovegate(爱门蠕虫)的制造者曾被认为是同一人,安天实验室的反病毒工程师通过同源性分析方法,否定了该观点。本文以对Duqu木马与Stuxnet蠕虫的分析比较为例,介绍病毒同源性分析方法。背景介绍2012年3月20日,知名计算机反病毒厂商Symantec在其官方博客(NewDuquSampleFoundintheWild)中宣布捕获到了最新的Duqu木马变种,样本的编译时间显示为2012年2月23日。时隔数月,曾备受关注的Duqu木马又回来了?或者说,它从没有消失过?Duqu木马是什么?为什么会这样令人瞩目?原来,Duqu木马一直被认为是此前更为著名的Stuxnet蠕虫的第二代。那么,Stuxnet蠕虫又是什么?Stuxnet蠕虫(亦称震网蠕虫、超级工作蠕虫),具有对工业控制系统的破坏能力,被看作是第一个以现实世界中的关键工业基础设施为目标的计算机蠕虫。有媒体形容它为“超级武器”和“潘多拉的魔盒”,因为它开启了真正意义上的网络战,也为以后的网络攻击形式和恐怖主义行为树立了“榜样”。Stuxnet蠕虫曾于2010年7月爆发,利用了微软公司的4个Windows操作系统漏洞(其中3个是当时全新的零日漏洞)和2个WinCC操作系统漏洞,2个有效的数字证书,通过一套完整的入侵和传播流程,突破工业专用局域网的物理限制,攻击用于数据采集与监控的工业控制系统。伊朗政府已经确认该国的布什尔核电站遭到Stuxnet蠕虫的攻击。Stuxnet蠕虫具有以下特点:同时使用了多个零日漏洞。普通病毒作者一般不会这样做(即使是当年肆虐横行的冲击波蠕虫和震荡波蠕虫,也只是使用了一个微软操作系统的RPC漏洞而已)。模块结构复杂,制作周期较长。Stuxnet蠕虫包含了驱动程序、PLC(ProgrammableLogicController,可编程逻辑控制器)指令以及命令与控制服务器(以下简称C&C服务器)通讯模块等,普通病毒作者不需要、也不愿意付出这样的开发代价。传播过程复杂而漫长。普通的病毒作者一般急于获得利益。主要用于攻击伊朗的核设施。据发表在德国新闻杂志《DerSpiegel》的一篇文章(StuxnetVirusOpensNewEraofCyberWar)介绍,该蠕虫感染了伊朗IR-1型离心机后,将其正常运行速度由1,064赫兹增加到1,410赫兹,并在15分钟后回到正常频率,从而造成离心机的损坏。伊朗核计划当局认为Stuxnet蠕虫破坏了约1000台离心机。伊朗也承认其核计划遭到了阻碍,并遭受了“潜在的重大损失”。普通的病毒作者,显然无法由此获得利益。通过以上分析不难看出,Stuxnet蠕虫更可能是团队制作。知名计算机反病毒厂商Kaspersky实验室甚至认为,Stuxnet蠕虫的攻击是具有国家和政府的支持和协助的。与Stuxnet蠕虫的复杂相比,出现于2011年的Duqu木马则显得有些单薄,它主要功能是数据的采集和回传。这些功能似乎并不比常见的QQ盗号木马具有更大的危害,可是,由于它采用了与Stuxnet蠕虫极为相似的技术手段,引起了多个计算机反病毒厂商的密切关注。假设Duqu木马与Stuxnet蠕虫具有相同出处(即两者具有同源性),那么它出现的意义是什么?是否意味着新的Stuxnet蠕虫即将问世?新的Stuxnet蠕虫的攻击目标又是哪种工业设施?该工业设施会属于哪个国家?另外,通过对Duqu木马的分析,是否可以找出Stuxnet蠕虫的作者或者制作团队?计算机病毒分析工程师通过判断新病毒与已有病毒是否在编写上存在相互借鉴、衍生、复用等关系,找到新病毒的某些线索,最终确定两个病毒是否具有同源性。主要考查病毒样本的以下几个方面:模块结构相似性编译器架构相似性关键功能实现相似性数据结构相似性病毒作者编码心理特点Duqu木马与Stuxnet蠕虫的同源性分析过程模块结构相似性分析Duqu木马的模块结构如图1所示,由驱动模块(使用数字签名)、DLL模块和配置文件组成。其中,驱动模块为jminet7.sys,用于解密负载代码和注入系统进程;DLL模块和配置文件均以加密形式存储在磁盘上,仅在需要时解密到内存;DLL模块的资源中还包含一个负责进程注入的DLL模块,因为不需要保存在磁盘,所以没有文件名;该无名模块提供了多种注入方式,通过这些注入方式中的一种,将自身的资源节代码(用于与C&C服务器通讯)注入到目标进程。[图1]Duqu木马模块结构图Stuxnet蠕虫的模块结构如图2所示,由驱动模块(使用数字签名)、DLL模块和配置文件组成。驱动模块分为Rootkit功能(主要用于躲避反病毒软件)的mrxnet.sys文件和负责解密和注入的mrxcls.sys文件;DLL模块和配置文件均以加密形式存储在磁盘上,仅在需要时解密到内存;Stuxnet蠕虫的漏洞攻击代码和工控系统攻击代码均存储在主DLL模块的资源节中,在需要的时候释放出来,主DLL资源中包含了用于与C&C服务器通讯的功能。[图2]Stuxnet蠕虫模块结构图通过模块结构的对比,不难看出两者非常相似。两者所使用的驱动模块均采用了有效的数字签名,这一情况在一般的病毒中很少出现。至于两者模块数量的差异是由于两者功能和技术实现方式不同造成。比如,Duqu木马在Stuxnet蠕虫的基础上又加入了新的注入方法,从而增加了新的模块。编译器架构相似性分析 Duqu木马的jminet7.sys使用MicrosoftVisualC++6.0编译。 Stuxnet蠕虫的mrxcls.sys使用MicrosoftVisualC++7.0编译。 Duqu木马和Stuxnet蠕虫的主DLL都使用了UPX压缩壳。Duqu木马和Stuxnet蠕虫主DLL模块资源节中的DLL文件都是采用MicrosoftVisualC++编译。很奇怪,后出现的Duqu木马反而使用了更早的VC编译器。关键功能实现相似性分析注入方式Duqu木马和Stuxnet蠕虫都采用了DLL注入方式来隐藏自身模块,以躲避杀毒软件的检测,并且都同时采用了驱动层注入和用户层注入两种方式。两者都通过PsSetLoadImageNotifyRoutine设置回调函数的方式来完成驱动层的注入,并且两者的回调函数的功能基本一致。每当有PE程序(DLL或者EXE)被加载,这个函数都会发生回调,从而获得执行机会。如果加载的是kernel32.dll文件,则通过API名称的哈希值,获得kernel32.dll上一些特定的API函数地址。如果被加载是特定的进程名称(该名称以加密形式保存在注册表),则修改此进程的入口点函数跳转到注入代码执行恶意行为,然后跳回到原入口点(很像感染式病毒,不过是完全内存态的感染),成为蠕虫的傀儡进程。从两者驱动层注入部分代码逻辑结构可以看出,虽然两者采用了不同的编译器(或编译选项),并且在代码中存在少量差别,注册表和主DLL文件的解密算法也有不同,但是两者的逻辑总体一致,如图3.[图3]驱动层注入实现方式通过挂钩ntdll.dll中的下列函数来完成无实体文件的用户层DLL注入:ZwQueryAttriutesFileZwCloseFileZwOpenZwMapViewOfSectionZwCreateSectionZwQuerySection注入过程为:加载一个特殊构造的DLL名称,当LoadLibrary函数加载这个DLL的时候,模拟PE程序加载执行过程,直接从内存中加载这个DLL(而不是从磁盘上),从而躲避杀毒软件的文件扫描。图4展示了系统感染Stuxnet蠕虫后,关键进程services.exe中发现的隐藏模块情况。[图4]Stuxnet蠕虫的进程隐藏情况RPC服务Duqu木马和Stuxnet蠕虫都提供了RPC服务完成点对点通讯。下面两份代码说明两者使用了相同的rpc绑定方式,分别出现在Duqu木马的netp191.pnf文件及Stuxnet蠕虫的oam7a.pnf文件。[图5]Duqu木马的RPC绑定方式[图6]Stuxnet蠕虫的RPC绑定方式关键数据相似性分析配置文件Duqu木马和Stuxnet蠕虫都采用了配置与功能分开的实现方式,两者的配置文件结构非常相似:1、配置文件的前4字节(被用识别标记)内容相同,均为0x90,0x05,0x79,0xae。2、文件偏移4字节为配置文件头部长度。3、文件偏移12字节处为文件长度,区别只是长度的大小不一样。4、均包含生存周期。虽然Stuxnet蠕虫配置文件中记录的时间为自我卸载日期,而Duqu木马记录的日期为感染日期,但后者会在感染之后指定的时间完成自我卸载。所以,两者记录日期目的相同,都是为了控制生存周期,防止分析人员追踪、分析样本。注册表数据Duqu木马和Stuxnet蠕虫均由驱动从注册表中读取数据(分别记录在注册表特定主键的Data键和Filter键,均为二进制数据格式),然后实施DLL注入。其中,Duqu木马的键名有所变化,但两者注册表的数据结构几乎相同。Duqu木马在注册表中保存的二进制数据解密后结构如下(包括:DLL模块的解密密钥、注入目标进程名、注入目标模块路径):DWORDcontrol[4]DWORDencryption_keyDWORDsizeof_processnameBYTEprocessname[sizeof_processname]DWORDsizeof_dllpathBYTEdllpath[sizeof_dllpath]Stuxnet蠕虫在注册表中保存的二进制数据解密后结构如下(包括:DLL模块的解密密钥、注入目标进程名、注入目标模块路径):DWORDcontrol[4]WORDexpNumber;//注入dll调用的导出函数WORDFlags;DWORDencryption_keyDWORDreserved
;//ListDWORDsizeof_processnameUNICODEprocessname[sizeof_processname]DWORDsizeof_dllpathUNICODEdllpath[sizeof_dllpath]病毒作者编码心理特点分析解密密钥 Duqu木马采用无参数的解密算法解密驱动中的加密数据,得到注册表键值和解密注册表数据的密钥0xae240682,从解密后的注册表数据中获取解密主dll模块的密钥0xae240682。Stuxnet蠕虫先用密钥0解密驱动中的加密数据,得到注册表键值和解密注册表数据的密钥0xae240682,从解密后的注册表数据中获取解密主dll模块的密钥0x01ae0000。注册表解密密钥相同,说明该数字对病毒作者有着特殊意义,或者是由于心理习惯使然。反跟踪手段 在两者的驱动程序中,都有是否需要检测系统状态的判断,而且判断过程是相同的:从加密配置数据中读取参数,与1进行逻辑与运算判断是否需要检测系统安全模式,与2进行逻辑与运算判断是否需要检测系统调试模式。这两处判断的目的是企图避免被病毒分析工程师跟踪、调试。然而,常见病毒样本对抗分析与调试的方法却并非如此——它们会直接判断系统当前运行状态,而不是通过配置参数来决定是否进行这样的判断。见图7、图8。[图7]Duqu木马判断系统状态[图8]Stuxnet蠕虫判断系统状态程序Bug从编码心里学的角度看,由于知识体系和编码习惯的原因,由一个作者同一时期编写的代码应该会存在类似的错误(甚至漏洞)。这一特点经常被黑客利用——当有某系统发布了新的漏洞补丁之后,黑客会尝对比补丁定位漏洞位置和类型,然后在漏洞位置附近查找类似的漏洞。经分析发现,Duqu木马和Stuxnet蠕虫在处理注册表数据代码中存在同样的缓冲区溢出漏洞。该漏洞出现在注册表数据复制的时候,两者都通过ExAllocatePool申请了大小相同(均为0x10字节)的缓冲区,然后使用memcpy函数将注册表数据复制到缓冲区,但在此之前并没有检测注册表数据长度是否正确。如果注册表数据经过特殊构造,则会导致两者出现缓冲区溢出错误。经对比发现,两者代码实现的逻辑几乎完全一样[图9]Duqu木马注册表操作代码[图10]Stuxnet蠕虫注册表操作代码 Duqu木马和Stuxnet蠕虫在驱动都存在判断操作系统的版本,且逻辑非常相似。区别在于后者将版本获取函数化,而前者则是使用inline形式执行,这个区别很可能是编译器造成。经过分析发现,两者在判断WindowsXP版本时,均将参与比较的MinorVersion和MajorVersion两个域稿反了。这是一个非常低级的错误,很少出现在有经验的程序员的代码中。[图11]判断系统版本代码总结主要的比较项目经过整理,如表1所示。比较项目Duqu木马Stuxnet蠕虫功能模块化是Ring0注入方式PsSetLoadImageNotifyRoutineRing3注入方式Hookntdll.dll注入系统进程是资源嵌入DLL模块一个多个利用微软漏洞是使用数字签名是包括RPC通讯模块是配置文件解密密钥0xae2406820x01ae0000注册表解密密钥0xae240682Magicnumber0x90,0x05,0x79,0xae运行模式判断代码存在Bug是注册表操作代码存在Bug是攻击工业控制系统否是驱动程序编译环境Microsoft
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年综合接入服务系统项目可行性研究报告
- 2025年电脑雕刻圣诞灯饰项目可行性研究报告
- 2025至2031年中国牛角扣羊羔绒马甲行业投资前景及策略咨询研究报告
- 2025年果蔬宝农药项目可行性研究报告
- 2025至2031年中国异型结构件行业投资前景及策略咨询研究报告
- 2025年工艺温度计项目可行性研究报告
- 延安2024年陕西延安市市直事业单位选聘70人笔试历年参考题库附带答案详解
- 2025至2031年中国一体式顶置空调器行业投资前景及策略咨询研究报告
- 2025至2030年中国黑豆粉数据监测研究报告
- 2025至2030年高效板式密闭过滤机项目投资价值分析报告
- 水土保持方案中沉沙池的布设技术
- 安全生产技术规范 第25部分:城镇天然气经营企业DB50-T 867.25-2021
- 现代企业管理 (全套完整课件)
- 走进本土项目化设计-读《PBL项目化学习设计》有感
- 《网店运营与管理》整本书电子教案全套教学教案
- 教师信息技术能力提升培训课件希沃的课件
- 高端公寓住宅项目营销策划方案(项目定位 发展建议)
- 执业兽医师聘用协议(合同)书
- 第1本书出体旅程journeys out of the body精教版2003版
- [英语考试]同等学力英语新大纲全部词汇
- 2022年肝动脉化疗栓塞术(TACE)
评论
0/150
提交评论