这种报文超量报文投递的拒绝服务攻击法虽然说起来简单,但是实现起来需要几点注意事项:
第一是找到合适的突破口,也就是对方主机上的不良CGI程式。
一般的知名网站都有很强的主机,甚至多主机并行负载分布。如果仅仅是简简单单地发送报文很难令对方崩溃,所以需要作的就是找到对方主机上一些消耗系统资源较大的CGI程序。如果自己做过大规模负载的交互式网站,很容易找到其中的关键,通常一些复杂的搜索程序,特别是内文检索程序是消耗系统资源较多的,这些程序就可以成为突破口。也就是使用虚拟报文,用一个最宽的条件来模拟请求检索,这样你只需要传递很少的数据,对方的服务器就会产生相当大的负荷,采用多进程并且循环调用,只要对方主机cgi程序处理报文的时间大于其接受到你循环发送报文的间隔时间,就很容易使对方的http请求阻塞并拒绝正常访问。
第二是节省一切可以节省的步骤。
这种攻击方式的关键是使对方造成阻塞,而阻塞的关键是本机攻击循环的间隔小于对方处理的时间。减小循环间隔的重要一点是,仅仅发送攻击必须发送的报文,然后不接受任何返回信息。也就是当攻击程序把一个虚拟的请求报文发送后,不再理会该请求而进行下一个。不用停止这个socket连接,但是无须接受任何返回信息,那样会耽误攻击程序的循环效率。这里的关键问题是对方的cgi程序还在处理攻击程序发送的请求,所以寻找不良CGI是获得最好效果的最关键因素。
第三是寻找理想的攻击源。
这一点最难作到,如果用家用电脑和拨号实现攻击,并不是不可以,除非同一时间找到100个志同道合者一起攻击,否则由于网速,你的攻击可能对对方毫无影响。这就需要“攻击源”,也就是找到可以运行攻击程序的、路由和攻击目标接近的服务器作为攻击源,最好找到多个攻击源服务器,然后同时运行攻击程序,才有可能看到效果。特别是针对大型商业网站,没有一定数量的攻击源是不可能用这种方式攻击成功的。例如如果希望攻击yahoo,这种方式就需要在美国宽带网环境下找到1000台左右的攻击源服务器,同时运行攻击程序,模拟循环进行一些最常用关键字的超量检索,导致对方服务器处理阻塞。
需要提醒的一点是,攻击源可能在攻击过程中自身收到损害,我在宿舍局域网测试的时候,自己的攻击源崩溃过若干次,提醒诸位小心。
根据新闻,美国最近的网站被黑大体上是这种攻击手段的一种体现,但是难得的是对方能够用很多攻击源来进行。另外当宽带网大幅推广和使用的时候,这种攻击手段将更容易实现,可能几个会写VC的家伙就可以在家里利用光纤将宽带网内部的主机搞垮。
所以也不得不对网管提醒一点。消除不良CGI,并对恶意报文采用一些过滤手段,是非常需要重视的课题!