您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 第7讲 黑客攻击及防御技术
第7讲黑客攻击及防御技术前面从防御的角度对相关的技术进行了介绍,这一讲将从攻击的角度对黑客常用的攻手段进行讲解。实践证明:只有在了解黑客攻手段的基础上才能制定出合适的安全策略,并对系统安全与否做出恰当的评估。7.1拒绝服务攻击7.1.1DoS攻击的定义DoS是DenialofService的简称,即拒绝服务。这种攻击主要针对网络上的各种服务器和设备(如路由器),其特征是使攻击目标无法正常工作。与其他攻击方式相比,DoS攻击的意图在于破坏。DoS攻击主要是利用网络协议或系统中的一些特点和漏洞实施攻击。当前已知的拒绝服务器攻击已有几百种形式,但大部分都可以划分为下面三类。1.带宽消耗型攻击者的目的在于耗尽攻击目标的带宽资源。实施这种攻击时,攻击者或者利用带宽上的优势(以大对小),或者征用其他站点来放大攻击效果(以小对大),使得攻击目标的网络拥塞。2.系统资源消耗型与带宽消耗相比,这种DoS攻击消耗的是系统资源而不是网络带宽。这里的系统资源包括CPU、内存及磁盘空间等。3.异常导致型这类拒绝服务攻击是利用软、硬件实现上的编程缺陷,来导致攻击目标出现异常,从而拒绝提供正常服务。所谓编程缺陷,是指应用的程序、操作系统或者嵌入式芯片在处理异常情况时的失败。通常,异常情况会在用户向脆弱的元素发送非期望数值时发生,之后将导致内核恐慌或系统崩溃。攻击者常用的方法是向目标系统发送离奇的、非RFC相容的分组来确定其网络协议栈是否会处理这种异常。例如,后面将介绍的Teardrop攻击就是利用了早期Linux内核中未对IP分片重叠进行适当处理的缺陷。7.1.2常见的DoS攻击1.Smurf攻击Smurf攻击是以最初发动这种攻击的程序“Smurf”来命名的。此攻击涉及到3个实体:攻击者、受害者所在的网络、受害者。在攻击过程中,攻击者向受害者所在的网络发送伪造的ICMPecho请求,这些请求的源地址为受害者的IP地址,目标地址为受害者所在网络的广播地址。当网络中的路由器收到此数据包时,会向所有的主机进行广播。对于网络中那些处于存活状态且开启了echo功能的主机来说,它们在收到路由器转发的数据包之后,会返回ICMP响应包给受害者。这时受害者就会被大量的ICMP响应信息淹没。从整个攻击流程可以看出,受害者所在的网络实际上起到了一个放大攻击效果的作用,因此,又将其称为放大网络。攻击者受害者伪造分组ICMP回射请求源地址:受害者IP地址目的地址:放大网络的广播地址放大网络………….Smurf攻击示意图Smurf的攻击过程如图7-1所示。Smurf攻击的变种被称为Fraggle攻击,它们的攻击原理相同,区别在于Fraggle攻击发送的是UDPecho请求。当放大网络中的主机接收到这样的请求时,那些启用了echo功能的主机会返回一个UDP响应消息,而那些未启用回射(echo)功能的主机则会返回一个ICMP不可达的消息。这样,无论放大网络中的主机是否开启了echo功能,所有处于存活状态的主机都会向受害者发送应答消息。相比而言,Fraggle攻击具有更大的填塞受害者网络的机会。对于Smurf类攻击,可以通过禁止路由器转发目标地址为广播地址的数据包来对其进行防御。另外,关闭主机的echo功能也可以降低放大网络的放大能力。2.SYN洪水攻击SYN洪水攻击一度是最具有破坏性的DoS攻击。它利用了TCP三次握手过程中服务器会为连接请求分配资源的特点,通过不断地向目标主机发起TCP连接,从而耗尽分配给连接使用的全部资源,使得目标主机无法响应合法的连接。为了理解SYN洪水攻击的原理,首先来看一下TCP协议。TCP是一个面向连接的协议,在通信双方开始传输数据之前,需首先先建立连接。连接的建立是通过所谓的TCP三次握手过程来实现的(如图7-2所示)。第1步:客户端发送一个SYN置位的包到服务器,告诉服务器它的初始序列号。在这个例子中ISNc=1000。第2步:服务器返回一个SYN/ACK包作为响应,其中响应号为ISNc+1=1001。此外,服务器还会告诉客户端它的初始序列号ISNs=5000。第3步:客户端返回ACK包作为应答,其响应号为ISNs+1=5000,完成3次握手过程。客户端服务器TCP的三次握手过程在发动SYN洪水攻击时,攻击者或者向目标主机发送源地址并不存在的SYN报文,或者在收到对方发送的SYN/ACK报文时不返回ACK报文。这样一来,目标主机将无法收到客户端返回的响应报文。根据TCP协议的定义,目标主机在发送出SYN/ACK包后会等待对方的响应,并在收不到响应包的情况下进行重发,直到超过时为止。另外,在这个等待的过程中,服务器还会维护之前为该连接分配的资源。虽然各个系统设置的超时时限不同,但该时限的数量级一般为秒。因此,只要攻击者在短时间内发起大量的连接,就可以耗尽目标主机上的连接资源,使得目标主机无法提供正常的服务。对于SYN洪水攻击,通过判断单位时间内收到的SYN连接次数是否超过了系统的预设值,就能够检测出。当接收到大量的SYN数据包时,可通知防火墙阻断连接请求或丢弃这些数据包,以达到防御效果。3.LAND攻击LAND攻击将SYN包的源地址和目的地址都设为攻击目标的IP地址,将SYN包的源端口和目标端口都设为攻击目标上某个处于激活状态的端口。图7-3演示了整个攻击过程:攻击者将伪造的SYN包发送服务器。服务器在收到连接请求后,会返回一个SYN/ACK包,并等待客户端确认。由于攻击者伪造了SYN包,因此,服务器会收到自已发送出的确认包,并将其误认为是客户端返回的确认包。但当服务器发现该包的确认号与期待的确认号差别太大时,会将其丢弃,并重发之前的SYN/ACK包。这个过程会一直循环:服务器不断给自已发送错误的应答包。由于TCP是具有高优先权的内核级进程,这意味着TCP相对其他非内核应用程序有更高的优先权。上述的无限循环过程将导致被攻击对象的系统性能大大降低,甚至系统发生崩溃,从而无法响应合法用户的请求。SYN:1000SYN:5000ACK:1001SYN:5000ACK:1001攻击者服务器服务器收到请求后,返回SYN/ACK包,然后等待客户端的响应包因为响应包的确认号(1001)与服务器期待的确认号相差太大(5001),服务器会丢弃该包,并重发之前的SYN/ACK包LAND攻击……LAND攻击的检测比较容易,只需简单地判断数据包的源地址和目的地址是否相同即可。对于这种攻击,可通过适当配置防火墙设置或修改路由器的过滤规则来防止。4.Teardrop攻击Teardrop攻击利用了操作系统在重组分片时的缺陷。为了理解它的攻击原理,首先来看一下分片和重组的概念。数据链路层中有一个最大传输单元(MTU)的概念,它限制了数据帧的最大长度,不同的网络类型有不同的值。当待发送的数据包过大、或者在数据包穿越MTU值不同的网络时,需将其分割为较小的片段(fragment)。例如,一个大小为4500字节的数据包在以太网(以太网的MTU为1500字节)上传输时会被分成三个片段。目标端在对分片进行重组时会用到IP报头中的两个字段,分别是偏移量和分片标记(MF)。如果某个数据包的MF字段为1则表示该数据包是一个大数据包的片段,其中的偏移量则指出了该片段在整个数据包中的位置。例如,把一个长度为4500字节的数据包划分为三段,每段的偏移量依次为0,1500及3000。Teardrop攻击是针对没有正确处理IP片段重叠问题的较早的Linux内核。尽管这些内核就片段是否过长执行健壮性检查,但对片段长度过短的情况却不作验证。下面描述了一个典型的攻击场景,如图7-4所示。攻击者构造了两个分片,第一个分片的偏移量为0,有效数据的长度为N;第二个分片的偏移量为K,有效数据的长度为M。其中,KN,MN-K。Linux在重组这两个数据包时,首先将第一个数据包复制到缓冲区,接着对第二个数据包进行处理。由于出现了重叠现象(KN),Linux会对分片2进行以下操作。1)把分片2的偏移量设为N,使其与分片1的末尾对齐;2)计算分片2的末尾位置,用对齐前的偏移量加上分片2的数据长度,得到K+M;3)计算待复制数据的长度,用分片2的末尾位置减去对齐后第2个分片的偏移量,得到K+M-N。由于MN-K,计算出来的长度将是一个负数。由于负数在计算机中是用反码来表示,结果会向内核复制过多的数据,导致系统重启或崩溃。针对teardrop攻击的特点,可对接收到的分片数据包进行分析,通过计算数据包的片偏移量是否有误来对其进行检测。由于teardrop攻击主要是利用早期linux内核中的缺陷,因此,可通过安装系统补丁来进行防御。另外,还可以通过设置防火墙或路由器的过滤规则来丢弃此类病态数据包。分片1:分片2:偏移量=0长度=N偏移量=K长度=MTeardrop攻击中的异常分片7.1.3DDoS攻击DoS攻击通常采用一对一的形式,当目标主机性能较低或者网络带宽较窄时,它的攻击效果是明显的。但随着计算机硬件技术和网络技术的发展,一般企业、政府使用的服务器都具有较高的性能,这就加大了DoS攻击的难度。为了获得更大的攻击力量,在DoS基础上发展出了分布式拒绝服务(DistributedDenialofService,DDoS)攻击。采用了分布、协作的大规模攻击方式,其攻击目标主要为大型站点。在DDoS中,攻击者首先控制一定数量的主机,然后集合所有受控主机的力量来对目标系统进行攻击。通过这种方式,不但可以获取庞大的攻击力量,同时也加大了识别真正攻击者的难度。接下来我们来分析DDoS的两种主要攻击模式。1.Trin00/TFN式攻击主服务器从服务器3从服务器2从服务器1受害者主/从式的DDoS攻击结构1.Trin00/TFN式攻击Trin00和TFN是两个用来发动DDoS攻击的工具,它们采用了一种主/从(master/slaves)式的结构,因此,这种攻击方式也叫做主/从式攻击。主/从式DDoS的攻击结构如图7-5所示。攻击者通过主服务器发送控制消息给事先入侵并植入DDoS程序的从服务器群,控制从服务器群发起对目标服务器的攻击。接着,从服务器群将产生高容量的网络数据流到受害者。由于这些数据流的源地址是伪造的,因此,增加了追查难度。2.反弹式攻击反弹式攻击方式利用了反弹服务器(Reflector)来增加追查攻击来源的难度。所谓反弹服务器,是指那些收到请求后会返回一个响应数据包的服务器。网络上这样的服务器有很多,包括Web服务器、DNS服务器和邮件服务器等。主服务器从服务器2从服务器1从服务器3反弹服务器1反弹服务器5反弹服务器3反弹服务器2反弹服务器4受害者利用反弹服务器的DDoS攻击结构这类DDoS的攻击结构如图7-6所示。在准备阶段,攻击者首先锁定数目相当的可作为反弹服务器的主机。接着,集中攻陷一批从服务器,并在其上植入攻击软件。发动攻击时,攻击者发送攻击命令到从服务器群,之后,从服务器群会发送大量源地址为受害者的数据包到返弹服务器群。其结果是,所有反弹服务器都将向受害者发送响应数据包,从而淹没受害者的网络。通过利用反弹服务器加大了追查真实来源的难度。首先,对受害者来说,没有必要去追查攻击数据包的来源,因为它们来源于返弹服务器而不是真正的攻击者。其次,对于反弹服务器来说,它很难追查从服务器的地址,因为攻击数据包的源地址是伪造的。7.1.4拒绝服务攻击的防范随着电子商务的发展,保持服务器在线对于很多商业机构来说是非常关键的。持久的拒绝服务攻击不但会给企业造成经济损失,还会损害企业的形象。因此,应做好防范DoS攻击的准备。下面就如何防范给出了几条建议。1)加固操作系统。包括限制操作系统上运行的服务,及时部署操作系统与应用程序补丁等。该措施一方面防止主机在DDoS攻击中沦为攻击跳板(因为攻击者主要利用各种漏洞来占领从服务器),另一方面可以防止黑客向主机发动异常导致型DoS攻击。2)使用防火墙。防火墙位于主机和网络之间,可对特定的数据包进行阻挡。特别地,还应在防火墙上使用针对DoS攻击的过滤算法。常用的算法有“随机丢弃”和“SYN”
本文标题:第7讲 黑客攻击及防御技术
链接地址:https://www.777doc.com/doc-3667053 .html