老冯头——蠕虫病毒恶意软件分析
- 格式:doc
- 大小:341.50 KB
- 文档页数:7
蠕虫病毒—恶意软件分析姓名:冯鑫苑班级:计算机应用专业1021 学号:2010284112一、蠕虫病毒1.蠕虫(Worm)病毒定义:蠕虫病毒是一种常见的计算机病毒。
它的传染机理是利用网络进行复制和传播,传染途径是通过网络、电子邮件以及U盘、移动硬盘等移动存储设备。
比如2006年以来危害极大的“熊猫烧香”病毒就是蠕虫病毒的一种。
蠕虫程序主要利用系统漏洞进行传播。
它通过网络、电子邮件和其它的传播方式,象生物蠕虫一样从一台计算机传染到另一台计算机。
因为蠕虫使用多种方式进行传播,所以蠕虫程序的传播速度是非常大的。
蠕虫侵入一台计算机后,首先获取其他计算机的IP地址,然后将自身副本发送给这些计算机.蠕虫病毒也使用存储在染毒计算机上的邮件客户端地址簿里的地址来传播程序。
虽然有的蠕虫程序也在被感染的计算机中生成文件,但一般情况下,蠕虫程序只占用内存资源而不占用其它资源。
蠕虫还会蚕食并破坏系统,最终使整个系统瘫痪。
2.蠕虫病毒入侵模式:蠕虫病毒由两部分组成:一个主程序和一个引导程序。
主程序一旦在机器上建立就会去收集与当前机器联网的其它机器的信息蠕虫病毒的入侵模式。
它能通过读取公共配置文件并运行显示当前网上联机状态信息的系统实用程序而做到这一点。
随后,它尝试利用前面所描述的那些缺陷去在这些远程机器上建立其引导程序。
蠕虫病毒程序常驻于一台或多台机器中,并有自动重新定位。
(autoRelocation)的能力。
如果它检测到网络中的某台机器未被占用,它就把自身的一个拷贝(一个程序段)发送给那台机器。
每个程序段都能把自身的拷贝重新定位于另一台机器中,并且能识别它占用的哪台机器。
二、对蠕虫病毒进行恶意软件分析1.ClamAV对蠕虫病毒进行分析Clam AntiVirus是一个类UNIX系统上使用的反病毒软件包。
主要应用于邮件服务器,采用多线程后台操作,可以自动升级病毒库。
分析过程:clam av 引擎流程图:clam av没有明确的引擎代码部分,这里以scanmanager函数为开始只画出clamav 整个检测流程。
Clam A V 引擎流程图by nEINEI从整体上看,clamav引擎工作流程是:1 先获取检测配置2 进行病毒库加载,因为库是压缩的,所以先创建一个临时目录用释放解压后的库文件,MD5和BM的库记录会在测试加载完毕,AC算法的库在此时仅是添加到结构当中,因为该算法还要涉及调整内部记录的病毒特征的指针,同时也初始化了一个动态配置结构。
3 构建引擎,至少从函数名字上看是这样,但实际上该步骤仅是调整AC算法的内部记录的特征的指针,保留该步骤应该是历史版本遗留下来的问题。
4 再次进行配置信息的获得,包括扫描文件的最大值,解压缩的比率,是否检测PE,是否开启算法扫描等等。
之所以分两次获取,可能是配置本身过于复杂耗时,如果步骤3失败,则直接退出,没必要开始时初始所以配置信息。
5 对扫描对象的按目录和文件进行分类处理,当处理的对象是目录时,遍历后仍然按单个文件方式处理。
6 对单独的文件,clamav会检测一些是否有和配置信息不符的情况,如解包的递归层数,在超出了给条件的情况下,会报告”Archive.ExceededRecursionLimit”病毒,而后进行格式识别,依据格式识别的返回结果调用不同的处理函数进行库匹配。
最为关键的是第6步,前几个步骤都是为最后一步扫描构建基础环境,在检测中最为关键的是cli_scanpe函数,该函数长达2000多行代码。
从v0.93版中看更加细致的验证PE文件的合法性的操作,在验证通过后才会进入算法扫描(主要用于检测多态病毒)、壳识别、脱壳、普通文件扫描的流程。
但该处理过程没有太清晰的处理逻辑,效率控制也不是太好,从v0.80到v0.93这些处理方式上看,作者并没有试图改变这样处理方案,可以预测以后的版本如果要加入新的病毒检测方案,仍然会强行加入到该函数中。
从可借鉴的角度看,该引擎的部分库格式,与有针对性的文件格式解析都是可以考虑利用的,配置信息的管理,丰富的引擎调试的信息等方式也都很有意义。
分析结果:No. 端口号服务攻击事件数说明1 135和445 windows rpc 分别为42次和457次表明可能感染了最新的windows病毒或蠕虫病毒2 57 email 56次黑客利用fx工具对这个端口进行扫描,寻找微软web服务器弱点3 1080,3128,6588,8080 代理服务分别为64、21、21、163次表示黑客正在进行扫描4 25 smtp服务56次黑客探测smtp服务器并发送LJ邮件信号5 10000+未注册的服务376次攻击这些端口通常会返回流量,原因可能是计算机或防火墙配置不当,或者黑客模拟返回流量进行攻击2.沙盒、蜜罐及多重反病毒扫描网站进行分析入侵过程检测与分析搭建有蜜罐系统的虚拟主机IP 为221.10.91.117 。
连上互联网后,通过嗅探软件发现不时有主机对蜜罐进行基于135 端口的扫描,有时伴随着基于NetBIOS 的扫描(137、139 端口)。
这说明网络中存在大量随机扫描。
大约几小时后,一位不速之客对蜜罐进行了扫描和攻击,其IP 为221.10.90.75,它对蜜罐进行了扫描,主要是基于135 端口(epmap 端口)的扫描。
接下来攻击者对蜜罐的135 端口进行攻击,建立DCE RPC连接,并向蜜罐传送带有恶意代码的数据包。
对所捕获数据进行协议分析的结果如下所示。
Internet Protocol, Src Addr: 221.10.90.75 (221.10.90.75), Dst Addr: 221.10.91.117 (221.10.91.117)Transmission Control Protocol, Src Port: 4685 (4685), Dst Port: epmap (135), Seq: 73, Ack: 61,Len: 1360DCE RPCVersion: 5Version (minor): 0Packet type: Request (0)Packet Flags: 0x03Data Representation: 10000000Frag Length: 1464Auth Length: 0Call ID: 229Alloc hint: 1440Context ID: 1Opnum: 4Stub data (1336 bytes)通过分析其特点发现,这是针对Windows RPC DCOM接口进行缓冲区溢出漏洞的攻击,此漏洞可以通过135(TCP/UDP)、139 、445 、593 等端口发起攻击。
由于Windows 的DCOM实现在处理一个参数的时候没有检查长度。
通过提交一个超长(数百字节)的文件名参数可以导致堆溢出,从而使RpcSS 服务崩溃。
精心构造提交的数据就可以在系统上以本地系统权限运行代码。
攻击者可以在系统中采取任何行为,包括安装程序,窃取更改或删除数据,或以系统权限创建新帐号。
此漏洞可以通过135(TCP/UDP)、139 、445 、593 等端口发起攻击。
由于Windows 的DCOM实现在处理一个参数的时候没有检查长度。
通过提交一个超长(数百字节)的文件名参数可以导致堆溢出,从而使RpcSS 服务崩溃。
精心构造提交的数据就可以在系统上以本地系统权限运行代码。
攻击者可以在系统中采取任何行为,包括安装程序,窃取更改或删除数据,或以系统权限创建新帐号。
蠕虫病毒感染结果分析使用Regsnap 重新生成一份系统的完整快照,然后按F5打开Compare snapshots 窗口,打开第一次生成并保存了的snapshot 文件,点击“OK”,生成一份对比结果文件。
在对比结果的“文件列表于C:\WINNT\System32\*.* ”部分的统计信息发现有1 个新增文件,文件名为winregs32.exe 。
在注册表报告的统计信“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”等处新增了 3 个主键信息,如图 3 所示。
另外Regsnap 还报告了若干注册表键值被修改的信息等。
这样,通过修改注册表,该病毒程序便实现了系统启动时自动运行。
三、静态分析蠕虫病毒变种静态分析:结构化指纹分析与生成该模块的功能是对所输入的病毒A和变种B两个文件分别进行分析并生成其指纹特征。
该模块的输入是两个文件,输出是两个文件的调用图、控制流图以及结构化指纹。
具体步骤如下:a)构造每个可执行文件的调用图和控制流图。
b)在调用图一级,生成函数节点的结构化指纹。
c)在控制流图一级,生成基本块节点的结构化指纹。
在实现中,该模块是以IDAPRO 的插件形式实现的。
这是因为,IDAPRO提供了较为强大的反汇编和分析功能。
同构比较:依据结构化指纹分析与生成模块所产生的结构化指纹,在调用图和控制流图级采用2.2.2节中的算法进行比较。
具体步骤如下:a)在调用图一级进行同构比较,找出两个调用图之间匹配的最大同构子图,即找出两个文件中哪些函数发生了改变,哪些函数没有发生改变。
b)对于发生了改变的函数在控制流图一级进行同构比较,找出哪些基本块发生了改变。
结果显示1)调用图级比较结果显示调用图级的分析结果按照匹配的函数(即固定点)、病毒A中未匹配的函数、变种B中未匹配的函数列表来显示。
图2是对振荡波病毒(Sasser)分析的结果。
b)控制流图级比较结果显示对调用图中的固定点(即匹配函数对)进行控制流图级的比较,结果显示如图3所示。
其中:暗色的节点表示没有发生改变的基本块;白色节点对应发生了改变的基本块。
人工校正提供人工校正的原因是在自动化分析过程中,并不能保证所有函数都进行了正确的匹配,所以允许对结果进行人工校正。
人工校正后,固定点发生了变化,可能需要重掰进行固定点的传播。
因此在人工校正后,提供自动的重新进行固定点传播。
Funnywei 提出了可以增加启发式匹配的方法来发现在固定点初始化和传播过程中可能出现的错误匹配关系。
分析结果:依据该模型,本文实现了MVA(maliciousvariantsanalyser)原型系统,并对曾经影响较大的WelChia、尼姆达、振荡波等病毒进行了分析。
实验结果如表1所示。
依据该实验结果可以看出,WelChia.I与WelChia.h变化不大,仅有4个函数发生了变化;Nimda.b和Nimda.d变种的变化较多,有33个函数,而且Nimda.b比Nimda.d 的函数多5个;Sasser.C与Sasser.b一共有85个函数匹配,只有1个函数发生了改变,而且Sasser.C比Sasser.b多5个函数。