APP下载

论Web安全防护系统

2020-06-03蒙星潮龙成李涛

科学与信息化 2020年9期

蒙星潮?龙成?李涛

摘 要 Web应用在如今的网络世界中越来越重要,由于其应用广泛,因而容易遭受黑客的恶意攻击。而市面上的一些web安全防护系统存在系统资源占用过多,用户体验不友好等问题,团队基于Python设计了一个web安全防护系统,在其他同类产品的基础上,改良漏洞检测方法,提升漏洞检测效率,并增加了调节线程和定制化服务,提高用户体验。本文介绍了该防护系统的设计思路,工作原理,具体实现以及实验测试。

关键词 python;web安全防护系统;漏洞检测

引言

随着信息时代的发展,各种WEB应用在个人、各大企业、政府甚至是军队中广泛使用,WEB应用在被广泛使用的同时,其带来的安全问题也最为严重。2019年全年,阿里云安全团队对Web攻击量进行了统计发现每个月都会产生巨大的Web攻击量,每个月都会有Web应用遭遇到各类自动化攻击工具的攻击。当恶意攻击者针对Web服务发动应用层攻击时,如注入、失效的身份认证、敏感数据泄露、XML外部实体、失效的访问控制、安全配置错误、跨站脚本、不安全的反序列化等[1],传统分组过滤防火墙无法检测到异常流量[2]。所以在面对如此巨大的攻击量,迫切需要构建一个全面的Web安全防护系统,及时修复Web应用漏洞,提升Web应用安全性。

为了使用户获得更好的用户体验,对安全防护进行研究,根据当下产品提出一个基于Python的Web安全防护系统,该系统能够对常规漏洞以及高危漏洞进行检测和防护。

1思路和工作原理

针对SQL注入攻击和XSS攻击,本系统打破传统工具的“随机攻击代码生成并進行检测”方案[3],基于web程序对攻击向量动态的反馈信息和代码本身,依此生成的代码SQL&XSS攻击代码经过变形和编码,使得系统大大增加了绕过过滤系统的概率。同时系统为测试人员提供多个变形策略以供选择,进一步增加了绕过的可能,增加安全检测的准确度。更好的发现漏洞、利用漏洞,以便修复漏洞。并且在检测存储型XSS漏洞方面做出创新,系统根据规则结合网络爬虫获取并解析各种web应用中可能发生存储型XSS漏洞的注入点。对检测到的可能的注入点,由基于BNF范式的攻击向量生成模块生成检测代码[4],使用多种变形策略对代码进行变形,然后进行安全检测;针对文件上传漏洞,本系统对上传的文件从内容,拓展名,文件大小以及文件路径进行检测,并对上传的进行重命名操作;针对弱口令漏洞,本系统利用爬虫找到需要口令的界面利用字典进行爆破,用户可以自行添加字典或者使用本系统默认字典进行爆破,检测是否含有弱口令,如果有会报告给相关人员进行更改。针对安全等级测评,本系统通过对检测结果的分析,以及根据国家对WEB应用的安全等级测评规则来进行安全等级评定,并推行出可行性的解决方案[5]。

本系统的工作原理可以分为四个部分,第一部分:输入目标URL;第二部分:爬取目标URL目录结构,提供给用户进行分析;第三部分:用各个漏洞检测模块对漏洞进行检测以及利用安全等级测评模块进行安全等级评估,系统将检测结果存储;第四部分:显示检测结果,提供用户对结果进行进一步分析,确认漏洞,并进行相应修复。

2具体设计与实现

本系统由常规漏洞爬虫检测模块[6]、XSS攻击载荷变形模块、XSS攻击检测模块、SQL注入检测模块和结果显示模块四个模块组成。

2.1 常规漏洞爬虫检测模块

(1)对超链接的内容进行记录,做下一步爬虫继续爬取的目标。

(2)对提交表单的名称进行记录,做下一步文件上传漏洞[7]的检测、弱口令漏洞检测和文件解析漏洞的检测的目标。

因为在大部分现存的web扫描器中对于目标网页爬虫分析都不充分,而本模块是把页面中所有的超链接都作为下一次爬虫抓取的目标,做到不放过任何一个可疑的页面。从而找到一些被忽略的上传页面、登录、注册等具有漏洞的页面,做到虽然不同的目标页面构造不同,但能结合具体的环境来检测的效果。由于爬取的数据过大,本模块还提供线程设置功能从而加快爬虫爬取的速度。

2.2 攻击载荷变形模块

SQL&XSS漏洞[8-9]攻击中,开发者一般都会使用一些过滤手段而防范SQL&XSS攻击,而往往过滤是不全面的,可能攻击者换一个语句或者换一种编码、变形的方式就会绕过过滤。攻击载荷模块目的就是为了全方位的去测试目标网页的过滤机制的牢固性,提供多种不同的攻击语句变形方式同时还具有拓展的功能,我们设计了四个工作流程来完成本模块的功能:

(1)初始化payload库(可以在payload文件里面添加新的payload)。

(2)根据不同功能在payload库中选择不同类别的payload。

(3)读取payload变形方法库,对用户选好的payload进行每种方法的变形。

(4)将变形后的payload输出在对应变形方法的输出框中。

2.3 XSS攻击检测模块

