APP下载

Web应用漏洞扫描检测系统

2019-10-15卢志科康晓凤眭桢屹王昊刘冀卿孙冲冲

软件导刊 2019年8期

卢志科 康晓凤 眭桢屹 王昊 刘冀卿 孙冲冲

摘 要:Web应用系统已在生活中得到广泛应用,针对这些系统的黑客攻击也十分严重。黑客大多是利用已知漏洞进行攻击,因此如果修补系统存在的已知漏洞,即可防御大多数攻击。采用分布式架构与多线程技术设计并实现了一个Web应用漏洞扫描系统,将主动扫描与被动检测相结合,并通过相应插件对Web系统进行扫描,从而快速识别出owasp10常见漏洞。用户部署该系统后,可以定期对Web应用进行检测,以识别Web应用中是否存在漏洞。通过及时发现漏洞并进行修补,可有效保障Web应用的安全性,将黑客攻击风险降到最低。

关键词:Web应用;漏洞检测;黑客攻击;分布式架构

DOI:10. 11907/rjdk. 182745 开放科学(资源服务)标识码(OSID):

中图分类号:TP309文献标识码:A 文章编号:1672-7800(2019)008-0186-05

Web Application Vulnerability Scanning Detection System

LU Zhi-ke, KANG Xiao-feng,SUI Zhen-yi,WANG Hao,LIU Ji-qing,SUN Chong-chong

(Xuzhou Institute of Technology, Xuzhou 221000,China)

Abstract:The advantages of Web application systems make this technology widely used, and hacking attacks against these systems are becoming more serious. Most hackers exploit known vulnerabilities to attack, so if a known vulnerability is fixed in the system, one can defend against most attacks. The Web application vulnerability scanning system implemented by this system adopts distributed architecture and multi-threading technology, combines active scanning and passive detection, and scans the Web system through corresponding plug-ins, which can quickly identify the common vulnerabilities of owasp10 and the famous Know the vulnerabilities. After the user deploys the system, the Web application can be detected periodically and in time identify whether there is a corresponding ensured can be vulnerability in the Web application. Vulnerabilities are discovered instantly and patched so that the security of Web applications, minimizing the risk of hacker attacks and avoiding losses.

Key Words:Web application; Web application; hacking attacks; distributed architecture

基金項目:江苏省大学生创新创业训练项目(xcx2018023)

作者简介:卢志科(1998-),男,徐州工程学院信电工程学院学生,研究方向为信息安全; 康晓凤(1978-),女,徐州工程学院信电工程学院副教授,研究方向为信息安全;眭桢屹(1998-),男,徐州工程学院信电工程学院学生,研究方向为信息安全;王昊(1998-),男,徐州工程学院信电工程学院学生,研究方向为信息安全;刘冀卿(1999-),男,徐州工程学院信电工程学院学生,研究方向为信息安全;孙冲冲(1998-),男,徐州工程学院信电工程学院学生,研究方向为信息安全。

0 引言

Web应用系统已在人们日常生活与工作中得到广泛应用,例如订票系统、购物网站、酒店管理系统等,但很多Web应用系统中都存在漏洞。根据国家信息安全漏洞库(CNNVD)统计,截至2018 年8 月31 日,CNNVD 采集漏洞总量已达114 413 个[1-2],表明Web应用的安全问题日益突出。因此,国外一些公司推出了Web应用安全漏洞扫描器,以实现快速对Web应用进行漏洞扫描,具体包括:

(1)IBM Security AppScan:可提升 Web 与移动应用的安全性,在部署之前对 Web与移动应用进行测试,帮助识别安全风险、生成报告并获取修复建议;能对常见的Web应用漏洞进行评估、扫描与检测,包括XSS跨站脚本、SQL注入、缓冲区溢出等漏洞,从而降低系统遭受攻击的可能性。此外,该扫描器可以生成漏洞扫描结果报告,并在报告中提供完善的漏洞处理建议[3]。

(2)Nessus:作为目前世界上使用人数最多的系统漏洞扫描与分析软件,Nessus漏洞扫描器具有规模庞大的漏洞库,并能实时更新。使用Nessus进行漏洞扫描,能够给出详细的漏洞评估报告,如漏洞描述以及相应解决方案。但在实际使用中,由于其测试时使用的测试代码风险值较高,可能会发生在授权测试中误删授权企业数据库信息的现象。

