百度资深安全专家DDos攻击与攻防问答
声明:内容来自与网络,参考了乌云和FREEBUF等资料嘉宾介绍
郝轶,百度资深安全专家,拥有14年渗透测试经验,第一个在首届国家网络安全周安全大讲堂演讲的安全专家;共青团中央、中航国际、北京市科委项目评审专家;OWASP(国际开放WEB应用安全项目)成员;DAMA(国际数据库管理协会)成员;郝轶还具有13年个人站长经历,被新华社、人民日报、CCTV、BTV、香港广播电台、网易、搜狐、新浪、腾讯报道。熟悉Windows/Linux/Unix,具有PHP/Java开发经历,曾在Oracle全球最佳实践单位担任DBA;率先组织翻译了OPENSTACK安全指南和CCM;熟悉国际国家/部分行业信息安全政策标准:ISO、等级保护、SOX,并参与部分政策制度建设。
1. 课程介绍
什么是DDOS,一种说法是攻击者通过分布式地在信息网络上发送一些数据,而造成被攻击对象无法正常提供服务的一种攻击手段。消耗网络带宽或系统资源导致网络或系统不胜负荷以至于瘫痪而宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。
我们今天会整体介绍分布式拒绝服务攻击的历史、工具、方法原理和防护手段。其中很多部分内容为知识性的,大家只需要整体上知道框架,具体的知识细节网络上会有更充分的资料可以查询,我们今天交流的目的不是去记忆所有知识细节,而是梳理整体的知识框架,在头脑中建立关于DDOS知识的索引,在遇到具体问题的时候,能想到解决思路,进而通过收集更多资料解决问题。
下面我们首先说一下关于分布式拒绝服务攻击的简单历史。
2. DDOS攻防简史
第一次拒绝服务攻击发生在1996年9月6日,PANIX作为美国当时最大的互联网服务提供商成为了攻击的受害者。至少6000名用户无法收取邮件。而当时的方法紧紧是不断向服务器发送链接请求。后来陆续出现了很多DDOS工具,目前甚至出现了提供DDOS攻击服务的云平台。
既然拒绝服务攻击的目的是降低目标的的可用性,如果被攻击目标的CPU、内存、带宽这些资源较小,那么就更容易被成功攻击。早期被攻击的计算机性能带宽远没有今天这么大,但是那个时候攻击者控制的肉鸡的性能和带宽也没有今天这样大。
随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,一种说法是这些变化都使得目标计算机有足够的资源来应付这些常见的攻击报文,一定程度上使攻击的困难程度加大,效果减小。但同时攻击者控制的僵尸网络中的肉鸡性能和带宽也在增大,反而近年来DDOS事件中识别到的攻击流量更大了。
早期的拒绝服务攻击,有一对一的DOS攻击。但是效果不够明显,那么攻击者通过群殴的方式,多对一的攻击就形成了主流。实际上当攻击者控制的肉鸡足够多,这些肉鸡的带宽足够大的时候。理论上DDOS攻击不可能完全防御。
08年遇到的一个有趣的事情就是,一家单位花了很多钱买了抗DDOS设备,我在争得甲方同意的情况下打算测试一下效果,但是发现很小的流量过来之后内网一下就无法访问外网了,可是却没有触发这个抗DDOS设备的设定阈值,这个设备可是在7年前号称抗几个G的流量啊。。但是流量只是显示40M,状态图上就是一条横线。一问甲方才知道:甲方的带宽是40M。这个抗D设备部署在甲方这边其实永远也用不上。
有人说是不是所有的DDOS都是僵尸网络、肉鸡什么的,如果攻击者没有技术获取肉鸡怎么办?这里也有几个好玩的事情。
早年很多肉鸡都是个人PC,那年代还比较流行黑站挂马偷帐号在电脑上安装软件赚钱什么的,很多论坛里都会有卖肉鸡的广告,印象深刻的是居然便宜到1毛钱一台肉鸡,而且多买还能打折。
后来国内杀毒软件大范围免费后,似乎少多了。但去年也发现有人利用网络摄像头的漏洞批量控制大量摄像头发起DDOS的。现在如果搜索QQ群的时候管检测设定为『DDOS』,也会搜到一些群提供这种非法的攻击服务,几百一次。
云计算火了之后,一些恶意攻击者也提供软件既服务SAAS。比如国外有一些网站可以通过支付比特币在线提供攻击服务。
还有一种叫自愿型讲师网络,比如一些黑客组织号召成员下载攻击工具,大家约定在某一时间利用各自的终端电脑发起攻击。例如早年的黑客大战、近年的Anonymous匿名者组织都曾发起类似的攻击。也就是说不愿意抓肉鸡、不愿意花钱单靠号召力也可能发起DDOS攻击。
面对DDOS的防护,如果攻击流量足够大,防护似乎只能称之为缓解。
下面我们先说说攻击方法。
3. DDOS攻击方法
攻击方法一定会随着主机系统、通许协议、系统应用的变化而变化,我们不可能利用两个小时的交流把这部分内容穷尽。大家也很难记忆这些列表式的知识,通过我们今天的梳理获得一个对DDOS攻击方法的印象,回头查询细节的时候知道个框架就好。
常见的DDoS攻击的4个组成部分:
1).攻击者:攻击者所用的主机,也称为攻击主控台;
2).主控端:攻击者侵入并控制的一些主机,分别控制大量代理攻击主机;
3).代理攻击端:攻击者侵入并控制的一批主机,其上面运行攻击程序,接收和运行主控端发来的命令,代理攻击端俗称“肉鸡”;
4).受害者:被攻击的目标主机。
DDoS攻击示意图如下:

