《电子技术应用》
您所在的位置:首页 > 通信与网络 > 设计应用 > 一种自定义动态密钥预防DDoS攻击的算法
一种自定义动态密钥预防DDoS攻击的算法
来源:微型机与应用2013年第20期
张祖莲,王命全,李景林,顾雅文
(新疆气象局 新疆兴农网信息中心,新疆 乌鲁木齐830002)
摘要: DDoS攻击表现形式有多种,主要造成后果是导致Web服务器无法提供网络服务,最终造成一系列损失。针对通过某一网页端口进行的DDosS攻击,提出了一种预防算法,自定义动态密钥,并采用自定义算法调用,动态改变被攻击端口处的文件名。该算法使得攻击者无法通过加密后的文件来得到原文件名称,从而达到预防此种DDoS攻击的目的。实验证明,此算法有效。
Abstract:
Key words :

摘  要:DDoS攻击表现形式有多种,主要造成后果是导致Web服务器无法提供网络服务,最终造成一系列损失。针对通过某一网页端口进行的DDosS攻击,提出了一种预防算法,自定义动态密钥,并采用自定义算法调用,动态改变被攻击端口处的文件名。该算法使得攻击者无法通过加密后的文件来得到原文件名称,从而达到预防此种DDoS攻击的目的。实验证明,此算法有效。
关键词: DDoS攻击;黑客;预防算法;密钥;网络攻击

    根据美国计算机应急响应中心的报告,到目前为止,还没有很好的办法真正解决分布式拒绝服务(DDoS)攻击问题。一般认为,除非修改TCP/IP协议的内核,否则,从理论上没有办法彻底解决DDoS攻击[1]。已有不少学者对DDoS攻击进行了一些研究工作[2-6],但效果不甚理想。
1 相关研究
    对源目的IP地址对进行累积分析,当访问网络中出现的IP地址在一定时期内重复出现次数增多,这就隐含着可以根据历史IP记录检测异常的出现来检测出DDoS攻击[7]。DDoS攻击所造成的网络拥塞必须在路由器上进行处理,这就是基于IP拥塞控制来实现的预防DDoS攻击[8]。但目前经过最新DDoS攻击统计,大部分通过端口发布的是虚拟IP,重复的概率相当小,采用这些方法进行很多次攻击但并未检测出来。
    对网络流量进行分析处理的方法,即对网络流量进行高频统计,然后对其相邻时刻进行相似度分析,根据相似度的变化来发现异常,在大流量背景下,此方法更适合大规模网络的异常检测[9]。异常流量聚集、协议分析和流量处理,即过滤异常流量并测试当前聚积流量的拥塞控制特性,恢复被误判的流量[10]。在研究 DDoS攻击对网络流量自相似性影响的基础上,提出了小波分析检测 DDoS 攻击的方法[11]。引入非线性预处理网络流量预测方法NLPP检测DDoS攻击[12]。
    目前大部分研究是通过针对网络流量分析和对IP分析来检测DDoS攻击提出的。本文从预防的角度提出预防算法,使攻击者找不到攻击的入口,达不到攻击的目的,从而为网络服务提供商减少损失。
2 本文算法
2.1 动态密钥
2.1.1 自定义字母值

    自定义字母值如表1所示。文件名加密前是6个数字串+6个字母串(如:123456abcDEF、658742AsbkKg),文件名加密后是6个与原文不同的数字+12个由字母经过密钥转化的数字串。如当天是2012-6-11(120611),动态获取当天年月日,原文为(123456abcDEF),加密后为(239477283029100607);如当天是2012-11-16(121116),动态获取当天年月日,原文为(123456abcDEF),加密后为(734577283030050612)。


2.1.2 自定义加密算法
    动态生成的字符(6个数字串+6个字母串)从左向右顺序加密如表2所示。
2.1.3 自定义解密算法
    加密后生成的18位数字(前6位数字+后12位数字)解密算法如表3所示。


2.1.4 设计思想
    攻击者不能确定文件名是否全是数字串,而且文件名每天都在变化。不易攻击有几点:
    (1)每天12个字符都是动态随机生成的;
    (2)攻击者只能看到入库文件名是一串数字,如果按照数字去破解是无法破解并找到真正的文件名;
    (3)每天密钥也是动态变化的,而且前后密钥不统一;
    (4)字符转成定义值是自定义的,也可以更换,随便换两个值,就无法知道,不是常规ASCII;
    (5)密钥也是动态自定义的,其他相关研究人员借鉴可以换顺序。
    自定义字母值一是为了安全,自定的顺序;二是为了方便计算、减少算法的复杂度。字符不用ASCII码最主要的原因是ASCII码中有些字符不能作为文件名。
    如果想让加密更复杂些,完全可以把自定义的字符打乱顺序,在本机保存起来,方便计算。每个字符加减值也可按照其他规律来设定,随机生成数据。
    加密解决之所以要有规律,主要是为方便网站管理等人员随时可以查到今天文件名是否与配置文件名同步,一旦出现异常现象能及时查到原因,尽快解决。
2.2 算法调用实现过程
    自定义动态密钥实现过程:单独开发一个程序软件,生成单独文件,文件中记录原文件名、加密后文件名、修改时间,每天0:00启动一次。服务器做好任务计划。程序实现过程如图1所示。
    算法调用主要思想是:攻击者无法访问服务器上web.config文件,借助这一点将原文件名和加密后密钥字符共同存到web.config里做一个中转点,可以使网页显示器的文件名和浏览器调用的文件名达到分离,这样攻击的黑客无法找到能入库文件的真正文件名,无法找到真正的入口,从而无法用程序去攻击。
