《应用漏洞扫描器的设计与实现.docx》由会员分享,可在线阅读,更多相关《应用漏洞扫描器的设计与实现.docx(46页珍藏版)》请在优知文库上搜索。
1、摘要:如何及时、快速发现各种安全漏洞,并且修补安全漏洞,减轻或消除主机、URL、Web风险成为安全行业的重要课题。小型Web应用几十上百个页面,大型的Web应用成千上万个页面。如果靠人工的方式去检测每个页面的安全性,显然,这个成本是难以估计的。所以,就需要借助于自动化工具,帮助审计员去发现从主机到Web的安全漏洞。这些自动化工具就是漏洞扫描器。本次选题的目的是完成一个基于各种Web应用漏洞的的漏洞扫描器,设计思路主要是完成基于Python的脚本插件,其中要包含各种模块化的插件,通过各个模块的联动操作实现了一个完整的应用漏洞扫描工具。同时为了保证每一个功能相互独立又相互联动特地采用了模块化设计的
2、思路,实现了对需要验证的主机完成对主机URL或者Web应用完成漏洞扫描工作,最后输出一份可提供于安全工程师有迹可循且直观的漏洞扫描报告的过程,从而为安全工程师的安全工作提供完整、高效的漏洞情报。关键词:漏洞扫描技术;Web应用安全;扫描器;模块化扫描;Python脚本ImplementationofaBrowserBasedVulnerabilityScannerAbstract:Howtotimelyandquicklydiscovervarioussecurityvulnerabilities,andpatchthemtoreduceoreliminatehost,URL,andwebri
3、skshasbecomeanimportantissueinthesecurityindustry.Smallwebapplicationshavedozenstohundredsofpages,whilelargewebapplicationshavethousandstotensofthousandsofpages.Itisclearlydifficulttoestimatethecostofmanuallytestingthesecurityofeachpage.Therefore,torelyonautomatedtools,suchasvulnerabilityscanners,to
4、helpauditorsdiscoversecurityvulnerabilitiesfromhoststotheweb.Thepurposeofthisprojectistocompleteavulnerabilityscannerbasedonvariouswebapplicationvulnerabilities.ThedesignideaismainlytocompleteaPython-basedscriptplugin,whichincludesvariousmodularplugins,andrealizesacompleteapplicationvulnerabilitysca
5、nningtoolthroughthelinkageoperationofeachmodule.Inordertoensurethateachfunctionisindependentandinterrelated,amodulardesignapproachisadoptedtocompletevulnerabilityscanningworkforhosts,URLs,orwebapplicationsthatneedtobeverified.Finally,aprocessthatcanprovidesecurityengineerswithatraceableandintuitivev
6、ulnerabilityscanningreportisoutput,therebyprovidingcompleteandefficientvulnerabilityintelligenceforsecurityengineerssecuritywork.Keywords:Vulnerabilityscanning;Webapplicationsecurity;scanner;modularscanning;Pythonscript.第1章绪论11.1 选题背景意义11.2 漏洞扫描器的发展现状21.2.1 漏洞扫描技术分类21.2.2 常见漏洞扫描软件31.3 本课题研究意义41.4 论文
7、工作内容41.5 论文组织架构5第2章安全漏洞扫描技术72.1 安全漏洞研究72.1.1 漏洞定义与分类72.1.2 漏洞审查72.1.3 漏洞危害72.2 安全漏洞库82.2.1 安全漏洞库具体作用82.2.2 现有的安全漏洞库92.3 漏洞扫描技术92.3.1 漏洞扫描器工作原理92.3.2 漏洞扫描器的发展历史102.3.3 漏洞扫描器的发展趋势11第3章漏洞扫描器的系统分析123.1 漏洞扫描器概述123.2 可行性分析123.2.1 技术可行性分析123.2.2 经济可行性分析123.3 功能需求分析123.4 流程分析13第4章漏洞扫描器的系统设计与实现154.1 总体设计154.
8、1.1 设计目标154.1.2 设计平台154.1.3 具体模块分布154.1.4 模块联动系统164.2 模块设计164.2.1 用户界面模块设计164.2.2 目标选择模块设计174.2.3 扫描引擎模块设计174.2.4 漏洞检测模块设计184.2.5 漏洞管理模块设计204.2.6 扫描数据库模块设计204.2.7 漏洞报告模块设计204.3 模块实现204.3.1 用户界面模块204.3.2 目标选择模块224.3.3 扫描引擎模块254.3.4 漏洞检测模块264.3.5 漏洞管理模块354.3.6 扫描数据库模块364.3.7 漏洞报告模块364.3.8 其他使用说明37第5章漏
9、洞扫描器测试395.1 测试方式395.2 功能测试395.3 测试总结41结论42致谢43参考文献44第1章绪论1.1 选题背景意义漏洞扫描器,对于安全工程师而言它像是一把万能的工具,可以帮助评估主机和网络的安全性能,发现网络中潜在的安全漏洞,提高网络的抗攻击能力;但是作为一个工具,其也可能被网络攻击者所利用,作为收集网络主机信息的重要手段。随着网络化和信息化的高速发展,网络已经逐渐成为人们生活中不可缺少的一部分,但网络信息系统的安全问题也变得日益严峻。网络攻击、入侵等安全事件频繁发生,而这些事件多数是因为系统存在各种安全漏洞所引起。漏洞(VUlnerability)也称为脆弱性,在漏洞被验
10、证可使用的情况下,攻击者就可在未授权的情况下访问或破坏系统,轻则导致数据泄露,重则导致其系统瘫痪。不同的软硬件设备、不同的系统或者同种系统在不同的配置下,都会存在各自的安全漏洞。安全漏洞在网络安全中越来越受到重视。根据CNVD漏洞平台国家信息安全漏洞共享平台,从2022年年初开始漏洞出现量仍然极高:其中第一至第四季度分别发现漏洞3173、2774、2549、2338个。相应的,安全漏洞的出现就会带来一系列的网络攻击事件。为了保证网络系统的安全、合规、统一,国家也颁布了中华人民共和国数据安全法。在该法律的约束下,中国的安全产业也在快速发展,而对于漏洞的处理上防患于未然就成了重中之重。对于安全漏洞
11、引起的安全问题,采用事先检测系统的脆弱点、加固脆弱点,是必须要做的事情。漏洞的检测依赖于人的发现,因此它是一个动态的过程。一般而言,系统的规模、复杂度与自身的脆弱性成反比:系统越大、越复杂,就越脆弱。当发现系统的一个或多个漏洞时,对系统安全的威胁便随之产生。通常,黑客进行一次成功的网络攻击,首先会收集目标网络系统的信息,确定目标网络的状态,如主机类型、操作系统、开放的服务端口以及运行的服务器软件等信息,然后再对其实施具有针对性的攻击。而对目标系统信息及漏洞信息的获取,目前主要是通过漏洞扫描器实现的。漏洞扫描器是自动检测远程或本地主机在安全性方面脆弱点的程序。它通过模拟黑客攻击的方式对目标可能存
12、在的已知安全漏洞进行逐项检测。对于系统管理员来说,采用安全漏洞扫描技术,能够快速、及时地查看网络的安全状况,通过关闭不必要的服务、修补已经发现的漏洞等措施来加强安全。网络的安全风险是实时存在的,利用漏洞扫描器来进行实时检测、保障网络和系统不被非授权用户侵入是确保网络安全的一个重要环1.2 漏洞扫描器的发展现状1.2.1 漏洞扫描技术分类基于网络的的检测技术使用积极的、非破坏性的办法来检验目标是否有可能被攻击崩溃。它根据漏洞的不同特性,构造网络数据包,发给网络中的一个或多个目标服务器,以判断某个特定的漏洞是否存在。基于网络的漏洞扫描包含网络映射和端口扫描功能,一般由以下几个部分组成:(1)漏洞数
13、据库模块;(2)用户配置控制台模块;(3)扫描引擎模块;(4)当前活动的扫描知识库模块;(5)结果存储器和报告生成工具。基于应用的检测技术在现在Web应用使用机器宽泛的大环境下,安全漏洞的数量和应用也在逐步增大,所以单独的应用安全漏洞扫描器显得格外重要。其中的应用层漏洞存在且不仅限于中间件漏洞、Web应用本身漏洞、逻辑漏洞等。而基于应用的漏洞扫描技术就是专门为此而开发出的检测技术:网络爬虫技术:与网络检测技术不同的是,基于应用的检测不能只局限于对点IP、MAC、操作系统等基本信息,而是要完成对网站的信息点进行爬取,所以一个应用检测技术首先必要的就是一个深度挖掘的爬虫技术。中间件扫描技术:相关应
14、用程序的保护结构及元件,这是应用用于Web交互的重要部分,类似于APaChe等的中间件内容往往在不做过滤的情况下就直接与后端进行交互,这就导致了部分的越权行为存在,所以中间件的扫描也是基于应用的检测技术的重点之O通用漏洞发现:Web应用安全漏洞扫描器存在多个使用模块,实现对SQL注入、XSS漏洞的扫描功能,这些漏洞往往不存在特定性,所以应用扫描器需要带有对这些漏洞的通用载荷以完成安全性检测。基于主机的检测技术主机漏洞扫描是基于主机模式的一种扫描方法,也是基于漏洞数据库,通过扫描等手段对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用漏洞的一种安全检测(渗透攻击)行为。通过网络安全漏
15、洞扫描,系统管理员能够发现所维护的Web服务器的各种TCP/IP端口的分配、开放的服务、Web服务软件版本和这些服务及软件呈现在Internet上的安全漏洞。特定目标的检测技术使用主动手段,采取非破坏性的方法对网络、系统的漏洞进行检测。通过对已知漏洞、未知安全威胁进行对传输信息的算法进行检验,对文件的加密方式进行检验。通过不间断的不断地处理目标信息,产生检验数据、对检验结果进行对比。当发现信息数据的的不对称结果,及时的反馈给平台,从而做出应对措施。1.2.2 常见漏洞扫描软件 AWVS漏洞扫描速度较快,准确率较高,漏洞规则库较为全面。漏洞验证可查看请求响应代码,但无中文界面。报表功能完整。有多重漏洞的验证工具。 Appscan漏洞扫描速度一般,准确率最高,漏洞规则库最全面。漏洞验证可查看请求相应代码,拥有较完整的漏洞修复建议。报表功能完整。全中文界面。 HPWebInspect漏洞扫描速度一般,准确率较高,扫描类型较多。报表功能强大。可查看请求响应代码。无中文界面。(占用内存大) WebCruiser此工具偏向渗透利用工具,扫描功能较弱。仅有轻量级SQL注入和XSS漏洞的扫描功能。具有SQL注入漏洞利用功能。 Nexpose扫描速度快,能扫描系统