DDOS攻击

DDOS是DOS攻击中的一种方法。

参考、:https://baijiahao.baidu.com/s?id=1603040969904482717&wfr=spider&for=pc

  DoS:是Denial of Service的简称,即拒绝服务,不是DOS操作系统,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击
 利用程序漏洞或一对一资源耗尽的Denial of Service拒绝服务

   DDOS:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
一对一的攻击完全拼各自的资源,效果差
多对一的攻击汇聚资源能力,重点在于量大,属于资源耗尽型

Dos分类

D网络
基于巨量的Flood耗尽目标网络带宽资源
如:ICMP Flood, UDP Flood

D协议
攻击协议漏洞发起的拒绝服务攻击
如:Syn Flood、Ping of Death、ARP、DNS、802.11、SSL

D应用
针对应用软件和操作系统漏洞发起的拒绝服务攻击
大量频繁访问消耗系统资源严重的应用(CC)
通常表现为操作系统运行正常,网络流量不大,但服务停止响应
可以是一击毙命的,也可以是耗尽目标资源的
以上分类并不严谨,不必太过执着于此

总结

从攻击者到被害者流程

网络->FW->服务器OS->服务应用

资源耗尽型攻击方面

网络:带宽
FW:吞吐量、并发连接
服务器:CPU、内存、I/O
应用:处理请求能力,对
OS资源的使用权

程序漏洞攻击

缓冲区溢出
协议、程序逻辑漏洞     

攻击原理与攻击危害

按照攻击对象的不同,将攻击原理和攻击危害的分析分成3类,分别是攻击网络带宽资源、应用以及系统。

攻击网络带宽资源:

攻击网络带宽资源

攻击系统资源:

攻击系统资源

攻击应用资源:

攻击应用资源

SYN FLOOD攻击

利用服务器的连接缓冲区(Backlog Queue),利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。

如果你的SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。其他合法用户的连接都被拒绝掉。可以持续你的SYN请求发送,直到缓冲区中都是你的只有SYN标记的请求。

最通俗的例子,下面的图片是TCP的通信的三次握手,如果说攻击端,发送完第一次握手的数据后,然后就“消失”了,那么服务器就会不断的发送第二次握手的数据,可是攻击端的人找不到了。于是,服务器的资源大量被消耗,直到死机为止。当然要完全弄懂机制,需要对TCP有相当深入的了解。

TCP建立连接:三次握手
1.client: syn
2.server: syn+ack
3.client: ack

image.png

实验

基于python2.7版本


image.png
#apt-get install python-gnuplot 安装scapy相关组件

然后使用攻击脚本攻击脚本:

./syn_flood.py -iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 1.1.1.1 -j DROP -netstat -n I awk ‘/^ tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘

Windows系统默认半开连接数10个
使用方法:

– i=IP() 定义i变量(注意IP大小写,一定要大写)
– i.display() 显示ip包头用法
– i.dst="1.1.1.1" 目的地址
– t=TCP() 采用tcp协议发包
– t.display () 查看用法
– t.dport=3389 攻击远程3389端口
– sr1(i/t,verbose=1,timeout=3) 发送数据包()
– sr1(IP(dst=1.1.1.1)/TCP())

当出现这种情况时

我们发一个包释放一个连接,这种达不到攻击郊果。要构成攻击效果可以通过iptables限止发送RST包。这样就可以达到攻击郊果。iptables写法如下:

#iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.21.117 -j DROP
image.png

重新发包会发现

SYN Flood防御

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

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_max_syn_backlog = 8192

net.ipv4.tcp_synack_retries = 2

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

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

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

除了定制TCP/IP协议栈之外,还有一种常见做法是TCP首包丢弃方案,利用TCP协议的重传机制识别正常用户和攻击报文。当防御设备接到一个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队列。

Sockstress相应原理:

放大攻击原理:攻击者向目标发送一个很小的流量,但是会造成产生的攻击流量是一个巨大的、成百上千倍上万倍流量被放大的一个效果,才适合作为一个拒绝服务攻击效果。(实现攻击者很小的流量打垮一个看似很大的被攻击者)

对于主题Sockstress主要作用即:建立了连接,但是不传数据,而且这个连接不会断开,占用资源,最后导致拒绝服务攻击
————————————————
Sockstress是2008年由Jack C. Louis发现的,其主要针对TCP服务的拒绝服务攻击
目的在于:消耗被攻击目标系统资源,但不消耗网络带宽资源,会产生大量TCP连接但不会产生大量流量;在与攻击目标建立大量socket链接;当完成三次握手、最后的ACK包window大小为0(客户端不接收数据)(再回数据的时候,客户端与服务器端都会各自相对方确认自己的空间大小,防止双方各自传送内容过大,主要是流控的作用)

对于攻击者的优势:

1、攻击者资源消耗小(CPU、内存、宽带)
2、异步攻击,单机可拒绝服务高配资源服务器

主要机理在于:window窗口实现的TCP流控(在第三次传送ACK包的时候出现)
:利用流控的攻击特性,造成攻击:攻击者将ACK包中的流控大小修改为0,然后促使ACK不停发向服务器,那么就会造成拒绝服务。在服务器看来就是客户端暂时没有空间来接受数据流量,所以服务器一直处于等待状态;但是攻击者只需要发完ACK包就行,不需要维持这么一个连接,所以对于攻击者就不会消耗巨量的CPU内存、带宽资源(以小搏大,放大)。

Sockstress防范

防御措施
-直到今天sockstress攻击仍然是一种很有效的DoS攻击方式 -甶于建立完整的TCP三步握手,因此使用syn cookie防御无效 -根本的防御方法是采用白名单(不实际)
-折中对策:限制单位时间内每IP建的TCP连接数
■封杀每30秒与80端口建立连接超过10个的IP地址
■iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
■ iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update -¬seconds 30 --hitcount 10 -j DROP
■以上规则对DDoS攻击无效

DNS放大攻击

■产生大流量的攻击方法
-单机的带宽优势 
-巨大单机数量形成的流量汇聚
-利用协议特性实现放大效果的流量

■ DNS协议放大效果
-查询请求流量小,但响应流量可能非常巨大
-digANYhp.com @202.106.0.20 (流量放大约8倍)

■攻击原理
-伪造源地址为被攻击目标地址,向递归域名查询服务器发起查询 
-DNS服务器成为流量放大和实施攻击者,大量DNS服务器实现DDoS

Scapy构造攻击数据包
IP/UDP/DNS/DNS查询内容

image.png

结合IP地址欺骗,利用大量DNS服务器做傀儡攻击目标

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343