(3)Acunetix Web Vulnarability Scanner:一款知名的Web网络漏洞扫描工具,该扫描器具有业内最先进的 SQL 注入与跨站脚本测试手段[4]。

与国外相比,国内开发的Web应用安全漏洞扫描器种类较少,主要是由各网络安全公司开发的漏洞扫描器,如安恒科技的明鉴Web应用弱点扫描器、绿盟科技的绿盟极光远程安全评估系统等。国内的漏洞检测软件性能与国外软件相比尚存在一定差距,例如不支持并发扫描,对隐藏在需登录验证后才能访问的网页无法检测等[5]。然而,国外很多商业Web应用漏洞扫描软件虽然功能强大,但是价格昂贵,且安装复杂,而众多中小型企业仅需要保障基本的Web应用安全即可,因此出于节省成本考虑,通常不愿意支付高昂的授权费用[6]。

面对各种攻击手段,企业除使用Web应用安全扫描器对自身的Web应用进行漏洞检测外,还有一种传统防御方法,即在Web应用部署完成后,针对常规攻击手法,对应用进行基本的隔离防护。通过一层代理的方式,对用户提交的请求与输入内容进行过滤检测,正常内容即通过代理提交到Web应用中进行处理,而若代理检测到恶意请求,则立即将其拦截,以防Web应用受到攻击。常见的采用传统防御手段的系统主要有安全狗、云锁、阿里云盾等,但该防御手段最大的弊端在于无法从根本上杜绝Web应用漏洞,而商用的Web应用漏洞扫描器价格高昂,对中小型企业而言性价比不高。通过对漏洞检测系统的研究发现,传统漏洞检测系统通常会将所有漏洞都枚举检测一遍,不但运行检测时间长,还会占用过多系统资源,甚至使系统发生崩溃[7]。本系统在检测漏洞之前会先对目标进行扫描识别,判断Web应用系统及服务器类别,之后用户可选择性地进行插件配置,从而大大提高了检测准确率,节省了时间。此外,对于需要为自身Web应用系统提供安全服务且预算不高的中小型企业而言,本系统均采用网络开源的插件框架开发,并使用免费的MongoDB数据库,UI界面简洁易用,用户操作起来十分简便。通过合理、高效的插件配置方式,可以轻松实现对Web应用的常规性漏洞检测扫描,大大降低了黑客攻击的风险。

1 系统设计

1.1 Python多線程

多线程技术是指在系统中从软件或硬件角度实现多个线程并发执行的技术。因此,本系统采用多线程技术,以提高扫描效率、节省扫描时间。Python中由threading模块提供多线程操作,调用threading类中相应函数即可实现线程相关操作。

1.2 OWASP TOP10漏洞介绍

OWASP(Open Web Application Security Project)开放式Web应用程序安全项目是一个非营利组织,旨在分析每年的Web应用漏洞,并从中归纳出现次数最多的Web应用漏洞类型,其中排名前10的分别为SQL注入、失效的身份认证与会话管理、跨站脚本(XSS)、不安全的直接对象引用、安全配置错误、敏感信息泄漏、功能级访问控制缺失、跨站请求伪造(CSRF)、使用含有已知漏洞的组件、未验证的重定向与转发[8]。该组织每年都会发布一份详细的Web应用十大威胁安全报告,权威性极高。

1.3 端口扫描

端口扫描采用SYN扫描技术,扫描节点向待检测主机特定端口发送请求连接的SYN包,扫描节点收到SYN/ACK包后,则发送RST包请求断开连接,而不是相应的ACK包。因此,TCP三次握手将无法完成,正常连接也无法进行。同时,此次探测也不会进行系统日志记录。SYN扫描不会在待检测主机上留下痕迹,属于比较隐蔽的一种扫描方式。其扫描流程为:SYN给目标主机发送初始SYN数据包,如果端口开放,则响应SYN-ACK数据包;如果关闭,则响应RST数据包。

1.4 指纹识别

指纹识别可用于探测目标服务器类型,帮助人们进一步探测服务器级别的漏洞,并从该级别进行渗透测试。指纹识别通常采用的技术为Banner抓取,Banner抓取是最简单、基础的指纹识别技术,而且不需要其它专门工具即可进行。其操作简单,获取的信息通常也相对准确。通过telnet获取Banner信息如图1所示。

