论文部分内容阅读
摘要:针对网上银行系统的安全性问题,在已给出的基于用户业务的Web应用防护墙框架上加入自学习模块,可以提升用户介入率,降低WAF误报率。该框架还能有效应对支付密码泄露、数据泄露、隐藏表单篡改和cookie欺骗等安全问题,通过实验验证了所设计的cookie防欺骗整体方案和隐藏表单防篡改防护策略的有效性。
关键词:Web应用防火墙;WAF框架;自学习模块;cookie欺骗防护;隐藏表单防篡改
中图分类号:TP393文献标志码:A文章编号:1008-1739(2019)04-67-3
0引言
随着网络信息的发展和电子商务的普及,网上银行系统如雨后春笋般地快速发展,网上银行是金融界的一大创新,给众多客户带来实实在在的方便,用户可以足不出户地在网上办理修改密码、转账和支付等业务。但网上银行在给客户带来方便的同时也带来了安全隐患,譬如支付密码泄露、数据泄露[1]、DDoS攻击[2]及CC攻击等。目前,网上银行系统的安全隐患不可小觑,部署WAF可以对网上银行系统起到全方位的防护,可以對Web应用层的主流攻击进行阻断,有效地阻止攻击者对网上银行系统的攻击。目前国外WAF,比较出名的有imperva,nsfocus,WAF等,国内比较出名的有天融信、绿盟和启明星辰的WAF产品,主要功能有阻断注入攻击、cookies以及网络欺骗攻击、XSS攻击、目录遍历、DDoS以及CC攻击等攻击。
1 WAF中自学习模块
1.1 WAF内容
WAF部署在客户端与应用程序之间,能实现对应用程序的防护功能,通过不改变原有网络拓扑结构,部署简单,容易被用户接受。WAF的主要工作职责对信息窃取、网页篡改、非法侵入和拒绝服务起到防护作用。WAF不仅能保护网站及服务器遭受各种恶意攻击,还能优化资源保证Web可靠性与可用性[3]。
1.2自学习模块
根据网上银行系统特点,路瑞强等人[4]给出了一个基于用户业务的WAF框架,整体架构包括预处理模块、防护模块、管理模块和日志模块。为了提升检测速度,降低WAF误报率,加入自学习模块。模块分为学习过程和过滤过程,要从正则自适应匹配、长度纬度以及语义分析3个维度来实现,如图1所示。
自适应匹配主要是对维度的Web请求参数值进行过滤,进而自动匹配生成适合该参数值的白名单正则表达式。当应用程序接收到用户的Web请求时,学习过程的正则自适应匹配函数会自动识别,返回相应函数的匹配值,当相同的请求再次被接收时,再一次进行匹配,如果匹配的数值高于之前的匹配结果,则对应的匹配值将重置。在Web请求学习的过程中,对数值的检测会越来越宽松,降低误报率,如有漏报则人工进行审核处理。而检测过程的正则自适应匹配函数支持用户自定义正则,一旦匹配到自学习模式记录的值为字符串类型时,将使用自定义正则进行检测。用户可以在管理页面根据不同的场景进行定制防护,提高自学习模式的通用性。
长度维度的学习和正则维度类似,当新的参数值长度比旧的参数值长度大时,会替代旧长度,处理时主要考虑降低误报因素。
词法分析,把字符转换为ASCLL码的十进制,之后在进行分类,分类规则如下:
①0~31及127(共33个)是通信专用字符或控制字符,标记为c,全称control;
②中文等分为一类,标记为n,即normal:空格;
③一般字符如(),_,!,”,@,.,?,标记为u,即usual:常见字符;
④其他诸如’,*,{}等标记为a,即anomaly:异常字符。
在进行分类转换的同时,相同的特征将被合并为一个。例如,输入“aaabbbccc大雨倾盆”,将被转换为n,而“大家好”,则将被转换为nun。语法分析维度有迭代次数的限制,语法分析默认最多存储5个特征,当超过5个特征数时,意味着该参数无固定的特征模式,该维度的检测被投向bypass模式。
2 WAF安全防护
当用户开启WAF的Web特征攻击过滤库过滤,可以防护已确定的SQL注入攻击、XSS攻击、CSRF攻击、命令注入、协议入侵和会话固定攻击等常见Web应用层的攻击。Web特征攻击过滤库要及时跟进和升级。除此之外,用户还可以开启自定义策略,譬如HTTP访问限制、cookie防护、隐藏表单防护、盗链防护、XML防护及应用层DDoS攻击防护等自定义策略。
2.1支付密码防泄露
支付密码泄露问题是网上银行的一大安全隐患,预防这一隐患,需要谨防钓鱼网站。但钓鱼网站利用XSS攻击漏洞进行的钓鱼攻击手段相当隐蔽,即使网民的安全意识相当强,也无法抵御攻击,WAF部署在防护网站与客户端之间会阻断XSS攻击。XSS攻击分3种,反射型XSS攻击、存储型XSS攻击和基于DOM的XSS攻击。编写XSS攻击正则,如下所示:alerttcp$EXTERNAL_NETany->$HTTP_SERVERS$HTTP_PORTS(msg:"NIICross-sitescriptingattempt";flow: to_server,established;pcre:"/ ((/%3C)|<)((/%2F)|//)* [a-z0-9/%]+((/%3E)|>)/i";classtype:Web-application-attack; sid:9000; rev:5;)黑客制造钓鱼网站,若代码能匹配上WAF的上面这段XSS正则,WAF就会阻断请求。黑客的阴谋就不能得逞。 2.2 cookie欺骗防护模块
当用户在网上选购商品时,会把选择好的商品放入购物车。若浏览器突然异常关闭,由于HTTP是无状态链接[5],如果没cookie,购选的商品就不复存在,这个结果是大家最不想看到的,若再次打开购物网重新链接HTTP,会影响网络速度。但cookie带来便利的同时也会带来欺骗。cookie欺骗是指伪造用户身份或权限,目的就是想要获得某些用户或者某些高级权限[6]。在网上银行系统中,常遇到黑客非法获取别人的cookie进入系统进行非法操作。为了安全,设计了一套完整的cookie防欺骗方案。2.2.1 cookie中的secure属性
该属性被设置为“真”时,表示创建的cookies会被以安全模式向服务器传送,也就是只能在HTTPS连接中被浏览器传递到服务器端进行会话验证,如果是在HTTP连接中则不会传递该cookie信息,所以不会被窃取到cookie的具体内容。就是只允许在加密的情况下将cookie加在数据包请求头部,防止cookie被带出来。
2.2.2 HttpOnly属性
如果在cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将無法读取到cookie信息,这样能有效的防止XSS攻击。secure属性的目的是防止信息在传输过程中被监听捕获后信息泄漏,HttpOnly属性的目的是防止程序获取cookie后进行攻击。但是这2个属性并不能解决cookie在本机出现的信息泄漏的问题(FireFox的插件FireBug能直接看到cookie的相关信息)。
2.2.3 cookie加密
cookie往往被用于记录用户登录状态,比如userid尽量不要记录密码。因为cookie被存储在客户端会很容易被篡改。为了有效防止XSS攻击盗取用户cookie,给cookie加密,这样可以防止基于cookie的SQL注入、命令注入以及其他五花八门的攻击。
cookie欺骗防护的功能核心,在WAF上进行cookie加密,加密算法使用MD5,对userid进行加密,加密后的userid被存储在客户端的cookie中,由于加密算法不可逆,所以服务器收到的cookie是无法解密的,服务器应在用户数据列表中增加一个专用保存MD5加密后的字段userid,然后通过SQL查询到userid。当WAF开启cookie加密策略,可以有效防止XSS攻击盗取用户的cookie,使攻击者拿到用户cookie的密文也无济于事,最终WAF因无法解密而失效。
2.2.4 cookie签名
操作办法是在set-cookie加上防篡改验证码。如:user_name=cecgw123。防篡改验证码的生成规则的方法:md5(cookieValue+key)或sha1(cookieValue+key),key可以是复杂服务器端得到客户端送上来的cookie,也可以是服务器端所掌握一个固定字符串。然后,重新计算一下验证码,如一致,则未篡改。在这里,签名是根据client ip加密的,恶意者即使拿到cookie,由于签名验证不通过,无法达到cookie欺骗的目的。
防护措施除此以外,设置cookie有效期限,防止一旦cookie被攻击者窃取,攻击者一直使用用户的账户登录。设置限制cookie的最大个数、cookie名字的最大长度等各项配置多方位防止cookie欺骗的发生。若防护系统无需防护,则添加到白名单。
3隐藏表单
在网上银行系统里,有些表单上的元素为了保密起见对客户隐藏,需要把表单设置为隐藏表单,但依然有被篡改的风险。可以在WAF里设置隐藏表单防篡改策略。隐藏表单的HTML表单字段不会在屏幕上显示,表面上看似无法修改,事实上能被修改。若把价格设置为负数,有的应用程序竟然能接受负数价格,攻击者不仅能收到货物,银行卡还能收到退款[7]。
隐藏表单和其他表单类型是一样的,同样有value这个属性,唯一的区别在于隐藏表单不会把这个元素显示出来,但在提交过程中仍然有效。例如放到中进行提交后,应用程序会获取该元素的值,但数值不在屏幕上显示。WAF隐藏表单防篡改策略原理提取特征值:price,隐藏参数格式:id="price" value=。若提交代码与隐藏参数格式中内容完全匹配,则请求被阻断。
4实验部分
4.1支付密码泄露
用户在浏览器中输入支付认证的信息包括银行卡号和密码。如果攻击者通过窃听方式或钓鱼网站获得用户的支付密码,就可以通过网络进入持卡人的账户进行转账或者支付,给持卡人带来经济上的损失。下面模拟黑客制造钓鱼,主要代码如下:
用户一旦在网站上输入账户和密码,点击“login”按钮,账号和密码就会被黑客获得。开启WAF固化规则防护中的XSS攻击,使用渗透工具burpsite拦截请求,在WAF的防护下,XSS攻击请求被拦截。详情如图2所示。
同理,WAF开启表单防护策略编写html代码,。开启隐藏表单防护效果如图3所示。
4.2 WAF中的cookie防护
HTTP cookie是通过客户端传送数据的另一个常用机制,和隐藏表单字段类似,HTTP cookie一般不显示在屏幕上,不可以由用户直接修改,但可以使用拦截代理服务器对HTTP cookie进行修改。抵御风险办法之一,就是WAF给cookie加密。开启WAF的cookie加密策略,使用wireshark工具抓包,cookie加密之后的效果如图4所示,从图中可以明显看出cookie已经被加密。
5结束语
如今,WAF在中国如火如荼地发展,很多企业投入到对WAF的研究之中。WAF为网上银行系统安全保驾护航,不仅解决了网上最棘手的安全问题———支付账户、密码和数据泄露,同时通过加入自学习模块提高了用户参与度,降低了误报率,阻断了黑客的不法攻击。最后,通过实验验证了WAF能很好地防护网站钓鱼攻击、SQL注入攻击、cookie欺骗攻击和隐藏表单篡改攻击,达到了预期的防护效果。但WAF研究之路还会很长,因为规则库要不断升级才能阻断最新类型的攻击。
参考文献
[1] Zhai Lili,Zheng De.Web Security Enhancement Scheme Basedon Web Application Firewall[J].Computer Eangineering and Applications,2011(25):104-106.
[2] Grobauer B,Walloschek T,Stocker E.Understanding Cloud Computing Vulnerabilities[J]. IEEE Security & Privacy, 2010,9(2):50-57.
[3]辛晓杰,辛阳,姬硕.基于特征匹配web应用防火墙的研究与设计[J].信息网络安全,2015(11):53-59.
[4]路瑞强.面向網银系统的WEB应用防火墙的设计与实现[D].北京:中国科学院大学,2015.
[5]郭龙龙.Web应用防火墙在电子商务平台上的应用[D].大连:东北财经大学,2013.
[6]吴翰清.白帽子讲Web安全[M].北京:电子工业出版社,2013.
[7] Dafydd S,Marcus P.The Web Application Hacker’s Handbook[M].USA: Wiley Publishing, Inc.,2012.
关键词:Web应用防火墙;WAF框架;自学习模块;cookie欺骗防护;隐藏表单防篡改
中图分类号:TP393文献标志码:A文章编号:1008-1739(2019)04-67-3
0引言
随着网络信息的发展和电子商务的普及,网上银行系统如雨后春笋般地快速发展,网上银行是金融界的一大创新,给众多客户带来实实在在的方便,用户可以足不出户地在网上办理修改密码、转账和支付等业务。但网上银行在给客户带来方便的同时也带来了安全隐患,譬如支付密码泄露、数据泄露[1]、DDoS攻击[2]及CC攻击等。目前,网上银行系统的安全隐患不可小觑,部署WAF可以对网上银行系统起到全方位的防护,可以對Web应用层的主流攻击进行阻断,有效地阻止攻击者对网上银行系统的攻击。目前国外WAF,比较出名的有imperva,nsfocus,WAF等,国内比较出名的有天融信、绿盟和启明星辰的WAF产品,主要功能有阻断注入攻击、cookies以及网络欺骗攻击、XSS攻击、目录遍历、DDoS以及CC攻击等攻击。
1 WAF中自学习模块
1.1 WAF内容
WAF部署在客户端与应用程序之间,能实现对应用程序的防护功能,通过不改变原有网络拓扑结构,部署简单,容易被用户接受。WAF的主要工作职责对信息窃取、网页篡改、非法侵入和拒绝服务起到防护作用。WAF不仅能保护网站及服务器遭受各种恶意攻击,还能优化资源保证Web可靠性与可用性[3]。
1.2自学习模块
根据网上银行系统特点,路瑞强等人[4]给出了一个基于用户业务的WAF框架,整体架构包括预处理模块、防护模块、管理模块和日志模块。为了提升检测速度,降低WAF误报率,加入自学习模块。模块分为学习过程和过滤过程,要从正则自适应匹配、长度纬度以及语义分析3个维度来实现,如图1所示。
自适应匹配主要是对维度的Web请求参数值进行过滤,进而自动匹配生成适合该参数值的白名单正则表达式。当应用程序接收到用户的Web请求时,学习过程的正则自适应匹配函数会自动识别,返回相应函数的匹配值,当相同的请求再次被接收时,再一次进行匹配,如果匹配的数值高于之前的匹配结果,则对应的匹配值将重置。在Web请求学习的过程中,对数值的检测会越来越宽松,降低误报率,如有漏报则人工进行审核处理。而检测过程的正则自适应匹配函数支持用户自定义正则,一旦匹配到自学习模式记录的值为字符串类型时,将使用自定义正则进行检测。用户可以在管理页面根据不同的场景进行定制防护,提高自学习模式的通用性。
长度维度的学习和正则维度类似,当新的参数值长度比旧的参数值长度大时,会替代旧长度,处理时主要考虑降低误报因素。
词法分析,把字符转换为ASCLL码的十进制,之后在进行分类,分类规则如下:
①0~31及127(共33个)是通信专用字符或控制字符,标记为c,全称control;
②中文等分为一类,标记为n,即normal:空格;
③一般字符如(),_,!,”,@,.,?,标记为u,即usual:常见字符;
④其他诸如’,*,{}等标记为a,即anomaly:异常字符。
在进行分类转换的同时,相同的特征将被合并为一个。例如,输入“aaabbbccc大雨倾盆”,将被转换为n,而“大家好”,则将被转换为nun。语法分析维度有迭代次数的限制,语法分析默认最多存储5个特征,当超过5个特征数时,意味着该参数无固定的特征模式,该维度的检测被投向bypass模式。
2 WAF安全防护
当用户开启WAF的Web特征攻击过滤库过滤,可以防护已确定的SQL注入攻击、XSS攻击、CSRF攻击、命令注入、协议入侵和会话固定攻击等常见Web应用层的攻击。Web特征攻击过滤库要及时跟进和升级。除此之外,用户还可以开启自定义策略,譬如HTTP访问限制、cookie防护、隐藏表单防护、盗链防护、XML防护及应用层DDoS攻击防护等自定义策略。
2.1支付密码防泄露
支付密码泄露问题是网上银行的一大安全隐患,预防这一隐患,需要谨防钓鱼网站。但钓鱼网站利用XSS攻击漏洞进行的钓鱼攻击手段相当隐蔽,即使网民的安全意识相当强,也无法抵御攻击,WAF部署在防护网站与客户端之间会阻断XSS攻击。XSS攻击分3种,反射型XSS攻击、存储型XSS攻击和基于DOM的XSS攻击。编写XSS攻击正则,如下所示:alerttcp$EXTERNAL_NETany->$HTTP_SERVERS$HTTP_PORTS(msg:"NIICross-sitescriptingattempt";flow: to_server,established;pcre:"/ ((/%3C)|<)((/%2F)|//)* [a-z0-9/%]+((/%3E)|>)/i";classtype:Web-application-attack; sid:9000; rev:5;)黑客制造钓鱼网站,若代码能匹配上WAF的上面这段XSS正则,WAF就会阻断请求。黑客的阴谋就不能得逞。 2.2 cookie欺骗防护模块
当用户在网上选购商品时,会把选择好的商品放入购物车。若浏览器突然异常关闭,由于HTTP是无状态链接[5],如果没cookie,购选的商品就不复存在,这个结果是大家最不想看到的,若再次打开购物网重新链接HTTP,会影响网络速度。但cookie带来便利的同时也会带来欺骗。cookie欺骗是指伪造用户身份或权限,目的就是想要获得某些用户或者某些高级权限[6]。在网上银行系统中,常遇到黑客非法获取别人的cookie进入系统进行非法操作。为了安全,设计了一套完整的cookie防欺骗方案。2.2.1 cookie中的secure属性
该属性被设置为“真”时,表示创建的cookies会被以安全模式向服务器传送,也就是只能在HTTPS连接中被浏览器传递到服务器端进行会话验证,如果是在HTTP连接中则不会传递该cookie信息,所以不会被窃取到cookie的具体内容。就是只允许在加密的情况下将cookie加在数据包请求头部,防止cookie被带出来。
2.2.2 HttpOnly属性
如果在cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将無法读取到cookie信息,这样能有效的防止XSS攻击。secure属性的目的是防止信息在传输过程中被监听捕获后信息泄漏,HttpOnly属性的目的是防止程序获取cookie后进行攻击。但是这2个属性并不能解决cookie在本机出现的信息泄漏的问题(FireFox的插件FireBug能直接看到cookie的相关信息)。
2.2.3 cookie加密
cookie往往被用于记录用户登录状态,比如userid尽量不要记录密码。因为cookie被存储在客户端会很容易被篡改。为了有效防止XSS攻击盗取用户cookie,给cookie加密,这样可以防止基于cookie的SQL注入、命令注入以及其他五花八门的攻击。
cookie欺骗防护的功能核心,在WAF上进行cookie加密,加密算法使用MD5,对userid进行加密,加密后的userid被存储在客户端的cookie中,由于加密算法不可逆,所以服务器收到的cookie是无法解密的,服务器应在用户数据列表中增加一个专用保存MD5加密后的字段userid,然后通过SQL查询到userid。当WAF开启cookie加密策略,可以有效防止XSS攻击盗取用户的cookie,使攻击者拿到用户cookie的密文也无济于事,最终WAF因无法解密而失效。
2.2.4 cookie签名
操作办法是在set-cookie加上防篡改验证码。如:user_name=cecgw123。防篡改验证码的生成规则的方法:md5(cookieValue+key)或sha1(cookieValue+key),key可以是复杂服务器端得到客户端送上来的cookie,也可以是服务器端所掌握一个固定字符串。然后,重新计算一下验证码,如一致,则未篡改。在这里,签名是根据client ip加密的,恶意者即使拿到cookie,由于签名验证不通过,无法达到cookie欺骗的目的。
防护措施除此以外,设置cookie有效期限,防止一旦cookie被攻击者窃取,攻击者一直使用用户的账户登录。设置限制cookie的最大个数、cookie名字的最大长度等各项配置多方位防止cookie欺骗的发生。若防护系统无需防护,则添加到白名单。
3隐藏表单
在网上银行系统里,有些表单上的元素为了保密起见对客户隐藏,需要把表单设置为隐藏表单,但依然有被篡改的风险。可以在WAF里设置隐藏表单防篡改策略。隐藏表单的HTML表单字段不会在屏幕上显示,表面上看似无法修改,事实上能被修改。若把价格设置为负数,有的应用程序竟然能接受负数价格,攻击者不仅能收到货物,银行卡还能收到退款[7]。
隐藏表单和其他表单类型是一样的,同样有value这个属性,唯一的区别在于隐藏表单不会把这个元素显示出来,但在提交过程中仍然有效。例如放到中进行提交后,应用程序会获取该元素的值,但数值不在屏幕上显示。WAF隐藏表单防篡改策略原理提取特征值:price,隐藏参数格式:id="price" value=。若提交代码与隐藏参数格式中内容完全匹配,则请求被阻断。
4实验部分
4.1支付密码泄露
用户在浏览器中输入支付认证的信息包括银行卡号和密码。如果攻击者通过窃听方式或钓鱼网站获得用户的支付密码,就可以通过网络进入持卡人的账户进行转账或者支付,给持卡人带来经济上的损失。下面模拟黑客制造钓鱼,主要代码如下:
用户一旦在网站上输入账户和密码,点击“login”按钮,账号和密码就会被黑客获得。开启WAF固化规则防护中的XSS攻击,使用渗透工具burpsite拦截请求,在WAF的防护下,XSS攻击请求被拦截。详情如图2所示。
同理,WAF开启表单防护策略编写html代码,。开启隐藏表单防护效果如图3所示。
4.2 WAF中的cookie防护
HTTP cookie是通过客户端传送数据的另一个常用机制,和隐藏表单字段类似,HTTP cookie一般不显示在屏幕上,不可以由用户直接修改,但可以使用拦截代理服务器对HTTP cookie进行修改。抵御风险办法之一,就是WAF给cookie加密。开启WAF的cookie加密策略,使用wireshark工具抓包,cookie加密之后的效果如图4所示,从图中可以明显看出cookie已经被加密。
5结束语
如今,WAF在中国如火如荼地发展,很多企业投入到对WAF的研究之中。WAF为网上银行系统安全保驾护航,不仅解决了网上最棘手的安全问题———支付账户、密码和数据泄露,同时通过加入自学习模块提高了用户参与度,降低了误报率,阻断了黑客的不法攻击。最后,通过实验验证了WAF能很好地防护网站钓鱼攻击、SQL注入攻击、cookie欺骗攻击和隐藏表单篡改攻击,达到了预期的防护效果。但WAF研究之路还会很长,因为规则库要不断升级才能阻断最新类型的攻击。
参考文献
[1] Zhai Lili,Zheng De.Web Security Enhancement Scheme Basedon Web Application Firewall[J].Computer Eangineering and Applications,2011(25):104-106.
[2] Grobauer B,Walloschek T,Stocker E.Understanding Cloud Computing Vulnerabilities[J]. IEEE Security & Privacy, 2010,9(2):50-57.
[3]辛晓杰,辛阳,姬硕.基于特征匹配web应用防火墙的研究与设计[J].信息网络安全,2015(11):53-59.
[4]路瑞强.面向網银系统的WEB应用防火墙的设计与实现[D].北京:中国科学院大学,2015.
[5]郭龙龙.Web应用防火墙在电子商务平台上的应用[D].大连:东北财经大学,2013.
[6]吴翰清.白帽子讲Web安全[M].北京:电子工业出版社,2013.
[7] Dafydd S,Marcus P.The Web Application Hacker’s Handbook[M].USA: Wiley Publishing, Inc.,2012.