3 实验
    按数据库设计的结构,准备一批数据包。选用3台性能较高的主机。
    主机1:安装上DDoS攻击软件,向另两台电脑上的交互页面同时发送相同的数据包。同时还有两个文件分别存储返回的信息报告(成功发送或发送失败);
    主机2:建好数据库、表、存储过程,数据库设置为1 024 MB且不自动增长,建一个常规的交互的网页(表单页),可以向数据库提交数据。同时建一个页面P显示数据库信息;
    主机3:建好数据库、表、存储过程,数据库设置为1 024 MB且不自动增长,建一个常规的交互的网页(表单页),采用本文提出的自定义动态加密及调用算法。同时建立一个页面P显示数据库信息。
    数据包里有10 000条信息,每条信息容量大约20 KB。设置发送频率为15条/min(通过反复实验发现,频率设置太大,常会有返回信息报错,个别信息没入库;设置太小,实验周期长,不符合一般黑客攻击的频率)。
    通过主机1上两个文件返回的信息报告,同时参考主机2、3数据库中的数据。1 h内主机1攻击信息:
    60 min×15条/min=900条。
    设信息条数为函数y,天数为x,数据库容量为z,则y=24x×900;z=20×y
    主机2、主机3中测试页面P主要是为测试网页显示本主机数据库中数据时打开网页的速度。由于网页打开速度受多方面因素影响(数据库容量、CPU占有率、网络流量、数据处理速度等),每天定时测试主机2、主机3中测试页P打开速度,分析网页打开速度的走向。
    实验时间为10天,显示结果如图2、图3所示。

    分析图2,主机2受到主机1的攻击,到第3天及以后数据库容量不再增长。容量已达到最大值。主机3在实验的10天内一直没有受到主机1攻击的数据,数据库容量几乎没有改变。
    分析图3可知,主机2随时间推移页面打开速度越来越慢,到最后是无限慢,就是打不开,无法连接到数据库,根据实验数据显示,快到第3天(即数据库容量快达到设定值)时,页面打开速度快速变慢,当在快到20 s左右的连接速度时,即已经连接不上数据库,数据库超过容量,此时自动报错,服务停止,后面的天数一直就是连接不上,用虚线表示。主机3在实验的10天内,没有受到攻击。数据库没有影响,页面打开速度也没有受到影响。以上实验结果证明了本文提出算法的有效性。
    自定义动态密钥打破传统公用的加密方法,同时采用明码密钥,而非传统的一串不认识的字符串,方便其他研究人员、开发人员借鉴。

 


    如果攻击想把密钥破解出来,仅看计算所有字符串时间,一台性能不错的电脑(计算机速度按40亿次/s)去计算106×526,要花137.295 9 h,这个时间仅排列组合计算时间,每一次组合完要连接一次文件测试,当连接不上返回连接失败信息,这个时间差不多1 s左右,把连接时间加上,要花的时间是相当惊人的(5.492E×1012 h)。也就是说想破解密钥找出文件名,一台计算机最长时间是这两个时间加起来。每天零点重新随机生成一批新的数据串,就会有一批新的密码。攻击者必须在24 h内找到密钥。而且前提是要了解密码真正的原文组成。从理论上来说几乎不能攻破。
    本文提出的算法已应用到网络中,已有10个月时间无异常现象,解决了网站以前受数据包攻击烦恼。希望本算法给其他科研人员、数据安全研究人员及程序开发人员以借鉴。
参考文献
[l] 李德全.拒绝服务攻击[M].北京:电子工业出版社,2007:161-180.
[2] MIRKOVIC J.Attacking DDoS at the source[C].Proceedings of the 10th IEEE International Conference on Network  Protocols,Paris,France,2002:366-369.
[3] FERGUSON P,SENIE D.Network ingress filtering:defeating  de-nial of service attacks which employ IP source address  spoofing[R].Internet Best Current Practice,RFC 2827,2000.
[4] WALFISH M,VUTUKURU M.DDoS defense by offense[C]. ACM SIGCOMM 2006,2006:1635-1639.
[5] 李德全,苏璞睿,魏东梅,等.基于路由器编码的自适应包标记[J].软件学报,2007,18(10):2652-2661.
[6] 曹晓梅,韩志杰,陈贵海.基于流量预测的传感器网络拒绝服务攻击检测方案[J].计算机学报,2007,30(10):1798-1805.
[7] 孙知信,李清东.基于源目的IP地址对数据库的防范DDoS攻击策略[J].软件学报,2007,18(10):2613-2623.
[8] 吴国钢.DDoS攻击与IP拥塞控制研究[J].电子科技大学学报,2007,36(3):614-655.
[9] 何慧,张宏莉,张伟哲,等.一种基于相似度的DDoS攻击检测方法[J].通信学报,2004,25(7):176-184.
[10] 孙知信,姜举良,焦琳.DDoS攻击检测和防御模型[J]. 软件学报,2007,18(9):2245-2258.
[11] 任勋益,王汝传,王海艳.基于自相似检测DDoS攻击的小波分析方法[J].通信学报,2006,27(5):6-11.
[12] 杨新宇,杨树森,李娟.基于非线性预处理网络流量预测方法的泛洪型DDoS攻击检测算法[J].计算机学报,2011,34(2):395-405.

此内容为AET网站原创,未经授权禁止转载。