什么是DoS攻击?
DoS(拒绝服务)攻击是一种恶意行为,其目的是通过耗尽目标系统或网络的资源(如带宽、内存或计算能力)来使其无法访问或不可用。
DoS攻击的类型
DoS攻击有多种类型,包括:
- 洪水攻击:通过发送大量无意义的请求或数据包来淹没目标。
- Ping洪水:使用ICMP Ping命令发送大量Ping请求。
- UDP Flood:使用用户数据报协议(UDP)发送大量UDP数据包。
- SYN Flood:通过建立并立即关闭大量TCP连接以停止攻击。
DoS攻击的对策
有多种对策可以减轻和防御DoS攻击,包括:
- 防御性分布式系统:使用分布式网络或云服务可以缓解洪水攻击,因为它们具有足够的容量和冗余来处理高流量。
- 流量识别和过滤:部署防火墙、入侵检测系统(IDS)和入侵防御系统(IPS)可以识别和阻止恶意流量。
- 速率限制:限制特定源からの要求或数据包数目,可以防止洪水攻击。
- SYN Cookie:通过在SYN队列中使用cookie,可以防止SYN Flood攻击。
- DDoS缓解服务:专门的DDoS缓解服务提供商可以监控和缓解大规模DDoS攻击。
- 员工意识和培训:教育员工了解DoS攻击的迹象和风险,并教授他们安全实践。
- 灾难恢复计划:制定一个灾难恢复计划,以确保在DoS攻击发生时业务连续性。
结论
DoS攻击对组织和个人构成严重威胁。通过了解DoS攻击的类型、影响和对策,您可以采取措施保护您的系统和网络。实施防御措施,教育员工,并与可靠的安全合作伙伴合作,可以帮助您减轻和防御DoS攻击,确保业务连续性和在线安全性。
怎么对付DOS攻击?
利用路由器防止DDOS疯狂攻击 保护网络安全 拒绝服务(DoS)攻击是目前黑客广泛使用的一种攻击手段,它通过独占网络资源、使其他主机不能进行正常访问,从而导致宕机或网络瘫痪。
DoS攻击主要分为Smurf、SYN Flood和Fraggle三种,在Smurf攻击中,攻击者使用ICMP数据包阻塞服务器和其他网络资源;SYN Flood攻击使用数量巨大的TCP半连接来占用网络资源;Fraggle攻击与Smurf攻击原理类似,使用UDP echo请求而不是ICMP echo请求发起攻击。
尽管网络安全专家都在着力开发阻止DoS攻击的设备,但收效不大,因为DoS攻击利用了TCP协议本身的弱点。
正确配置路由器能够有效防止DoS攻击。
以Cisco路由器为例,Cisco路由器中的IOS软件具有许多防止DoS攻击的特性,保护路由器自身和内部网络的安全。
使用扩展访问列表 扩展访问列表是防止DoS攻击的有效工具。
它既可以用来探测DoS攻击的类型,也可以阻止DoS攻击。
Show ip access-list命令能够显示每个扩展访问列表的匹配数据包,根据数据包的类型,用户就可以确定DoS攻击的种类。
如果网络中出现了大量建立TCP连接的请求,这表明网络受到了SYN Flood攻击,这时用户就可以改变访问列表的配置,阻止DoS攻击。
使用QoS 使用服务质量优化(QoS)特征,如加权公平队列(WFQ)、承诺访问速率(CAR)、一般流量整形(GTS)以及定制队列(CQ)等,都可以有效阻止DoS攻击。
需要注意的是,不同的QoS策略对付不同DoS攻击的效果是有差别的。
例如,WFQ对付Ping Flood攻击要比防止SYN Flood攻击更有效,这是因为Ping Flood通常会在WFQ中表现为一个单独的传输队列,而SYN Flood攻击中的每一个数据包都会表现为一个单独的数据流。
此外,人们可以利用CAR来限制ICMP数据包流量的速度,防止Smurf攻击,也可以用来限制SYN数据包的流量速度,防止SYN Flood攻击。
使用QoS防止DoS攻击,需要用户弄清楚QoS以及DoS攻击的原理,这样才能针对DoS攻击的不同类型采取相应的防范措施。
使用单一地址逆向转发 逆向转发(RPF)是路由器的一个输入功能,该功能用来检查路由器接口所接收的每一个数据包。
如果路由器接收到一个源IP地址为10.10.10.1的数据包,但是CEF(Cisco Express Forwarding)路由表中没有为该IP地址提供任何路由信息,路由器就会丢弃该数据包,因此逆向转发能够阻止Smurf攻击和其他基于IP地址伪装的攻击。
使用RPF功能需要将路由器设为快速转发模式(CEF switching),并且不能将启用RPF功能的接口配置为CEF交换。
RPF在防止IP地址欺骗方面比访问列表具有优势,首先它能动态地接受动态和静态路由表中的变化;第二RPF所需要的操作维护较少;第三RPF作为一个反欺骗的工具,对路由器本身产生的性能冲击,要比使用访问列表小得多。
使用TCP拦截 Cisco在IOS 11.3版以后,引入了TCP拦截功能,这项功能可以有效防止SYN Flood攻击内部主机。
在TCP连接请求到达目标主机之前,TCP拦截通过拦截和验证来阻止这种攻击。
TCP拦截可以在拦截和监视两种模式下工作。
在拦截模式下,路由器拦截到达的TCP同步请求,并代表服务器建立与客户机的连接,如果连接成功,则代表客户机建立与服务器的连接,并将两个连接进行透明合并。
在整个连接期间,路由器会一直拦截和发送数据包。
对于非法的连接请求,路由器提供更为严格的对于half-open的超时限制,以防止自身的资源被SYN攻击耗尽。
在监视模式下,路由器被动地观察流经路由器的连接请求,如果连接超过了所配置的建立时间,路由器就会关闭此连接。
在Cisco路由器上开启TCP拦截功能需要两个步骤:一是配置扩展访问列表,以确定需要保护的IP地址;二是开启TCP拦截。
配置访问列表是为了定义需要进行TCP拦截的源地址和目的地址,保护内部目标主机或网络。
在配置时,用户通常需要将源地址设为any,并且指定具体的目标网络或主机。
如果不配置访问列表,路由器将会允许所有的请求经过。
使用基于内容的访问控制 基于内容的访问控制(CBAC)是对Cisco传统访问列表的扩展,它基于应用层会话信息,智能化地过滤TCP和UDP数据包,防止DoS攻击。
CBAC通过设置超时时限值和会话门限值来决定会话的维持时间以及何时删除半连接。
对TCP而言,半连接是指一个没有完成三阶段握手过程的会话。
对UDP而言,半连接是指路由器没有检测到返回流量的会话。
CBAC正是通过监视半连接的数量和产生的频率来防止洪水攻击。
每当有不正常的半连接建立或者在短时间内出现大量半连接的时候,用户可以判断是遭受了洪水攻击。
CBAC每分钟检测一次已经存在的半连接数量和试图建立连接的频率,当已经存在的半连接数量超过了门限值,路由器就会删除一些半连接,以保证新建立连接的需求,路由器持续删除半连接,直到存在的半连接数量低于另一个门限值;同样,当试图建立连接的频率超过门限值,路由器就会采取相同的措施,删除一部分连接请求,并持续到请求连接的数量低于另一个门限值。
通过这种连续不断的监视和删除,CBAC可以有效防止SYN Flood和Fraggle攻击。
路由器是企业内部网络的第一道防护屏障,也是黑客攻击的一个重要目标,如果路由器很容易被攻破,那么企业内部网络的安全也就无从谈起,因此在路由器上采取适当措施,防止各种DoS攻击是非常必要的。
用户需要注意的是,以上介绍的几种方法,对付不同类型的DoS攻击的能力是不同的,对路由器CPU和内存资源的占用也有很大差别,在实际环境中,用户需要根据自身情况和路由器的性能来选择使用适当的方式。
DOS攻击有多少种?
SYN FLOOD利用服务器的连接缓冲区,利用特殊的程序,设置TCP的header,向服务器端不断地成倍发送只有SYN标志的TCP连接请求。
当服务器接收的时候,都认为是没有建立起来的连接请求,于是为这些请求建立会话,排到缓冲区队列中。
如果SYN请求超过了服务器能容纳的限度,缓冲区队列满,那么服务器就不再接收新的请求;其他合法用户的连接都被拒绝,可以持续SYN请求发送,直到缓冲区中都是自己的只有SYN标志的请求。
IP欺骗DOS攻击这种攻击利用RST位来实现的,比如现在有一个合法用户已经同服务器建立正常连接,攻击者构造攻击的TCP数据,伪装自己的IP为正常ip,向服务器发送一个带有RST位的TCP数据段。
服务器接收到这样的数据后,认为从合法用户发送的连接有错误,就会清空缓冲区中建立好的连接。
这时,如果合法用户再发送合法数据,服务器就已经没有这样的连接了,该用户必须重新开始建立连接。
带宽DOS攻击如果连接带宽足够大而服务器又不是很大,可以发送请求,来消耗服务器的缓冲区消耗服务器的带宽。
这种攻击就是人多力量大,配合上SYN一起实施DOS,威力巨大。
自身消耗的DOS攻击这种是老式的攻击手法。
说老式,是因为老式的系统有这样的自身BUG,比如win 95这样的系统。
这种DOS攻击就是把请求客户端IP和端口弄成主机的IP端口相同,发送给主机。
使得主机给自己发送TCP请求和连接。
这种主机的漏洞会很快地把资源消耗光,直接导致宕机。
这种伪装对一些身份认证系统威胁还是很大的。
塞满服务器的硬盘如果服务器可以没有限制地执行写操作,那么都能成为塞满硬盘造成DOS攻击的途径:1、发送废品邮件:一般公司的服务器可能把邮件服务器和Web服务器都放在一起,破坏者可以发送大量的废品邮件,这些邮件可能都塞在一个邮件队列中或者就是坏邮件队列中,直到邮箱被撑破或者把硬盘塞满。
2、让日志记录满:入侵者可以构造大量的错误信息发送出来,服务器记录这些错误,可能就造成日志文件非常庞大,甚至会塞满硬盘。
同时会让管理员痛苦地面对大量的日志,甚至就不能发现入侵者真正的入侵途径。
3、向匿名FTP塞废品文件,这样也会塞满硬盘空间。
怎么用DOS命令攻击
DoS具有代表性的攻击手段包括PingofDeathdos攻击快闪族、TearDrop、UDPflood、SYNflood、LandAttack、IPSpoofingDoS等。
具体DoS攻击方法很多,但大多都可以分为以下几类:利用软件实现的缺陷OOB攻击(常用工具winnuke),teardrop攻击(常用工具.c),lan软件主流程图d攻击,IGMP碎片包攻击,jolt攻击,Cisco2600路由器IOSversion12.0(10)远程拒绝服务攻击等等,这些攻击都是利用了被攻击软件的实现上的缺陷完成DoS攻击的。
通常这些攻击工具向被攻击系统发送特定类型的一个或多个报文,这些攻击通常都是致命的,一般都是一击致死,而且很多攻击是可以伪造源地址的,所以即使通过IDS或者别的sniffer软件记录到攻击报文也不能找到谁发动的攻击,而且此类型的攻击多是特定类型的几个报文,非常短暂的少量的报文,如果伪造源IP地址的话,使追查工作几乎是不可能。
那么如何造成这些攻击的?通常是软件开发过程中对某种特定类型的报文、或请求没有处理,导致软件遇到这种类型的报文运行出现异常,导致软件崩溃甚至系统崩溃。
下面结合几个具体实例解释一下这种攻击的成因。
1997年5月7号有人发布了一个winnuke.c。
首先建立一条到Win95/NT主机的TCP连接,然后发送TCP紧急数据,导致对端系统崩溃。
139/TCP是Win95/NT系统最常见的侦听端口,所以winnuke.c使用了该端口。
之所以称呼这种攻击为OOB攻击,因为MSG_OOB标志,实际应该是TCP紧急数据攻击。
原始teardrop.c只构造了两种碎片包,每次同时发送这两种UDP碎片包。
如果指定发送次数,将完全重复先前所发送出去的两种碎片包。
它可以伪造源ip并跨越路由器进行远程攻击,影响的系统包括Linux/WinNT/Win95。
使用的方法是:teardrop源ip目的ip[-s源端口][-d目的端口][-n次数]比较新的一个DoS攻击是Windows的SMB实现中的DoS攻击,2002年8月发布,只要允许匿名连接的windows系统就可以进行远程攻击,强烈建议Windows用户打相应的补丁。
它的方法就是先和目标系统建立一个连接,然后发送一个特定的请求,目标系统就会兰屏。
发布的测试工具是图形界面工具,输入目标地址NETBIOS名称即可。
从上面的讨论可以看出,这种攻击行为威力很大,而且难于侦察。
但真实情况下它的危害仅现于漏洞发布后的不长的时间段内,相关厂商会很快发布补丁修补这种漏洞。
所以上面提到的几种较老的攻击在现实的环境中,通常是无效的。
不过最新的攻击方法还是让我们不寒而栗,我们可以做的就是关注安全漏洞的发布,及时打上新的补丁。
如果你想偷懒的话,购买专业安全服务公司的相关服务应该是个更好的选择。
利用协议的漏洞如果说上面那种漏洞危害的时间不是很长,那么这种攻击的生存能力却非常强。
为了能够在网络上进行互通、互联,所有的软件实现都必须遵循既有的协议,而如果这种协议存在漏洞的话,所有遵循此协议的软件都会受到影响。
最经典的攻击是synflood攻击,它利用TCP/IP协议的漏洞完成攻击。
通常一次TCP连接的建立包括3个步骤,客户端发送SYN包给服务器端,服务器分配一定的资源给这里连接并返回SYN/ACK包,并等待连接建立的最后的ACK包,最后客户端发送ACK报文,这样两者之间的连接建立起来,并可以通过连接传送数据了。
而攻击的过程就是疯狂发送SYN报文,而不返回ACK报文,服务器占用过多资源,而导致系统资源占用过多,没有能力响应别的操作,或者不能响应正常的网络请求。
这个攻击是经典的以小搏大的攻击,自己使用少量资源占用对方大量资源。
一台P4的Linux系统大约能发到30-40M的64字节的synflood报文,而一台普通的服务器20M的流量就基本没有任何响应了(包括鼠标、键盘)。
而且synflood不仅可以远程进行,而且可以伪造源IP地址,给追查造成很大困难,要查找必须所有骨干网络运营商,一级一级路由器的向上查找。
对于伪造源IP的synflood攻击,除非攻击者和被攻击的系统之间所有的路由器的管理者都配合查找,否则很难追查。
当前一些防火墙产品声称有抗DoS的能力,但通常他们能力有限,包括国外的硬件防火墙大多100M防火墙的抗synflood的能力只有20-30Mbps(64字节syn包),这里涉及到它们对小报文的转发能力,再大的流量甚至能把防火墙打死机。
有些安全厂商认识到DoS攻击的危害,开始研发专用的抗拒绝服务产品。
由于TCP/IP协议相信报文的源地址,另一种攻击方式是反射拒绝服务攻击,另外可以利用还有广播地址,和组播协议辅助反射拒绝服务攻击效果更好。
不过大多数路由器都禁止广播地址和组播协议的地址。
另一类攻击方式是使用大量符合协议的正常服务请求,由于每个请求耗费很大系统资源,导致正常服务请求不能成功。
如HTTP协议是无状态协议,攻击者构造大量搜索请求,这些请求耗费大量服务器资源,导致DoS。
这种方式攻击比较好处理,由于是正常请求,暴露了正常的源IP地址,禁止这些IP就可以了。
进行资源比拼这种攻击方式属于无赖打法,我凭借着手中的资源丰富,发送大量的废品数据侵占完你的资源,导致DoS。
比如,ICMPflood,mstreamflood,Connectionflood。
为了获得比目标系统更多资源,通常攻击者会发动DDoS(DistributedDos分布式拒绝服务)攻击者控制多个攻击傀儡发动攻击,这样才能产生预期的效果。
前两类攻击是可以伪造IP地址的,追查也是非常困难,第3种攻击由于需要建立连接,可能会暴露攻击傀儡的IP地址,通过防火墙禁止这些IP就可以了。
对于难于追查,禁止的攻击行为,我们只能期望专用的抗拒绝服务产品了。
攻击程序smurf、trinoo、tfn、tfn2k以及stacheldraht是比较常见的DoS攻击程序,本文将对它们的原理以及抵御措施进行论述,以帮助管理员有效地抵御DoS风暴攻击,维护站点安全。