一种动态应用地址转换方法及其网关系统的制作方法
【专利摘要】本发明涉及一种动态应用地址转换方法及其网关系统,实现一种新的Web应用攻击防御方法;通过动态转换URL地址,转换应用系统的攻击面,隐藏Web应用的脆弱性,增加攻击者的攻击难度,大大提高攻击者利用URL对Web网站进行漏洞扫描、攻击注入的难度。本发明采用的DAAT方法能够动态能够有效降低攻击者对Web应用造成的安全威胁,提高了Web应用系统的安全性。
【专利说明】一种动态应用地址转换方法及其网关系统
【技术领域】
[0001]本发明属于Web应用安全领域,具体涉及一种动态应用地址转换(DAAT)方法及其网关系统。
【背景技术】
[0002]随着Internet的发展,Web应用已经成为生活不可或缺的部分,随之而来的是针对Web应用的攻击行为也愈演愈烈。现在的Web应用系统非常复杂,Web应用中页面和链接众多,不可避免地会包含一些编程缺陷和软件漏洞。因此试图在系统发布之前识别和检查出所有的系统漏洞是不可能的,更新补丁的滞后性使得Oday漏洞威胁客观上长期存在。由于Web应用大多处在开放环境中,用户和攻击者随时随地都能访问到,网络和应用配置的静态性给攻击者寻找弱点、实施攻击带来极大便利。
[0003]传统的防火墙、入侵保护系统和Web应用防火墙等基于特征的检测技术无法与大量的复杂的新攻击变种进行抗衡。特征检测机制存在一定的滞后性,并不可避免地产生漏报。在一个Internet这样的开放环境中,新的攻击层出不穷,特别是Oday漏洞的大量存在,使得这类防御方法更是力不从心。同时基于静态防护机制的系统则可以被攻击者学习利用,从而使得攻击者可以绕过该系统,或通过混淆攻击特征、隐藏攻击源的方法使系统的防御功能失效。防御者需要封堵所有的漏洞和过滤所有的攻击,而攻击者有足够的时间对目标系统进行学习和探测,只需要利用一个漏洞即可成功实施攻击。攻击者可以尝试多次对系统的探测以发现漏洞,然后攻击者可以利用这个漏洞对同一个系统或其它存在该漏洞的系统进行多次成功的漏洞利用攻击。一旦攻击者获得一个权限,他可以保持这个权限很长一段时间而不会被检测到。在网络攻防中,攻击者占据有利的地位。
[0004]移动目标防御是当前能够改变防御被动局面比较有前景的一种新型防御技术。移动目标防御(MTD)是近年来美国科学技术委员会提出的网络空间“改变游戏规则”的革命性技术之一。它完全不同于以往的网络安全研究思路,通过多样的、动态改变地构建部署机制及策略来增加攻击者的攻击难度和代价,有效限制漏洞暴露并被攻击者利用的机会。将MTD技术应用于防御WEB攻击中,与传统的防御技术相比具有很大优势。目前一些MTD方法不断被研究者提出,其中一些已经成功应用于实际系统防护中,如在Iinux等操作系统已经广泛应用的地址空间随机化(Address Space Randomizat1n, ASR),指令集随机化(Instruct1n Set Randomizat1n, ISR)和数据随机化(Data Randomizat1n,DR)等。针对Web应用的MTD技术也被广泛研究,包括:SQL指令随机化、动态平台技术等。这些技术在一定程度上能够体现MTD思想,但是应用指令随机化构建成本高,且与具体的应用程序相关,不具有通用性;动态平台技术依赖于虚拟机、操作系统以及Web服务软件等,熵空间有限,切换难度大,实用性不高。
【发明内容】
[0005]有鉴于此,本发明提供了一种基于MTD的动态应用地址转换(DAAT:DynamicApplicat1n Address Transact1n)方法及其网关系统,实现一种新的Web应用攻击防御方法。
[0006]本发明的技术方案如下:
[0007]—种动态应用地址转换方法,具体包括以下步骤:
[0008]I)客户端DAAT网关接收客户端对WEB服务器发出的URL请求;
[0009]2)如果客户端请求的URL地址是未经加密的原始明文URL,则将输入的原始明文URL通过随机化函数加密转换为新的URL地址返回给客户端;
[0010]3)如果客户端请求的URL地址是已经编码的密文URL,则解码密文URL,获得有效性信息并进行验证,如果验证密文URL已经失效,通知客户端跳转到WEB服务器网站的首页;如果密文URL未失效,则将解密得到的原始URL发送给后端的WEB服务器,获得WEB服务器的页面响应后,对从WEB服务器响应页面中获得的原始URL进行加密转换,并替换页面中的原始URL,最终将修改后的页面返回给客户端。
[0011]进一步地,客户端DAAT网关以Web反向代理的方式接收客户端请求的URL地址。
[0012]进一步地,随机化函数需要是可逆的置换函数,可以是对称加密函数、非对称加密函数,也可以是异或算法等;为了增加随机性,可以加入随机化参数。异或算法是最简单快速的随机化函数,但安全性较低。这里我们可以选用对称加密函数(如AES等),采用对称加密函数时,解码过程采用与加密过程同样的秘钥。
[0013]进一步地,通过随机化函数加密转换后新的URL地址Ue可以表示为:Ue = E(Ks,Uo),其中,E()为对称加密函数,Ks为客户端会话秘钥,Uo为原始明文URL,客户端会话秘钥Ks只对Uo的非主域名部分进行加密。
[0014]进一步地,上述客户端会话秘钥Ks由秘钥生成器(KeyGener)产生。所述秘钥生成器生成主秘钥Km和客户端会话秘钥Ks,其中:主密钥Km可以为随机数发生器,也可以是系统当前时间或当前进程号;生成主密钥之后,随机数发生器将主密钥转换成特定客户端会话秘钥。使得服务器与不同客户端通信采用不同的会话秘钥。
[0015]更进一步地,客户端会话秘钥Ks由主密钥Km和特定客户端标识符如IP地址串联后进行hash产生,这里客户端主机IP地址用IPc表示,则生成的客户端会话秘钥为:
[0016]Ks = h (Km | | IPc)。
[0017]更进一步地,转换后新的URL地址Ue在Uo的主域名之后和Uo加密后的字符串Lse之前插入了一个DAAT头(DAAT Head)。DAAT Head长度为Len,内容包括随机数Re、有效性信息Te、Lse的完整性校验值Cl和扩展标志位Flag等。随机数Re是用来使得即使是相同的Uo每次随机化后得到的Lse都不同;有效性信息Te设定的是Lse的失效周期。DAATHead经过对称加密后,和Lse最后都以十六进制的字符串表示。
[0018]进一步地,解密密文URL时,先解密DAATHead,获得随机数Re,有效性信息Te和Lse校验和等信息;如果Te验证后未过期,则用解密Lse,还原Uo0
[0019]进一步地,当客户端请求的URL与WEB服务器响应的URL不一致时,通过修改http响应码的方式,强制使客户端接受URL重定向,达到转换后的新URL主动生效的目的。301和302是两个用以完成URL重定向的http响应码,前者是永久重定向,后者是临时重定向。在本方案中,两个响应码都是可选方案。
[0020]进一步地,上述方法还包括:客户端发出URL请求时通过客户端DAAT网关对请求的URL地址进行加密编码,由WEB服务器DAAT网关接收并进行解码后,发送给WEB服务器;获得WEB服务器的页面响应后,WEB服务器DAAT网关对WEB服务器响应URL及页面进行加密编码后返回给客户端DAAT网关,客户端DAAT网关进行解码,恢复成明文URL,并将修改后的页面返回给客户端。
[0021]一种动态应用地址转换网关系统,包括:加密器(Encoder)、秘钥生成器、解密器(Decoder)、URL 定位器(URL Locator)和重定向器(Redirector),其中:
[0022]所述加密器用于对原始URL地址进行转换编码,采用的转换函数为随机化函数,可以是对称加密函数、非对称加密函数,也可以是异或算法等,一般采用对称加密函数;
[0023]所述秘钥生成器用于生成主秘钥和会话秘钥,所述主密钥可以为随机数发生器,也可以是系统当前时间或当前进程号;生成主密钥之后,随机化生成器将主密钥转换成特定客户端会话秘钥;
[0024]所述解密器用于将已经编码转换的URL地址恢复成明文,在采用对称加密算法时,解码过程采用与加密过程同样的秘钥;
[0025]所述URL定位器用于从WEB服务器的响应文本中,检索、定位出未经转换的URL地址,以便于加密器对这些原始URL地址进行加密编码处理;
[0026]所述重定向器用于强制客户端切换两个不同的URL地址。
[0027]本发明的积极效果为:
[0028]利用MTD思想对HTTP request页面中的URL定期随机化,通过动态转换URL地址,转换应用系统的攻击面,隐藏Web应用的脆弱性,增加攻击者的攻击难度,能够有效阻止攻击者实施网络爬虫,DDoS攻击和SQL注入等Web攻击,也能防御未知攻击。
[0029]通过启发式随机化算法,本发明采用应用代理方式对Web应用的URL地址进行动态变换,攻击者无法持续利用存在漏洞URL,大大提高攻击者自动注入、漏洞利用的难度。同时,通过随机化嵌套的应用地址,使得扫描探测攻击陷入死循环。
[0030]与其它针对Web应用防护的MTD方法相比,本发明提供的DAAT方法及其网关系统具有更好的安全性和可操作性,能显著保障Web应用系统的安全。由于DAAT不改变Web应用系统的部署,也不改变用户的使用习惯,系统采用对称加密算法,具有很小的系统开销和时延,因此具有很大应用价值。
【专利附图】
【附图说明】
[0031]图1为本发明动态应用地址转换(DAAT)网关部署示意图。
[0032]图2为本发明实施例中利用加密器进行加密的流程图。
[0033]图3为本发明实施例中利用解密器进行解密的流程图。
[0034]图4为本发明实施例中利用URL定位器进行定位的流程图。
[0035]图5为本发明实施例中利用重定向器进行重定向的流程图。
[0036]图6为本发明单网关模式实施例框架及工作流程图。
[0037]图7为本发明双网关模式实施例框架及工作流程图。
【具体实施方式】
[0038]下面结合附图和实施例对本发明作进一步描述。
[0039]如图1所示为本发明动态应用地址转换(DAAT)网关部署示意图,我们在DAAT网关中采用Privoxy来作为代理软件实现DAAT方法。
[0040]本发明的动态应用地址转换(DAAT)网关系统包含加密器,秘钥生成器,解密器,URL定位器以及重定向器。
[0041]加密器对原始URL进行转换编码,其转换函数可以是对称加密函数、非对称加密函数,也可以是异或算法等,一般采用对称加密函数;
[0042]秘钥生成器用于生成主秘钥和会话秘钥,其中:主密钥可以为随机数发生器,也可以是系统当前时间或当前进程号;生成主密钥之后,随机数发生器将主密钥转换成特定客户端会话秘钥。使得服务器与不同客户端通信采用不同的会话秘钥。
[0043]a)生成主密钥:该模型每隔T个时间周期生成主密钥,用来加密URL。一般服务器每天处理上百万个请求,因此主密钥的生成必须迅速有效,否则会产生巨大的时延影响系统可用性。主密钥可以为随机数发生器,也可以是系统当前时间或当前进程号。这里我们采用xorshift RNG来生成主密钥,该方法是将种子密钥与其移位后的数字按位异或,得到的字符串即为该时间间隔内的主密钥Km,这里种子密钥R为系统统一时间,Rshift为R进行移位后的结果,则主密钥为:
[0044]Km = R" Rshift
[0045]b)生成客户端会话秘钥:生成主密钥之后,随机数发生器将主密钥转换成特定客户端会话秘钥。使得服务器与不同客户端通信采用不同的会话秘钥。客户端会话秘钥Ks由主密钥和特定客户端标识符如IP地址串联后进行hash产生,这里客户端主机IP地址用IPc表示,则生成的客户端会话秘钥为:
[0046]Ks = h (Km | | IPc)。
[0047]解密器是加密器的逆过程,对已经编码转换的URL地址进行恢复成明文的操作,在采用对称加密算法时,解密过程采用与加密过程同样的秘钥;
[0048]URL定位器用以从WEB Server的响应文本中,检索、定位出未经转换的URL地址,以便于加密器对这些原始URL地址其进行加密处理;
[0049]重定向器用来强制客户端浏览器切换两个不同的URL地址。
[0050]如图2为本发明实施例中利用加密器进行加密的流程图,其步骤为:
[0051]步骤1:DAAT网关接收到客户端发送的原始明文URL请求,我们假设原始明文URL类似为 www.0urwebapp.com/news/sports/wordcup.html,用 Uo 表不。
[0052]步骤2:DAAT从秘钥生成器获得秘钥Ksj^Uo的非主域名部分进行加密,也即只加密字符串 “news/sports/wordcup.html”,而主域名 “www.0urwebapp.com/” 部分不加密。Uo加密后的字符串用Lse表示。
[0053]步骤3:转换后的URL地址在主域名之后和Lse之前插入了一个DAAT头(DAATHead)。DAATHead长度Len,内容包括随机数Re、有效性信息Te、Lse的完整性校验值Cl和扩展标志位Flag等。随机数是用来使得即使是相同的Uo每次随机化后得到的Lse都不同;有效性信息Te设定的是Lse的失效周期。DAATHead经过对称加密后,和Lse最后都以十六进制的字符串表示。加密器的输出为Ue,其格式为:www.0urwebapp.com/DAATHead+Lse,用公式表示为:
[0054]Ue = E (Ks, Uo)。
[0055]如图3为本发明实施例中利用解密器进行解密的流程图,其步骤为:
[0056]步骤1:解密器的输入是存在DAATHead的已编码URL。解密器先解密DAATHead,获得随机数Re,有效性信息Te和Lse校验和等信息。
[0057]步骤2:如果Te验证后Lse未过期,则用解密Lse,还原Uo,用公式表示为:
[0058]Uo = E-1 (Ks, Ue);
[0059]否则进入步骤3。
[0060]步骤3:如果Lse已经过期,或者任意阶段解密失败,则输出Error信息,进入步骤4。
[0061]步骤4:对于过期的编码URL或未能正常解密的URL,对客户端响应提示“URL错误”等信息。
[0062]如图4所示为本发明实施例中利用URL定位器进行定位的流程图,其步骤为:
[0063]步骤1:DAAT网关在获得WEB服务器的响应页面后,交由URL定位器进行页面分析;
[0064]步骤2 =URL定位器获取网页中的原始URL的位置,并做标记;
[0065]步骤3:将标记URL的页面交给加密器进行加密转换处理。
[0066]如图5所示为本发明实施例中利用重定向器进行重定向的流程图,其步骤为:
[0067]步骤1:重定向器接收原始URL和需要重定向的URL。
[0068]步骤2:重定向器通过修改http响应码的方式,强制使客户端接受URL重定向,达到转换后的新URL主动生效的目的。301和302是两个用以完成URL重定向的http响应码,如者是永久重定向,后者是临时重定向。在本方案中,两个响应码都是可选方案。
[0069]如图6所示为本发明单网关模式实施例框架及工作流程图,其步骤为:
[0070]步骤1:客户端DAAT网关以代理的方式接收客户端的http请求。
[0071]步骤2:如果客户端请求的URL是未经加密的原始明文URL,则DAAT用加密器对URL进行转换,然后由重定向器将编码转换后的新URL返回给客户端,强制切换URL。
[0072]步骤3:客户端请求一个已经编码的密文URL,客户端DAAT网关用解密器进行解
LU O
[0073]步骤4:如果验证密文URL已经失效,则由重定向器通知客户端跳转到该网站的首页。
[0074]步骤5:如果密文URL未失效,则客户端DAAT网关用解密得到的原始URL发送给后端的WEB服务器。
[0075]步骤6:获得WEB服务器的页面响应后,客户端DAAT网关调用URL定位器(URLLocator),将里面的原始URL提取出来,交由加密器加密转换,然后替换页面中的原始URL。
[0076]步骤7:将修改后的页面返回给客户端。
[0077]DAAT网关可以设置URL转换的频率,以及对部分特殊URL进行过滤而不进行转换;可以设置客户端-WEB服务器端双网关模式,在客户端发出URL请求时即被客户端的DAAT网关加密编码,在WEB服务器DAAT网关接收时进行解码,发送给WEB服务器J^WEB服务器的响应,两个DAAT网关进行相反操作。
[0078]如图7所示为本发明双网关模式实施例框架及工作流程图,其步骤为:
[0079]步骤1:客户端DAAT网关以代理的方式接收客户端的http请求。
[0080]步骤2:如果客户端请求的URL是未经加密的原始明文URL,则DAAT用加密器对URL进行转换,发送给服务器端DAAT网关。
[0081]步骤3:服务器端DAAT网关接收客户端请求的一个已经编码的密文URL,用解密器进行解密;将得到的原始明文URL发送给WEB服务器。
[0082]步骤4:获得WEB服务器的页面响应后,服务器端DAAT网关调用URL定位器,将里面的原始URL提取出来,交由加密器加密转换,然后替换页面中的原始URL。
[0083]步骤5:服务器端DAAT网关将加密后的服务器响应URL及页面返回给客户端DAAT网关。
[0084]步骤6:客户端DAAT网关接收到加密的服务器响应URL及页面后,调用URL定位器和解密器进行逆向解码,恢复成明文URL。
[0085]步骤7:将修改后的页面返回给客户端。
[0086]以上所述本发明的【具体实施方式】目的是为了更好地理解本发明的使用,并不构成对本发明保护范围的限定。任何在本发明的精神和原则实质之内所做的修改、变形和等同替换等,都应属于本发明的权利要求的保护范围之内。
【权利要求】
1.一种动态应用地址转换方法,包括以下步骤: 1)客户端DAAT网关接收客户端对WEB服务器发出的URL请求; 2)如果客户端请求的URL地址是未经加密的原始明文URL,则将输入的原始明文URL通过随机化函数加密转换为新的URL地址返回给客户端; 3)如果客户端请求的URL地址是已经编码的密文URL,则解码密文URL,获得有效性信息并进行验证,如果验证密文URL已经失效,通知客户端跳转到WEB服务器网站的首页;如果密文URL未失效,则将解密得到的原始URL发送给后端的WEB服务器,获得WEB服务器的页面响应后,对从WEB服务器响应页面中获得的原始URL进行加密转换,并替换页面中的原始URL,最终将修改后的页面返回给客户端。
2.如权利要求1所述的动态应用地址转换方法,其特征在于,所述客户端DAAT网关以Web反向代理的方式接收客户端请求的URL地址。
3.如权利要求1所述的动态应用地址转换方法,其特征在于,所述随机化函数包括对称加密函数、非对称加密函数或异或算法。
4.如权利要求1所述的动态应用地址转换方法,其特征在于,通过随机化函数加密转换后新的URL地址Ue表示为:Ue = E(Ks, Uo),其中,E O为对称加密函数,Ks为客户端会话秘钥,Uo为原始明文URL,客户端会话秘钥Ks只对Uo的非主域名部分进行加密。
5.如权利要求4所述的动态应用地址转换方法,其特征在于,所述客户端会话秘钥Ks由秘钥生成器产生,所述秘钥生成器生成主秘钥Km和客户端会话秘钥Ks,其中:主密钥Km为随机数发生器、系统当前时间或当前进程号;生成主密钥之后,随机数发生器将主密钥转换成客户端会话秘钥。
6.如权利要求4所述的动态应用地址转换方法,其特征在于,转换后新的URL地址Ue在Uo的主域名之后和Uo加密后的字符串Lse之前插入了一个DAAT头,所述DAAT头长度为Len,内容包括随机数Re、有效性信息Te、Lse的完整性校验值Cl和扩展标志位Flag,有效性信息Te设定的是Lse的失效周期。
7.如权利要求6所述的动态应用地址转换方法,其特征在于,解密密文URL时,先解密DAAT头,获得随机数Re,有效性信息Te和Lse校验和;如果Te验证后未过期,则用解密Lse,还原 Uo。
8.如权利要求1所述的动态应用地址转换方法,其特征在于,当客户端请求的URL与WEB服务器响应的URL不一致时,通过修改http响应码的方式,强制使客户端接受URL重定向,达到转换后的新URL主动生效的目的。
9.如权利要求1所述的动态应用地址转换方法,其特征在于,还包括:所述客户端发出URL请求时通过客户端DAAT网关对请求的URL地址进行加密编码,由WEB服务器DAAT网关接收并进行解码后,发送给WEB服务器;获得WEB服务器的页面响应后,WEB服务器DAAT网关对WEB服务器响应URL及页面进行加密编码后返回给客户端DAAT网关,客户端DAAT网关进行解码,恢复成明文URL,并将修改后的页面返回给客户端。
10.一种动态应用地址转换网关系统,包括:加密器、秘钥生成器、解密器、URL定位器和重定向器,其中: 所述加密器用于对原始URL地址进行转换编码,采用的转换函数为随机化函数; 所述秘钥生成器用于生成主秘钥和会话秘钥,所述主密钥为随机数发生器,系统当前时间或当前进程号;生成主密钥之后,随机化生成器将主密钥转换成特定客户端会话秘钥; 所述解密器用于将已经编码转换的URL地址恢复成明文; 所述URL定位器用于从WEB服务器的响应文本中,检索、定位出未经转换的URL地址,以便于加密器对这些原始URL地址进行加密编码处理; 所述重定向器用于强制客户端切换两个不同的URL地址。
【文档编号】H04L29/06GK104378363SQ201410599147
【公开日】2015年2月25日 申请日期:2014年10月30日 优先权日:2014年10月30日
【发明者】马多贺, 徐震, 黄亮, 陈凯, 吕双双, 杨倩, 姜帆 申请人:中国科学院信息工程研究所