赞
踩
之前一次面试的时候问到一个关于DDOS的问题,才发现自己对于DDOS知之甚少,为了工作还是得补补脑子。
我们的重点是分布式拒绝服务攻击,由名字也可以猜测这应该只是拒绝服务攻击的一种。
先说说拒绝服务攻击吧,我个人的理解就是采用一系列手段使得服务的提供方无法再给正常需要服务的对象提供服务,借用《破坏之王:DDOS攻击与防范深度剖析》中的例子,假如有个你讨厌的快餐店,你想影响其生意(使其无法正常营业),你可以简单粗暴的带着人去砸场子,导致其不能给顾客提供服务,这就算死拒绝服务攻击(但是警察会找你喝茶)。很明显暴力的做法有点欠考虑,另一种方式就是你带着七大姑八大姨到店里每人点一杯可乐,然后在店里追一天剧,由于你们占着位置,老板也只能干着急(DDOS)。换言之,我们可以通过看似正常的操作占用和消耗资源来实现分布式拒绝服务的目的,根据消耗目标资源的不同,一般将分布式拒绝服务分为以下几类:
- 攻击网络带宽资源
- 攻击系统资源
- 攻击应用资源
注:
ICMP(互联网控制消息协议):对通信过程中发生问题的反馈和处于一些目的的查询(查询报文)
IGMP(因特网组管理协议):因特网多播组成员管理
攻击过程:
攻击者发送大量的ICMP/IGMP数据包给目标,耗尽其带宽资源。(现在应该被防护的差不都了,ICMP/IGMP报文在到达目标网络边界的时候就被过滤丢弃了)
注:
UDP(用户数据报协议),传输成的无连接协议,主要用于不要求分组按序到达,提供面向事务的简单不可靠消息传输服务。比如视频通话就采用UDP,我们可以接受视频卡个几秒,也可以接受短暂的清晰度下降。
UDP洪水攻击有两种方式可选,其一是采用64字节的小包其二是采用1500字节以上的大包。
反射攻击DRDoS(Distributed Reflection Denial of Service)又称分布式反射拒绝服务攻击。
注:
反射攻击:借刀杀人,伪造源IP(被攻击目标的IP)向反射器发送数据包,反射器将响应发送给被攻击目标,导致被攻击目标疲于处理这些无用数据包从而使资源被占用。这样做可以提高追溯攻击来源的难度。
放大攻击:发送较小的数据包,可以得到较大的响应数据包,放大的倍数越大,攻击效果越明显(不是影响攻击效果的唯一因素)。
发送85字节的数据包可以收到152字节的响应数据包,造成了放大。假如,攻击者向反射器发送85字节的数据,受害者就要处理来自反射器的152字节的数据,使攻击效率大大提升了。
攻击建立在TCP三次握手基础上(强调请求和响应而不是握三次手),其主要优点在于有效隐藏攻击来源。
攻击过程:
攻击者找到大量的可用于ACK反射攻击的服务器(开了TCP服务)而且拥有大量受控主机,然后操纵受控主机向这些服务器发送伪造了源IP的SYN请求,导致服务器将所有ACK应答发送给攻击目标,使其疲于处理这些应答数据,消耗其网络带宽。
DNS(Domain Name System),即域名系统,实现从域名(‘www.baidu.com’)到IP的解析(39.156.66.18)。(有CDN加速,不同地方解析到的IP不一样)
DNS可以使用TCP和UDP协议提供的服务(都是53端口),属应用层,主要使用UDP,一般可以做到放大2~~10倍。
关于DNS放大攻击更好的办法是采用DNS扩展机制(ENDS0)如下:
在没有EDNS0以前,对DNS查询的响应数据包被限制在512字节以内。当需要应答的数据包超过512字节时,根据DNS服务实现的不同,可能会丢弃超过512字节的部分,也可能会使用TCP协议建立连接并重新发送。无论是哪种方式,都不利于进行DNS放大攻击。
在EDNS0中,扩展了DNS数据包的结构,增加了OPT RR字段。在OPT
RR字段中,包含了客户端能够处理的最大UDP报文大小的信息。服务端在响应DNS请求时,解析并记录下客户端能够处理的最大UDP报文的大小,并根据该大小生成响应的报文。
攻击过程:
攻击者发送DNS查询请求数据包大小一般控制在60字节左右,而查询返回的结果的数据包大小通常为3000字节以上(放大了50倍),大大大的增大了攻击效率。
NTP(Network Time Protocol)即网络时间协议,在自动获取网络时间是使用。NTP协议的服务器实现上通常会实现一些列Mode 7 的调试接口,而接口中的monlist请求能够获取到与目标NTP服务器进行同步的最后600个客户端的IP地址等信息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。