ddos是什么?遇到ddos攻击应该怎么去应对?

【ddos是什么?遇到ddos攻击应该怎么去应对?】DDoS是“Distributed denial of service attack”的缩写 , 意为:分布式拒绝服务攻击 。
DoS denial of service:拒绝服务 , 指的是服务器或者网络的一种状态 , 服务不能正常工作 , 只要造成服务产生DoS状态的攻击成为DoS攻击 , 而DDoS分布式的DoS攻击 , 指的是多台机器同时对目标产生DoS攻击行为 。
比如占用网络带宽的DDoS攻击 , 如下图所示:

ddos是什么?遇到ddos攻击应该怎么去应对?

文章插图

DDOS攻击主要分为三类:1、流量型攻击;2、连接型攻击;3、特殊协议缺陷 。 包括了 Ip Flood、Syn Flood、Udp 反射 Flood、Dns Query Flood、Dns Reply Flood、Http Flood、Https Flood、Sip Invite Flood、Sip Register Flood、Ntp Request Flood、Ntp Reply Flood、Connection Flood、CC攻击、http slow header慢速攻击、http slow post慢速攻击、Https-ssl-dos攻击、Dns NX攻击、Dns 投毒等等 。
因时间有限 , 就简单以tcp SynFlood这种攻击方式为例 。
其原理是:
tcp连接有一个队列 , 当服务器收到第一次握手包的时候 , 就会产生一个连接信息放到这个半连接队列里边 syn_backlog ,当服务器收到第三次握手的时候就会从半连接队列查询对应的连接信息 , 将其移动到另一个已经完成连接的队列 tcp backlog 。 但是如果攻击者一直发起第一次握手包syn报文 , 不发送第三次握手包来完成连接 , 那么就会导致服务器的半连接队列被撑爆 , 导致拒绝服务 。
如下图所示:

ddos是什么?遇到ddos攻击应该怎么去应对?

文章插图

而实现的技术是依据tcp建立连接的三次握手 , 此攻击以多个随机的源主机地址向目的主机发送syn 。 攻击者只发起第一次握手包 , 但是不发起第三次握手包 。 而在收到目的主机的syn+ack包后并不回应 , 目的主机就为这些源主机建立大量的连接队列 , 由于没有收到ack一直维护这些连接队列 , 造成资源的大量消耗而不能向正常的请求提供服务 。 与之类似的攻击方式还有ackflood、s-ackflood、finflood、rstflood、tcpflood 。 connect api 是会完成三次握手的 , 所以只能使用原始套接字来实现 。
而对于发起的攻击者IP是否会被发现?只要发起DDoS攻击 , 服务器肯定能发现 , 如果IP直接写真实的源IP地址 , 就会导致被攻击者容易追查是哪个人发起攻击的 。 现在技术也随之升级 , 攻击者也会知道如何更好利用跳板机等技术 , 防御方也有更好的防攻击对策 , 所以在安全攻防界里有一句话叫“道高一尺魔高一丈” 。 如果源地址是随机的 , 好处就是让服务器返回第二次握手报文的时候丢给了一个未知机器 , 该机器即使存活 , 也不会回第三次握手了 。
netwox工具就是一个典型的例子 。 里面也有很多方法 , 在此不过多介绍 , 毕竟这方面说太多就易触碰底线问题了 , 点到为止即可 。
SynFlood攻击的如何防护?

ddos是什么?遇到ddos攻击应该怎么去应对?

文章插图

我列三点 , 当然不止 , 大佬们有更好的方法可以通过 评论方式一起交流下 , 谢谢 。
1、通过扩大半连接队列的长度来达到防护手段:
这种防护方式真的治标不治本 , 队列再大也可以将其撑破比如通过这一命令设置:
echo 4096 > /proc/sys/net/ipv4/tcp_max_syn_backlog
2、通过来减少服务器syn+ack的重传次数 , 提高半连接队列的清理频率:
比如通过这条命令:
echo 4 > /proc/sys/net/ipv4/tcp_synack_retries
3、通过设置 tcp_syncookies:

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。