基于DDoS脚本的预防DDoS攻击策略研究
2020-10-27高欣雅黄媛媛于欣彤
李 爽,高欣雅,黄媛媛,于欣彤
(吉林师范大学 计算机学院,吉林 四平 136000)
在当代网络技术与网络应用高速发展的今天,Web重要性不断提高[1],网络安全问题与日俱增,分布式拒绝服务(Distributed Denial of Service,DDoS)以其实施容易、防范困难和难以追踪攻击源的特点备受黑客们的青睐[2],目前市场上专门预防DDoS攻击的硬件设备价格昂贵,对于一些中小型网站来说,防御瓶颈多成本高,DDOS的猖獗严重影响了互联网的应用,给网络社会带来巨大安全隐患[3].因此,有必要对防御分布式拒绝服务攻击的有效性,实时性和准确性进行研究,有效提高Web网站防御DDoS攻击的能力,本文将结合DDoS攻击的原理对预防策略给出一个详细的分析.
1 DDoS概述
DDoS(Distributed Denial of Service)分布式拒绝服务攻击是在DoS(Denial of Service)拒绝服务攻击的基础上发展起来的[4].攻击的最终目标是借助网络协议的缺陷以高频率的请求速度大量请求服务器资源,由于网络带宽资源的有限性和服务器负载能力的有限性等因素,导致受害者资源被耗尽而停止提供服务,出现网络瘫痪或服务器宕机现象.DDoS主要针对网络体系结构中的四层利用带宽对流量攻击和和七层针对服务架构的吞吐量瓶颈进行攻击.一般来说,DDoS攻击将银行、支付网关作为攻击对象,以实施勒索的商业目的.
在DoS攻击中,攻击者采用1∶1的方式,即一台攻击者,一台受害主机,在以往受害主机的CUP和内存配置不高或者网络带宽不够的情况下攻击效果较为明显,但是随着计算机硬件设备的升级、处理能力的提升和网络技术的迅猛发展,传统的一对一的DoS攻击手段已经无法达到预期的攻击目的,攻击者想出使用分布在不同地理位置的多台主机同时向受害者进行攻击的策略,即分布式拒绝服务攻击,简称DDoS攻击[5].DDoS攻击是指黑客利用大量傀儡机向受害者发起攻击,其攻击手段具有汇聚性,攻击源具有分散性,因此危害程度要远远大于DoS,DDoS攻击原理如图1所示.
图1 DDoS攻击原理图
实施DDoS攻击需要执行以下步骤来完成:
步骤1 黑客利用系统或软件漏洞大范围扫描存在安全漏洞的主机或引诱主机访问使用恶意链接来盗取系统账号和管理权限,并注入DDoS代理程序,同时黑客会在系统中安插一个拥有管理员权限的并可进行交互的命令解释器Root Shell,可以随时接受黑客的指令,我们称其为守护进程.黑客将代理程序注入到可以随机启动的系统级服务或者驱动程序中,将被注入DDoS代理程序的主机叫做傀儡机,为了使木马程序不轻易被杀毒软件发现并清理掉,黑客通常使用加壳等手段使其无法被准确识别到,并定期对代理程序进行更新升级,操纵这些傀儡机长期的为其服务,当积累了足够多的傀儡机后,黑客便具备了发起DDoS攻击的条件[6].
步骤2 一旦黑客发起攻击,首先通过控制机向傀儡主机发送指令激活事先被注入的DDoS代理程序[7],发送指令的操作具有一定的隐秘性,因此傀儡主机无法轻易察觉代理程序的存在.此时大量的傀儡机会同时向受害主机发送请求,攻击数据包犹如洪水般向受害主机涌来[8],当合法用户向目标主机发送请求时,其请求数据包被淹没,合法用户无法得到及时有效的服务器响应,此时黑客发起的DDoS攻击成功,攻击过程如图2所示.
2 搭建测试环境与实验实施
2.1 安装和启动Web服务
主机WebService作为被攻击的网站服务器,在连接互联网下安装配置Web服务过程如下:
[root@ WebService ~]# yum install httpd
//安装web服务
[root@ WebService ~]# cp /etc/passwd /var/www/html/index.html
//生成网站默认主页
[root@ WebService ~]# service httpd restart
//启动服务器Web服务
Web服务安装成功后启动浏览器访问网站默认主页,Web服务器成功配置完成界面如图3所示.
图2 DDoS攻击过程
图3 Web服务器默认主页面
2.2 安装配置DDo.deflate
DDoS deflate是一款面向用户完全免费使用的、可以有效防御DDoS攻击的工具软件,其运行在开源的Linux操作系统下[9],通过其Shell脚本中的netstat 命令进行IP监测跟踪,获得到在一定时间内向服务器发出请求的所有主机的IP地址和请求连接数,一旦发现某个IP地址的主机请求的连接数超过软件所限定阈值,则通过IPTABLES或者APF工具屏蔽攻击IP[10].
1)root权限下下载安装DDoS Deflate如图4所示.
图4 下载安装DDoS Deflate
2)DDOS-Deflate安装完成之后,产生的四个脚本文件ddos.sh、ddos.conf、ignore.ip.list和LICENSE均位于/usr/local/ddos中,具体说明如下:
①ddos.sh:整个程序的功能模块,是使用shell编写的,其中的netstat命令可以监控访问Web服务器的所有IP地址和访问次数.
②ignore.ip.list:白名单,该文件列表中的IP地址即使访问次数超过了设定的阈值也不会被屏蔽.
③LICENSE:发布DDoS Deflate 程序的相关版权协议文件
④ddos.conf:DDoS Deflate的配置文件,也是最重要的文件.使用vi编辑器打开配置文件ddos.conf,部分配置参数和解释如下:
[root@WebService /]# vi /usr/local/ddos/ddos.conf
##### 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"
……
FREQ=1
#FREQ表示设置ddos.sh文件的执行频率,即检测时间间隔,默认为1min
NO_OF_CONNECTIONS=150
# NO_OF_CONNECTIONS表示最大限制连接数,当一定时间内持续向服务器发出申请超过150,则该IP会被屏蔽,在之后的一段时间内服务器不给予响应申请,NO_OF_CONNECTIONS的值可视服务器的性能而定,如果服务器性能较好,为避免误杀可将其值略微调高[11].
APF_BAN=0
# APF_BAN表示屏蔽手段,其值可以为0或1.设置为1表示使用APF堵塞IP,但必须首先安装AFP;设置为0表示使用iptables,
KILL=1
#将非法IP加入黑名单,禁止该IP地址再次访问.
EMAIL_TO=“root”
#一旦监测到某个IP地址被屏蔽掉,会向指定邮箱发送电子邮件,设为空表示不发邮件.
BAN_PERIOD=600
#解锁时长,默认设置为600秒
⑤安装完成后在/etc/cron.d/下生产了ddos.cron,内容为:
SHELL=/bin/sh
0-59/1 * * * * root /usr/local/ddos/ddos.sh >/dev/null 2>&1
该文件的任务是每隔一分钟时间执行一次/usr/local/ddos/ddos.sh文件(其中ddos.sh文件的执行频率由ddos.conf中的FREQ=1变量决定).
2.3 webbench简介
webbench是一款适合中小型网站的压力测试工具,其需要安装运行在Linux下[12],使用C语言编写,具有性能部署简单的特点,而且支持测试静态页面、动态页面,对于含有SSL的安全网站也可以进行压力测试[13].
主机attacker作为攻击方,下载安装webbench软件,安装过程如下,
[root@attacker /]# wget http://blog.s135.com/soft/linux/webbench/webbench-1.5.t
[root@ attacker /]# tar zxvf webbench-1.5.tar.gz
[root@ attacker /]# cd webbench-1.5
[root@ attacker webbench-1.5]# make && make install
500个客户端在30 s内不间断同时并发向服务器发出请求,如图5所示.
图5 压力测试结果
每秒钟响应请求速度为329 166 pages/min,服务器每秒钟传输数据量9 292 829 bytes/s.当请求并发数为164 583时,有0个连接失败,说明此时未超过负荷.
3 测试结果
主机attacker向主机WebService进行DDOS攻击时,模拟500台攻击傀儡机同时并发请求WebService,持续30 s,命令如下.
[root@attacker /]# webbench -c 500 -t 30 http://192.168.37.131/index.html
[root@ WebService ~]# iptables -L -n
此时立即查看防火墙规则,列表为空,如图6所示.
图6 立即查看防火墙规则界面
等待1 min后,再次查看防火墙规则,显示结果如图7所示.此时attacker主机再次向WebService发出请求连接,显示连接失败,如图8所示[14].
DDoS deflate默认是一分钟执行一次,所以当黑客向客户机发出的连接次数超过150时,黑客不会立刻被禁止访问,时间超过1 min后,出现连接断掉的情况,此时查看受害客户机防火墙规则,列表中多了一项DROP all - 192.168.37.133,说明使用DDoS deflate可以预防DoS攻击,10 min之后,防火墙规则刷新列表,该表项被取消.
图7 WebService受到攻击后防火墙规则列表
图8 attacker再次访问WebService结果
4 结 语
DDoS作为分布式攻击手段具有防御瓶颈多、成本高的特点,因此对DDoS的防御是一项系统工程,在Linus环境下,使用DDoS deflate来防止DDoS攻击,大大降低了Web服务器受到DDoS攻击的风险,在一定程度上提高了网站的安全性[15].本文提出的防护方案,具有较强的实用价值,也为其他防护工作提供了范例.