如果抛开善恶之分,单就纯粹的技术而言,“***”和“***”的含义是有很大区别的。现在很多涉及到网络安全技术的相关事物里面,都没有将两者严格划分,基本都混为一谈。
“***”是指在非授权的情况下,试图存取信息、处理信息以使系统不可靠、不可用的故意行为。网络上的***通常是利用目标系统的漏洞、bug、缺陷而发起的一种行动,它的目的是获得、修改某些信息、资料或者数据。
“***”在网络安全技术中是指对目标网络发起的,以目标被破坏、停止服务等为目的的行为。
具体来讲,如果说脚本注入、缓冲区溢出等方法属于技术性***的话, DoS的相关内容将是属于最特别也是危害最严重的恶意暴力性***。
***是一个技术活,通过研究和模拟***技术,可以推导出相对应的行之有效的防御技术,是对技术的整体提升很有帮助的一种研究方法。如果喜欢网络安全技术的爱好者想要研究各种***技术,可以在本地构建环境,然后进行测试;而***不同,***基本是属于一种暴力的、纯恶意的破坏行为,是遭人唾弃并且严格禁止的——特别是DoS和DDoS***!
就中国互联网的发展情况看,DoS和DDoS是从02年开始疯狂起来的,一直到今天热度都未曾消退。利用这种***方式敲诈、勒索的刑事案件层出不穷,各大新闻媒体都有很多报道,而发起这样***的人,现在也都获得了应有的法律惩罚。
1.1DoS与DDoS的基本概念
“DoS”是Denial of Service,拒绝服务的缩写。所谓的拒绝服务是当前网络***手段中最常见的一种。它故意***网络协议的缺陷或直接通过某种手段耗尽被***对象的资源,目的是让目标计算机或网络无法提供正常的服务或资源访问,使目标系统服务停止响应甚至崩溃,而最值得注意的是,***者在此***中并不***目标服务器或目标网络设备,单纯利用网络缺陷或者暴力消耗即可达到目的。
从原理上来说,无论***者的***目标(服务器、计算机或网络服务)的处理速度多快、内存容量多大、网络带宽的速度多快都无法避免这种***带来的后果。任何资源都有一个极限,所以***者总能找到一个方法使请求的值大于该极限值,导致所提供的服务资源耗尽。
从技术分类的角度上来说,最常见的DoS***有对计算机网络的带宽***和连通性***。带宽***指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法用户的请求无法通过。连通性***指用大量的连接请求冲击服务器或计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
在网络还不发达的时候,单一的DoS***一般是采用一对一的方式,也就是***者直接利用自己的计算机或者设备,对***目标发起DoS***。当***目标处在硬件性能低下、网络连接情况不好等情况的时候,一对一的DoS***效果是非常明显的,很有可能直接一个***者就搞定一个网站或者一个服务器,让它拒绝服务。
随着计算机和网络技术的发展,硬件设备的处理性能加速度增长,成本也变得非常低廉,网络的快速发展更是让带宽、出入口节点宽度等大大的提升,这让传统的DoS***很难凑效。
举个不太确切的例子来说:假使20年以前,***者利用自己的计算机对一个目标服务器发起DoS***,他通过编写程序,实现多线程数据发送,每秒给服务器发送5000个数据包(示例数据,没有实质意义),服务器一会就无法正常访问了;但是换到今天,就算***者的计算机使用顶级的个人计算机硬件,用最好的配置发起DoS***,如果采用传统的***方法的话,每秒给服务器发送20000个数据包(示例数据,没有实质意义),但是服务器每秒已经可以轻松的处理20000000个数据包了,这样的***根本就达不到想要的拒绝服务效果。
随着这样情况的出现,***者研究出了新的***手段,也就是DDoS。
DDoS是在传统的DoS***基础之上产生的一种新的***方式,即Distributed Denial Of Service,分布式拒绝服务***。
如果说计算机与网络的处理能力比以往加大了10倍的话(示例数据,没有实质意义),那***者使用10台计算机同时进行***呢?也就达到了可以让目标拒绝服务的目的。简单来说,DDoS就是利用更多的计算机来发起***。
就技术实现方式来分析,分布式拒绝服务***就是***者利用***手段,控制几百台,或者成千上万台计算机(一般被控制的计算机叫做傀儡主机,或者口头被网络安全相关人员称为“肉鸡”),然后在这些计算机上安装大量的DDoS程序。这些程序接受来自***者的控制命令,***者同时启动全部傀儡主机向目标服务器发起拒绝服务***,形成一个DoS***群,猛烈的***目标,这样能极为暴力的将原本处理能力很强的目标服务器攻陷。
通过上面的分析,可以看出DDoS与DoS的最大区别是数量级的关系,DoS相对于DDoS来说就像是一个个体,而DDoS是无数DoS的集合。另一方面,DDoS***方式较为自动化,***者可以把他的程序安装到网络中的多台机器上,所采用的这种***方式很难被***对象察觉,直到***者发下统一的***命令,这些机器才同时发起进攻。可以说DDoS***是由***集中控制发动的一组DoS***的集合,现在这种方式被认为是最有效的***形式,并且非常难以抵挡。
1.2经典DoS***类型
DoS***存在很多经典的种类,从理清技术发展脉络的角度,下面简单介绍了他们的名称、原理和基本的***方式。
1.2.1死亡之 ping
“ping of death”又称“死亡之 ping”,之所以第一个首先列举它,是因为很久以前,被网络媒体夸大的轰轰烈烈的“中美***大战”上,主要的***方式就是他。其实死亡之ping是利用的ICMP。现在微软系列操作系统中的命令行中都有ping存在,ping程序实际就是使用的ICMP。本来在正常的情况下,TCP/IP的RFC文档中对包的最大尺寸都有严格限制规定,许多操作系统的TCP/IP协议栈都规定ICMP 包大小为64KB,且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区。但是“Ping of Death”故意产生畸形的测试Ping包,加载的尺寸超过64KB的上限,使未采取保护措施的网络系统出现内存分配错误,导致TCP/IP协议栈崩溃,最终达到目标拒绝服务的目的。
1.2.2泪滴
“teardrop”,又称“泪滴”:IP数据包在网络传递时,数据包可以分成更小的片段。***者可以通过发送两段(或者更多)数据包来实现TearDrop***。第一个包的偏移量为0,长度为N,第二个包的偏移量小于N。为了合并这些数据段,TCP/IP堆栈会分配超乎寻常的巨大资源,从而造成系统资源的缺乏甚至机器的重新启动,达到***者需要的拒绝服务的目的。
1.2.3 UDP洪水
“UDP flood”又称“UDP洪水”:UDP flood最开始一般应用在针对UNIX类的服务器上,***者通过伪造与某一主机的Chargen服务之间的一次的 UDP 连接,回复地址指向开着Echo 服务的一台主机,通过将Chargen 和 Echo服务互指,来回传送毫无用处且占满带宽的垃圾数据,在两台主机之间生成足够多的无用数据流,这一拒绝服务***飞快地导致网络可用带宽耗尽。
1.2.4 SYN洪水
“SYN flood”又称“SYN洪水”:当用户进行一次标准的TCP(Transmission Control Protocol)连接时,会有一个三次握手的过程。首先请求服务方发送一个SYN消息,服务方收到SYN后,会向请求方回送一个SYN-ACK表示确认,当请求方收到SYN-ACK后,再次向服务方发送一个ACK消息,这样下来一次TCP连接就建立成功了。
“SYN Flood”专门针对TCP协议栈在两台主机间初始化连接握手的过程进行DoS***,它在实现过程中只进行前2个步骤:当服务方收到请求方的SYN-ACK确认消息后,请求方由于采用源地址欺骗等手段使得服务方收不到ACK回应,于是服务方会在一定时间处于等待接收请求方ACK消息的状态。而对于某台服务器来说,可用的TCP连接是有限的,因为他们只有有限的内存缓冲区用于创建连接,如果这一缓冲区充满了虚假连接的初始信息,该服务器就会对接下来的连接停止响应,直至缓冲区里的连接企图超时。如果恶意***方快速连续地发送此类连接请求,该服务器可用的TCP连接队列将很快被阻塞,系统可用资源急剧减少,网络可用带宽迅速缩小,长此下去,除了少数幸运用户的请求可以插在大量虚假请求间得到应答外,服务器将无法向用户提供正常的合法服务。
这个***方式到今天都有很多***者使用,后续的章节中我们将对此***方式进行详细分析。
1.2.5 IP欺骗***
这种***利用TCP协议栈的RST来实现,使用IP欺骗迫使服务器把合法用户的连接复位,影响合法用户的连接。假设现在有一个合法用户(123. 123. 123. 123)已经同服务器建立了正常的连接,***者构造***的TCP数据,伪装自己的IP为123. 123. 123. 123,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从123. 123. 123. 123发送的连接有错误,就会清空缓冲区中已建立好的连接。这时,合法用户123. 123. 123. 123再发送合法数据,服务器就已经没有这样的连接了,该用户就被拒绝服务而只能重新开始建立新的连接。
1.3新型DDoS***分类
随着技术的发展,很多新的防范技术和硬件层出不穷的推出,以往老旧的DoS***方式已经被淘汰了很多,极少数单一的DoS***还顽强的存在着,但是DDoS***开始取代DoS,更多新的DDoS***方式出现了。
从技术类别上将,目前的网络情况中,DoS和DDoS当前主要有三种流行的概括性分类。
1.3.1经过升级和变化的SYN/ACK Flood***。
这种***方法是经典最有效的DoS方法,从原理上来说是可以通杀各种系统的网络服务,因为它的技术核心是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK 包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务。
原本单一的DoS***比较好防御,但是***者将整个***方式应用到了DDoS中,利用庞大的僵尸网络来发起这样的***,使整个***方式的威力得打极大的提升,是今天依然很流行的一种DDoS***方式。
1.3.2TCP全连接***。
在很多防火墙产品开始为网络提供保护以后,出现了这种新的DDoS***方式,可以说它就是为了绕过或者突破常规防火墙阻挡而存在的。
一般情况下,常规防火墙大多具备过滤TearDrop、Land等传统DoS***的技术能力,但是他们对用户正常的TCP连接是允许通过的,也就是说对用户的正常访问不限制。但是很多网络服务程序,比如IIS、Apache等Web服务器能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至拒绝服务无法访问。TCP全连接***就是通过许多僵尸主机不断地与被***服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务。
这种***的特点是可绕过一般防火墙的防护而达到***目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此容易被追踪。
1.3.3基于脚本的DDoS***
基于脚本的DDoS***是很新的一种***技术,它主要针对的是ASP、JSP、PHP、CGI等脚本程序,利用脚本程序一般都需要调用Microsoft SQL Server、MySQL、Oracle等数据库的情况,利用正常的脚本功能,和服务器建立丝毫没有异常的TCP连接,不断的向脚本程序提交查询、列表等大量耗费数据库资源的请求,以***者极小的资源消耗,迫使服务器承受极大的运行压力,以达到拒绝服务的目的。
一般来说,用户提交一个GET或POST请求,对用户自己来说,耗费和带宽的占用是几乎可以忽略的,而服务器为处理此请求却可能要从数据库的上万条记录中去查出这个记录,这种处理过程对资源的耗费相对于用户来说是比较大的,而对于用户来说消耗却是很小的。因此***者只需通过代理向主机服务器大量递交查询或者消耗资源比较大的请求,只需数分钟就会把服务器资源消耗掉而导致拒绝服务。
这种***的特点是可以完全绕过普通的防火墙防护,轻松找一些代理或者代理服务器就可实施***。
1.3.4穿专业的抗DDoS防火墙
这种***手法是将来流行的***方法,利用抗DDoS防火墙本身弱点发起的新型***手段,都在试图穿过抗DDoS防火墙。但现在这种技术都在圈内,不对外公布,所以知道的人了了无几,如果这种方法及工具流出的话,将会引起一场安全界内的动荡。
这就是常见的DoS/DDoS***手段,有不对不处望朋友指正。
转载于:https://blog.51cto.com/wukang/1265283