DDoS的原理及危害
DDoS:拒绝服务攻击的目标大多采用包括以SYNFlood和PingFlood为主的技术,其主要方式是通过使关键系统资源过载,如目标网站的通信端口与记忆缓冲区溢出,导致 *** 或服务器的资源被大量占用,甚至造成 *** 或服务器的全面瘫痪,而达到阻止合法信息上链接服务要求的接收。形象的解释是,DDoS攻击就好比 *** 点歌的时候,从各个角落在同一时间有大量的 *** 挂入点播台,而点播台的服务能力有限,这时出现的现象就是打 *** 的人只能听到 *** 忙音,意味着点播台无法为听众提供服务。这种类型的袭击日趋增多,因为实施这种攻击的 *** 与程序源代码现已在黑客网站上公开。另外,这种袭击 *** 非常难以追查,因为他们运用了诸如IP地址欺骗法之类所谓网上的“隐身技术”,而且现在互联网服务供应商(ISP)的过剩,也使作恶者很容易得到IP地址。拒绝服务攻击的一个更具代表性的攻击方式是分布式拒绝服务攻击(DistributedDenialofService,DDoS),它是一种令众多的互联网服务提供商和各国 *** 非常头疼的黑客攻击 *** ,最早出现于1999年夏天,当时还只是在黑客站点上进行的一种理论上的探讨。从2000年2月开始,这种攻击 *** 开始大行其道,在2月7日到11日的短短几天内,黑客连续攻击了包括Yahoo,Buy.com,eBay,Amazon,CNN等许多知名网站,致使有的站点停止服务达几个小时甚至几十个小时之久。国内的新浪等站点也遭到同样的攻击,这次的攻击浪潮在媒体上造成了巨大的影响,以至于美国总统都不得不亲自过问。
分布式拒绝服务攻击采用了一种比较特别的体系结构,从许多分布的主机同时攻击一个目标。从而导致目标瘫痪。目前所使用的入侵监测和过滤 *** 对这种类型的入侵都不起作用。所以,对这种攻击还不能做到完全防止。
DDoS通常采用一种跳台式三层结构。如图10—7所示:图10—7最下层是攻击的执行者。这一层由许多 *** 主机构成,其中包括Unix,Linux,Mac等各种各样的操作系统。攻击者通过各种办法获得主机的登录权限,并在上面安装攻击器程序。这些攻击器程序中一般内置了上面一层的某一个或某几个攻击服务器的地址,其攻击行为受到攻击服务器的直接控制。
攻击服务器。攻击服务器的主要任务是将控制台的命令发布到攻击执行器上。
这些服务器与攻击执行器一样,安装在一些被侵入的无关主机上。
攻击主控台。攻击主控台可以是 *** 上的任何一台主机,甚至可以是一个活动的便携机。它的作用就是向第二层的攻击服务器发布攻击命令。
有许多无关主机可以支配是整个攻击的前提。当然,这些主机与目标主机之间的联系越紧密, *** 带宽越宽,攻击效果越好。通常来说,至少要有数百台甚至上千台主机才能达到满意的效果。例如,据估计,攻击Yahoo!站点的主机数目达到了3000台以上,而 *** 攻击数据流量达到了1GB秒。通常来说,攻击者是通过常规 *** ,例如系统服务的漏洞或者管理员的配置错误等 *** 来进入这些主机的。一些安全措施较差的小型站点以及单位中的服务器往往是攻击者的首选目标。这些主机上的系统或服务程序往往得不到及时更新,从而将系统暴露在攻击者面前。在成功侵入后,攻击者照例要安装一些特殊的后门程序,以便自己以后可以轻易进入系统,随着越来越多的主机被侵入,攻击者也就有了更大的舞台。他们可以通过 *** 监听等 *** 进一步扩充被侵入的主机群。
黑客所作的第二步是在所侵入的主机上安装攻击软件。这里,攻击软件包括攻击服务器和攻击执行器。其中攻击服务器仅占总数的很小一部分,一般只有几台到几十台左右。设置攻击服务器的目的是隔离 *** 联系,保护攻击者,使其不会在攻击进行时受到监控系统的跟踪,同时也能够更好的协调进攻。因为攻击执行器的数目太多,同时由一个系统来发布命令会造成控制系统的 *** 阻塞,影响攻击的突然性和协同性。而且,流量的突然增大也容易暴露攻击者的位置和意图。剩下的主机都被用来充当攻击执行器。执行器都是一些相对简单的程序,它们可以连续向目标发出大量的链接请求而不作任何回答。现在已知的能够执行这种任务的程序主要包括trin00,TFN(TribeFloodNetwork)、randomizer以及它们的一些改进版本,如TFN2k等。
黑客所作的最后一步,就是从攻击控制台向各个攻击服务器发出对特定目标的攻击命令。由于攻击主控台的位置非常灵活,而且发布命令的时间很短,所以非常隐蔽,难以定位。一旦攻击的命令传送到服务器,主控台就可以关闭或脱离 *** ,以逃避追踪。接着,攻击服务器将命令发布到各个攻击器。在攻击器接到攻击命令后,就开始向目标主机发出大量的服务请求数据包,这些数据包经过伪装,无法识别它的来源。而且,这些数据包所请求的服务往往要消耗较大的系统资源,如CPU或 *** 带宽。如果数百台甚至上千台攻击器同时攻击一个目标,就会导致目标主机 *** 和系统资源的耗尽,从而停止服务。有时,甚至会导致系统崩溃。另外,这样还可以阻塞目标 *** 的防火墙和路由器等 *** 设备,进一步加重 *** 拥塞状况。这样,目标主机根本无法为用户提供任何服务。攻击者所用的协议都是一些非常常见的协议和服务。这样,系统管理员就难于区分恶意请求和正常链接请求,从而无法有效分离出攻击数据包。
除了上述类型的攻击以外,其他种类的拒绝服务袭击有,从电脑中删除启动文件,使之无法启动,或删除某个 *** 服务器的网页等。为什么有人要发起这种类型的袭击呢?因为他们所闯入的服务器并没有什么秘密数据。其实,这种袭击也是出于各种原因,有政治的,不正当商业竞争为原因的、也有的是作为一种大规模袭击的一个组成部分。比如,巴勒斯坦的黑客为了 *** 以色列的犹太人政权而发起的对以色列 *** 网站的攻击;某恶意电子商务网站为争夺客户而发起的针对竞争对手的拒绝服务攻击。拒绝服务袭击也可以用来关闭某位黑客想要欺诈的服务器。比如,黑客可能会为了获得客户PIN码或信用卡号码而对一家银行的服务器进行攻击等,这类袭击是“比其他类型的袭击要突出得多的、最普遍的安全隐患”。当然,这种袭击的主要损失是系统不能正常运行而耽误的时间,而且系统很容易就可以通过重新启动的方式而恢复运行。然而,任何注重品牌声誉的企业都明白,在互联网世界中,品牌声誉可能会因一次安全性攻击而毁于一旦,因此,黑客攻击行为(尤其是拒绝服务攻击)已成为当今企业所面临的更大威胁中的一部分。
一个企业的网上服务即使没有遭到拒绝服务的攻击,它还会面临另外一种风险,即成为攻击者的跳台的危险。在实际发生的大规模拒绝服务攻击的案例当中,往往是那些 *** 安全管理不严格的企业或组织的系统,被黑客侵入,在系统内被植入攻击时使用的黑客程序。而攻击犯罪发生以后,由于黑客的消踪灭迹的手段很高明,所以最后被侦破机关追索到的攻击源往往是那些成为攻击跳台的 *** 。虽然,企业本身没有遭到损失,但是由于成为攻击跳台,而带来的合作伙伴的疑虑和商业信用的损失却是无法估计的。
怎么防范DDOS攻击之DDOS全接触
锁死,消耗服务器CPU内存的同时还会堵塞带宽。
TCP混乱数据包攻击
发送伪造源IP的 TCP数据包,TCP头的TCP Flags 部分是混乱的可能是syn ,ack ,syn+ack ,syn+rst等等,会造成一些防火墙处理错误锁死,消耗服务器CPU内存的同时还会堵塞带宽。
针对用UDP协议的攻击
很多聊天室,视频音频软件,都是通过UDP数据包传输的,攻击者针对分析要攻击的 *** 软件协议,发送和正常数据一样的数据包,这种攻击非常难防护,一般防护墙通过拦截攻击数据包的特征码防护,但是这样会造成正常的数据包也会被拦截,
针对WEB Server的多连接攻击
通过控制大量肉鸡同时连接访问网站,造成网站无法处理瘫痪,这种攻击和正常访问网站是一样的,只是瞬间访问量增加几十倍甚至上百倍,有些防火墙可以通过限制每个连接过来的IP连接数来防护,但是这样会造成正常用户稍微多打开几次网站也会被封,
针对WEB Server的变种攻击
通过控制大量肉鸡同时连接访问网站,一点连接建立就不断开,一直发送发送一些特殊的GET访问请求造成网站数据库或者某些页面耗费大量的CPU,这样通过限制每个连接过来的IP连接数就失效了,因为每个肉鸡可能只建立一个或者只建立少量的连接。这种攻击非常难防护,后面给大家介绍防火墙的解决方案
针对WEB Server的变种攻击
通过控制大量肉鸡同时连接网站端口,但是不发送GET请求而是乱七八糟的字符,大部分防火墙分析攻击数据包前三个字节是GET字符然后来进行http协议的分析,这种攻击,不发送GET请求就可以绕过防火墙到达服务器,一般服务器都是共享带宽的,带宽不会超过10M 所以大量的肉鸡攻击数据包就会把这台服务器的共享带宽堵塞造成服务器瘫痪,这种攻击也非常难防护,因为如果只简单的拦截客户端发送过来没有GET字符的数据包,会错误的封锁很多正常的数据包造成正常用户无法访问,后面给大家介绍防火墙的解决方案
针对游戏服务器的攻击
因为游戏服务器非常多,这里介绍最早也是影响更大的传奇游戏,传奇游戏分为登陆注册端口7000,人物选择端口7100,以及游戏运行端口7200,7300,7400等,因为游戏自己的协议设计的非常复杂,所以攻击的种类也花样倍出,大概有几十种之多,而且还在不断的发现新的攻击种类,这里介绍目前最普遍的假人攻击,假人攻击是通过肉鸡模拟游戏客户端进行自动注册、登陆、建立人物、进入游戏活动从数据协议层面模拟正常的游戏玩家,很难从游戏数据包来分析出哪些是攻击哪些是正常玩家。
以上介绍的几种最常见的攻击也是比较难防护的攻击。一般基于包过滤的防火墙只能分析每个数据包,或者有限的分析数据连接建立的状态,防护SYN,或者变种的SYN,ACK攻击效果不错,但是不能从根本上来分析tcp,udp协议,和针对应用层的协议,比如http,游戏协议,软件视频音频协议,现在的新的攻击越来越多的都是针对应用层协议漏洞,或者分析协议然后发送和正常数据包一样的数据,或者干脆模拟正常的数据流,单从数据包层面,分析每个数据包里面有什么数据,根本没办法很好的防护新型的攻击。
SYN攻击解析
SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费CPU和内存资源。TCP协议建立连接的时候需要双方相互确认信息,来防止连接被伪造和精确控制整个数据传输过程数据完整有效。所以TCP协议采用三次握手建立一个连接。
之一次握手:建立连接时,客户端发送syn包到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN 同时自己也发送一个SYN包 即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
SYN攻击利用TCP协议三次握手的原理,大量发送伪造源IP的SYN包也就是伪造之一次握手数据包,服务器每接收到一个SYN包就会为这个连接信息分配核心内存并放入半连接队列,如果短时间内接收到的SYN太多,半连接队列就会溢出,操作系统会把这个连接信息丢弃造成不能连接,当攻击的SYN包超过半连接队列的更大值时,正常的客户发送SYN数据包请求连接就会被服务器丢弃, 每种操作系统半连接队列大小不一样所以抵御SYN攻击的能力也不一样。那么能不能把半连接队列增加到足够大来保证不会溢出呢,答案是不能,每种操作系统都有 *** 来调整TCP模块的半连接队列更大数,例如Win2000操作系统在注册表 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里 TcpMaxHalfOpen,TcpMaxHalfOpenRetried ,Linux操作系统用变量tcp_max_syn_backlog来定义半连接队列的更大数。但是每建立一个半连接资源就会耗费系统的核心内存,操作系统的核心内存是专门提供给系统内核使用的内存不能进行虚拟内存转换是非常紧缺的资源windows2000 系统当物理内存是4g的时候 核心内存只有不到300M,系统所有核心模块都要使用核心内存所以能给半连接队列用的核心内存非常少。Windows 2003 默认安装情况下,WEB SERVER的80端口每秒钟接收5000个SYN数据包一分钟后网站就打不开了。标准SYN数据包64字节 5000个等于 5000*64 *8(换算成bit)/1024=2500K也就是 2.5M带宽 ,如此小的带宽就可以让服务器的端口瘫痪,由于攻击包的源IP是伪造的很难追查到攻击源,,所以这种攻击非常多。
如何防止和减少DDOS攻击的危害
拒绝服务攻击的发展
从拒绝服务攻击诞生到现在已经有了很多的发展,从最初的简单Dos到现在的DdoS。那么什么是Dos和DdoS呢?DoS是一种利用单台计算机的攻击方式。而DdoS(Distributed Denial of Service,分布式拒绝服务)是一种基于DoS的特殊形式的拒绝服务攻击,是一种分布、协作的大规模攻击方式,主要瞄准比较大的站点,比如一些商业公司、搜索引擎和 *** 部门的站点。DdoS攻击是利用一批受控制的机器向一台机器发起攻击,这样来势迅猛的攻击令人难以防备,因此具有较大的破坏性。如果说以前 *** 管理员对抗Dos可以采取过滤IP地址 *** 的话,那么面对当前DdoS众多伪造出来的地址则显得没有办法。所以说防范DdoS攻击变得更加困难,如何采取措施有效的应对呢?下面我们从两个方面进行介绍。
预防为主保证安全
DdoS攻击是黑客最常用的攻击手段,下面列出了对付它的一些常规 *** 。
(1)定期扫描
要定期扫描现有的 *** 主节点,清查可能存在的安全漏洞,对新出现的漏洞及时进行清理。骨干节点的计算机因为具有较高的带宽,是黑客利用的更佳位置,因此对这些主机本身加强主机安全是非常重要的。而且连接到 *** 主节点的都是服务器级别的计算机,所以定期扫描漏洞就变得更加重要了。
(2)在骨干节点配置防火墙
防火墙本身能抵御DdoS攻击和其他一些攻击。在发现受到攻击的时候,可以将攻击导向一些牺牲主机,这样可以保护真正的主机不被攻击。当然导向的这些牺牲主机可以选择不重要的,或者是linux以及unix等漏洞少和天生防范攻击优秀的系统。
(3)用足够的机器承受黑客攻击
这是一种较为理想的应对策略。如果用户拥有足够的容量和足够的资源给黑客攻击,在它不断访问用户、夺取用户资源之时,自己的能量也在逐渐耗失,或许未等用户被攻死,黑客已无力支招儿了。不过此 *** 需要投入的资金比较多,平时大多数设备处于空闲状态,和目前中小企业 *** 实际运行情况不相符。
(4)充分利用 *** 设备保护 *** 资源
所谓 *** 设备是指路由器、防火墙等负载均衡设备,它们可将 *** 有效地保护起来。当 *** 被攻击时更先死掉的是路由器,但其他机器没有死。死掉的路由器经重启后会恢复正常,而且启动起来还很快,没有什么损失。若其他服务器死掉,其中的数据会丢失,而且重启服务器又是一个漫长的过程。特别是一个公司使用了负载均衡设备,这样当一台路由器被攻击死机时,另一台将马上工作。从而更大程度的削减了DdoS的攻击。
(5)过滤不必要的服务和端口
过滤不必要的服务和端口,即在路由器上过滤假IP……只开放服务端口成为目前很多服务器的流行做法,例如WWW服务器那么只开放80而将其他所有端口关闭或在防火墙上做阻止策略。
(6)检查访问者的来源
使用Unicast Reverse Path Forwarding等通过反向路由器查询的 *** 检查访问者的IP地址是否是真,如果是假的,它将予以屏蔽。许多黑客攻击常采用假IP地址方式迷惑用户,很难查出它来自何处。因此,利用Unicast Reverse Path Forwarding可减少假IP地址的出现,有助于提高 *** 安全性。
(7)过滤所有RFC1918 IP地址
RFC1918 IP地址是内部网的IP地址,像10.0.0.0、192.168.0.0 和172.16.0.0,它们不是某个网段的固定的IP地址,而是Internet内部保留的区域性IP地址,应该把它们过滤掉。此 *** 并不是过滤内部员工的访问,而是将攻击时伪造的大量虚假内部IP过滤,这样也可以减轻DdoS的攻击。
(8)限制SYN/ICMP流量
用户应在路由器上配置SYN/ICMP的更大流量来限制SYN/ICMP封包所能占有的更高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的 *** 访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是更好的防范DOS的 *** ,虽然目前该 *** 对于DdoS效果不太明显了,不过仍然能够起到一定的作用。
寻找机会应对攻击
如果用户正在遭受攻击,他所能做的抵御工作将是非常有限的。因为在原本没有准备好的情况下有大流量的灾难性攻击冲向用户,很可能在用户还没回过神之际, *** 已经瘫痪。但是,用户还是可以抓住机会寻求一线希望的。
(1)检查攻击来源,通常黑客会通过很多假IP地址发起攻击,此时,用户若能够分辨出哪些是真IP哪些是假IP地址,然后了解这些IP来自哪些网段,再找网网管理员将这些机器关闭,从而在之一时间消除攻击。如果发现这些IP地址是来自外面的而不是公司内部的IP的话,可以采取临时过滤的 *** ,将这些IP地址在服务器或路由器上过滤掉。
(2)找出攻击者所经过的路由,把攻击屏蔽掉。若黑客从某些端口发动攻击,用户可把这些端口屏蔽掉,以阻止入侵。不过此 *** 对于公司 *** 出口只有一个,而又遭受到来自外部的DdoS攻击时不太奏效,毕竟将出口端口封闭后所有计算机都无法访问internet了。
(3)最后还有一种比较折中的 *** 是在路由器上滤掉ICMP。虽然在攻击时他无法完全消除入侵,但是过滤掉ICMP后可以有效的防止攻击规模的升级,也可以在一定程度上降低攻击的级别。
不知道身为 *** 管理员的你是否遇到过服务器因为拒绝服务攻击(DDOS攻击)都瘫痪的情况呢?就 *** 安全而言目前最让人担心和害怕的入侵攻击就要算是DDOS攻击了。他和传统的攻击不同,采取的是仿真多个客户端来连接服务器,造成服务器无法完成如此多的客户端连接,从而无法提供服务。
目前 *** 安全界对于DdoS的防范有效的防御办法:
可以采用因尔特 *** 数据中心推出的 *** 防御防攻击系统:本系统对于攻击采用智能识别实时进行攻击流量的转移,让攻击者的流量作用在服务器上的流量控制在最小的程度从而到达防御防攻击的目的,无论是G口发包还是肉鸡攻击,使用我们 *** 防御防攻击系统在保障您个人服务器或者数据安全的状态下,只影响瞬间某个地区某部分用户的使用,保证其他用户的正常使用。并且系统会在较短时间内恢复已经瘫痪的用户访问.还可以让G口发包的服务器或者肉鸡发出的数据包全部浪费与耗尽完.试想如果攻击的流量在白白浪费和消耗掉,黑客也不能真实把流量作用在你的网站或服务器上,那黑客用什么来攻击您的网站呢?
如果按照系统的 *** 和思路去防范DdoS的话,收到的效果还是非常明显的,可以将攻击带来的损失降低到最小。
你了解下,希望对你有帮助.
网站nginx配置限制单个IP访问频率,预防DDOS恶意攻击
对于网站来说,尤其是流量较大出名的网站,经常遇到攻击,如DDOS攻击等,虽然有些第三方,如Cloudflare可以挡,但对于动态网站PHP来说,只能挡一部分。这时候需要对于单个IP恶意攻击做出限流。nginx的两个模块可以限流。
nginx两个限流模块:
连接频率限制,ngx_http_limit_conn_module:官方文档:
请求频率限制,ngx_http_limit_req_module:官方文档:
网上理论很多,根据名字可知:
当然还是看不懂的话,通俗点讲(相对于时间比较):
比如秒杀,抢购,连接频率限制和请求频率限制应该配合使用 , 使用连接频率限制同一IP同时只能有3个连接, 再使用请求频率限制对于同一ip的请求,限制平均速率为5个请求/秒 , 这样比单独只使用一种限制要好很多。
比如只使用请求频率限制 , 可以精确地限制同一ip1秒只能发起5次的http请求 , 假如同一ip1秒内发起了100000次请求 , 虽然限制了只有5次成功响应 , 但是其他的99995次的请求TCP握手建立http连接是不是会消耗服务器资源? 所以还需要配合使用。
1、limit_req_zone,示例:
2、limit_conn_zone,示例:
3、搭配一起使用
1、ab命令
ab是apache自带的压力测试工具。一般不用额外安装,ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
测试命令
2、wrk命令
需自己安装,地址:
安装
测试命令:
还有其他压测工具,自行研究
怎么预防DDOS攻击,更好是能详细的说明一下遇到什么情况就可以说明是DDOS攻击
DDOS全名是Distributed Denial of service中文名:分布式拒绝服务攻击
原理:很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击,进一步解释就是通过技术控制很多的电脑,对某个IP地址短时间内发送大量数据包,占用服务器带宽使之崩溃.
遇到什么情况就可以说明是DDOS攻击:
发现自己的服务器流量突然上涨,并且服务器上的网站访问速度突然下降可以说明是有DDos攻击.
解决 *** :
断开服务器 *** ,或者暂停服务器服务.
专业解决的话,就应该求助服务器托管商了.
阿里云的服务器给攻击了,这种问题怎么解决?
服务器受攻击的方式主要有以下几种:
1.数据包洪水攻击
一种中断服务器或本地 *** 的 *** 是数据包洪水攻击,它通常使用Internet控制报文协议(ICMP)包或是UDP包。
2.磁盘攻击
这是一种更残忍的攻击,它不仅仅影响目标计算机的通信,还破坏其硬件。伪造的用户请求利用写命令攻击目标计算机的硬盘,让其超过极限,并强制关闭。
3.路由不可达
通常,DoS攻击集中在路由器上,攻击者首先获得控制权并操纵目标机器。当攻击者能够更改路由器的路由表条目的时候,会导致整个 *** 不可达。这种攻击是非常阴险的,因为它开始出现的时候往往令人莫名其妙。
为什么会被黑客ddos攻击呢?怎么预防呢?
DDoS 必须透过 *** 上各个团体和使用者的共同合作,制定更严格的 *** 标准来解决。每台 *** 设备或主机都需要随时更新其系统漏洞、关闭不需要的服务、安装必要的防毒和防火墙软件、随时注意系统安全,避免被黑客和自动化的 DDoS 程序植入攻击程序,以免成为黑客攻击的帮凶。
有些 DDoS 会伪装攻击来源,假造封包的来源 ip,使人难以追查,这个部份可以透过设定路由器的过滤功能来防止,只要网域内的封包来源是其网域以外的 ip,就应该直接丢弃此封包而不应该再送出去,如果网管设备都支持这项功能,网管人员都能够正确设定过滤掉假造的封包,也可以大量减少调查和追踪的时间。
网域之间保持联络是很重要的,如此才能有效早期预警和防治 DDoS 攻击,有些 ISP会在一些 *** 节点上放置感应器侦测突然的巨大流量,以提早警告和隔绝 DDoS 的受害区域,降低受害程度。
0条大神的评论