如何正确的防范恶意攻击
一、一般网络恶意攻击分为3类
分别为ARP欺骗攻击、CC攻击、DDoS流量攻击。
( 1 ) ARP欺骗攻击
地址解析协议(ARP)是TCP/IP栈中的一个网络层,它将一个IP地址解析为MAC地址。ARP协议的基本功能是通过目标设备的IP地址查询目标设备的MAC地址,保证通信的进行。ARP攻击只能在以太网(LAN,如:机房、内部网、企业网络等)中进行,无法攻击外部网络(Internet、非本地局域网)。
( 2 ) CC攻击
相对而言,这种攻击比较有害。主机空间中有一个参数IIS连接数。当所访问的网站超过IIS连接数时,网站将出现不可用的服务。攻击者使用受控制的机器不断地向被攻击的网站发送访问请求,迫使IIS超过其连接限制数,当CPU或带宽资源耗尽时,网站将被攻击至关闭。对于高达100兆字节的攻击,防火墙是相当费力的,有时甚至会导致防火墙CPU资源耗尽而导致防火墙崩溃。高达100兆以上,在上层路由时操作员通常会阻止攻击的IP。CC攻击对动态网站造成的破坏最大,通常几台的电脑就可以搞垮一个网站。
(3)DDoS攻击
这是一种DDoS攻击,而且这种攻击是最有害的。其原理是向目标服务器发送大量数据包,占用其带宽。对于流量攻击,简单地添加防火墙是无用的,必须有足够的带宽与防火墙配合进行防御。
二、 解决办法
(1) ARP欺骗
1)ARP欺骗是通过重复应答实现的,那么只需要在本机添加一条静态的ARP映射,这样就不需要询问网关MAC地址了,这种方法只对主机欺骗有效。对于网关欺骗还需要在网关中也添加一条到主机的静态ARP映射。1.用管理身份运行命令提示符;输入netsh i i show in,查看一下本机有哪些网络连接;
2)查看一下网关的MAC地址。注意如果正遭受ARP欺骗攻击,通过此方法查处的可能是虚假的MAC地址。输入arp -a命令查询本机的arp映射表,如果找不到网关的信息,可以先ping一下网关;
3)输入:netsh -c “i i” add neighbors 连接的Idx号 网关IP 网关MAC 添加一条静态映射,我已经添加过了,所以会显示 对象已存在。
(2) CC攻击防御策略
1)取消域名绑定
一般来说,cc攻击的目标是网站的域名。例如,如果我们的网站域名是“mj007.cn”,攻击者会在攻击工具中将目标设置为域名,然后进行攻击。我们对这种攻击的反应是在IIS上解绑定域名,使CC攻击没有目标。具体步骤如下:打开“IIS管理器”来定位特定网站点击右键“属性”打开网站属性面板中,单击“高级”按钮右边的IP地址,选择域名条目进行编辑,删除“主机头值”或改变到另一个值(域名)。
经过模拟测试,取消域名绑定后,Web服务器的CPU立即恢复正常状态,通过IP接入连接一切正常。然而,同样明显的是,取消域名或更改域名不会改变其他人的访问权限。此外,针对IP的CC攻击是无效的,即使更改域名攻击者发现后,他也会攻击新域名。
2)域名欺骗解析
如果发现针对域名的CC攻击,我们可以把被攻击的域名解析到127.0.0.1这个地址上。我们知道127.0.0.1是本地回环IP是用来进行网络测试的,如果把被攻击的域名解析到这个IP上,就可以实现攻击者自己攻击自己的目的,这样他再多的肉鸡或者代理也会宕机,让其自作自受。
另外,当我们的Web服务器遭受CC攻击时把被攻击的域名解析到国家有权威的政府网站或者是网警的网站,让其网警来收拾他们。现在一般的Web站点都是利用类似"新网"这样的服务商提供的动态域名解析服务,大家可以登录进去之后进行设置。
3)更改Web端口
一般情况下Web服务器通过80端口对外提供服务,因此攻击者实施攻击就以默认的80端口进行攻击,所以,我们可以修改Web端口达到防CC攻击的目的。运行IIS管理器,定位到相应站点,打开站点"属性"面板,在"网站标识"下有个TCP端口默认为80,我们修改为其他的端口就可以了。
4)IIS屏蔽IP
我们通过命令或在查看日志发现了CC攻击的源IP,就可以在IIS中设置屏蔽该IP对Web站点的访问,从而达到防范IIS攻击的目的。在相应站点的"属性"面板中,点击"目录安全性"选项卡,点击"IP地址和域名现在"下的"编辑"按钮打开设置对话框。在此窗口中我们可以设置"授权访问"也就是"白名单",也可以设置"拒绝访问"即"黑名单"。比如我们可以将攻击者的IP添加到"拒绝访问"列表中,就屏蔽了该IP对于Web的访问。
5)采用防护CDN
前4种方法都是对网站访问有很大的伤害的,而采用CDN话是可以智能识别别并拦截CC攻击,有效减少了误杀率,让网站可以达到正常访问的效果,国内以阿里云WAF防火墙、蔓捷信息高防最为出名,其中蔓捷信息高防物伤力高,防御能力强,推荐使用。
(3) DDoS攻击防御方法
1)选择带有DDoS硬件防火墙的机房
目前大部分的硬防机房对100G以内的DDoS流量攻击都能做到有效防护。选择硬防主要是针对DDoS流量攻击这一块的,如果你的企业网站一直遭受流量攻击的困扰,那你可以考虑将你的网站服务器放到DDoS防御机房。但是有的企业网站流量攻击超出了硬防的防护范围了,那就得考虑下面第二种了。
2)CDN流量清洗防御
目前,大多数的CDN服务提供商是普通的CDN,不具有保护功能,购买CDN应注意检查,购买可以防止600 Gbps的 DDoS攻击,可以说应对当前绝大多数的DDoS攻击是没问题的。同时,CDN技术不仅对企业网站流量攻击具有保护功能,也可以加快企业的网站的速度(前提应该基于CDN节点的位置),解决某些地方的缓慢网站打开。
3)负载均衡技术
这种类型主要针对DDoS攻击中的CC攻击进行防护,它使web服务器或其他类型的服务器超载,这些服务器具有大量的网络流量,通常由页面或链接生成。当然,这种现象也可能发生在访问量很大的网站上,但我们必须将这些正常的现象与分布式拒绝服务攻击区分开来。将负载均衡方案添加到企业网站后,不仅可以保护网站不受CC攻击,还可以平衡用户对各个web服务器的访问,减轻单个web服务器的负担,加快网站访问速度。
什么是CC攻击,如何防止网站被CC攻击?
CC主要是用来攻击页面的。就是在访问论坛时,如果这个论坛比较大,访问的人比较多,打开页面的速度会比较慢,对不?!一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观,现在知道为什么很多空间服务商都说大家不要上传论坛,聊天室等东西了吧。
一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给你就可以了,但是论坛就不一样了,我看一个帖子,系统需要到数据库中判断我是否有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来——这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果我是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大。
CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面)。很多朋友问到,为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood。
使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(我知道的记录是有人利用2000个代理产生了35万并发连接)。
可能很多朋友还不能很好的理解,我来描述一下吧。我们假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理。有的朋友会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态。
蝴蝶:我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度你可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,可以想象可怕了吧,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大。
当然,CC也可以利用这里方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的。
防范方法
说了攻击原理,大家肯定会问,那么怎么防御?使用硬件防火墙我不知道如何防范,除非你完全屏蔽页面访问,我的方法是通过页面的编写实现防御。
1. 使用Cookie认证。这时候朋友说CC里面也允许Cookie,但是这里的Cookie是所有连接都使用的,所以启用IP+Cookie认证就可以了。
2. 利用Session。这个判断比Cookie更加方便,不光可以IP认证,还可以防刷新模式,在页面里判断刷新,是刷新就不让它访问,没有刷新符号给它刷新符号。给些示范代码吧,Session:
%if session(“refresh”) 1 then
Session(“refresh”)=session(“refresh”)+1
Response.redirect “index.asp”
End if
%
这样用户第一次访问会使得Refresh=1,第二次访问,正常,第三次,不让他访问了,认为是刷新,可以加上一个时间参数,让多少时间允许访问,这样就限制了耗时间的页面的访问,对正常客户几乎没有什么影响。
3. 通过代理发送的HTTP_X_FORWARDED_FOR变量来判断使用代理攻击机器的真实IP,这招完全可以找到发动攻击的人,当然,不是所有的代理服务器都发送,但是有很多代理都发送这个参数。详细代码:
%
Dim fsoObject
Dim tsObject
dim file
if Request.ServerVariables("HTTP_X_FORWARDED_FOR")="" then
response.write "无代理访问"
response.end
end if
Set fsoObject = Server.CreateObject("Scripting.FileSystemObject")
file = server.mappath("CCLog.txt")
if not fsoObject.fileexists(file) then
fsoObject.createtextfile file,true,false
end if
set tsObject = fsoObject.OpenTextFile(file,8)
tsObject.Writeline Request.ServerVariables("HTTP_X_FORWARDED_FOR")"["Request.ServerVariables("REMOTE_ADDR")"]"now()
Set fsoObject = Nothing
Set tsObject = Nothing
response.write "有代理访问"
%
这样会生成CCLog.txt,它的记录格式是:真实IP [代理的IP] 时间,看看哪个真实IP出现的次数多,就知道是谁在攻击了。将这个代码做成Conn.asp文件,替代那些连接数据库的文件,这样所有的数据库请求就连接到这个文件上,然后马上就能发现攻击的人。
4. 还有一个方法就是把需要对数据查询的语句做在Redirect后面,让对方必须先访问一个判断页面,然后Redirect过去。
5. 在存在多站的服务器上,严格限制每一个站允许的IP连接数和CPU使用时间,这是一个很有效的方法。
CC的防御要从代码做起,其实一个好的页面代码都应该注意这些东西,还有SQL注入,不光是一个入侵工具,更是一个DDOS缺口,大家都应该在代码中注意。举个例子吧,某服务器,开动了5000线的CC攻击,没有一点反应,因为它所有的访问数据库请求都必须一个随机参数在Session里面,全是静态页面,没有效果。突然发现它有一个请求会和外面的服务器联系获得,需要较长的时间,而且没有什么认证,开800线攻击,服务器马上满负荷了。
代码层的防御需要从点点滴滴做起,一个脚本代码的错误,可能带来的是整个站的影响,甚至是整个服务器的影响,慎之!
服务器被ddos攻击和CC攻击怎么解决?
最近随着业务的爆发,很多客户都遭到大大小小的ddos攻击和CC攻击,攻击手法的不断进化以及攻击工具的肆意传播,使得攻击成本的不断降低,互联网类业务遭受到的威胁也在不断攀升。本文主要结合锐速云多年网络安全运维经验以及对DDoS的基本理解,浅谈DDos攻击原理和基本防护思路。
DDoS攻击主要分为两大类:DDoS攻击和CC攻击
DDoS攻击主要是通过大流量来快速消耗用户网络带宽,造成网络堵塞服务器宕机,流量型DDoS又可分为直接型和反射型,直接型主要包括SYN\ACK\ICMP\UDPFLOOD等,反射型主要包括NTP\DNS\SSDP反射FLOOD等。
CC其实也是DDos攻击的一种,CC攻击是通过借助代理服务器模拟真实用户请求,实现DDOS和伪装,通过制造大量的后台数据库查询动作来攻击页面,消耗目标资源,造成服务器宕机。
DDos攻击防护思路
1.本地DDos防护设备
一般大型企业都会在本地数据中心部署DDos防护设备,本地DDos防护设备一般分为DDos检测设备、清洗设备和管理中心,防护效果不错但成本非常高,一般中小型企业是承受不了。
2.运营商清洗服务
当流量型攻击的攻击流量超出互联网链路带宽或本地DDos清洗设备性能不足以应对DDos流量攻击时,需要通过运营商清洗服务或借助运营商临时增加带宽来完成攻击流量的清洗,运营商通过各级DDos防护设备以清洗服务的方式帮助用户解决带宽消耗型的DDos攻击行为。
3.云清洗服务
高防CDN是目前互联网企业最常用的防护方式,通过CNAME接入模式更加方便,只需要在域名解析服务商处修改一次解析配置即可生效,实现引流、清洗、回注,提升抗D能力。当某条线路的高防IP出现异常时,CNAME可以自动调度解析到其他可用的线路上去,避免原本解析到该线路的部分业务受到影响,保证业务的可用性。
CC攻击的防护思路
1.部署架构
可将前端WAF或者负载均衡设备部署于HTTPS卸载器之后,从而实现对HTTPS流量的防护能力。
2.使用IP地址信誉库
对请求IP地址进行甄别和过滤,阻止来自恶意IP的服务请求。
3.轻应用部署
应用部署时考虑页面静态比例,尽量让网站静态化,减少不必要的动态查询等方式,同时应急情况下可以将动态页面临时替换为静态页面,减少后台请求数据库/应用服务器的次数。
4.限制单IP连接数量
限制单IP连接数量,降低同一ip攻击者带来的危害和影响。
5.降低连接超时时间
降低连接超时时间,及时释放系统资源应对TCP连接资源耗尽类型的CC攻击。
以上防护手段可以起到一定的防护作用。不过现在的黑客攻击方式越来越多样化,往往是DDoS+CC这种复合型攻击,靠单一的防DDOS或防CC是不够的。锐速云通过自主研发抗DDoS及CC攻击立体式防御系统,全面抵御任何类型的DDoS及CC类型攻击,最高可防御百W级QPS攻击及T级DDoS攻击峰值流量,保障服务器稳定运行。
0条大神的评论