图1 通过telnet获取Banner信息

然而,越简单的方法越容易被防御,如今该方法成功率也越来越低。数据包分析则是另一种较为复杂的识别方式,通过发送特殊构造的数据包到目标服务器,目标服务器会返回一定结构的响应包。扫描节点分析响应数据包特定结构后,与事先配置的指纹数据库进行对比,从而识别出相应服务或服务器[9]。所有黑客攻击最初必然是对目标系统进行信息搜集,重点为探测服务器类型,确定服务器内容后即可确定攻击范围,甚至直接找到攻击方法。本系统采用Banner抓取与数据包分析相结合的方式进行识别检测,从而提高指纹识别准确度。

1.5 分布式架构

分布式系统(Distributed System)是建立在网络之上的软件系统,其具有以下几个特性:①内聚性:指每一个数据库分布节点高度自治,并具有本地的数据库管理系统;②透明性:指每一个数据库分布节点对用户应用都是透明的,无法看出是本地还是远程。在分布式数据系统中,用户感觉不到数据是分布式的,即用户不需要知道关系是否分割、有无副本、数据存在于哪个站点,以及在哪个站点上执行分布式架构能够有效解决传统扫描检测系统运行缓慢、效率低下等问题,从而能够最大程度上合理利用服务器资源,从根本上提高企业工作效率,还能确保漏洞检测的准确性,同时保证检测质量与效率[10] 。

2 系统实现

2.1 系统实现目的与意义

针对中小型企业进行的攻击大多是黑客为了获取服务器权限而进行的,黑客通常会利用互联网上的已知漏洞编写自动化的漏洞利用代码,以批量地对互联网上未打补丁的Web应用系统进行攻击,攻击成功后通过植入恶意程序实现对服务器的控制,从而盗取钱财。如果及时发现并修补该漏洞,这些攻击代码则会失去作用,从而成功抵御黑客攻击。

然而,对于黑客而言,最大的漏洞是人本身,企业内部人员有时为了方便记忆,密码设置很简单,因而黑客通过弱口令即可轻松进入系统。本文使用定制漏洞模块中的ssh弱口令检测进行扫描演示,新增扫描任务与ssh弱口令检测结果如图5、图6所示。

图5 新增扫描任务

图6 ssh弱口令检测结果

2.4 信息统计模块

信息统计主要是对扫描检测后的结果进行分类统计,并用图表方式进行显示。通过系统Web端界面可以直观地看到相应网络资产、内网分布情况以及漏洞信息,以方便用户使用。该模块首先读取数据库Info集合中的记录,之后通过View.py中的Analysis()函数分析显示在页面analysis.html上。信息统计模块能够对扫描检测后的结果进行分类统计[18],如图7所示。

图7 信息统计结果

2.5 插件管理模块

插件管理主要分为扫描规则配置与检测插件配置两大模块。扫描规则配置主要用于系统扫描最大线程、连接超时时间、资产探测周期、识别规则、端口探测列表等配置;检测插件配置分为在线更新插件、单机更新插件两种。在线更新插件通过网络下载获取指定网站的插件脚本,单击更新插件需要用户具有一定编程能力,能够自己编写相应检测脚本。用户按照系统规定格式进行漏洞检测Poc的编写,并将其上传到扫描节点,然后将其配置到相应检测节点,即可对特定漏洞进行检测。插件上传成功后,可在vulscan目录下找到该插件。插件管理模块页面上所有插件名称,点击插件名称会显示插件详细信息。新增插件分为JSON格式与脚本格式,插件模块界面如图8-图10所示。

图8 插件管理模块

图9 新增JSON插件界面

图10 新增脚本插件界面

3 结语

