DDOS攻击预防

什么是 DDoS

分布式拒绝服务攻击(Distributed Denial of Service),是指处于不同位置的多个攻击者同时向一个或数个目标发动攻击。由于攻击的发出点是分布在不同地方的,这类攻击称为分布式拒绝服务攻击。

DDoS 是一种基于 DoS 的特殊形式的拒绝服务攻击。单一的 DoS 攻击一般是采用一对一方式,利用网络协议和操作系统的缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。与 DoS 相比,DDos 借助数百上千台攻击机形成集群,发起的规模更大,更难防御的一种进攻行为。

常见的 DDoS 攻击

ICMP Flood

ICMP 用于在 IP 主机,路由器之间传递控制消息(网络是否连通,主机是否可达,路由是否可用等)。ICMP 虽然不传递用户数据,但是对于用户数据的传递起着重要的作用。ICMP Flood 通过对目标系统发送海量的数据报,就可以令目标主机瘫痪,形成洪泛攻击。

UDP Flood

UDP 协议是一种无连接的协议,在 UDP Flood 中,攻击者通常发送大量伪造 IP 地址的 UDP 报去冲击 DNS 服务器,Radius 认证服务器,流媒体视频服务器等,造成服务不可用。 上述的两种是比较传统的流量型攻击,技术含量较低,以占满网络带宽使得正常用户无法得到服务为攻击方式,攻击效果通常依赖于攻击者本身的网络性能,而且容易被查找攻击源头。

NTP Flood

NTP 是标准的基于 UDP 协议的网络时间同步协议。由于 UDP 无连接的特性,NTP 服务器并不能保证收到报文的源 IP 的正确性。所以,攻击者通过将 IP 报文的源 IP 地址换为靶机的 IP 地址,并向 NTP 服务器发送大量的时间同步报文,这样,NTP 服务器的响应报文就会达到靶机上,沾满靶机网络段的带宽资源,同时也很难去追溯攻击源头。

SYN Flood

SYN Flood 是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,从而使目标服务器资源耗尽的攻击方式。如果客户端只发起第一次握手,而不响应服务端的第二次握手,那么这条连接就处于半连接状态,服务端会维持这条连接一段时间(SYN Timeout)并不断地重试。但攻击者大量的模拟这种情况,就会沾满整个服务端的连接符号表,并消耗大量的 CPU 资源进行重试操作。而对于 SNY Flood 的防御目前有两种常见的方式,一种是算短 SYN Timeout,另一种是设置 SYN Cookie,并开辟一个数组存放 Cookie,单连接没有真正建立时,不去占用连接符号表。

DNS Query Flood

DNS Query Flood 通过操纵大量的傀儡机,向本网段的域名服务器发送大量域名解析请求,通常这些请求解析的域名是随机生成或网络上根本不存在的域名,由于本地域名服务器无法找到对应的结果,就会通过层层上次给更高级的域名服务器,引起连锁反应,导致本网段内的域名解析服务瘫痪,但一般最多只会瘫痪一小段网络。

HashDos

HashDos 是一种新型的,基于 Hash 碰撞形成的攻击。随着现在 RESTful 风格的不断普及,json 格式作为数据传输的格式愈发成为主流。但是 json 反序列化为对象时,底层是通过 hash 算法来将字段与属性,属性值进行一一匹配。所以,一旦攻击者知道了我们序列化方式,构造出一段具有严重哈希碰撞的 json 数据,就会使我们服务端序列化的复杂度从 O(1) 暴增到 O(n)。

DDos 攻击的防御

DDos 的防御主要有两种,一种是针对流量带宽,一种是针对服务端资源流量带宽一般需要通过运营商采用 ISP 黑洞,近源清洗等策略,在源头(即攻击者所在的网段)进行拦截,而不是等到所有的细流汇聚成猛水时才进行拦截。

而对于服务端的资源,则是当下 DDos 的重灾区,本文以攻防对抗的方式讲述 DDos 的发展历程。

第一回合:

防:在报文头中设置一些特征字段,如果服务端接收的请求报头中没有此特征字段,则视为恶意请求,直接过滤。

