Web服务器防CC攻击的检测与设置方案

CC攻击是DDOS(分布式拒绝服务)的一种,似乎比其他DDOS攻击更有技术含量。在这种攻击中,你看不到假IP,看不到异常大的流量,但是服务器无法正常连接。我听说一个ADSL足以处理一个高性能的Web服务器。由此可见其危害性,称其为“网络杀手”也不为过。最让站长们担心的是,这种攻击技术含量低,一个初学者或中级计算机水平的用户,利用工具和一些IP代理就可以实施攻击。所以大家有必要了解CC攻击的原理,如果发现CC攻击,如何防范。

1.攻击原则

CC攻击的原理是攻击者控制一些主机不断向对方服务器发送大量数据包,导致服务器资源耗尽直至崩溃。CC主要用于攻击页面。大家都有这样的经历:当一个网页被大量人访问时,网页打开缓慢。CC就是模拟多个用户(有多少用户就有多少线程)不断访问需要大量数据操作(也就是大量CPU时间)的页面,造成服务器资源的浪费。CPU长时间处于100%,总是有无穷无尽的连接,直到网络拥塞,正常访问暂停。

2.攻击的症状

CC攻击具有一定的隐蔽性,那么如何确定服务器正在被攻击或者已经被CC攻击了呢?我们可以通过以下三种方法来确定。

(1).命令行方法

一般在受到CC攻击时,Web服务器的80端口会对外关闭,因为这个端口已经被大量的垃圾数据堵塞,正常连接已经暂停。我们可以通过在命令行输入命令netstat -an来检查它。如果看到大量类似如下的相同连接记录,基本可以被CC攻击了:

……
TCP 192 . 168 . 1 . 3:80 192 . 168 . 1 . 6:2203 SYN _ RECEIVED 4
TCP 192 . 168 . 1 . 3:80 192 . 168 . 1 . 6:2203 SYN _ RECEIVED 4
TCP 192 . 168 . 1 . 3:80 192 . 168 . 1 . 6:2203 SYN _ RECEIVED 4
TCP 192 . 168 . 1 . 3:80 192 . 168 . 1 . 6:2203 SYN _ RECEIVED 4
TCP 192 . 168 . 1 . 3:80 192 . 168 . 1 . 6:2203 SYN _ RECEIVED 4……

其中“192.168.1.6”是用来代理攻击的主机的IP,“SYN_RECEIVED”是TCP连接状态标志,表示“处于连接的初始同步状态”,表示握手回复无法建立,处于等待状态。这是攻击的特征。一般有很多这样的记录,表示来自不同代理IP的攻击。

(2)分批法

以上方法需要手动输入命令,如果Web服务器的IP连接数太多,会比较费力。我们可以通过这个脚本代码建立一个批处理文件来确定是否存在CC攻击。打开记事本,键入以下代码,将其保存为cc.bat: n

@关闭回声
time /t >>log.log
netstat-n-p TCP | find “:80 ” > > log . log
记事本log.log
出口
上面的脚本意味着过滤掉所有当前到端口80的连接。当我们觉得服务器异常时,可以双击运行批处理文件,然后在打开的log.log文件中查看所有连接。如果同一个IP有多个连接到服务器,基本可以确定该IP是CC攻击服务器。

(3).检查系统日志。

以上两种方法都有一个缺点。我们只能检查当前的CC攻击,而无法确定Web服务器之前是否遭受过CC攻击。这时候我们可以通过Web日志来查看,因为Web日志如实记录了所有IP对Web资源的访问。通过查看日记,我们可以发现Web服务器之前是否受到过CC的攻击,并确定攻击者的IP,然后采取进一步的措施。

Web日志一般在目录C:\ Windows \ System32 \ log files \ httperR下,在这个目录下使用了类似httperr1.log这样的日志文件,它是Web访问错误的记录。管理员可以根据日志时间属性选择相应的日志打开,分析网页是否受到CC攻击。

默认情况下,Web日志中记录的项目不多。我们可以通过IIS对它们进行设置,这样就可以在Web日志中记录更多的项目进行安全分析。操作步骤如下:

开始→管理工具打开Internet Information Server,展开左边的项目找到相应的网站,然后右键单击并选择属性打开网站属性窗口,单击网站选项卡下的属性,在日志属性窗口的高级选项卡下选中相应的扩展属性,这样就可以记录Web日志了。比如发送字节、接收字节、经过时间默认不检查,但是在记录和判断CC攻击时非常有用,可以检查。另外,如果你对安全性要求比较高,可以在常规选项卡下设置新的日志计划,让它每小时或者每天都可以记录。选中“使用本地时间命名和创建文件”,以确定未来分析的时间。

3.CC攻防策略

确定Web服务器正在或者已经被CC攻击,那么如何有效防范?根据我的个人经验,作者提供以下防御措施。

(1)取消附加域。

