拒绝服务攻击的原理
SYN Flood是当前最流行的DoS(拒绝服务攻击)与DDoS(Distributed Denial Of Service分布式拒绝服务攻击)的方式之一,这是一种利用TCP协议缺陷,发送大量伪造的TCP连接请求,使被攻击方资源耗尽(CPU满负荷或内存不足)的攻击方式。
SYN Flood攻击的过程在TCP协议中被称为三次握手(Three-way Handshake),而SYN Flood拒绝服务攻击就是通过三次握手而实现的。
(1) 攻击者向被攻击服务器发送一个包含SYN标志的TCP报文,SYN(Synchronize)即同步报文。同步报文会指明客户端使用的端口以及TCP连接的初始序号。这时同被攻击服务器建立了第一次握手。
(2) 受害服务器在收到攻击者的SYN报文后,将返回一个SYN+ACK的报文,表示攻击者的请求被接受,同时TCP序号被加一,ACK(Acknowledgment)即确认,这样就同被攻击服务器建立了第二次握手。
(3) 攻击者也返回一个确认报文ACK给受害服务器,同样TCP序列号被加一,到此一个TCP连接完成,三次握手完成。
具体原理是:TCP连接的三次握手中,假设一个用户向服务器发送了SYN报文后突然死机或掉线,那么服务器在发出SYN+ACK应答报文后是无法收到客户端的ACK报文的(第三次握手无法完成),这种情况下服务器端一般会重试(再次发送SYN+ACK给客户端)并等待一段时间后丢弃这个未完成的连接。这段时间的长度我们称为SYN Timeout,一般来说这个时间是分钟的数量级(大约为30秒~2分钟);一个用户出现异常导致服务器的一个线程等待1分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况(伪造IP地址),服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。即使是简单的保存并遍历也会消耗非常多的CPU时间和内存,何况还要不断对这个列表中的IP进行SYN+ACK的重试。实际上如果服务器的TCP/IP栈不够强大,最后的结果往往是堆栈溢出崩溃—— 即使服务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小),此时从正常客户的角度看来,服务器失去响应,这种情况就称作:服务器端受到了SYN Flood攻击(SYN洪水攻击)。
SYN COOKIE 防火墙是SYN cookie的一个扩展,SYN cookie是建立在TCP堆栈上的,他为linux操作系统提供保护。SYN cookie防火墙是linux的 一大特色,你可以使用一个防火墙来保护你的网络以避免遭受SYN洪水攻击。
下面是SYN cookie防火墙的原理
client firewall server
------ ---------- ------
1. SYN----------- - - - - - - - - - -
2. ------------SYN-ACK(cookie)
3. ACK----------- - - - - - - - - - -
4. - - - - - - -SYN---------------
5. - - - - - - - - - ------------SYN-ACK
6. - - - - - - -ACK---------------
7. ----------- relay the -------
----------- connection -------
1:一个SYN包从C发送到S
2:防火墙在这里扮演了S的角色来回应一个带SYN cookie的SYN-ACK包给C
3:C发送ACK包,接着防火墙和C的连接就建立了。
4:防火墙这个时候扮演C的角色发送一个SYN给S
5:S返回一个SYN给C
6:防火墙扮演C发送一个ACK确认包给S,这个时候防火墙和S的连接也就建立了
7:防火墙转发C和S间的数据
如果系统遭受SYN Flood,那么第三步就不会有,而且无论在防火墙还是S都不会收到相应在第一步的SYN包,所以我们就击退了这次SYN洪水攻击。 攻击静态属性主要包括攻击控制模式、攻击通信模式、攻击技术原理、攻击协议和攻击协议层等。
(1)攻击控制方式
攻击控制方式直接关系到攻击源的隐蔽程度。根据攻击者控制攻击机的方式可以分为以下三个等级:直接控制方式(Direct)、间接控制方式(Indirect)和自动控制方式(Auto)。
最早的拒绝服务攻击通常是手工直接进行的,即对目标的确定、攻击的发起和中止都是由用户直接在攻击主机上进行手工操作的。这种攻击追踪起来相对容易,如果能对攻击包进行准确的追踪,通常就能找到攻击者所在的位置。由于直接控制方式存在的缺点和攻击者想要控制大量攻击机发起更大规模攻击的需求,攻击者开始构建多层结构的攻击网络。多层结构的攻击网络给针对这种攻击的追踪带来很大困难,受害者在追踪到攻击机之后,还需要从攻击机出发继续追踪控制器,如果攻击者到最后一层控制器之间存在多重跳板时,还需要进行多次追踪才能最终找到攻击者,这种追踪不仅需要人工进行操作,耗费时间长,而且对技术也有很高的要求。这种攻击模式,是目前最常用的一种攻击模式。自动攻击方式,是在释放的蠕虫或攻击程序中预先设定了攻击模式,使其在特定时刻对指定目标发起攻击。这种方式的攻击,从攻击机往往难以对攻击者进行追踪,但是这种控制方式的攻击对技术要求也很高。Mydoom蠕虫对SCO网站和Microsoft网站的攻击就属于第三种类型[TA04-028A]。
(2)攻击通信方式
在间接控制的攻击中,控制者和攻击机之间可以使用多种通信方式,它们之间使用的通信方式也是影响追踪难度的重要因素之一。攻击通信方式可以分为三种方式,分别是:双向通信方式(bi)、单向通信方式(mono)和间接通信方式(indirection)。
双向通信方式是指根据攻击端接收到的控制数据包中包含了控制者的真实IP地址,例如当控制器使用TCP与攻击机连接时,该通信方式就是双向通信。这种通信方式,可以很容易地从攻击机查找到其上一级的控制器。
单向通信方式指的是攻击者向攻击机发送指令时的数据包并不包含发送者的真实地址信息,例如用伪造IP地址的UDP包向攻击机发送指令。这一类的攻击很难从攻击机查找到控制器,只有通过包标记等IP追踪手段,才有可能查找到给攻击机发送指令的机器的真实地址。但是,这种通信方式在控制上存在若干局限性,例如控制者难以得到攻击机的信息反馈和状态。
间接通信方式是一种通过第三者进行交换的双向通信方式,这种通信方式具有隐蔽性强、难以追踪、难以监控和过滤等特点,对攻击机的审计和追踪往往只能追溯到某个被用于通信中介的公用服务器上就再难以继续进行。这种通信方式已发现的主要是通过IRC(Internet Relay Chat)进行通信[Jose Nazario],从2000年8月出现的名为Trinity的DDoS攻击工具开始,已经有多种DDoS攻击工具及蠕虫采纳了这种通信方式。在基于IRC的傀儡网络中,若干攻击者连接到Internet上的某个IRC服务器上,并通过服务器的聊天程序向傀儡主机发送指令。
(3)攻击原理
DoS攻击原理主要分为两种,分别是:语义攻击(Semantic)和暴力攻击(Brute)。
语义攻击指的是利用目标系统实现时的缺陷和漏洞,对目标主机进行的拒绝服务攻击,这种攻击往往不需要攻击者具有很高的攻击带宽,有时只需要发送1个数据包就可以达到攻击目的,对这种攻击的防范只需要修补系统中存在的缺陷即可。暴力攻击指的是不需要目标系统存在漏洞或缺陷,而是仅仅靠发送超过目标系统服务能力的服务请求数量来达到攻击的目的,也就是通常所说的风暴攻击。所以防御这类攻击必须借助于受害者上游路由器等的帮助,对攻击数据进行过滤或分流。某些攻击方式,兼具语义和暴力两种攻击的特征,比如SYN风暴攻击,虽然利用了TCP协议本身的缺陷,但仍然需要攻击者发送大量的攻击请求,用户要防御这种攻击,不仅需要对系统本身进行增强,而且也需要增大资源的服务能力。还有一些攻击方式,是利用系统设计缺陷,产生比攻击者带宽更高的通信数据来进行暴力攻击的,如DNS请求攻击和Smurf攻击,参见4.2.3节以及文献[IN-2000-04]和[CA-1998-01]。这些攻击方式在对协议和系统进行改进后可以消除或减轻危害,所以可把它们归于语义攻击的范畴。
(4)攻击协议层
攻击所在的TCP/IP协议层可以分为以下四类:数据链路层、网络层、传输层和应用层。
数据链路层的拒绝服务攻击[Convery] [Fischbach01][Fischbach02]受协议本身限制,只能发生在局域网内部,这种类型的攻击比较少见。针对IP层的攻击主要是针对目标系统处理IP包时所出现的漏洞进行的,如IP碎片攻击[Anderson01],针对传输层的攻击在实际中出现较多,SYN风暴、ACK风暴等都是这类攻击,面向应用层的攻击也较多,剧毒包攻击中很多利用应用程序漏洞的(例如缓冲区溢出的攻击)都属于此类型。
(5)攻击协议
攻击所涉及的最高层的具体协议,如SMTP、ICMP、UDP、HTTP等。攻击所涉及的协议层越高,则受害者对攻击包进行分析所需消耗的计算资源就越大。 攻击动态属性主要包括攻击源地址类型、攻击包数据生成模式和攻击目标类型。
(1)攻击源地址类型
攻击者在攻击包中使用的源地址类型可以分为三种:真实地址(True)、伪造合法地址(Forge Legal)和伪造非法地址(Forge Illegal)。
攻击时攻击者可以使用合法的IP地址,也可以使用伪造的IP地址。伪造的IP地址可以使攻击者更容易逃避追踪,同时增大受害者对攻击包进行鉴别、过滤的难度,但某些类型的攻击必须使用真实的IP地址,例如连接耗尽攻击。使用真实IP地址的攻击方式由于易被追踪和防御等原因,近些年来使用比例逐渐下降。使用伪造IP地址的攻击又分为两种情况:一种是使用网络中已存在的IP地址,这种伪造方式也是反射攻击所必需的源地址类型;另外一种是使用网络中尚未分配或者是保留的IP地址(例如192.168.0.0/16、172.16.0.0/12等内部网络保留地址[RFC1918])。
(2)攻击包数据生成模式
攻击包中包含的数据信息模式主要有5种:不需要生成数据(None)、统一生成模式(Unique)、随机生成模式(Random)、字典模式(Dictionary)和生成函数模式(Function)。
在攻击者实施风暴式拒绝服务攻击时,攻击者需要发送大量的数据包到目标主机,这些数据包所包含的数据信息载荷可以有多种生成模式,不同的生成模式对受害者在攻击包的检测和过滤能力方面有很大的影响。某些攻击包不需要包含载荷或者只需包含适当的固定的载荷,例如SYN风暴攻击和ACK风暴攻击,这两种攻击发送的数据包中的载荷都是空的,所以这种攻击是无法通过载荷进行分析的。但是对于另外一些类型的攻击包,就需要携带相应的载荷。
攻击包载荷的生成方式可以分为4种:第一种是发送带有相同载荷的包,这样的包由于带有明显的特征,很容易被检测出来。第二种是发送带有随机生成的载荷的包,这种随机生成的载荷虽然难以用模式识别的方式来检测,然而随机生成的载荷在某些应用中可能生成大量没有实际意义的包,这些没有意义的包也很容易被过滤掉,但是攻击者仍然可以精心设计载荷的随机生成方式,使得受害者只有解析到应用层协议才能识别出攻击数据包,从而增加了过滤的困难性。第三种方式是攻击者从若干有意义载荷的集合中按照某种规则每次取出一个填充到攻击包中,这种方式当集合的规模较小时,也比较容易被检测出来。最后一种方式是按照某种规则每次生成不同的载荷,这种方式依生成函数的不同,其检测的难度也是不同的。
(3)攻击目标类型
攻击目标类型可以分为以下6类:应用程序(Application)、系统(System)、网络关键资源(Critical)、网络(Network)、网络基础设施(Infrastructure)和因特网(Internet)。
针对特定应用程序的攻击是较为常见的攻击方式,其中以剧毒包攻击较多,它包括针对特定程序的,利用应用程序漏洞进行的拒绝服务攻击,以及针对一类应用的,使用连接耗尽方式进行的拒绝服务攻击。针对系统的攻击也很常见,像SYN风暴、UDP风暴[CA-1996-01]以及可以导致系统崩溃、重启的剧毒包攻击都可以导致整个系统难以提供服务。针对网络关键资源的攻击包括对特定DNS、路由器的攻击。而面向网络的攻击指的是将整个局域网的所有主机作为目标进行的攻击。针对网络基础设施的攻击需要攻击者拥有相当的资源和技术,攻击目标是根域名服务器、主干网核心路由器、大型证书服务器等网络基础设施,这种攻击发生次数虽然不多,但一旦攻击成功,造成的损失是难以估量的[Naraine02]。针对Internet的攻击是指通过蠕虫、病毒发起的,在整个Internet上蔓延并导致大量主机、网络拒绝服务的攻击,这种攻击的损失尤为严重。
网站被CC攻击该如何防御
CUP使用率如果经常百分百的话,很可能是受到cc攻击。
cc攻击,是一种以网站页面为攻击目标的应用层攻击,攻击时选择服务器开放的页面中需要较多资源开销的应用。例如占用大量cpu资源进行运算或需要大量访问数据库的应用。因此攻击会造成服务器CPU使用率百分之百。
cc攻击的特点:
很小的流量达到拒绝服务的效果;
正常访问特征,攻击特征不明显,没有长时间的半开连接,也没有大量的tcp或UDP的syn包流量出现,很难与正常访问区分。
cc攻击的检测方法:
1.cookie认证,验证浏览器端cookie;
2.通过HTTP_X_FORWARDED_FOR变量检测代理服务器,提供代理时会通过HTTP_X_FORWARDED_FOR变量发送原始的用户
ip地址,根据这个变量可以统计在一段时间内同一原始ip通过不同的代理服务器发送了多少个访问请求,如果超出正常值,就可以认定为攻击行为;
3.将页面中需要进行数据访问或者较复杂处理的内容放在一个重定向指令之后,访问该页面得用web服务器访问重定向功能先让用户访问一个简单的预处理页
面,由预处理页面记录用户访问信息,并进行认证,通过认证的请求重定向到执行用户访问请求的页面,对用户访问信息设置过期,如果一段时间内出现大量用户信息过去,就可以判断出页面正受到攻击;
4.建立网站各个页面访问量分布模型,当用户访问分布情况发生较大的变化时,可以判定为发生cc攻击了。
cc攻击的防御只需要在服务器上装上相应的服务器安全防御软件就可以达到效果了,至于这类的软件可以百度上自行搜索,服务器安全狗效果不错,建议可以考虑。
网站被CC攻击该如何防御?
网站被攻击是一件十分让人恼火的事情,不仅仅是让网站速度变慢、访问异常,导致用户体验变差,用户大量流失,而且还会导致网站关键词排名下降甚至被降权,极大干扰了网站的正常稳定运行。那面对CC攻击,该如何进行防御呢?
1、把网站做成静态页面:大量事实证明,把网站尽可能做成静态页面,不仅能大大提高抗攻击能力,而且还给骇客入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现。像新浪、搜狐、网易等大型门户网站基本上都是静态页面。
2、利用Session做访问计数器:利用Session针对每个IP做页面访问计数器或文件下载计数器,防止用户对某个页面频繁刷新导致数据库频繁读取或频繁下载某个文件而产生大额流量。
3、在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口。CC的防御要从代码做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响!
4、在IDC机房前端部署防火墙或者流量清洗的一些设备,还可以接入像墨者安全那样的专业高防服务,隐藏服务器真实IP,利用新的WAF算法过滤技术,综合大数据分析变种穿盾CC保护或者采用大带宽的高防机房来清洗DDOS攻击。此外,服务器上部署的其他域名也不能使用真实IP解析,全部都使用CDN来解析。
现在公司的一台linuxWEB服务器 收到攻击 发现服务器中的 两个WEB站点在不停地发包 导致CPU使用率过高
服务器发包就是服务器向外发送流量,一般都是服务器被入侵了,才会向外发包。
为什么发包? 黑客为的就是入侵你的服务器,利用服务器的宽带流量,来进行攻击别人。
如果服务器(网站)被入侵了,一般都是服务器或者网站存在漏洞,被黑客利用并提权入侵的,导致服务器中木马,网站被挂黑链,被篡改,被挂马。解决办法:如果程序不是很大,可以自己比对以前程序的备份文件,然后就是修复,或者换个服务器,最好是独立服务器。也可以通过安全公司来解决,国内也就Sinesafe和绿盟等安全公司 比较专业.
服务器怎么配CPU?想配一台服务器,CPU要怎么选
您好,主板可以用华硕的Z9PED8(虽然只有8个内存槽但是和D16一样,支持最大128G内存),双路LGA2011的cpu接口,可以选两个新款的E5 4610,或者2665之类的(前者是新款的6核12线程,后者是经典的8核16线程,具体就看你对性能和功耗的需求了),主板是5000不到,两个cpu3000多,
金士顿的16G单条1333内存是800多一根,(一般有两根也差不多够了),
专业图形卡比如Q600是1000多一片,V8800不到4000一片,这就看具体工作了,毕竟很多图形工作其实只要显卡的指令集就够了,主要还是看cpu。
建议您陪好一点的CPU,i3 ,i5,i7都成呀。另外内存也要跟上,硬盘无所谓了。
如何监控服务器的cpu内存使用情况
你是指在服务器上看还是远程用客户机看?
服务器的话直接呼出任务管理器看就是了
远程的话,服务器电脑上设置允许远程
嫩个远程桌面来查看服务器的信息就是了
0条大神的评论