攻:通过收集正常用户的请求报文进行重放,或者对报文格式进行分析,得到特征字段

第二回合:

防:拦截短期内大量重复的 IP

攻:随机化伪造报文的源 IP

第三回合:

防:因为 IP 地址大约有 62 亿个,但国内的 IP 地址只有几千万个,于是我们可以根据网段过滤一些非法 IP

攻:先进行一波随机化 IP 的攻击,得到攻击的结果,再分析出可用的网段,利用这些网段进行攻击

第四回合:

防:通过指纹学习算法(在报文中增加设备指纹信息,例如设备号,操作系统,浏览器类型等),拦截短时间内相似指纹的请求

攻:对报文进行分析,将报文的所有字段(包含指纹字段)都进行随机化伪造

第五回合:

防:利用安全水印技术,客户端和服务端协商好一套签名算法,客户端生成签名,服务端验证签名,同时增加一些时间戳参数,保证攻击方重放无效。(签名就跟Token一样的效果

攻:通过反编译获取签名算法,伪造签名,但实现难度很大。

防:规定生成的水印必须携带用户信息,这样即使被反编译,水印也带有用户信息,可以溯源追踪。

应急响应

三、应急响应处置方法 1、发现问题 1、查看防火墙、流量监控设备、网络设备等是否出现安全告警或大量异常数据包。 2、查看是否存在特定的服务、页面请求,使服务器/主机无法及时处理所有正常请求。 3、查看是否有大量等待的TCP连接。 4、排查服务器/主机与恶意IP地址是否建立异常连接,或是否存在大量异常连接。

2、排查问题 有抗DDoS攻击设备、流量监控设备等,那么我们可以分析设备的流量、告警信息,判断攻击类型; 没有相关设备,通过抓包、排查设备访问日志信息,判断攻击类型,为采取适当的防御措施提供依据。 排查内容: DDoS事件发生的时间: 对可记录流量信息的设备进行排查,确定攻击时间,以便后续依据此时间进行溯源分析,并对攻击者行为、攻击方法进行记录。 了解系统架构: 通过了解现场实际环境网络拓扑、业务架构及服务器类型、带宽大小等关键信息,可帮助安全运营人员、应急响应工程师确认事件影响的范围及存在的隐患。 了解DDoS攻击的影响范围: 结合系统架构情况,确认在DDoS攻击中受到影响的服务和带宽信息,以便后续排查并采取相应措施缓解。

3、临时处置方法 1、我们可以针对当前攻击流量限制访问速率,调整安全设备的防护策略。通过设备的记录信息,对访问异常的IP地址进行封堵。 2、当流量在服务器硬件与应用接受范围内,利用IP表实现软件层防护。 3、当攻击持续存在,则可在出口设备配置防护策略、接入CDN防护等。 4、当流量远远超出出口带宽,建议联系运营商进行流量清洗。

4、研判溯源 溯源分析一般是通过查看安全设备、流量监控设备、服务器、网络设备上保留的日志信息进行的。将排查过程中整理出的IP地址进行梳理、归类,方便日后溯源。但是在DDoS攻击中,攻击者一般会使用僵尸网络,因此为溯源带来很大难度。建议在遭受DDoS攻击时及时报案,并保留相关日志、攻击记录等。

5、清除加固 5.1、服务器防护 1、对服务器进行安全加固,包括操作系统及服务软件,以减少可被攻击的点。 2、避免非业务端口对外网开放,避免与业务无关的请求和访问,减少服务器暴露在公网的攻击点。 3、对服务器进行性能测试、压力测试等,评估正常业务环境下其所能承受的带宽及业务吞吐处理能力。 4、及时更新安全补丁,避免服务器沦为攻击者攻击的“肉鸡”。 5.2、网络防护与安全监测 1、优化网络架构,利用负载分流保证系统弹性、冗余,并防止单点故障的产生。 2、限制同时打开数据包的最大连接数。 3、部署流量监控设备或抗DDoS攻击设备,对全网中存在的威胁进行监控分析,关注相关告警,为追踪溯源提供基础支撑。 5.3、应用系统防护 对应用代码做好性能优化。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zh&&Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值