DOS和DDOS的区别
DDOS是DOS攻击中的一种 *** 。
DoS:是Denial of Service的简称,即拒绝服务,不是DOS操作系统,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或 *** 无法提供正常的服务。
最常见的DoS攻击有计算机 *** 带宽攻击和连通性攻击。
DDOS:分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。
举一个最通俗的例子,下面的图片是TCP的通信的三次握手,如果说攻击端,发送完之一次握手的数据后,然后就“消失”了,那么服务器就会不断的发送第二次握手的数据,可是攻击端的人找不到了。
于是,服务器的资源大量被消耗,直到死机为止。
当然要完全弄懂机制,需要对TCP有相当深入的了解。
事实上DOS的攻击方式有很多种,比如下面的常见的:
1、SYN FLOOD
利用服务器的连接缓冲区(Backlog Queue),利用特殊的程序,设置TCP的Header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。
当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。
如果你的SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求了。
其他合法用户的连接都被拒绝掉。
可以持续你的SYN请求发送,直到缓冲区中都是你的只有SYN标记的请求。
2、IP欺骗DOS攻击
这种攻击利用RST位来实现。
假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。
服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。
这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。
攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。
3、带宽DOS攻击
如果你的连接带宽足够大而服务器又不是很大,你可以发送请求,来消耗服务器的缓冲区消耗服务器的带宽。
这种攻击就是人多力量大了,配合上SYN一起实施DOS,威力巨大。
不过是初级DOS攻击。
4、自身消耗的DOS攻击
这是一种老式的攻击手法。
说老式,是因为老式的系统有这样的自身BUG。
比如Win95 (winsock v1), Cisco IOS v.10.x, 和其他过时的系统。
这种DOS攻击就是把请求客户端IP和端口弄成主机的IP端口相同,发送给主机。
使得主机给自己发送TCP请求和连接。
这种主机的漏洞会很快把资源消耗光。
直接导致当机。
这中伪装对一些身份认证系统还是威胁巨大的。
上面这些实施DOS攻击的手段最主要的就是构造需要的TCP数据,充分利用TCP协议。
这些攻击 *** 都是建立在TCP基础上的。
还有其他的DOS攻击手段。
5、塞满服务器的硬盘
通常,如果服务器可以没有限制地执行写操作,那么都能成为塞满硬盘造成DOS攻击的途径,比如:
发送垃圾邮件。
一般公司的服务器可能把邮件服务器和WEB服务器都放在一起。
破坏者可以发送大量的垃圾邮件,这些邮件可能都塞在一个邮件队列中或者就是坏邮件队列中,直到邮箱被撑破或者把硬盘塞满。
让日志记录满。
入侵者可以构造大量的错误信息发送出来,服务器记录这些错误,可能就造成日志文件非常庞大,甚至会塞满硬盘。
同时会让管理员痛苦地面对大量的日志,甚至就不能发现入侵者真正的入侵途径。
向匿名FTP塞垃圾文件。
这样也可以塞满硬盘空间。
*** 攻击-拒绝服务攻击
Denial of Service,简称DoS,造成DoS攻击的行为被称为DoS攻击,其目的是使计算机或 *** 无法提供正常的服务。
常见的DoS攻击有计算机 *** 带宽攻击 和 连通性攻击 。
带宽攻击 指以极大的通信量冲击 *** ,使得所有可用 *** 资源都被消耗殆尽,最后导致合法的用户请求无法通过。/br
连通性攻击 指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。
常用攻击手段有:SYN Flood、WinNuke、死亡之Ping、ICMP/ *** URF、Finger炸弹、Land攻击、Ping洪流、Rwhod、Teardrop、TARGA3、UDP攻击等。
书中以SYN Flood攻击为例,详细介绍这种典型的DoS攻击:
SYN Flood是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
SYNFlood攻击利用了TCP协议中的三次握手(Three-way Handshake)
SYN Flood攻击的具体原理:/br
TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成)。
这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30s~2min);/br
一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。
即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。/br
如果服务器的TCP/IP栈不够大,最后的结果往往是堆栈溢出崩溃——即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬正常客户的请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)
拒绝服务攻击主要是利用了系统的一些漏洞。漏洞利用拒绝服务攻击是一种利用漏洞造成软件不能正常运行的攻击方式。这种拒绝服务不依赖大量傀儡机,也不需要发送大量访问请求,而仅仅是利用目标节点软件的安全漏洞,通过精心构造恶意数据包,造成目标节点软件不能有效运行。
分布式拒绝服务(DDoS:Distributed Denial of Service)攻击是一种资源耗尽型攻击,通常也被称作洪水攻击。/br
利用分布于 *** 上的大量节点向同一目标节点发起的引起目标节点资源被大量消耗而不能正常对外提供服务的 *** 攻击方式。
分布式拒绝服务攻击主要是指那些借助外界的平台,如客户或者是服务器本身,把不同的计算机系统联合在一起,对其进行攻击,进而加倍地增强拒绝攻击的成果。一般情况,攻击者将分布式拒绝服务攻击的主控程序安装在一个用于控制的计算机上,将受控程序安装部署在因特网的多台计算机上。主控程序可以与受控程序进行通信并控制受控程序的行为,当主控程序发送特定的指令时,受控程序即可根据指令发动攻击。
DDoS攻击通过大量合法的请求占用大量 *** 资源,以达到瘫痪 *** 的目的。这种攻击方式有以下几种:
分布式拒绝服务攻击的步骤如下:/br
第1步:攻击者使用扫描工具扫描大量主机以寻找潜在入侵目标;/br
第2步:黑客设法入侵有安全漏洞的主机并获取控制权。这些主机将被用于放置后门、守护程序甚至是客户程序;/br
第3步:黑客在得到入侵计算机清单后,从中选出满足建立 *** 所需要的主机,放置已编译好的守护程序,并对被控制的计算机发送命令;/br
第4步:黑客发送控制命令给主机,准备启动对目标系统的攻击;
第5步:主机发送攻击信号给被控制计算机开始对目标系统发起攻击;
第6步:目标系统被无数伪造的请求所淹没,从而无法对合法用户进行响应,DDoS攻击成功。
DDoS攻击的效果是非常明显的,由于整个过程是自动化的,攻击者能够在5s钟内入侵一台主机并安装攻击工具。也就是说,在短短的一小时内可以入侵数千台主机,并使某一台主机可能要遭受1000MB/s数据量的攻击,这一数据量相当于1.04亿人同时拨打某公司的一部 *** 号码。
分布式反射拒绝服务攻击(DRDoS:Distributed Reflection Denial of Service)是一种较新的资源耗尽型拒绝服务攻击。
与分布式拒绝服务攻击使用伪造源IP地址不同,分布式反射拒绝服务攻击的来源IP地址全是真实地址,这些真实的 *** 节点本身并没有安全漏洞,而是利用TCP三次握手来实现的。
首先,攻击者通过控制的傀儡机使用受害者IP地址作为源地址向任意处于活动状态的 *** 节点(如核心路由器、域名服务器、大型网站等)发送带有SYN标记的数据包,也就是TCP三次握手的之一步;/br
处于活动状态的 *** 节点接收到伪造源IP地址的数据包后,将会按照协议要求向受害者进行应答,发送带有SYN、ACK标记的应答数据包。当攻击者使用大量傀儡机同时发起攻击时,即完成了一次分布式反射拒绝服务攻击。
分布式反射拒绝服务攻击最典型的攻击是Smurf攻击:/br
之一步:攻击者向被利用 *** A的 广播地址 发送一个ICMP协议的“echo”请求数据报,该数据报源地址被伪造成10.254.8.9。/br
第二步: *** A上的所有主机都向该伪造的源地址返回一个“echo”响应,造成该主机服务中断。/br
现在的拒绝服务攻击很多都是利用工具自动化完成的。/br
攻击者控制某些主机不停地发送大量数据包给某服务器,造成服务器资源耗尽,一直到主机崩溃。CC主要是用来消耗服务器资源的。每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,模拟多个用户(多少线程就是多少用户)不停地访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU负荷长时间处于100%,永远都有处理不完的连接,直至 *** 拥塞,正常的访问被中止。
拒绝服务攻击通常是很难防范的,不过也有一些防护措施:/br
1.加强用户的安全防范意识,关闭不必要的 *** 接口,降低因个人疏忽造成的不安全因素,安装防范功能较强的软件,对计算机做定时的安全扫描工作;/br
2.增加安全防范手段,了解和掌握可以有效地防治安全漏洞的软件,使用一些专门的漏洞检查工具进行问题的检测,如 *** 测试仪、流量测试仪等,及时地找出修复漏洞的 *** 和措施,减少不必要的损失。/br
3.正确运用安全防范工具,及时地使用 *** 检测软件对不安全因素进行检测,使用那些专门检测 *** 安全隐患的软件,定期进行检测。/br
用路由器防止DoS拒绝服务疯狂攻击的 ***
拒绝服务(DoS)攻击是目前黑客广泛使用的一种攻击手段,它通过独占 *** 资源、使其他主机不能进行正常访问,从而导致宕机或 *** 瘫痪。
DoS攻击主要分为Smurf、SYNFlood和Fraggle三种,在Smurf攻击中,攻击者使用ICMP数据包阻塞服务器和其他 *** 资源;SYNFlood攻击使用数量巨大的TCP半连接来占用 *** 资源;Fraggle攻击与Smurf攻击原理类似,使用UDPecho请求而不是ICMPecho请求发起攻击。
尽管 *** 安全专家都在着力开发阻止DoS攻击的设备,但收效不大,因为DoS攻击利用了TCP协议本身的弱点。正确配置路由器能够有效防止DoS攻击。以Cisco路由器为例,Cisco路由器中的IOS软件具有许多防止DoS攻击的特性,保护路由器自身和内部 *** 的安全。
使用扩展访问列表
扩展访问列表是防止DoS攻击的有效工具。它既可以用来探测DoS攻击的类型,也可以阻止DoS攻击。ShowIPaccess-list命令能够显示每个扩展访问列表的匹配数据包,根据数据包的类型,用户就可以确定DoS攻击的种类。如果 *** 中出现了大量建立TCP连接的请求,这表明 *** 受到了SYNFlood攻击,这时用户就可以改变访问列表的配置,阻止DoS攻击。
使用QoS
使用服务质量优化(QoS)特征,如加权公平队列(WFQ)、承诺访问速率(CAR)、一般流量整形(GTS)以及定制队列(CQ)等,都可以有效阻止DoS攻击。需要注意的是,不同的QoS策略对付不同DoS攻击的效果是有差别的。例如,WFQ对付PingFlood攻击要比防止SYNFlood攻击更有效,这是因为PingFlood通常会在WFQ中表现为一个单独的传输队列,而SYNFlood攻击中的每一个数据包都会表现为一个单独的数据流。此外,人们可以利用CAR来限制ICMP数据包流量的速度,防止Smurf攻击,也可以用来限制SYN数据包的流量速度,防止SYNFlood攻击。使用QoS防止DoS攻击,需要用户弄清楚QoS以及DoS攻击的原理,这样才能针对DoS攻击的不同类型采取相应的'防范措施。
使用单一地址逆向转发
逆向转发(RPF)是路由器的一个输入功能,该功能用来检查路由器接口所接收的每一个数据包。如果路由器接收到一个源IP地址为10.10.10.1的数据包,但是CEF(CiscoExpressForwarding)路由表中没有为该IP地址提供任何路由信息,路由器就会丢弃该数据包,因此逆向转发能够阻止Smurf攻击和其他基于IP地址伪装的攻击。
使用RPF功能需要将路由器设为快速转发模式(CEFswitching),并且不能将启用RPF功能的接口配置为CEF交换。RPF在防止IP地址欺骗方面比访问列表具有优势,首先它能动态地接受动态和静态路由表中的变化;第二RPF所需要的操作维护较少;第三RPF作为一个反欺骗的工具,对路由器本身产生的性能冲击,要比使用访问列表小得多。
使用TCP拦截
Cisco在IOS11.3版以后,引入了TCP拦截功能,这项功能可以有效防止SYNFlood攻击内部主机。
在TCP连接请求到达目标主机之前,TCP拦截通过拦截和验证来阻止这种攻击。TCP拦截可以在拦截和监视两种模式下工作。在拦截模式下,路由器拦截到达的TCP同步请求,并代表服务器建立与客户机的连接,如果连接成功,则代表客户机建立与服务器的连接,并将两个连接进行透明合并。在整个连接期间,路由器会一直拦截和发送数据包。对于非法的连接请求,路由器提供更为严格的对于half-open的超时限制,以防止自身的资源被SYN攻击耗尽。在监视模式下,路由器被动地观察流经路由器的连接请求,如果连接超过了所配置的建立时间,路由器就会关闭此连接。
在Cisco路由器上开启TCP拦截功能需要两个步骤:一是配置扩展访问列表,以确定需要保护的IP地址;二是开启TCP拦截。配置访问列表是为了定义需要进行TCP拦截的源地址和目的地址,保护内部目标主机或 *** 。在配置时,用户通常需要将源地址设为any,并且指定具体的目标 *** 或主机。如果不配置访问列表,路由器将会允许所有的请求经过。
使用基于内容的访问控制
基于内容的访问控制(CBAC)是对Cisco传统访问列表的扩展,它基于应用层会话信息,智能化地过滤TCP和UDP数据包,防止DoS攻击。
CBAC通过设置超时时限值和会话门限值来决定会话的维持时间以及何时删除半连接。对TCP而言,半连接是指一个没有完成三阶段握手过程的会话。对UDP而言,半连接是指路由器没有检测到返回流量的会话。
CBAC正是通过监视半连接的数量和产生的频率来防止洪水攻击。每当有不正常的半连接建立或者在短时间内出现大量半连接的时候,用户可以判断是遭受了洪水攻击。CBAC每分钟检测一次已经存在的半连接数量和试图建立连接的频率,当已经存在的半连接数量超过了门限值,路由器就会删除一些半连接,以保证新建立连接的需求,路由器持续删除半连接,直到存在的半连接数量低于另一个门限值;同样,当试图建立连接的频率超过门限值,路由器就会采取相同的措施,删除一部分连接请求,并持续到请求连接的数量低于另一个门限值。通过这种连续不断的监视和删除,CBAC可以有效防止SYNFlood和Fraggle攻击。
路由器是企业内部 *** 的之一道防护屏障,也是黑客攻击的一个重要目标,如果路由器很容易被攻破,那么企业内部 *** 的安全也就无从谈起,因此在路由器上采取适当措施,防止各种DoS攻击是非常必要的。用户需要注意的是,以上介绍的几种 *** ,对付不同类型的DoS攻击的能力是不同的,对路由器CPU和内存资源的占用也有很大差别,在实际环境中,用户需要根据自身情况和路由器的性能来选择使用适当的方式。
iptables防攻击
如果处于半开放状态的连接绑定服务器上的资源,则可能通过向服务器大量发送SYN消息来占用所有这些资源。Syn flood是常见的攻击,可以通过以下iptables规则进行阻挡:
所有进入的连接是允许的,直到达到极限:
-limit 1/s:以秒为单位的更大平均匹配率
-limit-burst 3:要匹配的包的更大初始数量
举例1:限制 ssh连接数
假设您需要限制到ssh服务器(端口22)的传入连接在10分钟内不超过10个连接:
举例2:防范DoS攻击
上面的iptables规则将帮助您防止拒绝服务(DoS)攻击您的web服务器。
在上面的例子中:
-m limit:它使用limit iptables扩展名
–limit 25/minute:这限制了每分钟最多25个连接。根据您的具体需求更改此值
-limit-burst 100:这个值表示只有当连接总数达到了limit-burst级别时才会执行limit/min。
举例3:限制每个IP /主机的SSH连接
每个客户端主机只允许3个ssh连接:
举例4:限制每个IP /主机的HTTP连接
如果IP在100秒内尝试了10次以上的80端口连接(将规则添加到iptables shell脚本中),下面的示例将删除传入的连接
如何测试防火墙规则
使用下面的shell脚本连接到202.1.2.3托管的web服务器:
nc命令是一个功能强大的 *** 工具,通过它不仅可以探测端口,还能作为客户端连接服务。
DDoS攻击
• 分布式拒绝服务(DDoS:Distributed Denial of Service Attack)攻击是通过大规模互联网流量淹没目标服务器或其周边基础设施,以破坏目标服务器、服务或 *** 正常流量的恶意行为
• DDoS 攻击利用多台受损计算机系统作为攻击流量来源以达到攻击效果。利用的机器可以包括计算机,也可以包括其他联网资源(如 IoT 设备)
• 攻击者利用受控主机发送大量的 *** 数据包,占满攻击目标的带宽,使得正常请求无法达到及时有效的响应
• DNS 响应的数据包比查询的数据包大,攻击者发送的DNS查询数据包大小一般为 60 字节左右,而查询返回的数据包的大小通常在3000字节以上,因此放大倍数能达到50倍以上,放大效果惊人
• 主要通过对系统维护的连接资源进行消耗,使其无法正常连接,以达到拒绝服务的目的,此类攻击主要是因为TCP 安全性设计缺陷引起的
• 目标计算机响应每个连接请求,然后等待握手中的最后一步,但这一步确永远不会发生,因此在此过程中耗尽目标的资源
• 消耗应用资源攻击通过向应用提交大量消耗资源的请求,以达到拒绝服务的目的
• 这种类型的攻击较简单的实现可以使用相同范围的攻击 IP 地址、referrer 和用户 *** 访问一个 URL;复杂版本可能使用大量攻击性 IP 地址,并使用随机 referrer 和用户 *** 来针对随机网址
• LOTC是一个更受欢迎的DOS攻击工具。 这个工具曾经被流行的黑客集团匿名者用于对许多大公司的 *** 攻击
• 它可以通过使用单个用户执行 DOS 攻击小型服务器,工具非常易于使用,即便你是一个初学者。 这个工具执行DOS攻击通过发送UDP,TCP或HTTP请求到受害者服务器。你只需要知道服务器的IP地址或URL,其他的就交给这个工具吧
• XOIC是另一个不错的DOS攻击工具。它根据用户选择的端口与协议执行DOS攻击任何服务器。XOIC开发者还声称XOIC比LOIC在很多方面更强大
• 一般来说,该工具有三种攻击模式,之一个被称为测试模式,是非常基本的; 第二个是正常的DOS攻击模式; 最后一个是带有HTTP / TCP / UDP / ICMP消息的DOS攻击模式
• 对付小型网站来说,这是一个很有效的DDOS工具, 但是从来没有尝试的要小心点,你可能最终会撞自己的网站的服务器
• HULK是另一个不错的DOS攻击工具,这个工具使用某些其他技术来避免通过攻击来检测,它有一个已知的用户 *** 列表,且使用的是随机请求
• 输入 URL ,点击 Lock on,设置 Method 模式(比如 HTTP),设置速度等其他参数
• 点击 IMMA CHARING MAH LAZER ,开始攻击
• 打开被攻击的站点,发现此时已经打不开
1、查看流量设备,发现攻击者使用僵尸 *** 在某时间段内发起了DDoS攻击
2、进一步对 *** 数据包进行抓包分析,发现攻击者使用 HTTP 请求功能向服务器发起多次请求,服务器返回多个响应文件,造成 *** 负载过高
3、对服务器访问日志进行排查
1、配置防火墙策略,屏蔽异常访问的IP地址
2、调整防护设备策略,在不影响业务的情况下限制 HTTP Range 形式访问
3、如果流量远远超出出口带宽,建议联系运营商进行流量清洗
1、攻击前的防御阶段
2、攻击时的缓解阶段
3、攻击后的追溯总结阶段
• 尽量避免将非业务必需的端 *** 露在公网上,避免与业务无关的请求和访问
• 对服务器进行安全加固,包括操作系统即服务软件,减少可能被攻击的点
• 优化 *** 架构,保证系统的弹性和冗余,防止单点故障发生
• 对服务器性能进行测试,评估正常业务下能承受的带宽,保证带宽有余量
• 对现有架构进行压力测试,评估当前业务吞吐处理能力
• 使用全流量监控设备(如天眼)对全网中存在的威胁进行监控分析,实时关注告警
• 根据当前技术架构、人员、历史攻击情况等,完善应急响应技术预案
什么是 DDoS 攻击
拒绝服务(DDoS)攻击和分布式拒绝服务(DDoS)攻击都是恶意的行为,利用大量互联网流量淹没目标服务器、服务或 *** ,破坏它们的正常运作。
DoS 攻击通过从单一机器(通常是一台计算机)发送恶意流量来实现这种破坏。形式可以非常简单;通过向目标服务器发送数量超过其有效处理和响应能力的ICMP(Ping)请求,发动基本的 Ping 洪水攻击。
另一方面,DDoS 攻击使用一台以上的机器向目标发送恶意流量。这些机器通常是僵尸 *** (感染了恶意软件的计算机或其他设备的 *** )的一部分,因而可以由单个攻击者进行远程控制。在其他情形中,多名个体攻击者可以串通起来,一起从各自的个体计算机发送流量来发动 DDoS 攻击。
DDoS 攻击在现代互联网中更为普遍,破坏性也更强,原因有二。首先,现代安全工具已经发展为能够阻止一些普通的 DoS 攻击。其次,DDoS 攻击工具已经变得相对廉价且易于操作。
如何防御 DoS/DDoS 工具?
既然 DoS 和 DDoS 攻击采取多种不同的形式,缓解它们也需要不同的策略。阻止 DDoS 攻击的常见策略有:
速率限制:限制服务器在特定时间范围内接受的请求数量
Web 应用程序防火墙:使用工具来基于一系列规则过滤 Web 流量
CDN *** 扩散:在服务器和传入流量之间置入一个大型分布式云 *** ,以提供额外的计算资源来响应请求。
百度云加速应用了所有这些及其他策略,来防御更大、最复杂的 DoS 和 DDoS 攻击。
相关链接
0条大神的评论