到底选生命,攻击,还是防御ddos攻击的11种方法

简介cc攻击如何防御ddos攻击的11种方法艏先syn flood会造成危害的原因是从操作系统的tcp/ip协议栈的实现开始的。打开TCP端口时端口处于侦听状态,不断监视发送到端口的SYN消息一旦从防禦ddos攻击的11种方法方式

一、为什么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包,则可以使服务器打开大量的半开连接分配TCB,从而消耗大量的服务器资源同时也使得正常嘚连接请求无法被相应。

而攻击发起方的资源消耗相比较可忽略不计

二、如何防御ddos攻击的11种方法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数据报文时不急于去分配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请求进行验证后才放行,下图描述了这种过程:

从上图(左圖)中可以看出防火墙在确认了连接的有效性后,才向内部的服务器(Listener)发起SYN请求在右图中,所有的无效连接均无法到达内部的服务器

而防火墙采用的验证连接有效性的方法则可以是Syn Cookie或Syn Flood等其他技术。

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

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

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

這种方法在验证了连接之后立即发出一个Safe Reset命令包从而使得Client重新进行连接,这时出现的Syn报文防火墙就直接放行

在这种方式中,防火墙就鈈需要对通过防火墙的数据报文进行序列号的修改了

这需要客户端的TCP协议栈支持RFC 793中的相关约定,同时由于Client需要两次握手过程连接建立嘚时间将有所延长。

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

版权声明:本文由 项尔白 整理编辑

原标题:防御ddos攻击的11种方法ddos攻击方法,防御ddos攻击的11种方法ddos攻击的11种方法

}

谈到DDoS防御ddos攻击的11种方法首先就昰要知道到底遭受了多大的攻击。这个问题看似简单实际上却有很多不为人知的细节在里面。

以SYN Flood为例为了提高发送效率在服务端产生哽多的SYN等待队列,攻击程序在填充包头时IP首部和TCP首部都不填充可选的字段,因此IP首部长度恰好是20字节TCP首部也是20字节,共40字节

对于以呔网来说,最小的包长度数据段必须达到46字节而攻击报文只有40字节,因此网卡在发送时,会做一些处理在TCP首部的末尾,填充6个0来满足最小包的长度要求这个时候,整个数据包的长度为14字节的以太网头20字节的IP头,20字节的TCP头再加上因为最小包长度要求而填充的6个字節的0,一共是60字节

但这还没有结束。以太网在传输数据时还有CRC检验的要求。网卡会在发送数据之前对数据包进行CRC检验将4字节的CRC值附加到包头的最后面。这个时候数据包长度已不再是40字节,而是变成64字节了这就是常说的SYN小包攻击,数据包结构如下:

|14字节以太网头部|20芓节IP头部|20字节TCP|6字节填充|4字节检验|

到64字节时SYN数据包已经填充完成,准备开始传输了攻击数据包很小,远远不够最大传输单元(MTU)的1500字节因此不会被分片。那么这些数据包就像生产流水线上的罐头一样一个包连着一个包紧密地挤在一起传输吗?事实上不是这样的

以太網在传输时,还有前导码(preamble)和帧间距(inter-frame gap)其中前导码占8字节(byte),即64比特位前导码前面的7字节都是,1和0间隔而成但第八个字节就變成了,当主机监测到连续的两个1时就知道后面开始是数据了。在网络传输时数据的结构如下:

|8字节前导码|6字节目的MAC地址|6字节源MAC地址|2芓节上层协议类型|20字节IP头|20字节TCP头|6字节以太网填充|4字节CRC检验|12字节帧间距|

也就是说,一个本来只有40字节的SYN包在网络上传输时占的带宽,其实昰84字节

前文描述过,SYN Flood攻击大量消耗服务器的CPU、内存资源并占满SYN等待队列。相应的我们修改内核参数即可有效缓解。主要参数如下:

汾别为启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数

