CC攻击的原理与防御
2017-03-11
实例分析CC攻击的危害:
例如,当访问某个页面时,该页面会对后台数据库进行一个查询操作,检测所需的数据是否存储在数据库中。如果存在该数据,就将其显示在页面上,否则就会提示没有所需的内容。实际上,在执行显示操作时也必须对数据库进行一次访问。显然,绝大多数的页面访问都会带来一次甚至多次的数据库访问动作。如果数据库体积庞大,大量的访问操作就会给服务器的CPU,内存等资源造成极大的耗用。当访问量达到移动的量级时,网站就会拒绝相应。这是因为服务器资源枯竭造成的拒绝服务故障,说明CPU已经处理不过来了。
例如,很多网站都提供了搜索功能,但是对用户两次搜索之间的时间是有限制的,即不允许普通用户进行不间断的搜索。因为对于体积较大的数据库来说,搜索操作会占用较多的CPU资源。假设网站的搜索页面名称为“Sous.asp”,服务器对该页面的处理时间为0.01秒。这样,在一秒钟之内可以满足100个用户的搜索需要,服务器允许的最大连接时间为60秒,可以处理6000次搜索请求。当黑客对其发起CC攻击时,如果其操作200个代理服务器发起并发连接,在一分钟之内就可向服务器12000次。这对服务器造成了极大压力。当CPU资源占用率连续两分钟处于100%时,后续大量发送的连接申请就会进行排队处理。此时无论是按照顺序依次处理搜索请求,还是按照顺序丢弃连接申请,都会让处于超级忙碌状态的CPU无暇顾及了。这样,仅仅几分钟,该网站就无法正常访问了。
了解黑客的伎俩
根据以上分析,黑客实施CC工具是很容易的,通过使用专用的CC攻击程序,利用大量的代理服务器,对目标页面进行连续的访问,导致网站后台数据库产生大量的调用操作,占用大量的CPU处理时间。
黑客之所以使用CC攻击,在于代理攻击可以很好的保持攻击连续性,当黑客在本机执行攻击操作后,代理服务器会不断的访问目标网站,黑客主机断开连接后,代理服务器还会“忠实”的执行连续不断的连接访问动作,造成连续不简单的攻击效果。可以说,CC攻击的方式非常简单,但是其危害却不可忽视。实际上,黑客利用CC攻击方式,不仅可以攻击常规网站,对FTP等服务器同样可以进行有效攻击。
在服务器端识别CC攻击并不复杂,如可在“CMD”窗口利用“netstat”命令观察网络连接,或使用Sniffer Pro等工具进行嗅探,发现大量IP不停地连接某个端口,并不停的再连接再断开。如此的连接请求会导致网站无法正常工作。或使用KFW防火墙来进行观察,在KFW防火墙监控窗口左侧的“查询视图”列中点击“所有连接连接”项,在右侧窗口显示详细的连接信息。点击“源IP”列,使其按照顺序排列,这样观察起来比较直观。因为黑客发起CC攻击时,会控制上百上千的代理服务器和目标服务器建立连接,来实现好近服务器资源的目的。所以,如果发现源IP列有大量的连接信息,超过平时正常连接的几倍几十倍的话,就说明本机受到了CC攻击。
防御CC攻击的常用方法
那么如何防御CC攻击呢?除了管理员针对网站本身进行安全配置外,还可以使用CC攻击防御专家这款工具,来抗击CC攻击。该工具使用很简单,在其主界面的防御设置栏中拖动滑块,可以调整防御的级别,选择“拦截所有”项,表示拒绝所有从本程序监听端口进来的连接,现有的连接也将被断开。选择“变种CC”项,表示拦截CC变种攻击,选择“普通CC”项,表示连接普通CC攻击,选择“空连接”项,表示拦截在5秒钟之内未向本程序发送任何数据的连接。选择“全部允许”项,表示接受所有网络连接。点击“查看”、“选项”项,在设置窗口中的“常规”面板中可以设置网关地址和端口,服务器地址和需要保护的端口。在高级面板中可以调整连接限制的数量以及最大连接数。如果连接数超过预设值,可以断开连接或者将其添加到限制列表中。在日志查看面板中可以查看日志信息,在连接和限制面板中可以查看当前的网络连接以及被限制的连接,可以将选定的网络连接发送到禁用列表中,让其无法连接服务器。
当然,可以使用KFW防火墙等更加强悍的安全工具,来抗击CC攻击。例如,某台服务器运行了某项网络服务,开启了6000,6001,6001等端口,为了防御针对该服务的CC攻击,打开KFW防火墙管理器,在其中依次点击菜单“设置”、“防火墙设置”、“防火墙规则设置”项,在防火墙规则设置窗口中可以看到,其包括本地接收数据和本机发送数据两个视图。前者用于管控本机所有接收的数据,后者用于管控本机所有发送的数据。
例如,在本机接收数据视图中点击“添加”按钮,在规则设置窗口中输入其名称和描述信息,在“协议类型”列表中选择合适的协议(例如 TCP等),在“发送端IP类型”列表中选择数据包中源IP地址的范围,例如“任何IP地址”等。在“接收端IP类型”列表中选择数据包的目的IP地址。在接收端的“端口类型”列表中选择“等于端口列表”项,在其下添加需要监控的多个端口,例如6000,6001,6001等端口。在“协议属性设置”栏中可以选择不同的协议类型,包括SYN,ACK,FIN等。在每一个属性项下方如果勾选“设置”项,表示需要对其进行检查。点击“高级设置”按钮,在弹出窗口中的“大量IP刷服务器防护”面板中选择“进行大量IP刷服务器防护”和“禁止HTTP”项。这样,防火墙就会自动检查每个源IP发送过来的前10个数据包,如果源IP试图对预设端口进行非正常的HTTP连接,防火墙就会将其IP加入拒绝访问列表,在180秒之内禁止其访问。
按照上述方法再创建一条规则,输入合适的名称和描述信息,在“接收端”栏中的“端口类型”列表中选择“等于端口”项,输入需要监控的某个端口,例如6000端口。该端口需要包含在上一条规则的端口监控序列中。点击“高级设置”按钮,在弹出窗口中选择“进行大量IP刷服务器防护”和“刷SF限制”项,选择“自动防护限制”项,在其下设置在20秒内允许接收35个数据包,当加入到IP禁止访问列表后600秒释放,刚释放的IP允许访问服务器10次等信息。这样,当针对每个源IP对服务器特定端口发送的数据包进行检测时,允许其在20秒内发送35个数据包,如果超过该限制,防火墙就会将其添加到拒绝列表。等待600秒后将该IP释放出来。其刚刚释放出来后,允许其再访问10此,如果超出该限制,继续对其进行封闭。
按照上述方法继续创建新的规则,输入其名称和描述信息。具体设置方法第一条基本相同,同样在“接收端”栏中的“端口类型”列表中选择“等于端口列表”,添加需要监控的端口序列。点击“高级设置”按钮,在弹出窗口中选择“进行大量IP刷服务器防护”和“按访问限制”项,在其下设置在30秒内允许访问服务器25次,将目标IP加入到屏蔽列表后300秒后释放,释放后运行其对服务器再访问10次。该规则的作用是允许每个IP和服务器建立35个连接,如果超过此限制就将其加入到拒绝访问列表,当加入之后经过300秒将其释放,其刚刚释放出来后,允许其再访问10次,如果超出该限制,继续对其进行封锁。
当然,可以针对不同的防护要求,创建更多的安全规则,来实现防御CC攻击的目的。