《网络蠕虫》PPT课件.ppt
合肥工业大学计算机与信息学院 张仁斌,计算机病毒与反病毒技术,主要内容,网络蠕虫的定义及其与狭义病毒的区别蠕虫的分类蠕虫的工作原理蠕虫的行为特征蠕虫的防治,第6章 网络蠕虫,6.1.1 蠕虫的起源,1980年,Xerox PARC的研究人员John Shoch和Jon Hupp在研究分布式计算、监测网络上的其他计算机是否活跃时,编写了一种特殊程序,Xerox蠕虫1988年11月2日,世界上第一个破坏性计算机蠕虫正式诞生Morris为了求证计算机程序能否在不同的计算机之间进行自我复制传播,编写了一段试验程序为了让程序能顺利进入另一台计算机,他还写了一段破解用户口令的代码11月2日早上5点,这段被称为“Worm”(蠕虫)的程序开始了它的旅行。它果然没有辜负Morris的期望,爬进了几千台计算机,让它们死机Morris蠕虫利用sendmail的漏洞、fingerD的缓冲区溢出及REXE的漏洞进行传播Morris在证明其结论的同时,也开启了蠕虫新纪元,6.1 蠕虫的起源及其定义,6.1.2 蠕虫的原始定义,蠕虫这个生物学名词在1982年由Xerox PARC的John F.Shoch等人最早引入计算机领域,并给出了计算机蠕虫的两个最基本特征:“可以从一台计算机移动到另一台计算机”和“可以自我复制”1988年Morris蠕虫爆发后,Eugene H.Spafford为了区分蠕虫和病毒,给出了蠕虫的技术角度的定义:“Worm is a program that can run by itself and can propagate a fully working version of itself to other machines.”(计算机蠕虫可以独立运行,并能把自身的一个包含所有功能的版本传播到另外的计算机上),6.1 蠕虫的起源及其定义,6.1.3 计算机病毒的原始定义,计算机病毒从技术角度的定义是由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为了区分蠕虫和病毒,将病毒的含义作了进一步的解释:“Virus is a piece of code that adds itself to other programs,including operating systems.It cannot run independently and it requires that its host program be run to activate it.”(计算机病毒是一段代码,能把自身加到其它程序包括操作系统上。它不能独立运行,需要由它的宿主程序运行来激活它),6.1 蠕虫的起源及其定义,6.1.4 蠕虫与病毒之间的区别及联系,6.1 蠕虫的起源及其定义,6.1.5 蠕虫定义的进一步说明,计算机病毒主要攻击的是文件系统,在其传染的过程中,计算机使用者是传染的触发者,是传染的关键环节,使用者的计算机知识水平的高低常常决定了病毒所能造成的破坏程度。而蠕虫主要是利用计算机系统漏洞(Vulnerability)进行传染,搜索到网络中存在漏洞的计算机后主动进行攻击,在传染的过程中,与计算机操作者是否进行操作无关,从而与使用者的计算机知识水平无关蠕虫的定义中强调了自身副本的完整性和独立性,这也是区分蠕虫和病毒的重要因素。可以通过简单的观察攻击程序是否存在载体来区分蠕虫与病毒不能简单的把利用了部分网络功能的病毒统称为蠕虫或蠕虫病毒“Melissa网络蠕虫宏病毒”(Macro.Word97.Melissa)、“Lover Letter网络蠕虫病毒”(VBS.LoveLetter)等等,都是病毒,而不是蠕虫。以病毒命名的“冲击波病毒”(Worm.MSBlast),却是典型的蠕虫,6.1 蠕虫的起源及其定义,6.2.1 蠕虫的分类,根据蠕虫的传播、运作方式,可以将蠕虫分为两类主机蠕虫主机蠕虫的所有部分均包含在其所运行的计算机中在任意给定的时刻,只有一个蠕虫的拷贝在运行也称作“兔子”(Rabbit)网络蠕虫网络蠕虫由许多部分(称为段,Segment)组成,而且每一个部分运行在不同的计算机中(可能执行不同的动作)使用网络的目的,是为了进行各部分之间的通信以及传播网络蠕虫具有一个主segment,该主segment用以协调其他segment的运行这种蠕虫有时也称作“章鱼”(Octopus),6.2 蠕虫的分类,6.2.2 蠕虫与漏洞,网络蠕虫最大特点是利用各种漏洞进行自动传播根据网络蠕虫所利用漏洞的不同,又可以将其细分邮件蠕虫主要是利用MIME(Multipurpose Internet Mail Extension Protocol,多用途的网际邮件扩充协议)漏洞,6.2 蠕虫的分类,MIME描述漏洞,6.2.2 蠕虫与漏洞,网页蠕虫主要是利用IFrame漏洞和MIME漏洞网页蠕虫可以分为两种用一个IFrame插入一个Mail框架,同样利用MIME漏洞执行蠕虫,这是直接沿用邮件蠕虫的方法用IFrame漏洞和浏览器下载文件的漏洞来运作的,首先由一个包含特殊代码的页面去下载放在另一个网站的病毒文件,然后运行它,完成蠕虫传播系统漏洞蠕虫利用RPC溢出漏洞的冲击波、冲击波杀手利用LSASS溢出漏洞的震荡波、震荡波杀手系统漏洞蠕虫一般具备一个小型的溢出系统,它随机产生IP并尝试溢出,然后将自身复制过去它们往往造成被感染系统性能速度迅速降低,甚至系统崩溃,属于最不受欢迎的一类蠕虫,6.2 蠕虫的分类,6.3.1 蠕虫的基本结构,蠕虫程序的实体结构蠕虫程序的功能结构,6.3 蠕虫的基本原理,6.3.2 蠕虫的工作方式与扫描策略,蠕虫的工作方式一般是“扫描攻击复制”,6.3 蠕虫的基本原理,6.3.2 蠕虫的工作方式与扫描策略,蠕虫的扫描策略现在流行的蠕虫采用的传播技术目标,一般是尽快地传播到尽量多的计算机中扫描模块采用的扫描策略是:随机选取某一段IP地址,然后对这一地址段上的主机进行扫描没有优化的扫描程序可能会不断重复上面这一过程,大量蠕虫程序的扫描引起严重的网络拥塞对扫描策略的改进在IP地址段的选择上,可以主要针对当前主机所在的网段进行扫描,对外网段则随机选择几个小的IP地址段进行扫描对扫描次数进行限制,只进行几次扫描把扫描分散在不同的时间段进行,6.3 蠕虫的基本原理,6.3.2 蠕虫的工作方式与扫描策略,扫描策略设计的原则尽量减少重复的扫描,使扫描发送的数据包总量减少到最小保证扫描覆盖到尽量大的范围处理好扫描的时间分布,使得扫描不要集中在某一时间内发生怎样找到一个合适的策略需要在考虑以上原则的前提下进行分析,甚至需要试验验证,6.3 蠕虫的基本原理,6.3.2 蠕虫的工作方式与扫描策略,蠕虫常用的扫描策略选择性随机扫描(包括本地优先扫描)可路由地址扫描(Routable Scan)地址分组扫描(Divide-Conquer Scan)组合扫描(Hybrid Scan)极端扫描(Extreme Scan),6.3 蠕虫的基本原理,6.3.3 蠕虫的传播模型,蠕虫在计算机网络上的传播,可看作是服从某种规律的网络传播行为一个精确的蠕虫传播模型可以使人们对蠕虫有更清楚的认识,能确定其在传播过程中的弱点,而且能更精确的预测蠕虫所造成的损失目前已有很多学者对蠕虫进行了深入研究,提出了一些模型,这些蠕虫传播模型都是针对随机网络的,不能很好的模拟实际网络环境。如何精确地描述蠕虫传播行为,揭示它的特性,找出对该行为进行有效控制的方法,一直是学者们共同关注的焦点最经典网络传播模型的SIS模型和SIR模型在SIS模型中,每一个网络节点只能处于两种状态中的一种,一是易感的,二是已被感染从而具有传染能力的在SIR模型中,节点还可以处于一种叫做免疫的状态,在这种状态下,节点既不会被感染,也不会感染其它节点,6.3 蠕虫的基本原理,6.3.3 蠕虫的传播模型,Kermack-Mckendrick模型是SIR模型中的经典在Kermack-Mckendrick模型中考虑了感染主机的恢复,它假定在蠕虫传播期间,一些受感染的主机可以恢复为正常状态或死亡,且对此蠕虫具有免疫功能,因此每个主机具有三种状态:易感、感染或恢复,其状态转移可表示为易感感染恢复,或永远保持易感状态,6.3 蠕虫的基本原理,6.3.3 蠕虫的传播模型,感染的主机数与感染强度示意图,6.3 蠕虫的基本原理,6.3.3 蠕虫的传播模型,Kermack-Mckendrick模型用数学公式可以表示为r(t)表示在时刻t被感染的主机数R(t)表示在时刻t被恢复的主机数S(t)表示在t时刻尚未感染的主机数N表示主机总数从Kermack-Mckendrick模型可以得出一个重要的理论蠕虫爆发定理:一个大规模蠕虫爆发的充分必要条件是初始易感主机的数目S(0)由于存在蠕虫爆发的阈值,因此,采取各种防治手段,如安装杀毒软件、打补丁、断开网络连接等降低蠕虫感染率,通过先进的治疗手段提高恢复率,使S(0),从而有效地遏制蠕虫的传播。能否在蠕虫的缓慢传播阶段实现对蠕虫的检测和防治成为有效防治蠕虫的关键,6.3 蠕虫的基本原理,6.3.4 蠕虫的行为特征,通过对蠕虫的整个工作流程进行分析,可以归纳得到它的行为特征主动攻击行踪隐蔽利用系统、网络应用服务器漏洞造成网络拥塞消耗系统资源,降低系统性能产生安全隐患反复性破坏性,6.3 蠕虫的基本原理,6.3.5 蠕虫技术的发展,通过对蠕虫行为特征、实体结构、功能结构的分析,可以预测蠕虫技术发展的趋势将主要集中在如下几个方面:超级蠕虫分布式蠕虫动态功能升级技术通信技术与黑客技术的结合与病毒技术的结合,6.3 蠕虫的基本原理,6.4.1 蠕虫的防治策略,尽早地发现蠕虫并对感染了蠕虫的主机进行隔离和恢复,是防止蠕虫泛滥、避免造成重大损失的关键计算机蠕虫防治的方案可以从两个角度来考虑从它的实体结构来考虑,如果破坏了它的实体组成的一个部分,则破坏了其完整性,使其不能正常工作,从而达到阻止其传播的目的从它的功能组成来考虑,如果使其某个功能组成部分不能正常工作,也同样能达到阻止其传播的目的具体可以分为如下一些措施修补系统漏洞分析蠕虫行为重命名或删除命令解释器(Interpreter)防火墙(Firewall)公告更深入的研究,6.4 蠕虫的防治,6.4.2 蠕虫的防治周期,结合蠕虫的传播模型,对蠕虫的防治分为四个阶段对某个具体的蠕虫而言,这四个阶段是串行的,而对蠕虫这类病毒而言,是并行的预防阶段检测阶段遏制阶段清除阶段,6.4 蠕虫的防治,6.4.3 蠕虫的检测与清除,对未知蠕虫的检测有多种方法可以对未知蠕虫进行检测,比较通用的方法有对流量异常的统计分析、对TCP连接异常的分析、对ICMP(Internet Control Message Protocol,互联网控制报文协议)数据异常的分析,蠕虫的随机扫描行为与路由器返回ICMP-T3包,6.4 蠕虫的防治,6.4.3 蠕虫的检测与清除,对于已知蠕虫的检测以Worm.Sasser.b(振荡波变种B)检测为例,6.4 蠕虫的防治,6.4.3 蠕虫的检测与清除,以为例,说明蠕虫的清除方法该蠕虫是“震荡波”的第二个变种,依然是利用微软操作系统的LSASS(Local Security Authority Subsystem Service)缓冲区溢出漏洞进行远程主动攻击和传染,导致系统异常和网络严重拥塞,具有极强的危害性和上一版本相比,其攻击方式发生了变化,改成了多线程扫描多进程攻击,而且,蠕虫产生的文件名和注册表键值也都发生了变化该蠕虫占用大量的系统和网络资源,使被感染的计算机变得很慢。由于Windows NT以上操作系统中广泛存在此漏洞,该蠕虫会在网络上迅速传播,造成网络瘫痪,6.4 蠕虫的防治,6.4.3 蠕虫的检测与清除,感染机理及感染过程使用AbortSystemShutdown API来防止系统重启或关机,然后拷贝自身到系统目录,名为%WINDOWS%avserve2.exe,然后登记到自启动项开辟线程,在本地建立FTP服务器开辟128个扫描线程,以本地IP地址为基础,取随机IP地址,疯狂地试探连接TCP端口445,如果试探成功,则把该目标的IP地址保存到“c:win2.log”,并向被连接主机发动溢出攻击利用LSASS中存在一个缓冲区溢出漏洞进行攻击,一旦攻击成功会导致对方主机感染此蠕虫并进行下一轮的传播,攻击失败也会造成对方主机缓冲区溢出,导致对方主机程序非法操作,以及系统异常等。由于该蠕虫在LSASS中溢出,可以获取管理员的权限,执行任意指令溢出代码主动从原主机下载蠕虫程序并执行,开始新的攻击。被攻击的计算机将自动连接蠕虫主机的5554端口并通过FTP下载蠕虫的副本,名称一般为4到5个数字加上“_up”的组合,如“78456_up.exe”,6.4 蠕虫的防治,6.4.3 蠕虫的检测与清除,手动清除给计算机打上最新的补丁打开任务管理器,查看是否存在名为avserve2.exe的进程,存在则终止之打开注册表编辑器,删除启动键值(如果存在的话)删除%WINDOWS%avserve2.exe,6.4 蠕虫的防治,6.5.1“冲击波清除者”概述,2003年8月18日,互联网中出现一种清除“冲击波”(Worm.MSBlast)的蠕虫(MSBlast.Remove.Worm/W32)该蠕虫利用Windows RPC DCOM漏洞(MS03-026)及Windows IIS WEBDAV(MS03-07)作为感染攻击手段,并通过TFTP(UDP69简单文件传输协议)下载病毒体到被感染机器中该蠕虫不在被感染系统留后门,也不会进行有目的的拒绝服务攻击。其感染目的是清除MSBlast.Worm/W32病毒体及分别为Win2000、Win XP的韩文系统、繁体中文系统、简体中文系统、英文系统下载和安装Windows RPC DCOM(MS03-26)安全补丁,而且该蠕虫还具有定时自毁功能该蠕虫也称作“Chian”蠕虫,因其体内有“Welcome Chian”字样。据蠕虫作者在某安全网站发表的声明,“Chian”是“China”的笔误,6.5“冲击波”清除者分析,6.5.1“冲击波清除者”概述,感染途径病毒体初始化前为了避免蠕虫多次感染运行,会检查或者建立一个互斥量并将其命名为“RpcPatch_Mutex”蠕虫体被运行后,蠕虫会在%System%wins文件夹中复制一个蠕虫体拷贝(DLLHOST.EXE),然后蠕虫会新建一个服务,服务名为“RpcPatch”,显示名称为“WINS Client”,可执行文件的路径为%System%wins DLLHOST.EXE,大小为10KB,服务启动属性为自动运行(注意:系统目录里也有一个DLLHOST.EXE文件,但它是正常文件,大小只有6KB)。随后,蠕虫会把TFTPD.EXE拷贝到%System%Wins目录下面取名为SVCHOST.EXE,建立一个服务,服务名称为“RpcTftpd”,显示名称为“Network Connections Sharing”,可执行文件的路径为%System%wins SVCHOST.EXE,服务启动属性为自动运行(注意:系统目录里也有一个SVCHOST.EXE文件,但它是正常文件,大小为7952字节),6.5“冲击波”清除者分析,6.5.1“冲击波清除者”概述,当系统重新启动的时候,以上两个服务启动触发蠕虫运行蠕虫会绑定一个由随机数除以100并把余数加上666的最终值作为提供感染源连接发送病毒体文件操作命令的端口,建立独立线程(分析中发现多次出现TCP 707端口)。当检测到dllhost.exe、tftpd.exe字符串的时候该端口关闭,6.5“冲击波”清除者分析,6.5.1“冲击波清除者”概述,蠕虫特点杀除其它MSBlast蠕虫下载补丁会删除自身蠕虫会在删除完MSBlast后开始检查系统时间。当系统设置的年份为2004年时,把自己从系统中删除掉,也对应了这个作者在代码中的一句留言“Notice:2004 will remove myself:-)”清除方法由于该蠕虫的自清除属性,因此可以修改系统时间年份至2004年,并重新启动系统。安装漏洞补丁后再矫正系统时间,6.5“冲击波”清除者分析,思考题,1.试述蠕虫与病毒的差别和联系。2.在你看来,Nimda是病毒还是蠕虫?为什么?3.如何预防蠕虫、检测蠕虫?这与预防病毒有什么区别?4.如何看待病毒的网络传播特性与蠕虫的传播特性之间的关系?5简述蠕虫的工作方式。6蠕虫传播过程中,如何优化搜索目标主机的策略?,