网络蠕虫的早期检测与抑制研究(毕业论文).doc_第1页
网络蠕虫的早期检测与抑制研究(毕业论文).doc_第2页
网络蠕虫的早期检测与抑制研究(毕业论文).doc_第3页
网络蠕虫的早期检测与抑制研究(毕业论文).doc_第4页
网络蠕虫的早期检测与抑制研究(毕业论文).doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第1章 绪论.11.1 研究背景.11.2 蠕虫历史回顾.11.3 研究现状.31.4 论文组织结构.4第2章 蠕虫和病毒的区别.52.1 蠕虫的定义.52.2 病毒的定义.52.3 病毒的种类.62.4 蠕虫和病毒的区别与联系.6第3章 网络蠕虫相关研究.83.1 网络蠕虫的功能结构.83.1.1 主题功能模块83.1.2 辅助功能模块83.2 网络蠕虫的工作机制.93.3 网络蠕虫的扫描策略.93.3.1选择性随机扫描(selective random scan).93.3.2 顺序扫描(sequential scan).103.3.3 基于目标列表的扫描(hit-list scan)103.3.4 基于路由的扫描(routable scan).103.3.5 基于DNS扫描(DNS scan).103.3.6 分治扫描(divide-conquer scan).103.3.7 被动式扫描(passive scan).113.3.8 扫描策略评价.113.4 蠕虫的传播数学模型113.4.1 简单传播模型 Simple Epidemic Model.123.4.2 修补模型Kermack-Mckendrick 模型133.4.3 SIS感染模型143.4.4 Factor模型(双因素传播模型).15第4章 蠕虫早期检测策略17394.1 蠕虫早期检测概述174.2 蠕虫早期检测原理184.2.1 基于特征值匹配的检测技术.184.2.2 利用ICMP不可到达消息检测网络蠕虫.194.2.3 蜜罐检测技术(Honeypot).224.2.4 基于蠕虫爆发的流量检测方法.224.2.5 基于硬件的检测和防御.23第5章 一种新的蠕虫早期检测策略245.1 概述245.2 网络蠕虫预警机制的原理性探索245.3 基于网状关联分析的网络蠕虫预警255.3.1 扫描模块.285.3.2 感染模块.285.3.3 监测器监测模块.295.3.4 MATLAB与VC+关联.295.4 仿真结果305.5 网络蠕虫预警系统的结构模型32第6章 研究展望34结论35致谢36参考文献37前言前言Internet的出现和发展改变了人们交流的方式,生活的方式,改变了全球的经济结构,社会结构,使整个人类社会变成了一个地球村。Internet越来越成为人类物质社会的最重要组成部分,尤其是与各种大型、关键业务系统的结合日益紧密,如党政部门信息系统、金融业务系统和企业商务系统等。但Internet的正常运转时时受到安全威胁。从1988年CERT(计算机紧急响应小组)由于Morris蠕虫事件成立以来,统计到的Internet安全威胁事件每年以指数增长。这些安全威胁事件给Internet带来巨大的经济损失。以美国为例,其每年因为网络安全造成的经济损失超过170亿美元。这同时也使网络信息安全问题得到了世界各国的重视。2001年美国投资20亿美元加强网络安全建设,同样其他各国也都投入了巨大的人力和物力。在全球信息化浪潮的冲击下,我国信息化建设也已进入高速发展阶段,电子商务、电子政务、网络金融和网络媒体等蓬勃发展起来,这些与国民经济、社会稳定息息相关的领域急需信息安全的保障。因此,解决我国的信息安全问题刻不容缓。威胁Internet正常运转的因素非常复杂,这也导致了维护Internet安全也是非常复杂的工作。虽然可以把信息安全问题分解为五个要素:可用性,完整性,机密性,可控性,可审计性,但一般的安全威胁常常要同时涉及到这五个因素中的多个因素。对Internet安全产生威胁的事件可以粗略分为两类:攻击和入侵。攻击的造成的结果是可用性、完整性和可控性的破坏,具体的现象是网络或主机提供的服务、资源不可用,数据被破坏等等;入侵造成的结果是使机密性、可控性和审计性的破坏,这当然也会危及到可用性和完整性,具体的现象是网络资源或主机的管理权部分或全部丧失。在实际的安全威胁事件中,可以看到攻击和入侵也是互为因果、相辅相成的。在Internet安全问题中,恶意软件(malware)造成的经济损失占有最大的比例。恶意软件主要包括计算机病毒(Virus)、蠕虫(Worm)、木马程序(Trojan Horse)、后门程序(Backdoor)、逻辑炸弹(Logic Bomb)等等。另外,许多人提出,要把恶意软件作为网络战的一种攻击手段,这时的网络安全问题已经上升到国家安全的高度了。Internet蠕虫是目前危害最大的恶意软件,几乎每次蠕虫发作都会因其造成的巨大经济损失而给人民留下深刻印象。1988年11月2日,Morris蠕虫发作,几天之内6000台以上的Internet服务器被感染而瘫痪,损失超过一千万美元。2001年7月19日,CodeRed蠕虫爆发,在爆发后的9小时内就攻击了25万台计算机,造成的损失估计超过20亿美元,随后几个月内产生了威力更强的几个变种,其中CodeRed造成的损失估计超过12亿美元。2001年9月18日,Nimda蠕虫被发现,对Nimda造成的损失评估数据从5亿美元攀升到26亿美元后,继续攀升,到现在已无法估计。目前蠕虫爆发的频率越来越快,尤其是近两年来,越来越多的蠕虫出现。随着网络的普及和编写蠕虫难度的降低,网络蠕虫爆发的几率将越来越大。尤其是近几年来网络技术的快速发展,高智能的蠕虫也层出不穷,传播的速度也越来越快,所以研究蠕虫成为各国政府和学术机构的发展重点,制定相应的防范措施也成为当务之急。第1章 绪论第1章 绪论1.1 研究背景Internet蠕虫虽然早在1988年就显示出来它的巨大破坏力和危害性,但当时Internet没有普及,从而也没有引起人们更多的注意。从1990年开始,对抗恶意软件破坏的主要内容锁定在个人电脑的防病毒上,而且这种状况一直延续到现在。科研人员的主要精力放在如何预防、检测和消除攻击个人电脑文件系统的病毒。虽然邮件病毒的出现,使人们认识到了Internet已经使病毒的性质发生了一些变化,需要调整研究方法和目标,但对于蠕虫的研究和防御到目前为止还比较少;而另一方面,近年来,新蠕虫层出不穷,危害越来越大,其造成的危害程度远远超过传统的病毒,而由于对蠕虫的研究的滞后,使人们在蠕虫面前束手无策。Internet蠕虫虽然常常被归类到广义的病毒中,但蠕虫同传统意义上的病毒除了在复制和传染方面具有相似性之外,还有很多不同点,如蠕虫主要以计算机为攻击目标,病毒主要以文件系统为攻击目标;蠕虫具有主动攻击特性,而病毒在传播时需要计算机使用者的触发等等。正是这些与病毒的不同之处,导致传统的病毒防治策略应用到对抗蠕虫时,基本上不再适用,所以对Internet蠕虫的研究迫在眉睫。1.2 蠕虫历史回顾1980年,Xerox PARC的研究人员编写了最早的蠕虫,用来尝试进行分布式计算(Distributed Computation)。整个程序由几个段(Segment)组成,这些段分布在网络中的不同计算机上,它们能够判断出计算机是否空闲,并向处于空闲状态的计算机迁移。当某个段被破坏掉时,其他段能重新复制出这个段。研究人员编写蠕虫的目的是为了辅助科学实验。 1988年11月2日,Morris蠕虫发作,几天之内6000台以上的Internet服务器被感染,损失超过一千万美元。它造成的影响是如此之大,使它在后来的10几年里,被反病毒厂商作为经典病毒案例,虽然它是蠕虫而非病毒;1990年,Morris蠕虫的编写者Robert T. Morris被判有罪并处以3年缓刑、1万美元罚金和400小时的社区义务劳动。Morris蠕虫通过fingerd、sendmail、rexec/rsh三种系统服务中存在漏洞进行传播。1989年10月16日,WANK蠕虫被报告,它表现出来强烈的政治意味,自称是抗议核刽子手的蠕虫(worm against the nuclear killers),将被攻击的DEC VMS计算机的提示信息改为“表面上高喊和平,背地里却准备战争”(You talk of times of peace for all, and then prepare for war.)。WANK蠕虫是通过系统弱口令漏洞进行传播的。1998年5月,ADM蠕虫被发现,它只感染Linux系统,由于程序自身的限制,它的传播效率较低。ADM蠕虫是通过域名解析服务程序BIND中的反向查询(inverse query)溢出漏洞进行传播的。1999年9月,Millennium蠕虫被报告,它可能是最没有名气的蠕虫,因为只有一个人声称自己的计算机被它感染,并且人民能够得到的蠕虫代码不能正常工作。它被认定是ADM蠕虫的仿制品。Millennium蠕虫只感染Linux系统,它入侵系统后,会修补所有它利用的系统漏洞。它通过imapd、qpopper、bind、rpc.mountd四种系统服务中存在漏洞进行传播。2001年1月,Ramen蠕虫在Linux系统下发现,它的名字取自一种面条。它在15分钟内可以扫描13万个地址,早期的版本只修改被入侵计算机Web服务下的index.html文件,在利用系统漏洞入侵后会为系统修补还漏洞。但后期的版本中被加入了隐藏其踪迹的工具包(Rootkit),并在系统中留下后门。虽然它是蠕虫而非病毒,但仍被媒体称为“Linux系统下的首例病毒”。Ramen蠕虫通过wuftpd、rpc.statd、LPRng三种系统服务中存在漏洞进行传播。2001年3月23日,Lion(li0n)蠕虫被发现;它之所以引起了广泛的注意,是因为它是中国的一名黑客写出来的。根据Lion蠕虫编写者的自述,它是四年制的中专生,2000年3月才第一次上网。Lion蠕虫集成了多个网上常见的黑客工具如扫描工具Pscan、后门工具t0rn、DDoS工具TFN2K等等,并把攻击的主机上重要信息如口令文件等发往,这些信息后来在Internet上被广为传播,使曾被蠕虫攻击过的系统即使修补好系统漏洞后,仍然受到潜在的威胁。Lion蠕虫通过域名解析服务程序BIND中的TSIG漏洞进行传播。代码中有明显的对Ramen蠕虫的抄袭痕迹。2001年4月3日,Adore蠕虫被发现,它也曾被称为Red蠕虫,对系统攻击后,会向,,,等处发送系统信息,所以有计算机专家推断Adore蠕虫为中国黑客编写。经分析Adore蠕虫是基于Ramen蠕虫和Lion蠕虫写成,它综合利用了这两个蠕虫的攻击方法。Adore蠕虫通过wuftpd、rpc.statd、LPRng、BIND四种系统服务中存在漏洞进行传播。2001年5月,cheese蠕虫被发现,这个蠕虫号称是友好的蠕虫(friendly worm),是针对Lion蠕虫编写的,它利用Lion蠕虫留下的后门(10008端口的rootshell)进行传播。进入系统后,它会自动修补系统漏洞并清除掉Lion蠕虫留下的所有痕迹。它的出现,被认为是对抗蠕虫攻击的一种新思路,但不管怎样,它造成的网络负载也会导致网络不可用,所以对cheese蠕虫的评价毁誉参半。2001年5月,sadmind蠕虫被发现,也有人称之为sadmind/IIS蠕虫,它被认为是第一个同时攻击两种操作系统的蠕虫。有不确定信息表明它为中国黑客所写。它利用SUN公司的Solaris系统(UNIX族)中的sadmind服务中的两个漏洞进行传播,同时利用微软公司IIS服务器中的Unicode解码漏洞破坏安装了IIS服务器的计算机上的主页。2001年7月19日,CodeRed蠕虫爆发,在爆发后的9小时内就攻击了25万台计算机。造成的损失估计超过20亿美元,随后几个月内产生了威力更强的几个变种,其中CodeRed 蠕虫造成的损失估计12亿美元。由于2001年4月1日的中美撞机事件导致了2001年5月1日前后的所谓中美黑客大战,而CodeRed蠕虫产生的时间刚好是黑客大战的尾声,并且CodeRed蠕虫在被攻击的计算机的网页上留下“Hacked by Chinese!”字样,所以有计算机专家推断CodeRed为中国黑客编写。CodeRed在传染过程中,如果发现被感染的计算机使用的是中文系统,就会把攻击线程从300增加到600,从而造成更大的破坏。根据这个特征,有计算机专家推断CodeRed是他国技术人员对中国技术人员的一种报复。不象Morris蠕虫和Lion蠕虫那样被人评价为粗制滥造,CodeRed蠕虫用到了很多相当高级的编程技术。CodeRed蠕虫的名字取自一种软饮料,通过微软公司的IIS服务的.ida漏洞(Indexing Service中的漏洞)进行传播。2001年9月18日,Nimda蠕虫被发现,不同于以前的蠕虫,Nimda开始结合病毒技术。它的定性引起了广泛的争议NAI(著名的网络安全公司,反病毒厂商McAfee是它的子公司)把它归类为病毒,CERT(Computer Emergency Response Team)把它归类为蠕虫,Incidents.Org(国际安全组织)同时把它归入病毒和蠕虫两类。Nimda蠕虫执行代码里包含“Concept Virus(CV)5.5,Copyright?2001RP.China”,由此有计算机专家推断这个蠕虫也是中国黑客所编写的。对Nimda造成的损失估计从5亿美元攀升到26亿美元后,继续攀升,到现在已无法估计。自从它诞生以来到现在,无论哪里、无论以什么因素作为评价指标排出的十大病毒排行榜,它都榜上有名。Nimda蠕虫只攻击微软公司的WinX系列操作系统,它通过电子邮件、网络邻近共享文件、IE浏览器的内嵌MIME类型自动执行(Automatic Execution of Embedded MIME Types)漏洞、IIS服务器文件目录遍历(directory traversal)的漏洞、CodeRed和sadmind/IIS蠕虫留下的后门共五种方式进行传播。蠕虫的频繁爆发,蠕虫编写技术为越来越多的黑客所掌握,让人们更深切的感受到了进行防治蠕虫研究的紧迫感和压力。1.3 研究现状随着互联网应用的深入,网络蠕虫对计算机系统安全和网络安全的威胁日益增加。特别是在网络环境下,多样化的传播途径和复杂的应用环境使网络蠕虫的发生频率增高,潜伏性变强,覆盖面更广,造成的损失也更大。1988年著名的Morris蠕虫事件成为网络蠕虫攻击的先例,从此,网络蠕虫成为研究人员的重要课题。2001年7月,CodeRed爆发后,蠕虫研究再度引起人们的关注。目前蠕虫研究主要集中在蠕虫功能结构、工作机制、扫描策略、传播模型及蠕虫对抗技术方面。Spafford首次对Morris蠕虫的功能结构和工作机制进行了剖析.UC Berkeley的Nicholas C Weaver对网络蠕虫的快速扫描策略进行了分析研究,并实现了Warhol试验蠕虫,理论推测该蠕虫能在30分钟内感染整个互联网。在传播模型方面,IBM的Kephart, White和Chess在1991年1993年对病毒传播模型进行了研究,在此基础上,邹长春等人以CodeRed为例,讨论了基于微分方程的双因素蠕虫传播模型。在蠕虫对抗技术方面,1998年,IBM的Steve R. White认为传统的单机防病毒技术已不再适用于对蠕虫的防治;2000年,IBM启动对抗网络蠕虫的项目,力求开发一个自动检测和防御蠕虫的软硬件环境;Dug Song等人对蠕虫引起的网络流量统计特征做了研究,力图通过对网络流量异常检测实现对网络蠕虫的防范;David Moore提出了衡量蠕虫防范系统有效性的3个参数:响应时间、防范策略、部署策略,并认为目前蠕虫防范系统在这3个参数上还难以达到要求。近年来,国外政府、研究机构都非常重视网络蠕虫研究,美国政府近期投入546万美元给UC Berkeley和Southern California大学建立网络攻击测试床,用于蠕虫、病毒等方面的研究,测试床设备多达千余台主机。 2003年10月,网络蠕虫专题研讨会在Washington DC召开,讨论了Internet蠕虫的发展历程及未来趋势、计算机蠕虫的分类、蠕虫流量仿真、蠕虫预警系统设计与测试、蠕虫的传播仿真、蠕虫模型剖析及隔离技术等。在国内,网络蠕虫研究日益得到重视,政府及安全公司都在积极开展网络蠕虫的防治工作。1.4 论文组织结构本文共有6章组成,各章内容安排如下:第1章 绪论 简要介绍蠕虫的研究背景和现状,说明网络蠕虫研究的重要性。第2章 “蠕虫和病毒的区别” 主要阐述蠕虫和病毒在定义上的区别,弄清传统概念上的误区。第3章 “蠕虫的传播策略和传播模型” 首先介绍了几种已有的蠕虫传播策略,分析了它们各自的长处和不足,然后介绍了目前常被设计者采用的蠕虫模型。第4章 “蠕虫的早期检测策略” 本章首先介绍了目前已有的几种蠕虫早期检测方法,在此基础上详细讨论了各种检测方法的基本原理。第5章 “一种新的蠕虫早期检测策略” 本章在前面所讲的基础上提出一种较好的检测方法,这种方法不同于其他方法,并用仿真软件进行仿真研究。第6章 “研究展望” 总结了蠕虫研究的几个主要领域,并对未来蠕虫研究的方向和趋势做出估计。第2章 蠕虫和病毒的区别第2章 蠕虫和病毒的区别计算机蠕虫和病毒由于在被感染主机上所表现的相似性,致使人们对蠕虫和病毒的概念产生了混淆。但无论如何,一旦主机被蠕虫和病毒感染,都会产生一定的差异性。比如CPU使用率持续偏高,内存被大幅占用,文件系统完整性被篡改,系统持续向外发包等。特别是最近几年来蠕虫和病毒技术的混合使用,使得两者在感染完主机后所表现的现象极为相似。但是两者在本质上仍然有着本质的区别。2.1 蠕虫的定义蠕虫是在1982年被引入到计算机领域的,最初编写蠕虫的目的是为了分布式计算模型的测试,当时蠕虫的破坏性已经初露端倪,但并没有引起研究者的重视和注意。直到1988年Morris蠕虫的爆发,才使得全世界的目光第一次聚集到这种恶意代码的身上来,Spafford为了区分蠕虫和病毒,对蠕虫重新进行了定义,他认为“蠕虫可以独立运行,并且自动复制自身并传播到另一台主机。” 网络蠕虫强调自身的主动性和独立性。Kienzle和Elder从破坏性、网络传播、主动攻击和独立性4个方面对网络蠕虫进行了定义:网络蠕虫是通过网络传播,无需用户干预能够独立地或者依赖文件共享主动攻击的恶意代码。根据传播策略,他们把网络蠕虫分为3类:Email蠕虫、文件共享蠕虫和传统蠕虫。郑辉在他的博士论文中认为蠕虫具有主动攻击、行踪隐蔽、利用漏洞、造成网络拥塞、降低系统性能、产生安全隐患、反复性和破坏性等特征,并给出相应的定义:“网络蠕虫是无须计算机使用者干预即可运行的独立程序,它通过不停地获得网络中存在漏洞的计算机上的部分或全部控制权来进行传播。”综上所述,我认为“网络蠕虫是一种智能化、自动化,综合网络攻击、密码学和计算机病毒技术,不需要计算机使用者干预即可运行的攻击程序或代码。它会扫描和攻击网络上存在系统漏洞的节点主机,通过局域网或者国际互联网从一个节点传播到另外一个节点”。2.2 病毒的定义人们在探讨计算机病毒的定义时,常常追溯到David Gerrold在1972年的发表的科幻小说When Harlie Was One,但计算机病毒的技术角度的定义是由Fred Cohen在1984年给出的,“计算机病毒是一种程序,它可以感染其他程序,感染的方式为在被感染程序中加入计算机病毒的一个副本,这个副本可能是在原病毒基础上演变过来的。”(a program that can infect other programs by modifying them to include a possibly evolved copy of itself.)。1988年Morris蠕虫爆发后,Eugene H.Spafford为了区分蠕虫和病毒,将病毒的含义作了进一步的解释。“计算机病毒是一段代码,能把自身加到其他程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它。”2.3 病毒的种类根据赛门铁克公司对目前病毒的种类划分,病毒主要可以划分为五类:文档型病毒、引导区病毒、主引导记录型病毒、复合型病毒、宏病毒。虽然各种病毒目标感染的目标不同,但是都具有基本的性质:a获得系统一定权限,迫使自己运行;b 复制自己。1)文档型病毒:这种病毒通过感染文件来达到目的,通常感染可执行文件如EXE文件。一旦被感染文件被用户激活,则病毒同时被激活。这种病毒通常驻留于内存,一旦被感染的文件被执行,那么病毒就会驻留到内存并持续到关机时刻,在关机之前如果用户执行了其他可执行文件,那么这些文件会被该病毒同时感染。所以这种病毒通常危害性较大。2)引导区型病毒:这种病毒主要感染硬盘的系统区,也就是通常上的C盘。所有的硬盘在其引导记录中都包含一个小的引导程序,每次硬盘启动时该程序都会被自动执行。引导型病毒就是通过与硬盘的引导程序进行绑定,使得每次开机或重起时该病毒都会被执行,这种病毒通常也驻留于内存中。3)主引导记录型病毒:和引导型病毒的机制非常相似,常驻留于内存。但主要区别在于主引导记录型病毒通常会在硬盘的其他地方为主引导记录程序保留一份正确的拷贝。4)宏病毒:该病毒主要感染数据文件,利用被感染对象本身具有的宏能力来设计病毒,所以凡是具有宏能力的软件都可以被感染这种病毒。比如Word, Excel都是该病毒的感染对象。5)复合型病毒:这种病毒是文档型病毒和引导区型病毒的混合体,它既能够感染程序文件又可以感染硬盘引导区,较难清除。因为只清除其中的一部分并不能彻底杀死病毒,在以后某个时间段内,剩下的部分病毒仍能重复感染先前被清除的部分。2.4 蠕虫和病毒的区别与联系计算机蠕虫和计算机病毒都具有传染性和复制功能,这两个主要特性上的一致,导致二者之间是非常难区分的,尤其是近年来,越来越多的病毒采取了部分蠕虫的技术,另一方面具有破坏性的蠕虫也采取了部分病毒的技术,更加剧了这种情况。但对计算机蠕虫和计算机病毒进行区分还是非常必要的,因为通过对它们之间的区别、不同功能特性的分析,可以确定谁是对抗计算机蠕虫的主要因素、谁是对抗计算机病毒的主要因素:可以找出有针对性的有效对抗方案;同时也为对它们的进一步研究奠定初步的理论基础。病毒和蠕虫的一些差别,如下表:蠕虫 病毒主动性 主动传播 被动激发感染对象 存在安全漏洞的主机 文件系统感染机制 复制自己 插入宿主程序存在方式 独立存在 寄存在宿主程序计算机用户角色 无关 激发者影响重点 网络 本地防治措施 打补丁 删除宿主程序对抗主体 计算机用户,网络管理 计算机用户,杀毒厂商第3章 网络蠕虫相关研究3.1 网络蠕虫的功能结构Jose Nazario等人在文献中提出了蠕虫的一个功能结构框架。他们把蠕虫的功能模块分为6个部分:搜索模块(reconnaissance capabilities)、特殊攻击模块(specific attack capabilities)、命令操作界面模块(a command interface)、通信模块(communications capabilities)、智能模块(intelligence capabilities)和非攻击使用模块(unused attack capabilities)。该框架主要是对未来蠕虫的预测,难以准确地表达当前网络蠕虫的功能结构,我分析认为,网络蠕虫的功能模块可以分为主体功能模块和辅助功能模块。实现了主体功能模块的蠕虫能够完成复制传播流程,而包含辅助功能模块的蠕虫程序则具有更强的生存能力和破坏能力。我定义网络蠕虫功能结构如下图所示。3.1.1 主体功能模块主体功能模块由4个模块构成。 信息搜集模块。该模块决定采用何种搜索算法对本地或者目标网络进行信息搜集,内容包括本机系统信息、用户信息、邮件列表、对本机的信任或授权的主机、本机所处网络的拓扑结构、边界路由信息等等,这些信息可以单独使用或被其他个体共享。 扫描探测模块。完成对特定主机的脆弱性检测,决定采用何种攻击渗透方式。 攻击渗透模块。该模块利用获得的安全漏洞,建立传播途径,该模块在攻击方法上是开放的、可扩充的。 自我推进模块。该模块可以采用各种形式生成各种形态的蠕虫副本,在不同主机间完成蠕虫副本传递。例如,Nimda会生成多种文件格式和名称的蠕虫副本;W32.Nachi.Worm利用系统程序(例如TFTP)来完成推进模块的功能等。结论3.1.2 辅助功能模块辅助功能模块是对除主体功能模块以外的其他模块的归纳或预测,主要由5个功能模块构成。 实体隐藏模块。包括对蠕虫各个实体组成部分的隐藏、变形、加密以及进程的隐藏,主要提高蠕虫的生存能力。 宿主破坏模块。该模块用于摧毁或破坏被感染主机,破坏网络正常运行,在被感染主机上留下后门等。 信息通信模块。该模块能使蠕虫间、蠕虫同黑客之间进行交流,这是未来蠕虫发展的重点;利用通信模第3章 蠕虫相关研究块,蠕虫间可以共享某些信息,使蠕虫的编写者更好地控制蠕虫行为。 远程控制模块。控制模块的功能是调整蠕虫行为,控制被感染主机,执行蠕虫编写者下达的指令。 自动升级模块。该模块可以使蠕虫编写者随时更新其他模块的功能,从而实现不同的攻击目的。3.2 网络蠕虫的工作机制网络蠕虫的工作机制如下图所示从网络蠕虫主体功能模块实现可以看出,网络蠕虫的攻击行为可以分为4个阶段:信息收集、扫描探测、攻击渗透和自我推进。信息收集主要完成对本地和目标节点主机的信息汇集;扫描探测主要完成对具体目标主机服务漏洞的检测;攻击渗透利用已发现的服务漏洞实施攻击;自我推进完成对目标节点的感染。3.3 网络蠕虫的扫描策略蠕虫扫描策略是指蠕虫在扩散的过程中选择下一步潜在感染对象时所采用的方法,扫描策略的好坏与否直接影响着蠕虫传播速度的快慢。研究人员对目前出现的蠕虫进行分析得知蠕虫的扫描策略主要有:随机性扫描、顺序扫描、目标列表扫描、路由信息扫描、DNS扫描、分治扫描等。3.3.1 选择性随机扫描(selective random scan)随机扫描会对整个地址空间的IP随机抽取进行扫描,而选择性随机扫描将最有可能存在漏洞主机的地址集作为扫描的地址空间,也是随机扫描策略的一种。所选的目标地址按照一定的算法随机生成,互联网地址空间中未分配的或者保留的地址块不在扫描之列。例如,Bogon列表中包含近32个地址块,这些地址块对公网中不可能出现的一些地址进行了标识。选择性随机扫描具有算法简单、容易实现的特点,若与本地优先原则结合,则能达到更好的传播效果。但选择性随机扫描容易引起网络阻塞,使得网络蠕虫在爆发之前易被发现,隐蔽性差。 CodeRed,Slapper和Slammer的传播采用了选择性随机扫描策略。3.3.2 顺序扫描(sequential scan)顺序扫描是指被感染主机上蠕虫会随机选择一个C类网络地址进行传播。根据本地优先原则,蠕虫一般会选择它所在网络内的IP地址。若蠕虫扫描的目标地址IP为A,则扫描的下一个地址IP为A+1或者A-1。一旦扫描到具有很多漏洞主机的网络时就会达到很好的传播效果。该策略的不足是对同一台主机可能重复扫描,引起网络拥塞。W32.Blaster是典型的顺序扫描蠕虫。3.3.3 基于目标列表的扫描(hit-list scan)基于目标列表的扫描是指网络蠕虫在寻找受感染的目标之前预先生成一份可能易传染的目标列表,然后对该列表进行攻击尝试和传播。目标列表生成方法有两种: 通过小规模的扫描或者互联网的共享信息产生目标列表; 通过分布式扫描可以生成全面的列表数据库。理想化蠕虫Falsh5,31就是一种基于IPV4地址空间列表的快速扫描蠕虫。3.3.4 基于路由的扫描(routable scan)基于路由的扫描是指网络蠕虫根据网络中的路由信息,对IP地址空间进行选择性扫描的一种方法。采用随机扫描的网络蠕虫会对未分配的地址空间进行探测,而这些地址大部分在互联网上是无法路由的,因此会影响到蠕虫的传播速度。如果网络蠕虫能够知道哪些IP地址是可路由的,它就能够更快、更有效地进行传播,并能逃避一些对抗工具的检测。网络蠕虫的设计者通常利用BGP路由表公开的信息获取互连网路由的IP地址前辍,然后来验证BGP数据库的可用性。基于路由的扫描极大地提高了蠕虫的传播速度,以CodeRed为例,路由扫描蠕虫的感染率是采用随机扫描蠕虫感染率的3.5倍.基于路由扫描的不足之处就是网络蠕虫传播时必须携带一个路由IP地址库,蠕虫代码量大。3.3.5 基于DNS扫描(DNS scan)基于DNS扫描是指网络蠕虫从DNS服务器获取IP地址来建立目标地址库。该扫描策略的优点在于,所获得的IP地址具有针对性和可用性强的特点。基于DNS扫描的不足是: 难以得到有DNS记录的地址完整列表; 蠕虫代码需要携带非常大的地址库,传播速度慢; 目标地址列表中地址数受公共域名主机的限制。3.3.6 分治扫描(divide-conquer scan)分治扫描是网络蠕虫之间相互协作、快速搜索易感染主机的一种策略。网络蠕虫发送地址库的一部分给每台被感染的主机,然后每台主机再去扫描它所获得的地址。主机A感染了主机B以后,主机A将它自身携带的地址分出一部分给主机B,然后主机B开始扫描这一部分地址。提出了一种对目标列表进行分治扫描的策略。分治扫描策略的不足是存在“坏点”问题。在蠕虫传播的过程中,如果一台主机死机或崩溃,那么所有传给它的地址库就会丢失。这个问题发生得越早,影响就越大。有3种方法能够解决这个问题: 在蠕虫传递地址库之前产生目标列表; 通过计数器来控制蠕虫的传播情况,蠕虫每感染一个节点,计数器加1,然后根据计数器的值来分配任务; 蠕虫传播的时候随机决定是否重传数据库。3.3.7 被动式扫描(passive scan)被动式传播蠕虫不需要主动扫描就能够进行传播。它们等待潜在的攻击对象来主动接触它们,或者依赖用户的活动去发现新的攻击目标。由于它们需要用户触发,所以传播速度很慢,但这类蠕虫在发现目标的过程中并不会引起通信异常,这使得它们自身具有更强的安全性。Contagion是一个被动式蠕虫,它通过正常的通信来发现新的攻击对象。CRClean等待Code Red II的探测活动,当它探测到一个感染企图时,就发起一个反攻来回应该感染企图,如果反攻成功,它就删除Code Red II,并将自己安装到相应机器上。3.3.8 扫描策略评价网络蠕虫传播速度的关键影响因素有4个:目标地址空间选择、是否采用多线程搜索易感染主机、是否有易感染主机列表(hit-list)以及传播途径的多样化。各种扫描策略的差异主要在于目标地址空间的选择。网络蠕虫感染一台主机的时间取决于蠕虫搜索到易感染主机所需要的时间。因此,网络蠕虫快速传播的关键在于设计良好的扫描策略。一般情况下,采用DNS扫描传播的蠕虫速度最慢,选择性扫描和路由扫描比随机扫描的速度要快;对于Hit-list扫描,当列表超过1M字节时,蠕虫传播的速度就会比路由扫描蠕虫慢;当列表大于6M时,蠕虫传播速度比随机扫描还慢。分治扫描目前还没有找到易于实现且有效的算法。目前,网络蠕虫首先采用路由扫描,再利用随机扫描进行传播是最佳选择。3.4 蠕虫的传播数学模型网络蠕虫和生物病毒在自复制和传播等方面有很多相似之处,所以也可以用数学技术来研究网络蠕虫。在流行病学领域,有两种模型来模拟传染疾病的传播:随机模型和确定模型。前者适合有简单病毒的小规模系统,后者适合有复杂病毒的大规模系统。因为网络蠕虫的传播是全球性的,所以学术界通常采用确定模型。目前描述网络蠕虫的传播有很多数学模型,我主要介绍简单传播模型SEM,修补模型Kermack-Mckendrick 模型 ,SIS传播模型 ,Two-Factor模型(双因素传播模型)。3.4.1 简单传播模型 Simple Epidemic Model在Simple Epidemic Model(简称SEM)中,每台主机保持两种状态:易感染的和感染的。该模型假定一台主机一旦被感染就始终保持被感染的状态,因此状态转变过程是:易感染被感染。先假设各个数学符号如下:t时间变量I(t) 某时刻已经被感染的主机数目N 脆弱主机的数目 蠕虫的扫描频率 IP空间 一段很短的时间段SEM模型中蠕虫采用的是随机扫描策略,在这段时间中,每个感染主机发出次扫描。每次蠕虫扫描中,一台主机被扫描到的概率为1/。平均来说,在这段时间中,一台感染主机在的IP空间中扫描到一个特定IP的概率为=1-(1-1/)=/ 在时间t系统中一共有N- I(t)个脆弱主机,在这段时间中一台被感染主机可以感染的脆弱主机数为N- I(t) ;所以可以知道在这段时间中被感染的主机数为I(t)*N- I(t) *。在t+时刻,被感染主机数目为:I(t+)= I(t)+ I(t)*N- I(t) *当-0时,得到感染模型:dI(t)/dt=(/)*I(t)*N- I(t) 其中=/dI(t)/dt=*I(t)*N- I(t) 公式(1)在公式(1)中,I(t)为时刻t已被感染的主机数;N为网络中主机总数;为主机感染率.当t=0时,I(0)为已感染的主机数,N-I(0)为易感染主机数。令a(t)=I(t)/N,根据式(1)可以得出下面的方程: da(t)/dt=K*a(t)*1- a(t) 其中K=N利用MatLab仿真工具取节点数N=10000000,感染概率因子为=1/10000000,即K=N=1,当蠕虫繁殖副本数量I(0)=3时,仿真结果如图2所示,横坐标为传播时间,纵坐标为整个网络被感染的百分比。图1 SEM模型感染图3.4.2 修补模型Kermack-Mckendrick 模型与SEM模型不同的是,Kermack-Mckendrick传播模型(简称KM模型)的主机保持3种状态:易感染、被感染和免疫。先假设各个数学符号如下:t时间变量I(t)表示时刻t仍具有感染性的主机数R(t)表示时刻t已经从被感染的机器中免疫的主机数J(t)表示到时刻t所有被感染过的主机数,包括仍具有感染性的和已经从被感染的机器中免疫的。主机感染率主机从被感染的机器中移除的恢复率S(t)表示时刻t仍具有脆弱性的主机数N表示网络中全部节点主机. KM模型在SEM的基础上考虑感染主机免疫的状态,更加适合蠕虫传播的情况,对于KM模型来说,当被感染节点免疫以后,相当于把此节点从整个网络节点主机中去除,也就是说一旦主机节点被免疫则永久性地不会再被感染,所以可以得知J(t)= I(t)+ R(t)。根据Simple Epidemic Model模型的微分方程,我可以得到Kermack-Mckendrick传播模型的方程如下:这里仍然利用数学仿真软件MATLAB对上面的方程组进行微分计算,下面给出了KM模型中蠕虫的传播趋势。图中取节点数N=10000,感染率=1/10000000,蠕虫繁殖副本数量J(0)=3时,恢复率=0.001。仿真结果如图3所示,横坐标为传播时间,纵坐标为相应主机的感染数,我对上面方程中的I(t)和S(t)进行考察,图中蓝线代表S(t),红线代表I(t)。从图中我可以看到KM模型中感染主机数I(t)并没有像Simple Epidemic Model模型中的曲线一样随着时间的增长而递增,而是在某一时刻开始递减,这主要是由于感染主机在一定程度后感染的速度开始放缓同时随着时间的增长先前感染的主机被不断免疫后造成的。图2 KM模型图虽然Kermack-Mckendrick传播模型比Simple Epidemic Model模型更好,更真实的反映了蠕虫的感染情况,但是其仍然存在着一定的缺陷:首先由于网络是一个复杂的环境,蠕虫的感染率并不是一个常量,而是随着网络环境的变化而变化,比如在蠕虫爆发期间由于感染主机在大量的扫描外部主机导致有限带宽的资源耗尽,使得蠕虫的感染率降低。其次,免疫的主机数R(t)并不是单单由被感染主机I(t)决定的,也包括脆弱主机S(t)被直接打包造成的免疫等。3.4.3 SIS感染模型SIS模型中与Simple Epidemic Model模型非常相似,每台主机只有两种状态:易感染状态和被感染状态。但是与Simple Epidemic Model模型不同的是该模型考虑了主机被感染之后仍然会被修复回到易感染的情况。但与Kermack-Mckendrick传播模型不同的是修复的主机仍然是可以被感染的。先假设各个数学符号如下:t时间变量I(t)表示时刻t仍具有感染性的主机数主机感染率被感染主机的修复率N表示网络中全部节点主机所以SIS模型的微分方程如下:dI(t)/dt=*I(t)*N- I(t)-I(t) 公式(2)利用MATLAB仿真工具取节点数N=10000000,感染概率因子为=1/10000000, 蠕虫繁殖副本数量I(0)=3, 恢复率=0.001。仿真结果如图3所示,横坐标为传播时间,纵坐标为整个网络被感染的主机数。图3 SIS模型上图中对SIS模型进行了三种情况下的仿真,蓝线为=1/10000000时的蠕虫扩散图,红线为=1/50000000时刻的蠕虫扩散图,绿线为=1/100000000时刻的扩散图。从图中可知随着蠕虫感染率的降低,蠕虫大规模爆发的时间段将会后移,但是由于SIS模型中任何主机都只有两种状态:感染和易感染,也就是说主机被免疫之后仍然会被重复感染,所以在修复率不是太大的情况下,蠕虫仍然可以饱和感染整个网络只是所需的时间相比较SEM模型要相对晚一些。3.4.4 Factor模型(双因素传播模型)双因素传播模型考虑了更多的外界影响因素和蠕虫对抗措施: 各ISP节点或用户的对抗措施; 网络蠕虫的快速传播导致一些路由器发生阻塞,从而降低网络蠕虫的传播速度。在这个模型中,(t),R(t)和Q(t)都是随着时间t动态变化的参数。先假设各个数学符号如下:t时间变量I(t)表示时刻t仍具有感染性的主机数R(t)表示时刻t已经从被感染的机器中免疫的主机数J(t)表示到时刻t所有被感染过的主机数,包括仍具有感染性的和已经从被感染的机器中免疫的。S(t)表示时刻t仍具有脆弱性的主机数Q(t)表示时刻t被感染前就作了免疫处理的主机数主机感染率主机从被感染的机器中移除的恢复率和0为常量这里给出双因素模型的方程式:dR(t)/dt=I(t) dQ(t)/dt=S(t)J(t) dS(t)/dt=-(t)S(t)I(t)-dQ(t)/dt 公式(3) N=S(t)+I(t)+Q(t)+

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论