Azure上Linux VM DDOS攻击预防: 慢速攻击

时间:2022-09-02 17:54:07

在上篇博客(http://www.cnblogs.com/cloudapps/p/4996046.html)中,介绍了如何使用Apache的模块mod_evasive进行反DDOS攻击的设置,在这种模式中,主要预防的是对http的volume attack,然而DDOS的攻击方式,各种工具非常多,随便搜一搜就知道了,我们回过头来看看,什么叫DOS/DDOS,看看*:

"拒绝服务攻击Denial of Service Attack缩写DoS)亦称洪水攻击,是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其对目标客户不可用。

黑客使用网络上两个或以上被攻陷的电脑作为"僵尸"向特定的目标发动"拒绝服务"式攻击时,其称为分布式拒绝服务攻击Distributed Denial of Service attack缩写DDoS)。据2014年统计,被确认为大规模DDoS的攻击已达平均每小时28次。[1]攻击发起者一般针对重要服务进行攻击,如银行,信用卡支付网关,甚至根域名服务器"

攻击方式可以分为:

带宽消耗类型攻击(DDoS带宽消耗攻击可以分为两个不同的层次;洪泛攻击或放大攻击。)

  • User Datagram ProtocolUDPfloods
  • ICMP floods
  • 资源消耗性攻击

  • 协议分析攻击(SYN floodSYN洪水)
  • LAND attack
  • CC攻击
  • 僵尸网络攻击
  • Application level floods(应用程序级洪水攻击)

     

    如果你归纳汇总一下攻击的类型的话,会发现,主要有:

  • 应用层级DDOS攻击
  • 协议层DDOS攻击(UDP/ICMP/SYN等)
  • 量级DDOS攻击(僵尸网络/CC等)

     

     

    其中后两种,现在大部分的DDOS的设备都可防护,但应用级别的DDOS就会比较麻烦,很难防护,上篇博文中介绍的实际是该种攻击的一种,基于httpvolume attack的预防,属于大批量,快速攻击类的;那还有一种比较常见的应用攻击叫慢速攻击(slow http DDOS),恰恰相反,就是慢速连接,耗掉你所有资源,比较有名的如Slowloris等。

    对于第一种,基本原理是检测访问量和访问频率,封掉IP

    对于第二种,使用netstat检测连接状态,然后将攻击地址加入iptable中,拒绝访问

    今天我们来介绍第二种方式的预防工具,不需要我们来写脚本了,有一个开源的软件可以帮助我们来做,软件名字叫DOS Deflate,这个软件是一个法国的大神Zafzaf@vsnl.com)开发的,基本原理同上介绍。在本文中使用CentOS6.5座位演示环境:

    1. 准备目录:

    $sudo mkdir -p /usr/local/src/

    $cd /usr/local/src/

    $sudo mkdir ddos

    $cd ddos

    2.下载DOS Deflate软件

    $ sudo wget http://www.inetbase.com/scripts/ddos/install.sh

    Azure上Linux VM DDOS攻击预防: 慢速攻击

    3. 安装软件

    Azure上Linux VM DDOS攻击预防: 慢速攻击

    4. 安装完成之后,需要进一步配置该软件:

    $ sudo vi /usr/local/ddos/ddos.conf

     

    4.1 需要检查一下配置路径是否和你的实际环境一致,本测试中保持不变:

    ##### Paths of the script and other files

    PROGDIR="/usr/local/ddos"

    PROG="/usr/local/ddos/ddos.sh"

    IGNORE_IP_LIST="/usr/local/ddos/ignore.ip.list"

    CRON="/etc/cron.d/ddos.cron"

    APF="/etc/apf/apf"

    IPT="/sbin/iptables"

     

    4.2 FREQ参数的值定义,ddos脚本***时间被执行一次,使用的是Linux crontab服务,默认是1分钟执行一次:

    FREQ=1

     

    4.3 NO_OF_CONNECTIONS是定义你认为,如果是一个DDOS慢速攻击的客户端,会建立多少连接来还非你的资源,默认是150,我将他改成70

    NO_OF_CONNECTIONS=70

     

    4.4 DDOS Deflate支持两种防火墙APFiptables,本测试中我们使用iptables,所以将值改成0

    APF_BAN=0

     

    4.6 定义了你是否使用交互模式来处理攻击IP,如果逆选择交互,则只会给你发封邮件,我们设为1

    ##### KILL=0 (Bad IPs are'nt banned, good for interactive execution of script)

    ##### KILL=1 (Recommended setting)

    KILL=1

     

    4.6 邮件通知地址:

    EMAIL_TO="xxx@microsoft.com"

     

    4.7 将这个被禁止掉的IP封掉多长时间,以秒为单位

    ##### Number of seconds the banned ip should remain in blacklist.

    BAN_PERIOD=600

     

    5. 所有的配置完成后,我们重新启动服务:

    Azure上Linux VM DDOS攻击预防: 慢速攻击

     

    6.配置完成后,我们需要测试一下效果,光说不练不是真把式啊,DDOS攻击的工具非常多,常见的有以下这些:

  • HOIC (High Orbit Ion Canon)
  • LOIC ( Low Orbit Ion Canon)
  • XOIC
  • R-U-DEAD-Yet
  • Pyloris
  • OWASP DOS HTTP Post
  • GoldenEye HTTP Denial of Service Tool
  • Slowloris HTTP Dos

    大部分的下载到目前为止都是不可用的,比如HOICSlowloris等,我找了一些可以做测试的分享给大家:

    Slow Http Test :https://code.google.com/p/slowhttptest/downloads/detail?name=slowhttptest-1.6.tar.gz&can=2&q=

    OWASP HTTP Post Tool

    https://www.owasp.org/index.php/OWASP_HTTP_Post_Tool 

    http://www.proactiverisk.com/tools/

     

    本测试Demo中,使用的是后者,可以做慢速攻击

     

    6.1 首先检测一下当前iptables的状态:

    Azure上Linux VM DDOS攻击预防: 慢速攻击

     

    可以看到一切正常,那么就诶下来准备攻击。

     

    6.2 配置你要攻击的IP地址,设置攻击连接数,时间等信息,开始慢速攻击

    Azure上Linux VM DDOS攻击预防: 慢速攻击

    Azure上Linux VM DDOS攻击预防: 慢速攻击

    6.3 大家会记得我们设置的攻击检测时间是1分钟,攻击一段时间之后,我们监测一下iptables的状态,可以看到,攻击的IP地址被检测到,并禁止了:

    Azure上Linux VM DDOS攻击预防: 慢速攻击

    6.4 最终攻击被封杀,无法连接

    Azure上Linux VM DDOS攻击预防: 慢速攻击

     

    可以看到这种设置非常有效的防止了慢速攻击,可以在具体的实践中尝试用一用