很多公司对Web应用的安全问题并没有足够重视,只有在漏洞被攻击并造成严重损失后才会重视安全问题。在最新的《中华人民共和国网络安全法》中规定[19]:网络产品与服务提供者应为其产品、服务持续提供安全服务。由于漏洞具有复杂多变等特点,人工检测费时费力,因此可通过一款自动化的Web应用漏洞检测软件进行辅助检测,以提高检测效率。William等提出了典型的“信息收集—攻击生成—响应分析” Web安全漏洞扫描技术流程,很多扫描技术都可归纳在该流程框架中。大多数扫描器首先通过信息收集,分析出目标的Web服务器、Web容器与其使用的Web开发框架。根据搜集到的信息配置相应参数并生成攻击载荷,最后根据返回的响应判断是否存在漏洞[20]。本系统的扫描技术流程也遵循该规律,例如检测SQL注入,首先通过爬虫爬取目标相应链接,然后将批量注入语句通过post或get请求发送到相应链接,之后对其返回包进行分析,检测是否存在SQL注入漏洞。Web安全扫描技术属于黑盒测试方法,测试人员一般会在有用户输入的地方输入一些敏感信息,根据回显判断是否存在漏洞。漏洞扫描系统本质上相当于安全人员手工测试漏洞的抽象模型,虽然在测试结果分析方面,扫描系统往往不如安全人员灵活,但随着人工智能技术的飞速发展,也有研究者提出将人工智能技术与漏洞扫描技术相结合的方案。若能将两种技术成功融合,将会对漏洞扫描分析技术带来重大变革,对渗透测试领域也将产生重要影响。

参考文献:

[1] 中国信息安全测评中心. 国家信息安全漏洞通报[J]. 中国信息安全,2018(9):112-117.

[2] 孙冰. 网络黑产变形升级,你中招了吗?[J]. 中国经济周刊,2018(30):37-40.

[3] ANTUNES N, VIEIRA M. Detecting vulnerabilities in service oriented architectures[C]. Dallas:IEEE International Symposium on Software Reliability Engineering Workshops. IEEE, 2013.

[4] 高晓峰. 漏洞你先知,电脑更安全[J]. 计算机与网络,2016,42(13):51.

[5] 顾明昌,王丹,赵文兵,等. 一种基于攻击向量自动生成的XSS漏洞渗透测试方法[J].  软件导刊,2016, 15(7):?173-177.

[6] 孙晓飞. Web应用漏洞分析与检测的研究[D]. 北京:北京邮电大学,2016.

[7] MAKINO Y,KLYUEV V. Evaluation of Web vulnerability scanners[C]. Warsaw:2015 IEEE Internation Conference on Intelligent Acquisition and Advanced Computing Systems: Technology and Applications, 2015:399-402.

[8] 王文君,李建蒙. Web应用安全威胁与防治:基于OWASP TOP10与ESAPI[M]. 北京:电子工业出版社,2013.

[9] 刘璇. 白帽子讲Web扫描[M]. 北京:电子工业出版社,2017.

[10] 李彦鹏,杨彪. 分布式服务架构:原理、设计与实战[M]. 北京:电子工业出版社,2017.

[11] MICHAEL S, ADAM G. 模糊测试:强制性安全漏洞发掘[M]. 黄陇,于莉莉,李虎,等,译. 北京:机械工业出版社,2009.

[12] PATRICK E. 渗透测试实践指南:必知必会的工具与方法[M]. 姚军,姚明,译.  北京:机械工业出版社,2013.

[13] STUART M. 黑客大曝光網络安全机密与解决方案 [M]. 第7版. 赵军,等,译. 北京:清华大学出版社,2012.

[14] 张炳帅. Web安全深度剖析[M]. 北京:电子工业出版社,2015.

[15] WEINBERGER J,SAXENA P,AKHAWE D,et al. A systematic analysis of XSS sanitization in Web application frameworks[M]. Berlin:Springer Berlin Heidelberg, 2011.

[16] JUSTIN S.Python 黑帽子:黑客与渗透测试编程之道[M]. 孙松柏,李聪,润秋,译.  北京:电子工业出版社,2015.

[17] ARMANDO F. Python数据分析[M]. 韩波,译. 北京:人民邮电出版社,2018.

[18] 全国人民代表大会常务委员会. 中华人民共和国网络安全法[M]. 北京:人民出版社,2016:1-36.

[19] HALFOND W G, CHOUDHARY S R, ORSO A. Improving penetration testing through  static  and  dynamic  analysis[J]. Software  Testing,  Verification  andReliability, 2011,21(3): 195-214.

[20] LWIN K S, LIONEL C, et al. Application vulnerability prediction using hybrid program analysis and machine learning[J]. IEEE Transactions on Dependable and Secure Computing,2015,12(6):688-707.

(责任编辑:黄 健)