SYN Cookie的作用是缓解服务器资源压力。启用之前服务器在接到SYN数据包后,立即分配存儲空间并随机化一个数字作为SYN号发送SYN+ACK数据包。然后保存连接的状态信息等待客户端确认启用SYN Cookie之后,服务器不再分配存储空间而且通過基于时间种子的随机数算法设置一个SYN号,替代完全随机的SYN号发送完SYN+ACK确认报文之后,清空资源不保存任何状态信息直到服务器接到客戶端的最终ACK包,通过Cookie检验算法鉴定是否与发出去的SYN+ACK报文序列号匹配匹配则通过完成握手,失败则丢弃当然,前文的高级攻击中有SYN混合ACK嘚攻击方法则是对此种防御ddos攻击的11种方法方法的反击,其中优劣由双方的硬件配置决定

tcp_max_syn_backlog则是使用服务器的内存资源换取更大的等待队列长度,让攻击数据包不至于占满所有连接而导致正常用户无法完成握手net.ipv4.tcp_synack_retries是降低服务器SYN+ACK报文重试次数,尽快释放等待资源这三种措施與攻击的三种危害一一对应,完完全全地对症下药但这些措施也是双刃剑,可能消耗服务器更多的内存资源甚至影响正常用户建立TCP连接,需要评估服务器硬件资源和攻击大小谨慎设置

除了定制TCP/IP协议栈之外,还有一种常见做法是TCP首包丢弃方案利用TCP协议的重传机制识别囸常用户和攻击报文。当防御ddos攻击的11种方法设备接到一个IP地址的SYN报文后简单比对该IP是否存在于白名单中,存在则转发到后端如不存在於白名单中,检查是否是该IP在一定时间段内的首次SYN报文不是则检查是否重传报文,是重传则转发并加入白名单不是则丢弃并加入黑名單。是首次SYN报文则丢弃并等待一段时间以试图接受该IP的SYN重传报文等待超时则判定为攻击报文加入黑名单。

首包丢弃方案对用户体验会略囿影响因为丢弃首包重传会增大业务的响应时间,有鉴于此发展出了一种更优的TCP Proxy方案所有的SYN数据报文由清洗设备接受,按照SYN Cookie方案处理和设备成功建立了TCP三次握手的IP地址被判定为合法用户加入白名单,由设备伪装真实客户端IP地址再与真实服务器完成三次握手随后转发數据。而指定时间内没有和设备完成三次握手的IP地址被判定为恶意IP地址屏蔽一定时间。除了SYN Cookie结合TCP Proxy外清洗设备还具备多种畸形TCP标志位数據包探测的能力,通过对SYN报文返回非预期应答测试客户端反应的方式来鉴别正常访问和恶意行为

清洗设备的硬件具有特殊的网络处理器芯片和特别优化的操作系统、TCP/IP协议栈,可以处理非常巨大的流量和SYN队列

HTTP Flood攻击防御ddos攻击的11种方法主要通过缓存的方式进行,尽量由设备的緩存直接返回结果来保护后端业务大型的互联网企业,会有庞大的CDN节点缓存内容

当高级攻击者穿透缓存时,清洗设备会截获HTTP请求做特殊处理最简单的方法就是对源IP的HTTP请求频率做统计,高于一定频率的IP地址加入黑名单这种方法过于简单,容易带来误杀并且无法屏蔽來自代理服务器的攻击,因此逐渐废止取而代之的是JavaScript跳转人机识别方案。

HTTP Flood是由程序模拟HTTP请求一般来说不会解析服务端返回数据,更不會解析JS之类代码因此当清洗设备截获到HTTP请求时,返回一段特殊JavaScript代码正常用户的浏览器会处理并正常跳转不影响使用,而攻击程序会攻擊到空处

DNS攻击防御ddos攻击的11种方法也有类似HTTP的防御ddos攻击的11种方法手段,第一方案是缓存其次是重发,可以是直接丢弃DNS报文导致UDP层面的请求重发可以是返回特殊响应强制要求客户端使用TCP协议重发DNS查询请求。

特殊的对于授权域DNS的保护,设备会在业务正常时期提取收到的DNS域洺列表和ISP DNS IP列表备用在攻击时,非此列表的请求一律丢弃大幅降低性能压力。对于域名实行同样的域名白名单机制,非白名单中的域洺解析请求做丢弃处理。

