驱动管家:安全、高效、精准的专业驱动下载站!

为什么syn flood会造成危害?如何抵御syn flood攻击?

2018-02-25 16:59:03责编:llp   来源:驱动管家     人气:

一、为什么Syn Flood会造成危害

这要从操作系统的TCP/IP协议栈的实现说起。当开放了一个TCP端口后,该端口就处于Listening状态,不停地监视发到该端口的Syn报文,一旦接收到Client发来的Syn报文,就需要为该请求分配一个TCB(Transmission Control Block),通常一个TCB至少需要280个字节,在某些操作系统中TCB甚至需要1300个字节,并返回一个SYN ACK命令,立即转为SYN-RECEIVED即半开连接状态,而某些操作系统在SOCK的实现上最多可开启512个半开连接(如Linux2.4.20内核)。这种过程如下图所示:

为什么syn flood会造成危害?如何抵御syn flood攻击?

从以上过程可以看到,如果恶意的向某个服务器端口发送大量的SYN包,则可以使服务器打开大量的半开连接,分配TCB,从而消耗大量的服务器资源,同时也使得正常的连接请求无法被相应。而攻击发起方的资源消耗相比较可忽略不计。

二、如何防御Syn Flood攻击

我们先来看一下Syn Flood有哪些种类,如下图所示:

为什么syn flood会造成危害?如何抵御syn flood攻击?

1. Direct Attack 攻击方使用固定的源地址发起攻击,这种方法对攻击方的消耗最小

2. Spoofing Attack 攻击方使用变化的源地址发起攻击,这种方法需要攻击方不停地修改源地址,实际上消耗也不大

3. Distributed Direct Attack 这种攻击主要是使用僵尸网络进行固定源地址的攻击

对于第一种攻击的防范可以使用比较简单的方法,即对SYN包进行监视,如果发现某个IP发起了较多的攻击报文,直接将这个IP列入黑名单即可。当然下述的方法也可以对其进行防范。

对于源地址不停变化的攻击使用上述方法则不行,首先从某一个被伪装的IP过来的Syn报文可能不会太多,达不到被拒绝的阈值,其次从这个被伪装的IP(真实的)的请求会被拒绝掉。因此必须使用其他的方法进行处理。

1. 无效连接监视释放

这种方法不停监视系统的半开连接和不活动连接,当达到一定阈值时拆除这些连接,从而释放系统资源。这种方法对于所有的连接一视同仁,而且由于SYN Flood造成的半开连接数量很大,正常连接请求也被淹没在其中被这种方式误释放掉,因此这种方法属于入门级的SYN Flood方法。

2. 延缓TCB分配方法

从前面SYN Flood原理可以看到,消耗服务器资源主要是因为当SYN数据报文一到达,系统立即分配TCB,从而占用了资源。而SYN Flood由于很难建立起正常连接,因此,当正常连接建立起来后再分配TCB则可以有效地减轻服务器资源的消耗。常见的方法是使用Syn Cache和Syn Cookie技术。

Syn Cache技术:

这种技术是在收到SYN数据报文时不急于去分配TCB,而是先回应一个SYN ACK报文,并在一个专用HASH表(Cache)中保存这种半开连接信息,直到收到正确的回应ACK报文再分配TCB。在FreeBSD系统中这种Cache每个半开连接只需使用160字节,远小于TCB所需的736个字节。在发送的SYN ACK中需要使用一个己方的Sequence Number,这个数字不能被对方猜到,否则对于某些稍微智能一点的Syn Flood攻击软件来说,它们在发送Syn报文后会发送一个ACK报文,如果己方的Sequence Number被对方猜测到,则会被其建立起真正的连接。因此一般采用一些加密算法生成难于预测的Sequence Number。

Syn Cookie技术:

对于SYN攻击,Syn Cache虽然不分配TCB,但是为了判断后续对方发来的ACK报文中的Sequence Number的正确性,还是需要使用一些空间去保存己方生成的Sequence Number等信息,也造成了一些资源的浪费。

Syn Cookie技术则完全不使用任何存储资源,这种方法比较巧妙,它使用一种特殊的算法生成Sequence Number,这种算法考虑到了对方的IP、端口、己方IP、端口的固定信息,以及对方无法知道而己方比较固定的一些信息,如MSS、时间等,在收到对方的ACK报文后,重新计算一遍,看其是否与对方回应报文中的(Sequence Number-1)相同,从而决定是否分配TCB资源。

3. 使用SYN Proxy防火墙

Syn Cache技术和Syn Cookie技术总的来说是一种主机保护技术,需要系统的TCP/IP协议栈的支持,而目前并非所有的操作系统支持这些技术。因此很多防火墙中都提供一种SYN代理的功能,其主要原理是对试图穿越的SYN请求进行验证后才放行,下图描述了这种过程:

为什么syn flood会造成危害?如何抵御syn flood攻击?

从上图(左图)中可以看出,防火墙在确认了连接的有效性后,才向内部的服务器(Listener)发起SYN请求,在右图中,所有的无效连接均无法到达内部的服务器。而防火墙采用的验证连接有效性的方法则可以是Syn Cookie或Syn Flood等其他技术。

