僵尸网络的威胁与解决策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
僵尸网络的威胁与解决策略
1引言
僵尸网络是2005年国际网络安全领域的重点研究对象,其英文也叫botnet,bot是rebot(机器人)的缩写,botnet意为受控制的,可以自动发起攻击的网络,其中的bot就是僵尸程序,只有种植了bot的计算机才可以叫做僵尸计算机;因此,僵尸网络可以描述为由众多被同一攻击者通过互联网秘密植入控制程序的可以被集中控制的计算机群。
僵尸网络是黑客攻击手段和病毒、恶意代码等发展到一定程度,必然会出现的一种结合了各种技术特点的新攻击方式。
它具有DDOS攻击的网络结构,同时具有木马的可控性和蠕虫病毒的大面积传播性。
2僵尸网络的结构与安全威胁
2.1僵尸网络的结构
Bot程序很早就存在,且是作为网络管理员辅助程序出现的,这种程序可以自动完成一些固定的操作,oicq自动回复聊天的程序模块,也可以叫做聊天bot。
但后来人们发现,把这种思想和木马结合起来,就成为“主动联网的可远程控制他人”的程序,这就直接导致了botnet的出现。
最早是采用IRC协议和b0t技术结合,利用IRC聊天服务器来控制僵尸计算机构成僵尸网络,现在也逐渐出现了AOLbot和P2Pbot,使得僵尸网络越来越隐蔽,潜在的危害也越来越大。
图2-1基于IRC协议的僵尸网络结构
可以看出僵尸网络由三部分构成:被植入bot程序的计算机群,也叫僵尸计算机(客户端),会主动联系IRC服务器;一个或者多个控制服务器,多是互联网中的公共服务器,如IRC聊天室服务器,通过它们控制者的命令可以被迅速下达;攻击者的控制终端,用来向整个僵尸网络发出指令。
2.2僵尸网络的形成
目前最常见的僵尸网络都是基于IRC协议的,这个应用层协议给人们提供了一个IRC的服务器和聊天频道进行相互的实时对话。
IRC协议采用C/S模式,用户可以通过客户端连接到IRC服务器,并建立、选择并加入感兴趣的频道,每个用户都可以将消息发送给频道内所有其他用户,也可以单独发给某个用户。
频道的管理员可以设置频道的属性,比如设置密码、设置频道为隐藏模式。
攻击者通常编写自己的IRC Bot,它只支持部分IRC命令,并将收到的消息作为命令进行解释执行。
编写好僵尸程序,建立起自己的IRC服务器后,攻击者会采用不同的方式将僵尸程序植入用户计算机,例如:通过蠕虫进行主动传播、利用系统漏洞直接侵入计算机、利用社会工程学,通过电子邮件或者即时聊天工具,欺骗用户下载并执行僵尸程序、利用IRC协议的DCC命令,直接通过IRC服务器进行传播、还可以在网页中嵌入恶意代码等待用户浏览,2004年CNCERT\CC发现了1700多个网页利用此类技术欺骗诱惑用户访问而植入恶意程序。
当Bot在被感染计算机上运行后,以一个随机的Nickname和内置密码连接到特定的IRC服务器,并加入指定的频道。
攻击者随时登陆该频道,并发送认证消息,认证通过后,随即向活跃的僵尸程序(或者暂时非活跃的僵尸程序)发送控制指令。
Bot读取所有发送到频道的消息或者是频道的标题,如果是已通过认证的攻击者的可识别的指令,则立即执行。
2.3僵尸网络的威胁
比起传统的网络安全事件,僵尸网络更显复杂和严重。
其传播速度快,传播途径多,隐蔽性强,技术含量高,影响破坏大,加上以往各种网络攻击手段的使用,僵尸网络促使新的未知攻击产生,令许多业内人士感到惊讶,并引起了安全工作者的极大关注。
僵尸网络的危害主要分为以下几个方面:
①远程完全控制系统
僵尸程序一旦侵入系统,会像木马一样隐藏自身,企图长期潜伏在受感染系统中,随时等待远程控制者的操作命令。
②释放蠕虫
传统蠕虫的初次传播属于单点辐射型,如果疫情发现得早,可以很好的定位并抑制蠕虫的深度传播;而僵尸网络的存在,使得蠕虫传播的基点更高,大范围内,将可能同时爆发蠕虫疫情,僵尸计算机的分布广泛且数量极多,导致破坏程度成几何倍数增长,使蠕虫起源更加具有迷惑性,给定位工作增加巨大的难度。
③发起分布式拒绝服务攻击
正如前面提到的2004年的网络安全事件一样,DDoS已经成为僵尸网络造成的最大最直接的威海之一。
攻击者通过庞大的僵尸网络发送攻击指令给活跃的(甚至暂时处于非活跃状态的)僵尸计算机,可以同时对特定的网络目标进行持续的访问或者扫描,由于攻击者可以任意指定攻击时间、并发任务个数、以及攻击的强度,使这种新式的拒绝服务攻击具有传统拒绝服务攻击所不可比拟的强度和危害。
④窃取敏感信息
由于僵尸计算机被远程攻击者完全控制,存储在受感染电脑上的一切敏感信息都将暴露无遗,用户的一举一动都在攻击者的监视之中。
⑤发送垃圾邮件
垃圾邮件给人们的日常生活造成极大的障碍,而利用僵尸网络发送垃圾邮件,首先可以隐藏自身的真实IP,躲避法律的追究;其次可以在短时间内发送
更多的垃圾邮件;再次反垃圾邮件的工作和一些过滤工具无法完全拦截掉这些垃圾邮件。
⑥强占滥用系统资源,进行非法牟利活动
僵尸网络一旦形成,就相当于给控制者提供了大量的免费的网络和计算机资源,控制者利用这些资源进行非法的暴利谋取,种植广告件、增加网站访问量、参与网络赌博、下载各类数据资料、建立虚假网站进行网络钓鱼等等。
⑦作为跳板,实施二次攻击
攻击者利用僵尸程序,在受感染主机打开各种服务器代理或者重定向器,发起其他攻击破坏,而这样可以隐藏自己的真实位置,不容易被发现。
总之,僵尸网络不是一种单一的网络攻击行为,而是一种网络攻击的平台和其他传统网络攻击手段的负载综合,通过僵尸网络可以控制大量的计算机进行更快、更猛的网络攻击,这个普通用户和整个互联网造成了严重的危害。
2.4现在主要流行的解决方法
如果一台计算机受到了一个僵尸网络的DoS攻击,几乎没有什么选择。
一般来说,僵尸网络在地理上是分布式的,我们难于确定其攻击计算机的模式。
被动的操作系统指纹识别可以确认源自僵尸网络的攻击,网络管理员可以配置防火墙设备,使用被动的操作系统指纹识别所获得的信息,对僵尸网络采取行动。
最佳的防御措施是利用安装有专用硬件的入侵防御系统一些僵尸网络使用免费的DNS托管服务将一个子域指向一个窝藏“肉鸡”的IRC服务器。
虽然这些免费的DNS服务自身并不发动攻击,但却提供了参考点。
清除这些服务可以破坏整个僵尸网络。
近来,有些公司想方设法清除这些域的子域。
僵尸社团将这种路由称之为“空路由”,因为DNS托管服务通常将攻击性的子域重新定向到一个不可访问的IP地址上。
前述的僵尸服务器结构有着固有的漏洞和问题。
例如,如果发现了一个拥有僵尸网络通道的服务器,也会暴露其它的所有服务器和其它僵尸。
如果一个僵尸网络服务器缺乏冗余性,断开服务器将导致整个僵尸网络崩溃。
然而,IRC服务器软件包括了一些掩饰其它服务器和僵尸的特性,所以发现一个通道未必会导致僵尸网络的消亡。
基于主机的技术使用启发式手段来确认绕过传统的反病毒机制的僵尸行为。
而基于网络的方法逐渐使用上述技术来关闭僵尸网络赖以生存的服务器,如“空路由”的DNS项目,或者完全关闭IRC服务器。
但是,新一代的僵尸网络几乎完全都是P2P的,将命令和控制嵌入到僵尸网络中,通过动态更新和变化,僵尸网络可以避免单个点的失效问题。
间谍软件可以将所有可疑的口令用一种公钥“硬编码”到僵尸软件中。
只能通过僵尸控制者所掌握的私钥,才能读取僵尸网络所捕获的数据。
必须指出,新一代僵尸网络能够检测可以分析其工作方式的企图,并对其作出响应。
如大型的僵尸网络在检测到自己正在被分析研究时,甚至可以将研究者从网络中断开。
所以单位需要专业的僵尸网络解决
2.5僵尸网络的推动根源
是什么推动着僵尸网络的发展呢?事实上,网络犯罪组织很少采用易于被检测的工具。
相反,他们往往利用专业的或优秀的程序设计人员。
导致僵尸网络日益危险的一个重要因素是,许多IT管理人员认为僵尸网络仅仅意味着DDoS攻击。
在无法检测到这种攻击时,一些单位会有一种错误的安全感。
这种看似无害的结果可能会引诱受害者即使在发现被僵尸网络感染的时候,仍不采取行动。
许多单位甚至认为一月感染一两次僵尸网络也没什么大不了。
但事实上,僵尸网络已经成为散布恶意软件的平台,成千上万的恶意代码可以利用这个平台发展壮大。
由于这种种因素,在受害者认识到遭受攻击之前,僵尸网络已经造成了巨大的危害。
如窃取大量的银行卡数据,包括口令和账号等。
即使受害者的单位认识到了僵尸网络的危害,也有可能选择不抵抗的态度。
为什么呢?这种对僵尸网络听之任之的态度之所以存在,主要是一些单位担心安全专业人士知道其商业秘密。
3僵尸网络的解决方案
本人通过查阅大量的文献和网络安全所学的知识,总结了一套最新防御僵尸网络的方法———基于历史信任数据的防御DDoS模型。
3.1模型的提出
对于进入到边界路由器的IP数据包,考虑可以提取源IP地址、源端口等信息,并相应记录到某一缓存当中去,当进入的数据包是正常的数据包时,记录下来相关信息之后,就可以转发给网内主机或服务器;当数据包发生异常的时候,可以对异常数据包做出相应的处理。
这里我们建立一种信任机制,用来对进入的数据包进行处理。
这里所用的信任机制是用来衡量一个数据包是否可信的一种机制,主要通过信任度来反映,而信任度的设置又必定要有一定的根据,才能正确的表现数据包的可信程度。
比如可以选择同一源地址数据包的通过次数、访问次数、目的地址等某一项或多项作为信任度的参考值。
可见,当有新的来自同一源地址的数据包进入后,信任度要随之发生变化,是增加还是减少要根据具体的设置情况而定。
假定对于来自某一源IP地址的数据包设置了初始信任度,要把数据包的源IP 信息、信任度的值等相关信息存入一个数据库,以便于数据项的添加、删除、修改,我们可以称这个数据库为信任数据库。
由于每一个新进入的IP数据包在存入信任数据库后作为相关信息相同的数据包再次进入的参考依据,我们称存取的该IP包的相关信息为历史信任数据。
这样就形成了模型大致思想如下:以通过边界路由器的历史IP包数据为参考,建立一个带有信任机制的源IP地址数据库,赋予每一IP一定的信任级别,并随时间、访问次数、访问频率等参数实时修改其信任级别,以提供良好的服务。
当通过路由器的IP包数据发生异常时,启动模型的源地址检测功能,首先通过拥塞控制算法对数据进行处理,以选择有效数据进入下一步;然后对上一步的所得到的数据判断是否是信任数据库里的数据,并做,并做出相应的处理;对于存在于信任数据库里的数据判断其是否为合法源地址,并做相应的处理。
模型主要部署在边界路由器和网内主机上,如图3-1主要包括检测、响应处理、发送报告等三个部分。
模型要正确并且有效的建立起来,关键在于怎样检测数据包异常、怎样建立信任数据库、怎样来进行源地址检测和处理数据包。
图3-1检测相应处理模型
3.2检测
检测模块主要运用了网络流量的自相似性特性。
拒绝服务攻击一部分是由攻击主机控制大量的攻击傀儡机向被害主机发送大量的数据包,数据量过大使得被害主机无法处理请求数据,造成对于那些正常请求数据包也没法处理,所以就形成了拒绝服务攻击;另一部分攻击是由于发送特殊数据包,使得被攻击主机收到这些数据包后不知道该怎么处理,造成难以处理形成拒绝服务。
对于发送特殊数据包的攻击,我们可以通过检测网络流量来判定是否有攻击发生。
对于包中有特殊数据的攻击形式,可以直接进行检测,但是对于伪造IP地址的数据包实际上是攻击数据,表面上看却是正常的,所以我们需要分析流量来检测是否有攻击发生。
通常认为在正常网络业务中,对某一特定的节点而言,来自大量不同数据源的数据之间通常不具有时间和分组特征(比如协议类型,分组尺寸)方面的相关性,但是,根据DDos攻击发起的原理,往往是由MASTER控制不同的SLAVES在同一时段内向攻击目标发送大量请求数据包。
此时,大量邻近的分组段之间在时间和分组特征上具有某种特定的相关性。
正是这种相关性的变化,将会导致其流量模型的相关参数的变化,从而有可能利用流量分析的方法将包含有DDoS攻击数据异常数据包和正常数据包区分开来。
需要注意的是,DDoS攻击所造成的网络拥塞不同于上面所分析的普通情况,它们之间存在着本质差异。
相比之下,DDOS攻击所造成的拥塞,其攻击数据常常在分组大小、到达时间、协议类型等诸多方面具有一定相关性,这是由分布式拒绝服务自身特点所决定的。
也就是说,当攻击发生时,恶意攻击者控制的大量傀儡机向目标网络和主机发送数据,这些数据具有一定的关联和规律。
例如,当发生SYN洪水攻击时,网络上会充斥着大量的同类攻击数据包。
自相似性(self-similarity)是指一个随机过程在各个时间规模上具有相同的统计特性,网络通信中的自相似性表现在较长一段时间内,单位时间内分组数的统计特性不随时间规模的变化而变化。
自相似性的另一个重要特性是长程相关性,主要表现在随机过程的一阶统计特性上。
如前所述,网络流量具有自相似性己为众多的研究者所证明。
按照设定的时间间隔,对网络流量自相似性HUrst系数的方差进行计算,当相邻两个时隔的变化超过两倍时,可判断为攻击发生。
DDoS攻击的结束判断依
据:当攻击发生时,如果从某个时刻TO起,超过系统给定的Cmax个计算时隔,Hurst值的变化都持续保持在 0.5<H<l.0,则可判断为攻击结束。
我们同样可以采用这样的方法来判断数据包是否发生了异常,异常数据就有可能会引起攻击的发生。
图3-2检测数据包是否发生异常
3.3相应处理
如果检测到了数据包异常,则表明此时攻击行为有可能会发生或正在进行,这时需要启动响应处理模块。
响应处理模块主要包括对于异常数据包所出源地址检测,数据包分析等相应处理步骤。
3.3.1信任数据库的建立
为了防止在发起攻击前,攻击者先发送少量的恶意IP包(其中也包括非法的源IP地址)让信任数据库为其建立非法源地址项的行为。
在通过边界路由器的网络流量正常时,模型按一定的概率p统计已成功建立访问连接的IP包的源地址(包括TCP、UDP、ICMP数据包等,但对三次握手所使用的TCPSYN包不做统计)。
并且提取该数据包的源地址项Sadd存入信任数据库中。
对于在信任数据库中添加和查找源地址项时使用哈希函数的方法。
将Sadd作为关键字,对其进行散列。
Sadd为数据包的源IP地址,是一个犯位二进制数,对信任度的处理。
在提取的IP包第一次访问时,记N=l,并连同该IP包的源IP地址Sadd写入信任数据库,以后每次正常访问时N一。
在整个过程中,若N小于1或大于10000,则自动将信任库中该IP包的数据项删除。
对于超出规定时间Timeout的源IP地址也应该从信任库中删除。
3.3.2源地址检测
当检测到有异常IP包进入边界路由器时,则启动源地址检测功能。
这里把异常IP包的进入看作是即将发生拥塞,并且可以预先当作拥塞来处理。
所以考虑选择拥塞控制算法对异常的IP包进行控制,这里选择核心无状态公平排队算
法CSFQ。
图3-3基于历史信任数据的防御DDOS模型
3.4发送报告
对于收集到的被丢弃数据包可以采取进一步的措施,比如发送报告给上一级路由器或主机,进行源lP追踪等。
这里采取对源lP地址可以追查到的主机发送报告,以警告上一级路由器或主机这个源IP地址不可信,它的访问请求可能会引起攻击行为。
上一级路由器或主机在接收到报告后,对报告中所提供的数据包的目的IP做统计,可以采取某种方法随机减少对访问较多的目标的请求。
报告
所采取的形式如下:
通过所设计的模型,可以预先防御检测DDOS攻击的发生。
对于正常的数据包直接进行转发;对于异常的数据包进行分析处理,产生一定数量的丢弃包,有效缓解网络的处理压力。
对于丢弃包可以收集分析处理,利用IP源追踪找出攻击者。
4总结
无论对于僵尸网络还是分布式拒绝服务攻击而言,目前的方法只是在攻击发生时能够在一定程度上控制攻击数据包到达目标网络,而不能从根本上防止这种攻击的发生。
对于文中提出的防御模型,我们可以考虑下一步的工作重点应该是:
1.要准确的发现攻击者,就要从收集到的数据包中找出有用的数据包,进行路径重构、源IP追踪,找到攻击者绳之以法。
2.在信任数据库建立过程中,通过大流量实验更加准确的确定数据包的信任度,以增加判断的准确性。
3.全网部署,共同协作,这样才能从根本上防止此类攻击事件的发生。