随着Internet的发展出现了由于大量傻瓜化黑客工具,任何一种黑客攻击手段的门槛都降低了很多,但是暴力破解法的工具制作都已经非常容易,大家通常会认为暴力破解攻击只是针对某一种FTP服务器发起的攻击,能具有代表性吗?可以拓展到其他的网络?或服务器上吗?答案当然是肯定的。暴力破解这种软件,使用起来没有什么技术含量原理就是一个接一个的试,直到试验出正确的密码,也就是破解成功了。不过这种破解方式成功几率不高,耗费时间多,技术成分低,不是迫不得已是不使用的。在网络的实际情况中,很多FTP服务器虽说都是经过了层层的安全防护的,即便是经过防护的FTP服务器,同样可以在攻击者简单地调整攻击方式以后,运用暴力破解快速突破。本文谈谈各种攻击技术对服务器的影响,仅供网络管理人员在平时工作中,制定安全防范策略时参考使用。
一、网络本身的负载能力与高速网络
所有的网络攻击,都是基于网络而发起的,这就决定了网络是一切网络攻击、安全防护技术的根本。如果攻击者处于一个网络资源极度缺乏的环境之中,想要发起高级的网络攻击也是力不从心的。同时,如果防御者处于一个并非优秀的网络中,网络正常服务本身都很难为正常用户提供,更不用说进行网络安全防护了。
1. 网络带宽的束缚
从国内刚刚出现互联网开始,到今天网络的普及,网龄比较长的网民都经历了使用调制解调器拨号上网的举步维艰,也都经历了1Mb/s、2Mb/s甚至10Mb/s的高速网络,而网络安全,同样经历了这样的一个由慢到快、从低速到高速的过程,在这个过程之中,很多原本看起来根本不可能的攻击技术,也已经可以很顺畅地发起了。很多攻击者在进行这样的攻击的时候,都会发现一个很奇特的现象:刚刚对目标发起了分布式的暴力破解攻击,10分钟后目标服务器因为带宽拥堵,竟然瘫痪了……
对攻击者来说,这是很让人啼笑皆非的事情,因为攻击者的目标原本是为了通过暴力破解获得某些机密的、内部的FTP资料,但是无意间却造成了目标服器的整体瘫痪,这显然是攻击者不愿意看到的结果。这也是攻击者和网络安全工程师因为网络带宽造成的困扰之一。
另一方面,暴力破解因为自身特性,所有的验证过程都是通过向服务器据提交信息、获得服务器返回信息并进行判断而进行的。在这个过程中,不管是服务器的网络带宽质量,还是攻击者使用的僵尸计算机本身的网络带宽速度,都在很大程度上决定了暴力破解整个完成时间的长短。就目前的网络带宽来说,要顺畅、高速地发起FTP的暴力破解攻击,还是有一定难度的。一般情况下攻击者动用上百台僵尸计算机进行攻击就已经是暴力破解的极限,因为即使再增加僵尸计算机,网络带宽的限制也不允许更多的数据收发的进行。所以,第二个限制暴力破解攻击整体效率提高的因素,就是僵尸计算机本身的网络带宽质量。
从现阶段国内四处都在进行的轰轰烈烈的网络速度提升来看,不难预见不久后的将来,整体网络速度将有非常大的提高。就像今天国际公认的平均个人网速最快的国家韩国一样,人均网速达到10Mb/s,20Mb/s甚至更多。
虽然网络速度的提升正在飞速的发展着,但是对攻击者来说,不可能恰好子就遇到拥有高速网络的僵尸计算机或者目标服务器。于是就有读者提问:现阶段的攻击者是如何解决网络带宽的问题的呢?以后如果出现网络整体速度都得到很大提升的时候,攻击者的暴力破解攻又将有怎么样的发展呢?
2.内部高速网络和分布式破解解决带宽难题
先解决第一个问题:现阶段的攻击者是如何解决网络带宽的问题的呢?举例来说,一个攻击者妄图获得某会员制网站的FTP账户权限,因为里面有很多内部付费使用的资料。但是这个会员制网站服务器的网络带宽质量并不高,如果采用分布式的暴力破解攻击,可能十几台僵尸计算机就足以让这个服务器瘫痪了,攻击者显然是不愿意看到这样情况的发生的。
在实际的网络攻击案例中,很多攻击者都遇到了这样的问题,他们的解决方法也很巧妙,也非常实用:利用内部网络通信的高速来解决暴力破解的网络带宽难题。有一定网络经验的网民都知道,中国现在的服务器,一般都是托管在IDC或者机房的,而正常情况下IDC或者机房会进行很多的网络带宽限制,在机房的入口路由或者机柜的防火墙上限制带宽,让由外对内的网络带宽变得很窄-毕竟机房很多情况下都是通过带宽来进行托管收费的。
现在的服务器配置一般都是千兆网卡,但是对外的网络带宽不可能做到千兆全开。一般中小站点能购买5~10Mb/s的独立带宽就很不错了,也就是说这样的服务器在提供对外的访问的时候,即使网络堵塞了,用户打不开网站了,FTP无法提供正常服务了。实际上就服务器本身的硬件性能来说,还有极大的容余可以用来提供网络服务,只是出入口网络带宽不足而已。就目前国内的整体网络安全意识来看,对资深的攻击者来说,在一个存放着几百台服务器的机房中找寻一台"肉鸡",并不是很难的技术问题。找到这样的内部服务器有什么用呢?攻击者当然可以选择用来发起暴力破解攻击。对一个千兆网卡来说,如果是在内部网络中进行访问,数据的中转和网络损耗本是可以忽视的。这就好比由一个1Mb/s的ADSL猫连接的两个家用计算机,虽然从网络上下载文件大概只有150Mb/s的速度,但是如果两个计算机之间传送文件的话,8Mb/s的内网速度还是很容易实现的。所以,现阶段的攻击者如果想要发起效率非常高的FTP暴力破解,在目标服务器的网络带宽存在束缚的时候,-机柜中的服务器,并利用内部网络高速的特点发起超快的FTP暴力破解。
再说说另一个问题:以后如果出现网络整体速度都得到很大提升的情况,攻击者的暴力破解攻击又将有怎么样的发展呢? 其实同第一个问题相比,这个问题已经在大范围内得到了解决,而且很多攻击者现在就是这样发起攻击的,那就是:分布式暴力破解。在之所有有些攻击者因为网络带宽的问题无法发起大范围的分布式暴力破解攻击,原因更多的还是目标服务器的网络带宽限制,而不是僵尸计算机本身的网络带宽。因为僵尸计算机的网络带宽就算不足,就算很慢,攻击者完全可以使用数量代替质量的方式,利用很多网络带宽不好的僵尸计算机发起大规模的暴力破解,毕竟因为网络安全意识低下,僵尸计算机还是很容易捕获的。当目标服务器的带宽在不久后的未来得到大力提升的时候,攻击者完全可以利用成千上万的僵尸计算机发起大规模的分布式暴力破解攻击,只要目标计算机的网络带宽足以承受这样的攻击,那么攻击者在极短的时间内就可以完成看似非常庞大的密码集的暴力破解攻击。
二、CPU运算、处理能力低下的解决方法
同几年前的硬件性能相比,现在的计算机、服务器的运算处理能力已经得到了飞速的发展。正如计算机专家普遍认为的一样,可以预见的是,硬件处理能力的提高将在很长一段时间内,持续而稳定地高速进步。
1. 运算处理能力的束缚
单就暴力破解来说,运算处理能力包括两方面的束缚:一方面是目标服务器的处理能力,另一方面是发起攻击的计算机的处理能力。目标服务器的处理能力决定了攻击者可以运用多大量级的攻击规模。
比如针对一个普通的小型FTP服务器,典型的配置是4GB左右的CPU速度,2~4GB的内存容量。针对这样的小型FTP服务器,在不考虑网络带宽的理论状态情况下,攻击者使用每秒10000~20000次左右的暴力破解攻击效率就基本达到了极限,就算攻击者发起更高效率的暴力破解也无法获得更快的结果。在实际情况中,攻击者要发起这样效率的攻击是比较简单的,甚至不用使用到大规模的僵尸计算机群就可以做到。
随着计算机硬件的发展,如果服务器在处理包含了数个指令的FTP暴力破解信息的时候,能够做到每秒理论上数十万、数百万次的请求和应答运算,那攻击者完全就可以放开手脚进行暴力破解攻击了。
现在的网络中,有些攻击者动用庞大的僵尸计算机群,发起每秒上十万次的FTP暴力破解请求,因为FTP暴力破解的过程是通过连接服务器→获得连接信息→发送账户→获得需求密码信息→发送可能的密码→获得反馈信息→再次发起服务器连接,这样的过程循环进行的,所以看似快速的服务器处理能力并不能满足不断堆积的攻击者计算机连接请求。这就导致了很多攻击计算机发送的密码验证信息被丢弃,攻击计算机无法获得正常的服务器返回信息,最终导致暴力破解失败。发起攻击的计算机的处理能力决定了攻击者是否需要动用分布式的暴力破解攻击。同被攻击目标服务器不同的是,被攻击者控制的僵尸计算机的运算能力并不直接决定暴力破解的成败,而是对暴力破解的整个时间和成功率有非常重要的影响。
在理论极限中,不考虑网络带宽,只考虑硬件处理能力的情况下,假使FTP服务器每次处理一个完整的FTP连接请求需要万分之一秒,而同时能处理的请求数目是10000个。那么,最完美的暴力破解模型是使用10000个僵尸计算机,完成万分之一秒内的暴力破解攻击。也就是说,在最小的目标服务器的处理能力下,使用目标服务器最大的处理能力来进行暴力破解。这样的暴力破解攻击成功率理论是100%,而在保证了成功率的基础上,时间是最短的。那么,现在的攻击者是如何解决服务器和僵尸计算机运算处理能力的呢?
2. 分布式暴力破解提高成功率
分布式暴力破解在很多时候是提高成功率的保障。对攻击者来说,目标服务器的处理能力是不可控的,攻击者是无法提高目标服务器的处理能力的,所以必须适应目标服务器的处理能力,由此才采用了分布式的暴力破解技术。
采用分布式穷举的好处是,在攻击者不知道目标服务器的负载能力的时候,可以通过灵活的调整僵尸计算机的数量,来逐渐摸索目标服务器的负载能力,以便达到在目标服务器不丢包、不误报的情况下,在保证最高成功率的前提下,尽量提升暴力破解的时间。举例来说,如果目标服务器的负载能力是每秒处理1000次FTP连接、账户密码验证、信息发送,攻击者如果使用每秒可以完成10次上述过程的僵尸计算机进行暴力破解,如果攻击者使用了10000台僵尸计算机,那目标服务器的运算能力显然是跟不上的,也就可能出现误报或者错误的情况,最佳的情况是使用100台僵尸计算机,满足目标服务器的运算处理能力最大化,并且也能够在保证100%成功的基础上最大化地缩小暴力破解时间。
总的来说,分布式暴力破解是对攻击者的攻击经验的一种考验。如果分布的僵尸计算机数量太多,结果可能是很快完成了暴力破解,但是因为误报和丢弃的存在,而无法获得正确的密码:如果分布的僵尸计算机数量太少,虽然可以很稳妥地进行完全部的暴力破解攻击,获得想要的密码,但是时间可能极长。
3.根据僵尸计算机的性能编写高效率的暴力破解程序
另外一个能在保证成功率的前提下,同时大大缩短暴力破解的时间的方法是调整暴力破解程序的运行速度。一个适合僵尸计算机处理能力的暴力破解程序在攻击过程中是非常重要的。
如果暴力破解程序在僵尸计算机上运行很吃力,已经超出了僵尸计算机的处理能力,结果可能是原本正确的密码也得不到相应的正确结果,因为僵尸计算机已经无法完成各种信息的收发和处理了。
如果暴力破解程序在僵尸计算机上运行得很轻松,系统性能有很多的容余,这样的情况下,整个暴力破解的时间将会很长。所以,要发起一个在保证成功率的前提下,还要尽量缩短暴力破解时间的攻击,需要攻击者根据自己的僵尸计算机的情况,选择不同的暴力破解程序消耗,以尽量达到成功率和时间两者的平衡。