蠕虫病毒的传播原理.docx
《蠕虫病毒的传播原理.docx》由会员分享,可在线阅读,更多相关《蠕虫病毒的传播原理.docx(7页珍藏版)》请在冰豆网上搜索。
蠕虫病毒的传播原理
《计算机系统安全》
课程结课论文
《蠕虫病毒的传播原理》
学生军辉
学号5011212502
所属学院信息工程学院
专业计算机科学与技术
班级计算机16-5
指导教师鹏
塔里木大学教务处制
摘要:
蠕虫病毒发展迅速,现在的蠕虫病毒融入了黑客、木马等功能,还能阻止安全软件的运行,危害越来越大。
本文介绍了蠕虫病毒的定义,特点,结构及其在传播过程中的功能,最后介绍了蠕虫病毒的传播机制。
关键词:
计算机蠕虫;传播;
蠕虫病毒的传播原理
引言
蠕虫病毒是一种常见的计算机病毒。
它是利用网络进行复制和传播,传染途径是通过网络和电子。
最初的蠕虫病毒定义是因为在DOS环境下,病毒发作时会在屏幕上出现一条类似虫子的东西,乱吞吃屏幕上的字母并将其改形。
蠕虫病毒是自包含的程序(或是一套程序),它能传播自身功能的拷贝或自身的某些部分到其他的计算机系统中(通常是经过网络连接)。
正文
1.蠕虫病毒的定义及特点
蠕虫病毒的定义:
蠕虫是一种可以自我复制的代码,并且通过网络传播,通常无需人为干预就能传播。
蠕虫病毒入侵完全控制一台计算机之后,就会把这台机器作为宿主,进而扫描并感染其他计算机。
当这些新的被蠕虫入侵的计算机被控制之中后,蠕虫会以这些计算机为宿主继续扫描并感染其他计算机,这种行为会一直延续下去。
蠕虫使用这种递归的方法进行传播,按照指数增长的规律分布自己,进而及时控制越来越多的计算机。
蠕虫病毒有如下特点:
(1)较强的独立性。
计算机病毒一般都需要宿主程序,病毒将自己的代码写到宿主程序中,当该程序运行时先执行写入的病毒程序,从而造成感染和破坏。
而蠕虫病毒不需要宿主程序,它是一段独立的程序或代码,因此也就避免了受宿主程序的牵制,可以不依赖于宿主程序而独立运行,从而主动地实施攻击。
(2)利用漏洞主动攻击。
由于不受宿主程序的限制,蠕虫病毒可以利用操作系统的各种漏洞进行主动攻击。
例如,“尼姆达”病毒利用了IE浏览器的漏洞,使感染了病毒的附件在不被打开的情况下就能激活病毒;“红色代码”利用了微软IIS服务器软件的漏洞(idq.dll远程缓存区溢出)来传播;而蠕虫王病毒则是利用了微软数据库系统的一个漏洞进行攻击。
(3)传播更快更广。
蠕虫病毒比传统病毒具有更大的传染性,它不仅仅感染本地计算机,而且会以本地计算机为基础,感染网络中所有的服务器和客户端。
蠕虫病毒可以通过网络中的共享文件夹、电子、恶意网页以及存在着大量漏洞的服务器等途径肆意传播,几乎所有的传播手段都被蠕虫病毒运用得淋漓尽致,因此,蠕虫病毒的传播速度可以是传统病毒的几百倍,甚至可以在几个小时蔓延全球。
(4)更好的伪装和隐藏方式。
为了使蠕虫病毒在更大围传播,病毒的编制者非常注重病毒的隐藏方式。
在通常情况下,我们在接收、查看电子时,都采取双击打开邮件主题的方式浏览容,如果中带有病毒,用户的计算机就会立刻被病毒感染
(5)技术更加先进。
一些蠕虫病毒与网页的脚本相结合,利用VBScript、Java、ActiveX等技术隐藏在HTML页面里。
当用户上网浏览含有病毒代码的网页时,病毒会自动驻留存并伺机触发。
还有一些蠕虫病毒与后门程序或木马程序相结合,比较典型的是“红色代码病毒”,它会在被感染计算机Web目录下的\scripts下将生成一个root.exe后门程序,病毒的传播者可以通过这个程序远程控制该计算机。
这类与黑客技术相结合的蠕虫病毒具有更大的潜在威胁。
(6)使追踪变得更困难。
当这10000个系统在蠕虫病毒的控制之下时,攻击者利用一个极为迷惑的系统来隐藏自己的源位置。
可以轻易地制造一个蠕虫,它可以在这个蠕虫的段与段之间任意连接。
当这个蠕虫感染了大部分系统之后,攻击者便能发动其他攻击方式对付一个目标站点,并通过蠕虫网络隐藏攻击者的位置。
这样,在不同的蠕虫段之间的连接中,要抓住攻击者就会非常困难。
2.蠕虫病毒的构成及在传播过程中的功能
探测部分:
探测部分是用来获得入侵目标的访问权,他实际上是一些入侵到计算机的代码,进入目标计算机之后探测部分会自动探测攻击点,并尽可能的利用计算机的漏洞侵占系统。
探测部分获得访问权的技术,有缓存一处探测,文件共享攻击,电子以及计算机的配置错误。
传播引擎:
通过探测部分获得目标机的访问权后,蠕虫必须传输自身的其他部分到目标机。
有些蠕虫的探测部分可以将整个蠕虫载入目标机,有些蠕虫则需要利用探测部分的传播引擎代码执行一个用来传输蠕虫代码的命令将蠕虫的其他部分传播到计算机中。
当蠕虫传播到计算机中,便运行蠕虫代码,改变系统配置,用来在系统中隐藏自己。
目标选择算法:
蠕虫在进入到目标机之后,便开始寻找新的攻击目标,这部分工作是由目标选择算法完成。
蠕虫会自动扫描由目标选择算法确定的地址,然后检查是否有合适的易攻击的对象。
蠕虫的选择算法有如下方法:
电子地址:
一个蠕虫可以从受害计算机的阅读器或服务器中得到电子地址,任何发送信息到受害计算机或从受害计算机接收信息的计算机都将成为下一个潜在的目标。
主机列表:
一些蠕虫从本地主机上的各种计算机列表中获得地址,例如存储在主机文件(UNIX中的/etc/hosts和Windows中的LMHOSTS)中的那些。
域名服务(DNS)查询:
蠕虫可以连接到包含其它计算机地址的本地域名服务器,这些计算机地址即成为蠕虫的攻击对象。
任意选择一个目标网络地址:
蠕虫可以任意地选择一个目标网络地址。
由于网络延时,在局域网上传播速度要远距离传播蠕虫快得多,因此,许多目标选择算法优先选择当前蠕虫所在的较近的网络地址。
扫描引擎。
目标引擎获得攻击目标的地址后,蠕虫便可以利用扫描引擎对目标传送数据包,以此来判断此目标是否适合攻击。
有效载荷。
进入到计算机之后,蠕虫的有效载荷可以实施某种行为,如打开一个后门,然后攻击者就可以远程控制目标计算机。
或者安装一个分布式的拒绝服务淹没代理,攻击者可以命令他侵占其它受害计算机。
3.攻击模式
3.1扫描-攻击-复制
从新闻中看到关于蠕虫的报道,报道中总是强调蠕虫如何发送大量的数据包,造成网络拥塞,影响网络通信速度。
实际上这不是蠕虫程序的本意,造成网络拥塞对蠕虫程序的发布者没有什么好处。
如果可能的话,蠕虫程序的发布者更希望蠕虫隐蔽的传播出去,因为蠕虫传播出去后,蠕虫的发布者就可以获得大量的可以利用的计算资源,这样他获得的利益比起造成网络拥塞的后果来说显然强上万倍。
但是,现有的蠕虫采用的扫描方法不可避免的会引起大量的网络拥塞,这是蠕虫技术发展的一个瓶颈,如果能突破这个难关,蠕虫技术的发展就会进入一个新的阶段。
现在流行的蠕虫采用的传播技术目标一般是尽快地传播到尽量多的电脑中,于是扫描模块采用的扫描策略是这样的:
随机选取某一段IP地址,然后对这一地址段上的主机扫描。
笨点的扫描程序可能会不断重复上面这一过程。
这样,随着蠕虫的传播,新感染的主机也开始进行这种扫描,这些扫描程序不知道那些地址已经被扫描过,它只是简单的随机扫描互联网。
于是蠕虫传播的越广,网络上的扫描包就越多。
即使扫描程序发出的探测包很小,积少成多,大量蠕虫程序的扫描引起的网络拥塞就非常严重了。
聪明点的作者会对扫描策略进行一些改进,比如在IP地址段的选择上,可以主要针对当前主机所在的网段扫描,对外网段则随机选择几个小的IP地址段进行扫描。
对扫描次数进行限制,只进行几次扫描。
把扫描分散在不同的时间段进行。
扫描策略设计的原则有三点:
1.尽量减少重复的扫描,使扫描发送的数据包总量减少到最小
2.保证扫描覆盖到尽量大的围
3.处理好扫描的时间分布,使得扫描不要集中在某一时间发生。
怎样找到一个合适的策略需要在考虑以上原则的前提下进行分析,甚至需要试验验证。
扫描发送的探测包是根据不同的漏洞进行设计的。
比如,针对远程缓冲区溢出漏洞可以发送溢出代码来探测,针对web的cgi漏洞就需要发送一个特殊的http请求来探测。
当然发送探测代码之前首先要确定相应端口是否开放,这样可以提高扫描效率。
一旦确认漏洞存在后就可以进行相应的攻击步骤,不同的漏洞有不同的攻击手法,只要明白了漏洞的利用方法,在程序中实现这一过程就可以了。
这一部关键的问题是对漏洞的理解和利用。
关于如何分析漏洞不是本文要讨论的容。
攻击成功后,一般是获得一个远程主机的shell,对win2k系统来说就是cmd.exe,得到这个shell后我们就拥有了对整个系统的控制权。
复制过程也有很多种方法,可以利用系统本身的程序实现,也可以用蠕虫自代的程序实现。
复制过程实际上就是一个文件传输的过程,实现网络文件传输很简单,这里不再讨论。
3.2模式的使用
既然称之为模式,那么它就是可以复用的。
也就是说,我们只要简单地改变这个模式中各个具体环节的代码,就可以实现一个自己的蠕虫了。
比如扫描部分和复制部分的代码完成后,一旦有一个新的漏洞出现,我们只要把攻击部分的代码补充上就可以了。
利用模式我们甚至可以编写一个蠕虫制造机。
当然利用模式也可以编写一个自动入侵系统,模式化的操作用程序实现起来并不复杂。
3.3蠕虫传播的其他可能模式
除了上面介绍的传播模式外,还可能会有别的模式出现。
比如,我们可以把利用进行自动传播也作为一种模式。
这种模式的描述为:
由地址薄获得地址-群发带有蠕虫程序的-被动打开,蠕虫程序启动。
这里面每一步都可以有不同的实现方法,而且这个模式也实现了自动传播所以我们可以把它作为一种蠕虫的传播模式。
随着蠕虫技术的发展,今后还会有其他的传播模式出现。
4.从安全防御的角度看蠕虫的传播模式
我们针对蠕虫的传播模式来分析如何防止蠕虫的传播思路会清晰很多。
对蠕虫传播的一般模式来说,我们目前做的安全防护工作主要是针对其第二环即"攻击"部分,为了防止攻击,要采取的措施就是及早发现漏洞并打上补丁。
其实更重要的是第一环节的防护,对扫描的防护现在人们常用的方法是使用防护墙来过滤扫描。
使用防火墙的方法有局限性,因为很多用户并不知道如何使用防火墙,所以当蠕虫仍然能传播开来,有防火墙保护的主机只能保证自己的安全,但是网络已经被破坏了。
另外一种方案是从网络整体来考虑如何防止蠕虫的传播。
从一般模式的过程来看,大规模扫描是蠕虫传播的重要步骤,如果能防止或限制扫描的进行,那么就可以防止蠕虫的传播了。
可能的方法是在网关或者路由器上加一个过滤器,当检测到某个地址发送扫描包就过滤掉该包。
具体实现时可能要考虑到如何识别扫描包与正常包的问题,这有待进一步研究。
了解了蠕虫的传播模式,可以很容易实现针对蠕虫的入侵检测系统。
蠕虫的扫描会有一定的模式,扫描包有一定的特征串,这些都可以作为入侵检测的入侵特征。
了解了这些特征就可以针对其制定入侵检测规则。
总结
网络蠕虫病毒作为一种互联网高速发展下的一种新型病毒,必将对网络产生巨大的危险。
在防御上,已经不再是由单独的杀毒厂商所能够解决,而需要网络安全公司,系统厂商,防病毒厂商及用户共同参与,构筑全方位的防体系!
蠕虫和黑客技术的结合,使得对蠕虫的分析,检测和防具有一定的难度,同时对蠕虫的网络传播性,网络流量特性建立数学模型也是有待研究的工作!
参考文献:
[1]王康.亮.文俊杰.基于Plupii蠕虫分析的Linux病毒发展趋势研究[M].:
网络安全技术与应用.2008.
[2]达.“SQL蠕虫”病毒之分析.:
网络安全技术与应用.2002.
[3]王双滨.Windows使用中病毒、蠕虫和木马的防治.:
电脑学习.2007.
[4]学民,浅谈“蠕虫”和“木马”病毒的防治.:
广西气象.2006.