cc攻击一般都是针对网站的域名。比如我们的网站域名是“www.xinadmin.com”,那么攻击者就会在攻击工具中将攻击对象设置为该域名,然后实施攻击。

对于这样的攻击,我们的措施是在IIS上解绑这个域名,让CC攻击失去目标。具体操作步骤如下:打开IIS管理器定位特定站点,右键属性打开该站点的属性面板,点击IP地址右侧的高级按钮,选择要编辑的域名,删除或更改主机头值为另一个值(域名)。

作者用一个例子模拟了这个测试。addon域被取消后,Web服务器的CPU立即恢复正常状态,通过IP的访问和连接全部正常。但是,缺点也很明显。取消或更改域名将保持其他人的访问不变。另外,对于针对IP的CC攻击无效。即使更改域名的攻击者发现了,他也会攻击新的域名。

(2)域名欺骗分析

如果发现针对域名的CC攻击,我们可以将被攻击的域名解析到地址127.0.0.1。我们知道127.0.0.1是本地环回IP,用于网络测试。如果被攻击的域名解析到这个IP,攻击者就可以攻击自己,这样无论他有多少鸡或者代理,都会被打倒,让自己遭殃。

另外,当我们的Web服务器被CC攻击时,我们把被攻击的域名解析到权威的政府网站或者网警的网站,让网警来清理。

现在一般的网站都是使用类似“新网”这样的服务商提供的动态域名解析服务,你登录设置就可以了。

(3).更改Web端口

正常情况下,Web服务器通过80端口向外界提供服务,所以攻击者用默认的80端口进行攻击。因此,我们可以修改Web端口来防止CC攻击。运行IIS管理器,导航到相应的站点,并打开该站点的“属性”面板。“网站ID”下有一个TCP端口,默认值为80,我们可以将其更改为另一个端口。

(4).IIS阻止IP

当我们通过命令或者通过查看日志找到CC攻击的来源IP时,我们可以在IIS中设置IP来阻止其访问网站,从而防止IIS攻击。在相应站点的“属性”面板中,点击“目录安全”选项卡,点击“现在IP地址和域名”下的“编辑”按钮,打开设置对话框。在此窗口中,我们可以设置“授权访问”或“白名单”或“拒绝访问”或“黑名单”。例如,我们可以将攻击者的IP添加到“拒绝访问”列表中,从而阻止该IP访问Web。

(5).IPSec阻止

IPSec是一个优秀的系统防火墙。在排除其他DDOS攻击时,我们可以设置IP策略来应对CC攻击。拿219.128的IP。*.43为例,作者实际上屏蔽了对该IP的访问。

第一步:“开始→管理工具”,打开“本地安全设置”,右键“IP安全策略,在本地机器上”,选择“创建IP安全策略”,然后点击“下一步”,输入策略的名称和描述。然后,默认情况下,“Next”会创建一个名为“Blocking CC Attack”的IPSec策略。

第2步:在本地计算机上,右键单击IP安全策略,选择管理IP筛选器表和筛选器操作,在打开的窗口中单击添加,并在IP筛选器列表窗口中添加与第一步相同的名称和描述信息。取消选中“使用添加向导”,然后单击“添加”。在IP过滤器属性窗口的地址选项下,将源地址设置为“192.168.1.6”,目的地址设置为“我的IP地址”,取消选中“镜像”;单击协议选项卡,将协议类型设置为TCP,并将协议端口设置为从任何端口到此端口80,然后退出。(图9)

第三步:在“新规则属性”窗口中单击新创建的“拦截CC攻击”规则,在“过滤器操作”选项卡下单击“添加”,在“安全措施”下单击“拦截”,在“常规”选项卡下将过滤器命名为“拦截CC攻击”,然后确认退出。

步骤4:单击刚刚创建的“Block CC Attack”过滤器,并在IP策略编辑器中一直单击“OK”。可以看到在组策略窗口中已经成功创建了一个名为“Block CC Attack”的策略,然后右键单击该策略,选择“Assign”。这样,IP就被屏蔽了。

(6)防火墙

除了以上方法,我们还可以通过第三方防火墙进行防范,只需打开防护墙,创建相应的防火墙规则即可。笔者以天网防火墙为例进行论证。

打开天网防火墙进入“IP规则管理”窗口,点击“添加规则”,然后输入规则的名称和描述。选择TCP作为协议类型,数据包的方向是接收,对方的IP地址是指定地址,然后输入IP地址。本地端口被检查为授权程序打开的端口,其他端口留空以表示所有端口。TCP标志位检查为SYN,满足上述条件时,选择block,同时也检查记录、警告和声音。最后,“确定”退出,点击“保存规则”对应规则。

摘要:本文以Web服务器为例,讲述了如何判断CC攻击以及如何防范CC攻击。实际上,除了Web服务器之外,其他服务器也可以进行类似的设置来防止CC攻击。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享