DDoS攻击步骤
1).搜集攻击目标信息。包括目标主机的地址、配置、性能、带宽等。并根据目标主机的相关参数设计合理的攻击强度,做到知己知彼,百战不殆;
2).占领傀儡机。攻击者通过工具扫描互联网上那些有漏洞的机器,随后就是尝试攻击。攻击成功后,就可以占领和控制被攻击的主机,即“肉鸡”。攻击者可以利用FTP/TFTP等协议把DDoS攻击用的程序上传到“肉鸡”中。“肉鸡”包括主控端和代理端主机,其中一部分主机充当攻击的主控端,一部分主机充当攻击的代理端。
3).实施攻击。攻击者登录到作为控制台的“肉鸡”中,向所有做为代理端主机的“肉鸡”发出命令,这时候埋伏在“肉鸡”中的DDoS攻击程序就会响应控制台的命令,同时向受害主机以高速度发送大量的数据包,导致受害主机死机或是无法响应正常的请求。
站在攻击者的角度来说,攻击也是有成本的,攻击者一定会考虑用更小的成本达到目的,那么他会去找最能消耗目标资源的方式去实施攻击。比如在应用层,利用目标网站的查询功能不能查询就比单纯访问静态页面更能够消耗目标资源。
4. DDos攻击种类
主要有:IPSpoofing攻击、Land攻击、Smurf攻击、Fraggle攻击、WinNuke攻击、SYNFlood攻击、ICMP Flood攻击、UDP Flood攻击、ICMP-Redirect攻击及ICMP-Unreachable攻击等。
单词这么多,说是不用记,实际是根本记不住啊。
下面会有对每个种类的具体描述,内容非常多,而网络还有更加详细的描述,这里不做具体介绍,仅直接复制大段内容作为阅读材料。
1). IP Spoofing攻击
IP Spoofing也叫IP欺骗,其原理是攻击者机器A利用软件构造一个虚假不存在的IP地址,并以此不存在地址为源IP地址向受害者机器B发送SYN报文,请求建立TCP/IP连接。目标机器B接收到这个SYN报文后,会将收到的SYN报文中的源IP地址提取出来,并将此IP作为目的IP,回复一个ACK/SYN确认报文给B,并等待接收来自B的确认报文。由于这个目的IP是攻击者A伪造的,实际网络中根本不存在,所以这个ACK/SYN确认报文也就无法到达,B也就不可能接收到它的确认报文。
但是,根据TCP/IP协议规范,受害者B必须一直等待接收A回复的确认报文,直到受害者B内部的定时器超时才放弃等待。这就是一次IP Spoofing攻击,假如攻击者A使用软件以每秒几百次几千次乃至几万次的速度向同一个受害者B发送虚假SYN报文,那么受害者机器B上就会产生大量的TCP/IP半连接,并且都要等待这些半连接超时(在等待的时候要专心,不能干别的事情的,呵呵),从而使系统资源耗尽,不能及时响应正常的服务请求。
为了大家更好的理解IP Spoofing攻击方法,这里再补充介绍下TCP链接的建立过程。大家都知道,目前网络中的绝大部分上层应用程序都是基于TCP协议的。
TCP是Transmission Control Protocol的缩写,即传输控制协议。TCP是一种面向连接的高可靠性协议,它的建立过程包括三个过程,简称“三次握手”。
客户A想要从服务器B取得服务,首先需要向B发送一个SYN报文,请求建立TCP链接,这就是“第一次握手”。服务器B收到SYN报文后,会将SYN的源IP地址提取出来作为目的IP地址,回复一个SYN/ACK报文给客户A,这就是“第二次握手”。客户A收到来自服务器B的SYN/ACK报文后,再将此报文的源IP地址提取出来作为目的IP地址,回复一个ACK确认报文给服务器B,这就是“第三次握手”。服务器B收到这个ACK报文后,立即启动对客户A的相应服务。
上面介绍的IP Spoofing就是因为A伪造了自己的IP,使得“第二次握手”的SYN/ACK报文不能到达A,A也不会发ACK报文进行“第三次握手”,但是B却一直在苦苦等待“第三次握手”报文ACK的到来。
在网络安全设备中,是通过如下方法来防御IP Spoofing攻击的:检测每个接口流入的IP报文的源IP地址和目的IP地址,并对报文的源IP地址反查路由表,如果该IP报文的的入接口与以该地址为目的地址的最佳出接口不相同的话,则视为IPSpoofing攻击报文,将禁止其通过,并进行攻击日志记录。
2). Land攻击
Land攻击其实是IP Spoofing攻击的一个变种。其原理是攻击者机器A向受害者机器B发送一个伪造的SYN报文,此SYN报文的源IP地址和目的IP地址都被设成受害者机器B的IP地址,源端口号和目的端口号也相同。
受害者机器B接收到此SYN报文后,提取报文的源IP地址(其实是B机器自己的IP地址),并将其作为目的IP地址发送一个SYN/ACK 报文(其实是向它自己发送了一个SYN/ACK报文),结果这个地址又发回ACK确认报文,从而创建了一个空连接,每一个这样的空连接都将保留到内部定时器超时后才释放,从而消耗掉大量的系统资源。对于Land 攻击,各种操作系统的反应也有所不同,UNIX 系统将会崩溃,而NT 系统将变的极其缓慢,时间大约持续五分钟。
在网络安全设备中,是通过如下方法来防御Land攻击的:检测每个接口流入的IP报文的源IP地址和目的IP地址,阻止那些源IP地址落在所保护网络IP地址段内的报文进入。但是,此方法也具有局限性,即不能防御那些从所保护网络内部发起的Land攻击。
3). SYN Flood攻击
SYN Flood 是当前最流行的DoS/与DDoS攻击方式之一,其原理原理跟上面介绍过的IP Spoofing攻击是一样的,都是利用TCP协议的缺陷,伪造不存在的源IP向受害者发送SYN报文,使得受害者机器建立大量TCP半连接,每个半连接差不多等待30秒~2分钟后才超时释放。“Flood” 的中文意思是“洪水”,顾名思义,SYN Flood攻击时,无数伪造的SYN攻击报文就像洪水一样涌向受害者机器,如果受害者机器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出而使系统崩溃,即使其系统足够强大,也会因忙于处理伪造的SYN报文而无法响应客户的正常请求,此时从正常客户的角度看来,服务器失去响应。
针对SYN Flood攻击,一种有效的防御方法是限制系统TCP半连接的数量,并且在TCP半连接超过一定数量后,在防火墙端启动TCP代理功能。所谓TCP代理功能,就是在客户发起TCP连接时,防火墙不把SYN报文发给目标机器,而是自己伪装成目标机器对SYN报文做出SYN/ACK应答。
4).UDP Flood攻击
为了更好的介绍UDP Flood攻击,我们先来看一下UDP协议与TCP协议的区别。
TCP(TransmissionControl Protocol) 是一种面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP(UserDatagram Protocol,用户数据报协议)是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
从专业的角度说,TCP的可靠保证,是它的三次握手机制,这一机制保证校验了数据,保证了他的可靠性。而UDP就没有了,所以不可靠。不过UDP的速度是TCP比不了的,而且UDP的反应速度更快,QQ就是用UDP协议传输的,HTTP是用TCP协议传输的。
UDPFlood攻击的原理是攻击者机器A伪造一个并不存在的IP地址,并以此为源IP地址向受害者机器B发送一个UDP报文,B收到UDP报文后,发现上层没有任何应用程序在等待UDP端口,于是B就会生成一个ICMP报文发给该伪造的源IP地址,告诉对方刚才所发的UDP报文无法连接。如果A向B发送的足够多的UPD报文,受害者B将忙于处理这些无用的UDP报文,造成系统资源耗尽,导致瘫痪。
5). ICMP Flood攻击
ICMP是Internet Control Message Protocol的缩写,即因特网控制消息协议的意思。ICMP协议是TCP/IP协议族的一个子协议,它是一种面向连接的网络层协议,用于传输出错报告控制信息,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。我们经常用来检测网络通不通的“Ping”命令就是使用ICMP协议。
ICMPFlood攻击的原理就在在较短时间内向受害者机器发送大量的ICMP请求报文,使受害者机器忙于向外发送ICMP应答报文,造成系统资源耗尽,导致瘫痪。
6). Smurf攻击
Smurf攻击是以最初发动这种攻击的程序名“Smurf”来命名的。同ICMP Flood攻击一样,Smurf攻击也是利用了ICMP协议的漏洞。其原理是攻击者A向广播地址发送ICMP请求广播报文,不过该广播报文的源IP地址不是攻击者A本身,而是伪造成受害者B的IP地址,这样,广播域内所有收到该ICMP请求报文的机器都会给受害者B回复ICMP应答报文,因而产生大量的通信业务,从而导致受害者B的网络拥塞及系统瘫痪。对于Smurf攻击,广播域内的机器数量越多,攻击效果就越明显。
在网络安全设备中,是通过如下方法来防御Smurf攻击的:对通过设备的所有ICMP请求报文的目的地址进行检查,如果是子网广播地址或者子网的网络地址,则认为是Smurf攻击,直接拒绝通过。
7).Fraggle攻击
Fraggle攻击的原理与 Smurf 攻击的原理类似,不过,Fraggle 攻击发送的是UDP 报文而非 ICMP 报文。因为发送的是 UDP 报文,Fraggle 攻击可以穿过一些阻止 ICMP 报文进入的防火墙。
Fraggle攻击的原理是攻击者A向广播地址发送UDP报文,目的端口号为7(ECHO)或19(Chargen),报文的源IP地址伪装成受害者B的IP地址。这样,广播域中所有启用了此功能的计算机都会向受害者B发送回应报文,从而产生大量的流量,导致受害网络的阻塞或受害主机崩溃。如果广播域中的主机没有启动这些功能,这些主机将产生一个 ICMP 不可达消息发给B,仍然消耗带宽。Fraggle攻击时,也可将源端口改为端口19(Chargen),目的端口为 7(ECHO),这样会自动不停地产生回应报文,其危害性更大。
防御方法:关闭路由器或防火墙的广播地址特性,并在防火墙上过滤掉 UDP 报文,阻止所有目的端口或源端口号为7或19的UDP报文通过。
补充下计算机端口方便的知识,大家都知道通信网络的上层应用程序都是通过端口号来识别传输层协议的,比如常用的HTTP协议就使用了80端口,用于邮件的SMTP协议使用的是25端口。比如某传输层报文的端口号标识位为“80”,那么计算机收到报文后一看端口号就知道该报文是给HTTP协议的,直接转交给它处理。同样的,TCP/UDP协议是IP的上层协议,IP可能会被系统中多个应用程序应用,如何来区分多个应用程序呢?答案是TCP/UDP端口号。
TCP和UDP的端口号的编号都是独立的,都是0~65535。例如DNS,可以是TCP的53号端口,也可以是UDP的53号端口。端口号只具有本地意义,是拿来标识程序的。只有0~1023是公认的系统占用,其他在通信过程中是随机生成,此次传输完成即撤消。在UDP的这些端口中,有两个很特殊的端口7和19。UDP的7号端口收到报文后,会象 ICMP Echo Reply一样回应收到的内容,而19号端口在收到报文后,会产生一串字符流。
8). WinNuke攻击
WinNuke攻击是以最初发动这种攻击的程序名“WinNuke”来命名的。其攻击原理是利用了 WINDOWS 操作系统的一个漏洞,向139 端口发送一些携带 TCP 带外(OOB)数据报文,但这些攻击报文与正常携带 OOB 数据报文不同的是,其指针字段与数据的实际位置不符,即存在重叠, WINDOWS 操作系统在处理这些数据的时候,就会崩溃。 还有一种是 IGMP(Internet Group Management Protocol)分片报文,一般情况下,IGMP 报文是不会分片的,所以,不少系统对 IGMP 分片报文的处理有问题。如果收到IGMP 分片报文,则基本可判定受到了攻击。
NetBIOS作为一种基本的网络资源访问接口,广泛的应用于文件共享,打印共享,进程间通信(IPC),以及不同操作系统之间的数据交换。一般情况下,NetBIOS 是运行在 LLC2 链路协议之上的,是一种基于组播的网络访问接口。为了在 TCP/IP 协议栈上实现 NetBIOS,RFC 规定了一系列交互标准,以及几个常用的 TCP/UDP 端口,如下。
A). 139:NetBIOS 会话服务的 TCP 端口;
B). 137:NetBIOS 名字服务的 UDP 端口;
C). 136:NetBIOS 数据报服务的 UDP 端口。
Windows 操作系统实现了 NetBIOS over TCP/IP 功能,并开放了 139 端口。 WinNuke 攻击就是利用了 WINDOWS 操作系统的一个漏洞,向这个 139 端口发送一些携带 TCP 带外(OOB)数据报文,但这些攻击报文与正常携带 OOB 数据报文不同的是,其指针字段与数据的实际位置不符,即存在重叠, WINDOWS 操作系统在处理这些数据的时候,就会崩溃。 还有一种是 IGMP(Internet Group Management Protocol)分片报文,一般情况下,IGMP 报文是不会分片的,所以不少系统对 IGMP 分片报文的处理有问题。如果收到IGMP 分片报文,则基本可判定受到了攻击。
补充下NetBIOS协议方面的知识:NETBIOS协议是由IBM公司开发,主要用于数十台计算机的小型局域网。该协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。因为它占用系统资源少、传输效率高,所以几乎所有的局域网都是在NetBIOS协议的基础上工作的。
防御方法:防火墙设备会扫描所有进入的“Microsoft NetBIOS 会话服务”(端口139)封包。如果防火墙设备发现某个封包上设置了TCP URG 代码位,就会检查偏移值、删除碎片重叠并根据需要纠正偏移值以防止发生OOB 错误。然后让经过修正的封包通过,并在“事件警报”日志中创建一个WinNuke 攻击日志条目。
9).ICMP-Unreachable攻击
ICMP-Unreachable即ICMP报文报文不可到达的意思。ICMP-Unreachable攻击原理是:某些系统在收到网络(代码为 0)或主机(代码为 1)不可达的ICMP 报文后,对于后续发往此目的地的报文直接认为不可达。攻击者A利用这种机制,向受害者B发送虚假的 ICMP-Unreachable 报文,干扰了受害者B的路由信息,影响了报文发送。
10).ICMP-Redirect攻击
ICMP-Redirect攻击和 ICMP-Unreachable 攻击类似。 ICMP-Redirect攻击原理是:网络设备可以向同一个子网的主机发送 ICMP 重定向报文,请求主机修改路由。攻击者利用这个原理,跨越网段向另外一个网络的目标主机发送虚假的重定向报文,以改变目标主机的路由表。这种攻击干扰了目标主机的路由信息,影响了报文发送。Denial Of Service攻击是指故意的攻击网络协议实现的缺陷或直接通过野蛮手段残忍地耗尽被攻击对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务系统停止响应甚至崩溃。
是不是感觉好粗暴,实在是认为如果靠打字讲这个内容,不如大家记住每一种方式的关键字,直接去百度搜索。
5. 拒绝服务攻击工具
1、卢瓦(LOIC) (Low Orbit Ion Canon)
LOTC是一个最受欢迎的DOS攻击工具。 这个工具被去年流行的黑客集团匿名者用于对许多大公司的网络攻击。
它可以通过使用单个用户执行DOS攻击小型服务器,工具非常易于使用,即便你是一个初学者。 这个工具执行DOS攻击通过发送UDP,TCP或HTTP请求到受害者服务器。 你只需要知道服务器的IP地址或URL,其他的就交给这个工具吧。
2、XOIC
XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比上面的LOIC在很多方面更强大呢。
一般来说,该工具有三种攻击模式,第一个被称为测试模式,是非常基本的; 第二个是正常的DOS攻击模式; 最后一个是带有HTTP/TCP/UDP/ICMP消息的DOS攻击模式,。
对付小型网站来说,这是一个很有效的DDOS工具。 但是从来没有尝试的要小心点,你可能最终会撞自己的网站的服务器。
3、HULK (HTTP Unbearable Load King)
HULK是另一个不错的DOS攻击工具,这个工具使用某些其他技术来避免通过攻击来检测。它有一个已知的用户代理列表,且使用的是随机请求。
4、 DDOSIM-Layer
DDOSIM是另一种流行的DOS攻击工具。 顾名思义,它是通过模拟控制几个僵尸主机执行DDOS攻击。所有僵尸主机创建完整的TCP连接到目标服务器。
这个工具是用c++写的,并且在Linux系统上运行。
这些是DDOSIM的主要特点:
模拟几个僵尸攻击 随机的IP地址 TCP-connection-based攻击 应用程序层DDOS攻击 HTTP DDos等有效的请求 与无效请求HTTP DDoS(类似于直流+ +攻击) SMTP DDoS TCP洪水连接随机端口
5、R-U-Dead-Yet
R-U-Dead-Yet是一个HTTP post DOS攻击工具。它执行一个DOS攻击长表单字段,通过POST方法提交。这个工具提供了一个交互式控制台菜单,检测给定的URL,并允许用户选择哪些表格和字段应用于POST-based DOS攻击。
6、 Tor
Tor是另一个不错的DOS测试工具。 它是用Python编写的。 这个工具有一个额外的优势:它可以通过TOR匿名网络执行攻击。 这是一个非常有效的工具,它可以在几秒内杀了Apache和IIS服务器。
7、 PyLoris
据说PyLoris是服务器的测试工具。它也可以用来执行DOS攻击。 这个工具可以利用 SOCKS代理和SSL连接服务器上执行DOS攻击。它可以针对各种协议,包括HTTP、FTP、SMTP、IMAP,Telnet。不像其他传统DOS攻击工具一样,其最新版本的软件添加了一个简单易用的GUI。
8、OWASP DOS HTTP POST
这是另外一个很好的工具。您可以使用这个工具来检查您的web服务器能否够捍卫得住别人的DOS攻击。当然,不仅对防御,它也可以用来执行DOS攻击哦。
9、DAVOSET
DAVOSET是另一个很好的执行DDOS攻击工具。最新版本的工具新增支持cookie以及许多其他功能。 您可以从PacketstormsecurityDAVOSET免费下载。
10、黄金眼(GoldenEye) HTTP拒绝服务工具
黄金眼也是一个简单但有效的DOS攻击工具。 这是在Python测试开发的DOS攻击,但是人们也把它当做一种黑客工具了。
6. DDOS的防护
关于DDOS防护,此处有个吐槽,之前国内有很多公司做主机操作系统的安全加固服务,主要就是按照安全评估的现状结果和事先设定好的加固列表对系统进行配置。针对WINDOWS操作系统有几个配置项是修改注册表里面的键值,据说可以增强主机的抗DDOS能力。大家一直这么做,直到有一天做安全的小伙伴们聚在一起喝酒,说起这个,大家已经不知道是谁把这部分内容写在了加固列表里,也不知道依据什么。
最后,大家一致表示不清楚到底改注册表,对抗DDOS有没有实际作用。汗啊~
还有一个防护策略现在似乎没人用了,就是把域名解析到127.0.0.1,假设攻击者目标设定的是域名,通过这种解析试图去消耗肉鸡自身资源。但不管这个是否能够消耗肉鸡资源,反正自己的系统是无法访问了,实际上攻击者的目的还是达到了。
既然前面也说了,防护DDOS基本很难,那么我们这里就管这个叫缓解吧。
缓解的话主要有治理和清洗。治理的方法主要包括对僵尸网络的治理、地址伪造攻击的治理等。获取僵尸网络感染的样本、逆向分析、接管摧毁僵尸网络这种事情,是长期持续的过程。短期内防护方很难明显占据优势,甚至是常年被攻击方牵着鼻子走。而通过网络设备识别并并过滤异常数据包这种方法需要全球设备厂商的支持和市场的认可。那么实际上我们主要能做的就是流量清洗了。