采用这种方式进行防范需要注意的一点就是防火墙需要对整个有效连接的过程发生的数据包进行代理,如下图所示:

为什么syn flood会造成危害?如何抵御syn flood攻击?

因为防火墙代替发出的SYN ACK包中使用的序列号为c,而服务器真正的回应包中序列号为c’,这其中有一个差值|c-c’|,在每个相关数据报文经过防火墙的时候进行序列号的修改。

TCP Safe Reset技术:

这也是防火墙Syn代理的一种方式,其工作过程如下图所示:

为什么syn flood会造成危害?如何抵御syn flood攻击?

这种方法在验证了连接之后立即发出一个Safe Reset命令包,从而使得Client重新进行连接,这时出现的Syn报文防火墙就直接放行。在这种方式中,防火墙就不需要对通过防火墙的数据报文进行序列号的修改了。这需要客户端的TCP协议栈支持RFC 793中的相关约定,同时由于Client需要两次握手过程,连接建立的时间将有所延长。

以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 傲游浏览器有哪些漏洞?傲游浏览器的漏洞一般在哪些地方?

    傲游浏览器有哪些漏洞?傲游浏览器的漏洞一般在哪些地方?

    这个漏洞首先是国外某个团队发现的,他研究了多个浏览器的漏洞。其中遨游的漏洞比较独特,大致存在几个方面的,1 about:history中存在xss漏洞,即浏览历史中url链接中存在明显的xss漏洞。2 遨游的拓展中存在大量

    详情2018-01-08 17:11:48责编:llp   来源:驱动管家     
  • php安全模式限制了什么?客户端脚本植入的防范方法

    php安全模式限制了什么?客户端脚本植入的防范方法

    safe_mode,安全模式,PHP用来限制文档的存取 限制环境变量的存取,控制外部程序的执行 启用安全模式必须设置php ini中的safe_mode = On1 限制文件存取safe_mode_include_dir = " path1: path2: path3 "不同的文

    详情2018-02-25 16:58:56责编:llp   来源:驱动管家     
  • websql安全风险详析 websql攻击的防御之道

    websql安全风险详析 websql攻击的防御之道

    一、WebSQL安全风险简介数据库安全一直是后端人员广泛关注和需要预防的问题。但是自从HTML5引入本地数据库和WebSQL之后,前端开发对于数据库的安全也必须要有所了解和警惕。WebSQL的安全问题通常表现为两个部分:

    详情2018-02-08 09:37:00责编:llp   来源:驱动管家     
  • 如何渗透台湾视频网站?这里有份攻略

    如何渗透台湾视频网站?这里有份攻略

    ----------------------------------------------------------------------------------------------------------No 1文章背景:

    详情2018-01-28 11:39:26责编:llp   来源:驱动管家     
  • 怎么抵挡ddos攻击?对付ddos攻击的三大方法

    怎么抵挡ddos攻击?对付ddos攻击的三大方法

    一、拒绝服务攻击的发展:从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击 方式。而DdoS(Distributed Denial of Service,

    详情2018-01-15 16:04:28责编:llp   来源:驱动管家     
  • 出现万能密码能进入后台的漏洞怎么修复?

    出现万能密码能进入后台的漏洞怎么修复?

    万能密码漏洞以及修复记得几年前要入侵一个企业网站超级简单一般只需要找到后台 还有后台通常是www xxx com admin 然后账号 密码都是& 39;or& 39;=& 39;or& 39; 就进去现在好像有几个也可以用 但是已经没那么

    详情2018-01-26 12:13:03责编:llp   来源:驱动管家     
  • 什么是暴力破解?分析暴力破解的原理

    什么是暴力破解?分析暴力破解的原理

    不可不说一下学习破解的三个阶段:初级,修改程序,用ultraedit等工具修改exe文件,称暴力破解,简称爆破。中级,追出软件的注册码。高级,写出注册机。先说这爆破。所谓爆破,就是指通过修改可执行文件的源文件

    详情2018-01-24 09:03:44责编:llp   来源:驱动管家     
  • 微软ie浏览器的脚本错误导致破坏漏洞出现

    微软ie浏览器的脚本错误导致破坏漏洞出现

    发布日期:2007-10-09 更新日期:2007-10-10 受影响系统: Microsoft Internet Explorer 7 0 Microsoft Internet Explorer 6 0 SP1 Microsoft Internet Explorer 6 0 Microsoft Internet Explorer 5 0 1 SP4 描述: ----------------------------

    详情2018-01-10 12:22:18责编:llp   来源:驱动管家     
  • 破解密码有哪些高招?怎么加密才有保障?

    破解密码有哪些高招?怎么加密才有保障?

    加密和解密是一个永久的热点话题,什么样的加密才是安全的?怎样才能解开常用的密码?你是否已经意识到,在你每日朝夕相处的密码和保护中,已经有太多的不安全因素在困扰着自己?今天,笔者将带领大家一起走近破

    详情2018-02-03 14:25:03责编:llp   来源:驱动管家     
  • 什么是特洛伊木马程序?特洛伊的木马程序怎么检查清除?
    详情2018-01-17 08:52:32责编:llp   来源:驱动管家