XSS攻击检测模块的主要分为目标板块、爬虫板块、测试板块和记录板块。目标板块是对目标的URL进行记录和管理,可以对多个目标同时进行测试,还会记录那些目标是已经测试的。爬虫板块是对目标页面进行爬虫爬取分析寻找测试的切入点如:查询的输入框,内容提交框等。切入点寻找完成后,将会进行XSS攻击的测试即进行测试板块,在该板块中我们除了会对payload库中的全部攻击载荷进行测试外,还会调用XSS攻击载荷的变形模块对每一个攻击载荷变形后进行测试。最后记录板块会根据页面是否执行我们的代码效果来分辨目标是否存在XSS漏洞,如果存在则进行目标漏洞位置的记录和相应攻击代码。

2.4 SQL注入检测模块

在SQL注入检测模块中,主要进行如下四个方面的检测工作:

(1)对常规漏洞爬虫检测模块中所记录的超链接内容进行调用。

(2)进行SQL注入点的分析(构造注入的判断语句进行分析,包括常见的一些绕过的构造方面,对存在的点进行保留)。

(3)进行SQL注入的判断,使用一些恶意代码进行SQL注入尝试获取更多的信息,然后记录每一个恶意代码的回显分析。

(4)根据SQL注入的判断,恶意代码的回显提供相应的修复建议。

在(2)(3)中使用的SQL测试语句,用户可以按照自己的测试经验进行拓展,随着用户的拓展,对SQL注入的判断也会越来越精确,因此本模块具有强大的灵活性。同时本模块还有多线程的工作模块,工作效率高。

2.5 结果显示模块

结果显示模块是对于常规漏洞爬虫检测模块、XSS攻击检测模块和SQL注入检测模块中所得到的结果先进行数据库的备份,再根据每个漏洞的危害性而形成一个专业的安全报告提供给用户,其中还对每个漏洞有一些常规的修复方法的提示。

当然,除了本系统设置好的漏洞之外用户还可以使用python编写其他漏洞的检测模块,然后进行报告漏洞等级的添加,本系统有相应的代码模板存在,用户只要会python语言就能进行开发。

3测试和验证

3.1 测试过程

将本系统同Acunetix Web Vulnerability Scanner(简称AWVS),Burp Suite的爬虫模块、SQL Injection检测模块以及XSS模块作比较,测试环境是DVWA的SQL模块、XSS模块加上自行编辑的具有针对性的过滤文件。

3.2 测试结果

如图1所示,本系统与Acunetix Web Vulnerability Scanner和Burp Suite 相比爬虫功能不及两款,但是胜在轻量以及较高的效率。在未开启过滤之前,本系统相比Acunetix Web Vulnerability Scanner和Burp Suite 的爬虫模块效率稍低。在针对XSS的检测上,本产品对比其余两款有着极大优势,针对SQL注入来说,略微逊色于AWVS,但是效率要比BURP稍好。在开启过滤后,Acunetix Web Vulnerability Scanner和Burp Suite针对SQL注入以及XSS的检测效率大打折扣,而本产品凭借独特的编码变形机制,仍然在对XSS以及SQL注入的检测上占据优势。

3.3 结果分析

经过我们的测试,我们所开发的web扫描器已经初具规模,并且取得不错的结果。

在针对網站开启过滤的条件下,我们的产品更显优势。更容易发现网站的漏洞,有利于对每个事件的风险推算,可能的威胁、漏洞以及最终可能的最大化的利益损失估算等。对比市场上同类的产品来说我们的产品更加灵活以及便携。

4结束语

本产品优点在于打破传统工具的“随机攻击代码生成并进行检测”方案,本系统基于web程序对攻击向量动态的反馈信息和代码本身,依此生成的Payload代码经过变形和编码,使得系统大大增加了绕过过滤系统的概率。同时系统为测试人员提供多个变形策略以供选择,进一步增加了绕过的可能,增加安全检测的准确度。更好的发现漏洞、利用漏洞,以便修复漏洞。

缺点在于对于网站的爬虫能力相对较弱,其余的漏洞检测功能不如市面上的工具,缺少跨平台能力。

参考文献

[1] 苏崇茂.计算机网络安全的入侵检测技术研究[J].数字技术与应用,2019,37(12):187-189.

[2] 马月,侯雪城,吴佳帅,等.Web应用防火墙(WAF)技术的综述[J].计算机时1代,2020,(3):13-15,19.

[3] 陈晶洁.高性能Web应用漏洞扫描系统的设计与实现[D].北京:北京邮电大学,2019.

[4] 沈海燕.网络安全中黑客防范技术探讨[J].电子世界,2018,(11):68-69.

[5] Huang W,Shuai B,Zuo B,et al. A systematic railway dangerous goods transportation system risk analysis approach: The 24 model[J]. Journal of Loss Prevention in the Process Industries,2020,(65):217.

[6] 张烨青.web应用安全漏洞扫描器爬虫技术的改进与实现[D].北京:北京邮电大学,2014.

[7] 周开东,魏理豪,王甜,等.远程文件包含漏洞分级检测工具研究[J].计算机应用与软件, 2014,(2):21-23.

[8] Ardiansah J T,Wibawa A P,Widyaningtyas T,et al. SQL Logic Error Detection by Using Start End Mid Algorithm [J].Knowledge Engineering and Data Science,2017,1(1):1-11.

[9] Steinhauser,Antonin,Tuma.DjangoChecker:Applying extended taint tracking and server side parsing for detection of context-sensitive XSS flaws[J].Software:Practice and  Experience,2019-Wiley Online Library,2019,(1):1-6.

作者简介

蒙星潮(2000-),男,广西平南人;在读院校:桂林电子科技大学,专业:信息安全,学历:本科。

龙成(2000-),男,贵州毕节人;在读院校:桂林电子科技大学,专业:信息安全,学历:本科。

李涛(1997-),男,广东佛山人;在读院校:桂林电子科技大学,专业:信息安全,学历:本科。