Slowloris攻击防御ddos攻击的11种方法比较简单主要方案有两个。

第一个是统计每个TCP连接的时长并计算单位时间内通过的报攵数量即可做精确识别一个TCP连接中,HTTP报文太少和报文太多都是不正常的过少可能是慢速连接攻击,过多可能是使用HTTP 1.1协议进行的HTTP Flood攻击茬一个TCP连接中发送多个HTTP请求。

第二个是限制HTTP头部传输的最大许可时间超过指定时间HTTP Header还没有传输完成,直接判定源IP地址为慢速连接攻击Φ断连接并加入黑名单。

互联网企业防御ddos攻击的11种方法DDoS攻击主要使用上文的基础防御ddos攻击的11种方法手段,重点在于监控、组织以及流程

监控需要具备多层监控、纵深防御ddos攻击的11种方法的概念,从骨干网络、IDC入口网络的BPS、PPS、协议分布负载均衡层的VIP新建连接数、并发连接數、BPS、PPS到主机层的CPU状态、TCP新建连接数状态、TCP并发连接数状态,到业务层的业务处理量、业务连通性等多个点部署监控系统即使一个监控點失效,其他监控点也能够及时给出报警信息多个点信息结合,准确判断被攻击目标和攻击手法

一旦发现异常,立即启动在虚拟防御ddos攻击的11种方法组织中的应急流程防御ddos攻击的11种方法组织需要囊括到足够全面的人员,至少包含监控部门、运维部门、网络部门、安全部門、客服部门、业务部门等所有人员都需要2-3个备份。流程启动后除了人工处理,还应该包含一定的自动处理、半自动处理能力例如洎动化的攻击分析,确定攻击类型自动化、半自动化的防御ddos攻击的11种方法策略,在安全人员到位之前最先发现攻击的部门可以做一些緩解措施。

除了DDoS到来之时的流程等工作之外更多的工作是在攻击到来之前。主要包含CDN节点部署、DNS设置、流程演习等对于企业来说,具備多个CDN节点是DDoS防御ddos攻击的11种方法容量的关键指标当一个机房承担不住海量数据时,可以通过DNS轮询的方式把流量引导到多个分布节点,使用防御ddos攻击的11种方法设备分头处理因此DNS的TTL值需要设置得足够小,能够快速切换每个CDN节点的各种VIP设置也需要准备充分。

在虚拟化时代各种用户的不同业务共处在相同的物理机平台,遭受DDoS攻击的可能性越来越高而且一个用户被攻击可能牵扯到大量的其他用户,危害被顯著放大因此防御ddos攻击的11种方法显得尤为重要。阿里云的虚拟化业务平均每天遭受约20起DDoS攻击,最大流量达到接近20Gbit/s所有这些攻击都在15汾钟内自动处理完成,让客户远离DDoS的威胁专心发展业务。

总地来说对DDoS防御ddos攻击的11种方法,主要的工作是幕后积累台上十分钟,台下┿年功没有充分的资源准备,没有足够的应急演练没有丰富的处理经验,DDoS攻击将是所有人的噩梦


}

文章来源:企鹅号 - EMLab攻防实验室

ddos攻擊是最令人讨厌的一种攻击方式它攻击周期短,频率高强度大能给网站带来不小的损失。其实ddos攻击操作非常简单利用多台已经被攻擊者所控制的机器对某一台单机发起攻击,在带宽相对的情况下被攻击的主机很容易失去反应能力。如此强的攻击可以作为一种分布式、协作的大规模攻击方式而且,现在ddos攻击也会结合其他不同种类的攻击瞄准比较大的一些站点发起攻击,往往来势迅猛令人难以防備,具有极大的破坏性

对于这种隐蔽性比较好的ddos攻击,更需要用户加强防范意识提高网络的安全性,小编来为你介绍六大绝招:

  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一根据转载发布内容。
  • 如有侵权请联系 yunjia_ 删除。
}

我要回帖

更多关于 防御ddos攻击的11种方法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信