这4层不是严格意义上的纵深防御关系,也不是在所有的防御中4层都会参与,可能有时候只是其中的2层参与防御。但对于超大流量攻击而言,4层就是防御机制的全部,再没有其他手段了。跟厂商们的市场宣传可能有所不同,大流量攻击的防护并不是靠厂商单方面就能解决的,而是多层共同参与防御的结果。
首先关于流量的清洗,国内已经折腾了10多年了。从思路上来看,无外乎就是尽可能的对攻击流量的属性进行识别。总结各种识别规则,制定各种过滤策略。然而单纯硬件主机形态的抗DDos产品,在实际的使用过程中存在问题。实际的流量清洗能力往往并不能得到发挥,当设备所处的网络环境出口带宽相对较小的时候,攻击流量的带宽甚至还不能触发防护设备的阈值,整个网络对外通讯便已经瘫痪。
在以上情况下,通过CDN和Anycast等方式的分布式缓解技术就成为了今天真正能够抵御DDos攻击的关键方法。为了完成对抗DDos攻击这项工作,我们需要做的不仅仅是清洗方面的技巧,同时更是资源方面的投入和布局。攻击可能来自于全世界任何一个能够发送流量的地方,那么对抗也应该有覆盖国际的布局。在全球投入更优质的防护资源。
在以分布式防护对抗分布式攻击的思路下,我们也能够实现一些传统单点防护所不能具备的功能。比如我们可以通过大数据的方法,提升对攻击流量分析识别的能力,识别并整理恶意的攻击源IP,智能化的提升恶意流量清洗的效率与效果。同时大数据的方法也能够改善我们对流量的调度问题。
理想中的DDos防护手段似乎是这个样子的:
抵抗DDos就是实实在在的资源投入:以分布式防护对抗分布式攻击的同时,覆盖全球的节点部署。
抵抗DDos也要靠每个节点的防护能力:分布式与端点相结合,端点最大程度的提升清洗能力,降低防护成本;
要有智慧地抵抗攻击:通过机器学习等大数据的分析方法改善防护技巧,提升效率。
最后说下,一旦遭遇DDOS攻击,千万不能向攻击者支付敲诈费用。相信任何提供抗DDOS服务的厂商都会和大家站在一起,坚决抵抗,遏制网络犯罪。建议大家还是一边找帮手,一边报警吧。
QA:
目前CC 的防御 怎么做的呢?
——CC防护:本质上就是努力是去识别攻击流量的特征。但这只是努力,无法保证完全识别。除了检测发起访问源的访问频率外。分析流量的REFER来路特征。就是看这个访问是通过链接一点点点过来的,还是直接来的,也算是一种方法。还有的方法是,抗DDOS服务提供商,常见响应DDOS攻击过程中,积累了肉鸡库。把那些经常做攻击的IP记录下来。直接阻断。但不管用什么方法,CC的检测都可能误报和漏报,这就要求我们不光能检测,阻断。也要有一定的资源。缓冲这些攻击流量。
请问如何判定自己遇到了DDoS攻击?
——系统慢,内存CPU占比高,打不开。都可能是被DDOS
如果攻击流量大于带宽,根本防不住,我也是这么认为!我觉得自己的idc遇到ddos还是要靠运营商?
-------大家都努力,运营商带宽再大,系统有问题,很小的流量也能打瘫
万人课堂9提问:我提个问题,现在国内的pc、手机及其他终端,被肉鸡比例有参考值么?
----------我说的不算,但是推荐你访问CERT网站里面有很多报告。咱们国家的权威报告。
对于一般中小型企业来说,没什么好的解决方案。
-----采用云吧。买设备很难发挥作用。而且非常贵。
我们常见的系统防御手段 比如 调整TCP 等待队列数量 链接超时时间 这些kernel 参数有意义吗?
------我前面举的例子就说了,多年来大家改注册表。但是根据主机在网络里的拓扑位置,似乎不那么有用。
请教个问题,怎么判断自己系统有没有潜在问题呢?难道用ddos工具攻击自己来探测?还是完全依赖操作系统和硬件设备。百度云、阿里云是不是基本可以放心了?
------扫描、评估、渗透测试、代码审计。这些都是测试手段。便宜的可以免费扫描,有人有钱可以渗透测试。精力充沛代码审计。
如果内部架构有漏洞……或者代码本身比较烂,通过安全防护能有效防护嘛,比如跑过漏扫等
--------------能发现一些问题,并防护。但安全控制措施不保障不出问题。。永远在安全投入和安全强度之间找平衡点。。
请问 小公司it技术能力有限 遇到攻击束手无策 这种时候有靠谱的应急手段吗
---------找安全公司或者安全人员帮忙。一般遇到应急响应,不要钱大家也帮忙的。
防御DDOS切实有效的方法是只有大带宽?
--------任何方法,不保证完全抵御。因为我们不知道未来的攻击到底有多大。除了带宽,还有过滤规则这些技巧啊。
现在 做运维的比较多 想转 安全 需要哪些技能呢-----看做哪部分的安全。建议选择你之前从事运维相关的对象,了解一些对应系统的安全漏洞和防护方法即可。
-------熟悉保护对象,对做安全有优势。运维也是优势。
任何协议都可以被DDos,这个咋理解呢?
------只要是通讯协议,在通讯过程中,都会有带宽问题。只要攻击流量够大。服务能力和带宽就有跟不上的时候。--------这个显然是哲学问题。
百度防御 只能防御 http 域名接入的方式吗? 对我们游戏行业单个IP能防护吗?
-----主要是HTTP
是否有推荐的:服务器安全审计工具?
------看服务器是啥操作系统。另外看那种方式审计。如果是堡垒机运维审计,一般都是商业的。如果是指安全评估工具。就太多太多了。网上一搜一大堆,www.freebuf.com 里面找工具菜单
对目前抢火车票那种 触发cc攻击 有什么好办法
------识别业务流量的特点。找出CC流量和业务的不同。这个有个真实案例,关于飞机票刷票。就是发现如果是真实流量,一定会从首页进来,然后尝试查询班次,然后才买票。那种刷票的。上来就买,频率过高。
本文源自:JDTech