7章计算机病毒技术分析与安全防护
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.8 蠕虫病毒
蠕虫:一种通过网络传播的恶性计算机病毒
蠕虫具有病毒的一些共性,如传播性、隐蔽性、破坏性等,还有其特有的特征,如不利用文件寄生(有的只存在于内存中),对网络造成拒绝服务等攻击。
蠕虫使用存在危害的代码攻击网上的受害主机,并在受害主机上自我复制,再攻击其他的受害主机。
7.8.1 蠕虫的起源及其定义
1、蠕虫的起源
1980年,Xerox PARC的研究人员John Shoch和Jon Hupp在研究分布式计算、监测网络上的其他计算机是否活跃时,编写了一种程序,Xerox蠕虫
1988年11月2日,世界上第一个破坏性计算机蠕虫正式诞生
Morris为求证计算机程序能否在不同的计算机之间进行自我复制传播,编写了一段试验程序
为了让程序能顺利进入另一台计算机,他还写了一段破解用户口令的代码;11月2日早上5点,这段被称为“Worm”(蠕虫)的程序开始了它的旅行。进入了几千台计算机,让它们死机;Morris蠕虫利用sendmail的漏洞、fingerD的缓冲区溢出及REXE的漏洞进行传播;Morris在证明其结论的同时,也开启了蠕虫新纪元。
2、蠕虫的原始定义
蠕虫在1982年由Xerox PARC的John F. Shoch等人引入计算机领域,并给出蠕虫的两个最基本特征:“可以从一台计算机移动到另一台计算机”和“可以自我复制”
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为了区分蠕虫和病毒,给出了蠕虫的技术角度的定义:“Worm is a program that can run by itself and can propagate a fully working version of itself to other machines.
解释病毒为:“Virus is a piece of code that adds itself to other programs, including operating systems. It cannot run independently and it requ ires that its 'host' program be run to activate it.”
3 、蠕虫定义的进一步说明
计算机病毒主要攻击:文件系统蠕虫主要利用:计算机系统漏洞(Vulnerability)
蠕虫的定义中强调了自身副本的完整性和独立性,这也是区分蠕虫和病毒的重要因素。通过观察攻击程序是否存在载体来区分蠕虫与病毒。
普通病毒与蠕虫病毒比较:
7.8.2 蠕虫的分类
1、蠕虫的分类
根据蠕虫的传播、运作方式,将蠕虫分为两类:
主机蠕虫:主机蠕虫的所有部分均包含在其所运行的计算机中;在任意给定的时刻,只有一个蠕虫的拷贝在运行;也称作“兔子”(Rabbit)。
网络蠕虫:网络蠕虫由许多部分(称为段,Segment)组成,而且每一个部分运行在不同的计算机中(可能执行不同的动作);使用网络是为了进行各部分之间的通信以及传播;网络蠕虫具有一个主segment ,用以协调其他segment 的运行;这种蠕虫有时也称作“章鱼”(Octopus)。
根据使用者情况可将蠕虫病毒分为两类:
面向企业用户和局域网的蠕虫:利用系统漏洞,主动攻击,可对整个Internet 造成瘫痪性后果;典型代表:“红色代码”、“尼姆达”、“Sql 蠕虫王”;具有很强的主动攻击性,而且爆发也有一定的突然性,但相对来说,查杀这种计算机病毒并不难。
针对个人用户的蠕虫:通过网络(电子邮件、恶意网页)迅速传播的蠕虫病毒;典型代表:“爱虫病毒”,“求职信病毒”;传播方式比较复杂和多样,少数利用了应用程序的漏洞,更多的是利用社会工程学对用户进行欺骗和诱使,这样的计算机病毒造成的损失非常大,同时也很难根除。
2、蠕虫与漏洞
网络蠕虫最大特点是利用各种漏洞进行自动传播
根据网络蠕虫所利用漏洞的不同,又可以将其细分:
邮件蠕虫:主要是利用MIME(Multipurpose Internet Mail Extension Protocol ,多用途的网际邮件扩充协议)漏洞
网页蠕虫:主要是利用IFrame 漏洞和MIME 漏洞
网页蠕虫可以分为两种:用一个IFrame 插入一个Mail 框架,同样利用MIME 漏洞执行蠕虫,这是直接沿用邮件蠕虫的方法;用IFrame 漏洞和浏览器下载文件的漏洞来运作,首先由一个包含特殊代码的页面去下载放在另一个网站的病毒文件,然后运行它,完成蠕虫传播。
系统漏洞蠕虫:利用RPC 溢出漏洞的冲击波、冲击波杀手;利用LSASS 溢出漏洞的震荡波、震荡波杀手;系统漏洞蠕虫一般具备一个小型的溢出系统,它随机产生IP 并尝试溢出,然后将自身复制
7.8.3 基本原理 蠕虫程序的实体结构:
蠕虫程序的功能结构:
2、蠕虫的工作方式与扫描策略 蠕虫的工作方式一般是“扫描→攻击→复制
蠕虫的扫描策略:现在流行的蠕虫采用的传播技术目标是尽快地传播到尽量多的计算机中;扫描模块采用的扫描策略是:随机选取某一段IP地址,然后对这一地址段上的主机进行扫描;没有优化的扫描程序可能会不断重复上面这一过程,大量蠕虫程序的扫描引起严重的网络拥塞。
对扫描策略的改进:在IP地址段的选择上,可以主要针对当前主机所在的网段进行扫描,对外网段则随机选择几个小的IP地址段进行扫描;对扫描次数进行限制,只进行几次扫描;把扫描分散在不同的时间段进行。
扫描策略设计的原则:尽量减少重复的扫描,使扫描发送的数据包总量减少到最小;保证扫描覆盖到尽量大的范围;处理好扫描的时间分布,使得扫描不集中在某一时间内发生;怎样找到一个合适的策略需要在考虑以上原则的前提下进行分析,甚至需要试验验证。
蠕虫常用的扫描策略:选择性随机扫描(包括本地优先扫描);可路由地址扫描(Routable Scan);地址分组扫描(Divide-Conquer Scan);组合扫描(Hybrid Scan);极端扫描(Extreme Scan)。
3、蠕虫的传播模型
蠕虫在计算机网络上的传播,可看作是服从某种规律的网络传播行为;一个精确的蠕虫传播模型可以使人们对蠕虫有更清楚的认识,能确定其在传播过程中的弱点,而且能更精确的预测蠕虫所造成的损失;目前已有很多学者对蠕虫进行了深入研究,提出了一些模型,这些蠕虫传播模型都是针对随机网络的,不能很好的模拟实际网络环境。如何精确地描述蠕虫传播行为,揭示它的特性,找出对该行为进行有效控制的方法,一直是学者们共同关注的焦点;最经典网络传播模型的SIS模型和SIR模型。
在SIS模型中,每一个网络节点只能处于两种状态中的一种,一是易感的,二是已被感染从而具有传染能力的。
在SIR模型中,节点还可以处于一种叫做免疫的状态,在这种状态下,节点既不会被感染,也不会感染其它节点。Kermack-Mckendrick模型是SIR模型中的经典。
模型考虑了感染主机的恢复,它假定在蠕虫传播期间,一些受感染的主机可以恢复为正常状态或死亡,且对此蠕虫具有免疫功能,因此每个主机具有三种状态:易感、感染或恢复,其状态转移可表示为易感→感染→恢复,或永远保持易感状态
感染的主机数与感染强度示意图
r(t)表示在时刻t被感染的主机数
R(t)表示在时刻t被恢复的主机数
S(t)表示在t时刻尚未感染的主机数
N表示主机总数
从Kermack-Mckendrick模型可以得出一个理论——蠕虫爆发定理:一个大规模蠕虫爆发的充分必要条件是初始易感主机的数目S(0)>ρ