Dos(Denial of Service 拒绝服务攻击):
短时间内对目标服务器产生大量请求,使服务器链路拥塞或忙于处理攻击请求,导致服务暂时中断或停止,导致其正常用户无法访问。
DDoS(Distributed Denial of Service 分布式拒绝服务攻击):
强调是将多个计算机(僵尸网络)联合起来作为攻击平台,对一个或多个目标发起DoS攻击。
DOS | DDOS |
---|---|
一对一攻击 | 多对一攻击 |
单一攻击类型 | 混杂攻击类型 |
流量依赖于单点 | 流量多点汇聚、放大 |
易追踪 | 难追踪 |
防御难度低 | 防御难度高 |
流量攻击使用UDP协议的优点:
流量对等
UDP flood
ICMP flood
利用反射器放大流量,攻击效果更优。放大流量通常是使用UDP协议的应用服务器,如DNS、NTP、SNMPV2、Cldap、Memcached等。
基础是向有缺陷的目标发送精心构造的伪造源IP地址的UDP包来实现,而且主机与缺陷主机之间有大小不对等的信息交换。
应用 | 放大倍数 | 利用原理 |
---|---|---|
DNS | 28-54 | DNS中的any type查询 |
NTP | 556 | NTP中monlist命令 |
SNMPv2 | 6.3 | GetBulk请求 |
TFTP | 60 | 利用tftp重传5-6次 |
CLDAP· | 56-70 | 未授权用户的基本查询 |
CharGEN | 358 | 普通的udp请求,随机返回大小 0-512 |
Memcached | 10000-51000 | 普通的udp请求,返回指定字段大小 |
SNMP协议:用以监测连接到网络上的设备是否有任何引起管理上关注的情况。
SNMP反射攻击:攻击者发送大量伪造IP(受害者IP)的GETBULK请求给开启了SNMP服务的设备,这些设备将返回的SNMP查询结果给伪造IP,成为放大器将SNMP响应报文回复给受害者。
DNS反射攻击:攻击者发送大量的伪造IP(受害者IP)的请求给DNS服务器,DNS服务器成为放大器将DNS响应回复给受害者。
NTP反射攻击:
在NTP server 4.2.7p26之前的版本中,默认提供monlist功能,monlist主要用于监控NTP服务器,NTP服务器响应之后就会返回与NTP服务器进行过时间同步的最后600个客户端的IP。
NTP协议:用于网络连接延时不稳定时不同设备之间通过分组交换进行时钟同步的一个网络协议。
Memcache:一套分布式高速缓存系统,开源项目。
Memcache UDP反射放大攻击(Memcache DRDoS):发送大量带有被害者IP地址的UDP数据包给放大器主机,然后放大器主机对伪造的IP地址源做出大量回应,形成分布式拒绝服务攻击,从而形成DRDoS反射攻击。
主要攻击操作系统资源,如操作系统的TCP端口,常见SYN flood,THC SSL DOC。多见于传输层与会话层。
占用系统的TCP会话资源、SSL会话资源。
SYN Flood攻击
利用TCP三次握手漏洞,受控主机伪造源IP发送大量的TCP SYN报文,使服务器打开大量的半开连接,占满服务器的连接表,从而影响正常用户和服务器建立会话,从而造成拒绝服务。
ACK Flood攻击
攻击者伪造大量的SYN+ACK包发送给目标主机,目标主机每收到一个SYN+ACK数据包时,都回去自己的TCP连接表中查看有没有与ACK的发送者建立连接,如果有则发送ACK包完成TCP连接,如果没有则发送ACK+RST断开连接。
混合DDOS攻击,更具有攻击性。
Sockstress攻击
利用TCP/IP三次握手来实现拒绝服务攻击。
Sockstress攻击首先会完成TCP三次握手以建立TCP连接,但是在三次握手的最后一次ACK应答中,攻击者将其TCP窗口大小设置为0,随后进行数据请求,攻击目标在传输数据时,发现接收端的TCP窗口大小为0,就会停止传输数据,并发出TCP窗口探测包,询问攻击者其TCP窗口是否有更新,由于攻击者不会更改TCP窗口的大小,被攻击目标就会一直维持等待数据发送,并不断进行窗口更新的探测状态。
THC SSL DOS攻击
SSL(Secure Sockets Layer,安全套接层):及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
SSL协议加密、解密和秘钥协商的过程中会消耗大量的系统资源,严重降低机器的性能,因此,通常只有在传输密码等机密信息时才使用SSL协议进行传输。
原理:在进行SSL数据传输之前,通信双方首先要进行SSL握手,以协商加密算法交换加密秘钥,进行身份验证,但是在SSL协议中有一个Renegotiation选项,通过它可以进行秘钥的重新协商以建立新的密钥。
THC SSL DOS攻击在进行SSL连接并握手后,攻击者反复不断的进行秘要重新协商过程,而秘钥重新协商过程需要服务器投入比客户端多15倍的CPU计算资源,以此来使服务器忙于协商秘钥而完全停止响应。
SSL FLood攻击
若服务器不支持Renegotiation重协商秘钥,那么久采用SSL Flood攻击。
SSL Flood,建议是在数据传输前,进行SSL握手的过程中发动攻击,攻击者并不需要完成SSL握手和秘钥交换,而只需要在这个过程中让服务器去解密和验证,就能够大量消耗服务器的计算资源。
常见攻击包括CC攻击、Slow http、Slowloris、DNS query
主要攻击目标为DNS类应用攻击与WEB类应用攻击。
针对DNS服务器发起的攻击。利用客户端的一次查询,服务器在未命中时需要多次查询来消耗DNS服务器的资源。
CC攻击发起的是合法请求,比如去论坛读一个贴子,服务器会先去查询你是否有权限访问该贴,服务器会先查询你是否有权限访问该贴,然后再从数据库里读出该贴。这里至少会访问两次数据库,如果数据库优化没有做好,这时服务器会消耗大量资源在数据库查询上。
HTTP慢速攻击对于基于线程处理的Web服务器影响显著,如apache、dhttpd,而对于基于事件处理的Web服务器影响不大,如nginx、lighttpd。
攻击者在发送HTTP POST请求时,在请求头部中将Content-Length设置为一个很大的值,并将HTTP BODY以非常缓慢地速度一个字节一个字节的向Web服务器发送,这样攻击者会很长时间占有这个HTTP连接。
HTTP协议规定请求头以一个空行结尾,所以完整的请求头结尾是\r\n\r\n。
使用非正常的\r\n来结尾,就会导致服务端认为我们的请求头还没有结束,等待我们继续发送数据直到超时时间。
将流量正确的 人机区分
基础设施主要用于反射型DDOS放大流量,常见的有DNS、NTP、TFTP、SNMP、GENCHAR、SSDP等。
有效的思想,稀释流量来提高服务的可用性。
CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
Anycast最初是在RFC1546中提出并定义的,它的最初语义是,在IP网络上通过一个Anycast地址标识一组提供特定服务的主机,同时服务访问方并不关心提供服务的具体是哪一台主机(比如DNS或者镜像服务),访问该地址的报文可以被IP网络路由到这一组目标中的任何一台主机上,它提供的是一种无状态的、尽力而为的服务。目前对于Anycast的中文译称主要有,“任播”、“泛播”、“选播”等,本文一律使用“任播”一词,或者直接使用英文单词“Anycast”。
流量清洗设备在建立三次握手后,再将数据发送给真实服务器
客户端发送正常请求,流量清洗设备回应302重定向。根据客户端是否执行重定向动作来确认客户端的真伪。
在HTTP页面,执行javascript脚本,根据客户端的执行结果来判断客户端的真伪。
在HTTP页面,启用验证码,来判断客户端的真伪。