可怕的DDoS
由于各种原因,如报复、勒索、政治需要等。,以及攻击成本越来越低、效果明显等特点,DDOS攻击已经演变为一种全球性的网络安全威胁。
购买阿里云服务器或腾讯云产品等产品,请先领取优惠券包!
凭证领取地址:https://blog.csdn.net/qq_38461232/article/details/85626766
本文概要:
卡巴斯基2016年第三季度调查报告显示,
DDoS攻击导致61%的公司无法访问其关键业务信息,38%的公司无法访问其关键业务,33%的受害者有商业合同或合同损失。趋势
总结一下,目前的
DDoS攻击有以下趋势:1
国际化目前
DDoS攻击越来越国际化,中国已经成为仅次于美国DDoS攻击的第二大受害者,而国内[/S2]攻击来自海外。2超大规模
由于跨网络调度流量越来越方便,流量购买价格越来越低,因此DDoS攻击流量的规模越来越大。尤其是2014年底,某云遭遇了高达450Gbps的攻击。
3市场化
市场化必然带来成本优势。现在网上各种DDoS平台和肉鸡交易渠道层出不穷,使得攻击者能够以极低的成本发动大规模攻击。流量采集方法对比见下表。
DDoS攻击科普
DDoS的攻击原理,简单来说,其实就是利用TCP/UDP协议规则,通过占用协议栈资源或者发起重度流量拥塞来消耗目标机器或者网络的性能。我们来简单回顾一下TCP的“三次握手”和“四波”
TCP三次握手和四波
TCP连接:三次握手
1.客户端:syn
2.服务器:syn+ack
3.客户端:确认
TCP断开连接:挥动四次
1.客户:fin
2.服务器:确认
3.服务器:fin
4.客户端:确认
UDP通信流
根据上图可以发现,UDP通信是无连接不可靠的,数据直接传输,没有协商过程。
攻击原理和攻击伤害
根据攻击的对象不同,将攻击的原理和攻击的危害分析分为三类,即攻击网络带宽资源、应用和系统。
攻击网络带宽资源:
攻击系统资源:
攻击应用程序资源:
DDoS保护科学
攻击保护原理
从TCP/UDP协议栈原理引入DDoS保护原理;
synflood:
可以接收客户端的三次握手复位,在第二次握手时发送错误的ack,等待客户端回复复位,结合信任机制做出判断。
确认洪水:
丢弃ack三次,让对方重新连接:重发syn建立链接,遵循syn泛洪保护原理;了解正常ack的来源。如果ack超过阈值,如果不在正常源列表中,丢弃ack三次,让对方重新连接:重新发送syn建立链接,之后是syn泛洪保护。
udp泛洪:
不同级别的保护
1按攻击流量规模分类
更少的流量:
小于1000Mbps,在服务器硬件和应用的接受范围内,不影响业务:使用iptables或DDoS保护应用实现软件层保护。
大流量:
大于1000Mbps,但在DDoS清洗设备的性能范围内,且小于机房出口,可能影响同一机房的其他业务:使用iptables或DDoS保护应用实现软件层保护,或直接在机房出口配置黑洞等保护策略,或同时切换域名,对外服务IP修改为高负载代理集群外网IP,或CDN高仿IP,或;或者直接访问DDoS清洗设备。
超大规模流量:
如果在DDoS清洗设备的性能范围之外,但在机房出口的性能范围之内,可能影响到同一机房的其他业务,或者大于机房出口,已经影响到同一机房的全部或大部分业务:联系运营商检查分组限流配置部署,观察业务恢复情况。
2按攻击流量协议分类
syn/fin/ack之类的tcp数据包:
设置预警阈值和响应阈值,前者开始报警,后者开始处理,并根据流量和影响程度调整保护策略和手段,逐步升级。
UDP/DNS等UDP协议包查询:
对于大部分游戏业务来说,是TCP协议,所以可以根据业务协议做一个TCP协议白名单。如果遇到大量的UDP请求,可以直接在系统级/HPPS或清洗设备上丢弃UDP包,无需产品确认或产品确认延迟。
httpflood/CC等需要与数据库交互的攻击:
这一般会导致数据库或webserver负载过高或者连接数过高,在限流或清理流量后可能需要重启服务释放连接数,所以更倾向于降低系统资源支持的连接数。相对来说,这种攻击很难防护,而且消耗了很多防护装备的性能。
其他:
Icmp数据包可以直接丢弃。第一,丢弃或限制机房出口以下各级电流。现在这种攻击已经很少见了,对业务的伤害也有限。
DDoS攻击和防护实践
自建DDoS平台
现在有开源的DDoS平台源代码。只要有足够的机器和带宽资源,随时都可以部署一个高杀伤力的DDoS平台,如下图第三个方案。
发包工具:
下面是一个常用的DDoS客户端的合同发布代码。可以看到攻击的方式很多。ip、端口、tcp标志和包大小都是定制的。
```
定义函数():
os.system("。/txDDOS-a"+type+"-d"+IP+"-y"+port+"-f0x10-s10.10.10.10-l1300")
if__name__=="__main__":
池=多处理。Pool(processes=int(nbproc))
对于xrange(int(nbproc))中的I:
pool.apply_async(func)
pool.close()
pool.join()
```
完成了DDoS攻击,的实现,下面从iptables、应用本身、高性能代理三个角度介绍如何防御DDOS。
Iptables保护
sysCTL-wnet.IPv4.IP_forward=1&;>/dev/null
#打开转发
sysCTL-wnet.IPv4.TCP_syncookies=1&;>/dev/null
#打开syncookie(针对DOS攻击的轻量级保护)
sysCTL-wnet.IPv4.netfilter.IP_conntrack_TCP_timeout_established=3800&;>/dev/null
#将默认TCP连接最长持续时间设置为3800秒(此选项可以大大减少连接数)
sysCTL-wnet.IPv4.IP_conntrack_max=300000&;>/dev/n
#将支持的最大连接树设置为30W(根据您的内存和iptables版本,此树每个连接需要超过300字节)
iptables-N合成洪水
iptables-AINPUT-pTCP-syn-jsyn-flood
iptables-Isyn-flood-pTCP-mlimit-limit3/s-limit-burst6-j返回
iptables-syn-flood-j拒绝
#防止SYN攻击轻量级预防
iptables-AINPUT-Ieth0-pTCP-syn-mconnlimit-connlimit-15-jDROP以上
iptables-A输入-ptcp-m状态-状态建立,相关-j接受
#为了防止过多的DOS连接进入,您可以允许外部网卡的每个IP最多有15个初始连接,并丢弃多余的连接。
应用自我保护
以Nginx为例,限制单个ip请求的频率。
http{
limit_req_zone$binary_remote_addrzone=one:10m速率=10r/s;//触发条件,所有访问ip限制每秒10个请求
服务器{
位置~。php${
limit_reqzone=一个突发=5个节点延迟;//执行的 *** 作,对应于区域名称}
}
位置/下载/{
limit_connaddr1;//同时限制1个连接,多余的连接返回503。
}
}
}
高性能代理
Haproxy+keepalived
1Haproxy配置
前端:
前端http
绑定10.0.0.20:80
ACLanti_DDoSalways_true
#白名单
ACLwhiteIPsrc-f/usr/local/haproxy/etc/whiteIP.lst
#标记非法用户
棒台式ip大小20k过期2m存储gpc0
TCP-请求连接跟踪-sc1src
TCP-请求检查-延迟5s
#拒绝非法用户建立连接
TCP-请求连接拒绝ifanti_DDoS{src_get_GPC0gt0}
后端:
后端xxx.xxx.cn
模式http
选项转发给
选项httplog
平衡循环赛
cookieSERVERID插入间接
选项httpchkGET/keepalive.ashxHTTP/1.1rnhost:server.1card1.cn
ACLanti_DDoSalways_false
#白名单
ACLwhiteIPsrc-f/usr/local/haproxy/etc/whiteIP.lst
#存储10秒内客户端10的会话速率
棒表型ip大小20k过期2m存储http_req_rate(10s),bytes_out_rate(10s)
TCP-请求内容跟踪-sc2src
#如果会话速率在十秒内超过50,则可疑。
ACLconn_rate_limitsrc_http_req_rate(server.1card1.cn)gt80
#确定http请求中是否有SERVERID的cookie
发现ACLcookie_presentcook(SERVERID)-m
#标记为非法用户
acl标记为滥用者sc1_inc_gpc0gt0
TCP-如果anti_DDoS,则请求内容拒绝!whiteipconn_rate_limit标记为滥用者
2保持激活的配置
global_defs{
路由器标识{{服务器标识}}
}
vrrp_chk_haproxy{
"/home/proxy/keepalived/{{project}}/check_haproxy_{{server_id}}。嘘"
间隔2
重量-10
}
vrrp_instanceVI_1{
状态{{角色}}
界面{{interface}}
虚拟路由器id10{{tag}}
优先级{{value}}
广告_int1
身份验证{
验证类型通过
auth_passkeepalived_DDoS
track_{
chk_haproxy
}
}
虚拟IP地址{
{{VIP}}/24dev{{interface}}label{{interface}}:{{tag}}
}
接入CDN高IP/公有云智能DDoS防御系统
由于CDN的高IP防护和公有云智能DDoS防御原理相似,都是使用代理或DNS调度来“引流”->:清洗->:回注”防御过程,所以两者一并介绍。
CDN的高IP保护:
是针对大流量DDoS攻击导致互联网服务器不可用的情况而推出的付费增值服务。用户可以配置高安全性IP,将攻击流量引流到高安全性IP,保证源站的稳定性和可靠性。通常可以提供高达几百Gbps的防护能力,抵御一般的DDoS攻击绰绰有余。
云智能DDoS防御系统:
如下图所示,它主要由以下角色组成:
一般CDN或公有云都有邮件、Web系统、微信微信官方账号等形式的应用和配置流程。基本上可以按照以下思路 *** 作:
DDOS攻击处理技巧集锦
找到1个
Rsyslog
交通监控报警器
查看/var/log/messages(freebsd),/var/log/syslog(debian),看看有没有关于被攻击的信息:
*SYN洪水**RST
将xxx限制为xxx**
监听队列限制*
检查系统或应用程序的连接状态,尤其是连接数和系统资源的占用情况。
Netstat-antp|grep-i'服务端口“|wc-l
网络负载
2攻击类型分析
Tcpdump+wireshark:
用Tcpdump实时抓取数据包解析wireshark,用wireshark实现自动解析和可视化展示,处理效率不是一般的快。
Tcpdump-ieth0-wtest.pcap
例如,ssdp泛洪通过目标端口和特殊标记来识别:
udp.dstport==1900
(udp包含“HTTP/1.1”)和(udp包含0a:53:54:3a)
fastnemon,一款高效的DDoS攻击检测分析工具:
您还可以使用FastNetMon进行实时流量检测和分析,并直接在命令行上显示结果。但是如果攻击的流量很大,那很可能就没用了。
攻击痕迹:
在Linux服务器上开启uRPF反向路径转发协议,可以有效识别虚假源ip,丢弃虚假源ip流量。另外,单播用于稀释攻击流量,因为单播的特点是source-destination=1:n,但是消息只会发送到离源最近的节点,所以可以将攻击引导到某个节点,保证其他节点的服务可用。
自学
镜像/分光(采集)+SFflow/netflow(分析)+DDoS清洗设备(清洗)三位一体架构是目前很多企业采用的反D架构,但一般只适用于有自己机房或IDC业务规模较大的企业。
如下图所示,在IDC出口或自建机房通过镜/分光采集流量,集中到异常流量监控系统进行分析。一旦发现异常流量,会联动DDoS清洗设备,下发清洗规则和路由规则进行清洗。
商业的
现在很多网络设备厂商/安全厂商都有系统的流量采集、异常流量检测和清理产品,比如阿里云、绿色联盟、华为等。相关产品在行业内知名度较高,有自己的市场。愿意通过采购搭建企业级DDoS防护体系的企业可以了解并购买相应的产品,这里就不赘述了。
至此,DDoS攻击和防御:从原理到实践的第一部分介绍完毕,欢迎各位的真知灼见。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)