自动化的漏洞检测方法及装置的制造方法

文档序号:10687465阅读:154来源:国知局
自动化的漏洞检测方法及装置的制造方法
【专利摘要】本发明涉及测试领域,公开了一种自动化的漏洞检测方法及装置。本发明中,记录对被测系统进行访问时所产生的访问记录;将该访问记录分别与预设的多个漏洞检测规则进行匹配;以及根据匹配结果,确定该被测系统存在的漏洞;本发明还提供了一种自动化的漏洞检测装置。此种漏洞检测方式,可以提高测试效率并且对测试人员的要求低。
【专利说明】
自动化的漏洞检测方法及装置
技术领域
[0001]本发明涉及测试领域,特别涉及一种自动化的漏洞检测方法及装置。
【背景技术】
[0002]在系统构建时,例如网购系统,不可避免地会存在很多的漏洞(即bug),例如SQL注入,即没有采用参数化查询导致SQL注入漏洞的产生,这是一种很严重的漏洞。其他的一些漏洞还包括:XSS (跨站点脚本)、命令执行、文件包含等。
[0003]而现在业界很多对系统的测试一般都关注于功能的测试,即测试系统能否实现其功能,针对网购系统而言,主要测试用户能否正常将商品添加至购物车、能否正常下单、能否查询订单信息等功能。而业界较忽略对漏洞的测试。而一旦系统中的漏洞被外界获悉,则很有可能造成系统中大量的用户个人敏感信息(如联系地址、身份证号、联系电话、用户密码)的泄漏。因此,对系统中存在的漏洞(如安全漏洞)的测试显得十分地重要。
[0004]但是,现在业界的测试方式中,一般都是由安全测试人员独立地去编写测试代码,设计测试规则,然后对各种可能的漏洞进行单独地测试。此种测试方式一方面对测试人员的要求较高,如果不是经过专业培训并积累了丰富的测试经验,一般很难满足要求,不适合于普通测试人员(如功能测试人员)进行测试。另一方面,现有的测试方式还存在测试效率低下的问题。
[0005]因此,现有的测试方式实有改进之必要。

【发明内容】

[0006]本发明的目的在于提供一种自动化的漏洞检测方法及装置,能够提高漏洞检测效率并且对测试人员要求不高。
[0007]为解决上述技术问题,本发明的实施方式提供了一种自动化的漏洞检测方法,包括:记录对被测系统进行访问时所产生的访问记录;以及将该访问记录分别与预设的多个漏洞检测规则进行匹配;根据匹配结果,确定该被测系统存在的漏洞。
[0008]本发明的实施方式还提供了一种自动化的漏洞检测装置,包括:记录模块,用于记录对被测系统进行访问时所产生的访问记录;以及匹配模块,用于将该记录模块记录的该访问记录分别与预设的多个漏洞检测规则进行匹配;确定模块,用于根据该匹配模块进行匹配所产生的匹配结果,确定该被测系统存在的漏洞。
[0009]本发明实施方式相对于现有技术而言,通过记录对被测系统进行访问时所产生的访问记录(如访问被测系统时产生的数据,包括发送至系统的数据和从系统接收到的数据),然后利用预设的多个漏洞检测规则分别来对这些访问记录进行检测,以确定这些访问记录能否匹配到某些漏洞检测规则,然后根据匹配结果,自动化地确定相关漏洞。此种方式,在漏洞检测规则设定好之后,就可以自动化地对系统的漏洞进行检测,从而可以提高检测效率,并且该种方式无需实际的测试人员懂得相关漏洞检测规则,因此对测试人员的要求也比较低,适合普通的测试人员(如功能测试人员)使用。
[0010]另外,对该被测系统进行访问是指对该被测系统中的网页进行访问,其中该访问记录包括:对该被测系统中网页的访问请求以及对应的访问响应。本实施方式,比较适合于对网页服务系统的安全漏洞进行检测。
[0011]另外,在所述记录对被测系统进行访问时所产生的访问记录之前,还包括:建立代理系统,对该被测系统的访问均通过该代理系统进行。本实施方式,通过在浏览器客户端和网页服务器之间建立一个代理系统,就可以记录对系统进行访问所产生的访问记录。
[0012]另外,所述将该访问记录分别与预设的多个漏洞检测规则进行匹配,包括:对该访问记录进行去重复操作,以得到去重后的访问记录;将该去重后的访问记录分别与该预设的多个漏洞检测规则进行匹配。由于本实施方式的漏洞检测方式可以由普通测试人员使用,例如功能测试人员,即本实施方式的漏洞检测可以与功能测试整合为一体,而功能测试时容易反复产生重复的访问记录(如同一个商品网页反复访问),因此本实施方式增加一去重操作来对访问记录进行优化,以减少后续漏洞检测规则匹配中所处理的数据量,以提高处理效率。
[0013]另外,所述确定该被测系统存在的漏洞之后,还包括:显示该确定的漏洞以及该漏洞的相关参数。本实施方式中,通过显示确定的漏洞及相关参数,这样测试人员可以及时给其他人员反馈并解决相关漏洞问题。其中,显示漏洞相关的参数(如漏洞的规则,或者漏洞可能由什么导致的)的考虑在于,其中系统建立阶段设计漏洞检测规则的人员,与系统运行阶段实际维护漏洞检测规则的人员,以及测试阶段实际检测漏洞的人员一般是不同的,因此显示漏洞相关的参数有助于相关人员(各阶段的人员或者其他人员)尽快认识到漏洞的情形,从而能够更快地对漏洞进行修改,提高修复效率。
【附图说明】
[0014]图1是根据本发明第一实施方式的自动化的漏洞检测方法的流程示意图;
[0015]图2是根据本发明第二实施方式的自动化的漏洞检测方法的流程示意图;
[0016]图3是本发明实施方式中搭建的代理系统的结构示意图;
[0017]图4是根据本发明第三实施方式的自动化的漏洞检测装置的结构示意图;
[0018]图5是根据本发明第四实施方式的自动化的漏洞检测装置的结构示意图;
[0019]图6是根据本发明第五实施方式的自动化的漏洞检测装置的结构示意图;
[0020]图7是根据本发明第六实施方式的自动化的漏洞检测装置的结构示意图;
[0021]图8是根据本发明第七实施方式的http(超文本传输协议)代理服务器的结构示意图。
【具体实施方式】
[0022]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
[0023]本发明的第一实施方式涉及一种自动化的漏洞检测方法。具体流程如图1所示。具体包括:
[0024]步骤11:记录对被测系统进行访问时所产生的访问记录。
[0025]步骤12:将该访问记录分别与预设的多个漏洞检测规则进行匹配。其中,访问记录包括:对被测系统中网页的访问请求以及对应的访问响应。
[0026]步骤13:根据匹配结果,确定该被测系统存在的漏洞。
[0027]其中,在步骤11中,被测系统例如可以为网页服务系统,如网购系统。其中记录的访问记录可以有多条,一般而言,记录的访问记录越多且详细,越有利于后续的漏洞检测。并且,本实施方式的漏洞检测可以与功能测试相结合,即在功能测试中记录功能测试时记录相应的访问记录。需要说明的是,将功能测试与本实施方式的漏洞检测相结合,可以减少测试的次数;同时,功能测试时一般会较全面地对系统中的各个网页进行访问,因此功能测试时所产生的访问记录一般较全面,有利于漏洞检测。
[0028]其中,在步骤11中的访问记录中每一条访问记录可以包括:对该被测系统中网页的访问请求(如http访问请求)以及对应的访问响应。
[0029]其中,在步骤12中,预先设置了多个漏洞检测规则,例如XSS漏洞检测规则、命令执行漏洞检测规则、文件包含漏洞检测规则,等等。从而在步骤12中,可以利用步骤11记录到的数据(即访问记录)来依次与这些漏洞检测规则进行匹配,以识别这些记录到的数据具体能够匹配到哪些漏洞检测规则,对于能够匹配到规则的响应结果,则说明该被被测系统存在该漏洞检测规则所描述的漏洞。
[0030]其中,对于系统层面而言,步骤11得到的访问记录实质上为一些代码数据,而步骤12即是利用该代码数据来匹配预设的多个漏洞检测。
[0031]其中,在步骤13中,可以根据步骤12得到的匹配结果,确定被测系统存在的漏洞,例如当在步骤12中发现步骤11记录的数据能够匹配到XSS漏洞检测规则时,在步骤13中确定被测系统中存在XSS漏洞。
[0032]本发明实施方式相对于现有技术而言,通过记录对被测系统进行访问时所产生的访问记录(如访问被测系统时产生的数据,包括发送至系统的数据和从系统接收到的数据),然后利用预设的多个漏洞检测规则分别来对这些访问记录进行检测,以确定这些访问记录能否匹配到某些漏洞检测规则,然后根据匹配结果,自动化地确定相关漏洞。此种方式,在漏洞检测规则设定好之后,就可以自动化地对系统的漏洞进行检测,从而可以提高检测效率,并且该种方式无需实际的测试人员懂得相关漏洞检测规则,因此对测试人员的要求也比较低,适合普通的测试人员(如功能测试人员)使用。
[0033]本发明的第二实施方式涉及一种自动化的漏洞检测方法。其流程如图2所示,并且具体包括:
[0034]步骤21:记录对被测系统进行访问时所产生的访问记录。
[0035]步骤22:对步骤21记录到的访问记录进行去重复操作,以得到去重后的访问记录;
[0036]步骤23:将该去重后的访问记录分别与该预设的多个漏洞检测规则进行匹配。
[0037]步骤24:根据匹配结果,确定该被测系统存在的漏洞。以及
[0038]步骤25:显示该确定的漏洞以及该漏洞的相关参数。
[0039]其中,第二实施方式与第一实施方式相比,区别包括:第二实施方式还包括对产生的访问记录执行去重操作的操作(即步骤22),然后利用去重后的访问记录来进行漏洞检测。例如测试访问时产生了 100个URL (Uni form Resource Locator,全球资源定位符,或称为“网址”),该URL也就是前述的访问记录。经去重后只有80个URL(因为在不停的重复下单、 支付,所以存在重复的URL),然后把去重剩余的80个URL丢入到漏洞检测规则数据库中,进行漏洞检测规则的匹配。
[0040]其中,第二实施方式与第一实施方式相比,其区别还包括:显示该确定的漏洞以及该漏洞的相关参数(即步骤24)。即最终确定的漏洞检测结果通过诸如图形用户界面等方式显示出来,以告诉测试人员某个URL存在某种类型的漏洞以及它的参数是什么(即可能由什么原因导致的)。
[0041]本实施方式,通过对访问记录进行去重操作,以优化后续进行漏洞检测规则匹配时所处理的数据量。同时,显示最终确定的漏洞及相关参数,以帮助相关人员尽快对漏洞进行修复。
[0042]上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。[〇〇43]以上对本发明的自动化的漏洞检测方法进行了说明,下面对本发明的自动化检测装置进行说明。如图3所示,例如在浏览器客户端和服务器之间可以搭建http代理服务器, 而本发明的自动化检测装置即可以部署在该http代理服务器中或者该http代理服务器就是指的本发明的自动化检测装置。由浏览器客户端与服务器之间的交互(即URL访问及URL 响应,或者http访问和http响应)均是通过该http代理服务器进行,因此在该http代理服务器中可以设计一缓存器,用于缓存浏览器客户端在访问服务器时所产生的所有数据,然后就可以利用这些数据去跑一遍这些事先设定好的漏洞检测规则,每符合其中的一个漏洞检测规则,就代表存在一种类型的漏洞,最后把所有扫描出来的结果通过数据库显示出来。具体的,本发明的自动化的漏洞检测装置或者http代理服务器可以参考下述描述。
[0044]本发明第三实施方式涉及一种自动化的漏洞检测装置4,如图4所示,其包括:
[0045]记录模块41,用于记录对被测系统进行访问时所产生的访问记录。以及[〇〇46]匹配模块42,用于将该记录模块41记录的该访问记录分别与预设的多个漏洞检测规则进行匹配。[〇〇47]确定模块43,用于根据该匹配模块42在进行匹配时所产生的匹配结果,确定该被测系统存在的漏洞。
[0048]本实施方式,在漏洞检测规则设定好之后,就可以自动化地对系统的漏洞进行检测,从而可以提高检测效率,并且该种方式无需实际的测试人员懂得相关漏洞检测规则,因此对测试人员的要求也比较低,适合普通的测试人员(如功能测试人员)使用。
[0049]本发明第四实施方式也涉及一种自动化的漏洞检测装置4,如图5所示。第四实施方式与第三实施方式之间的不同在于,其还包括:http代理模块44,用于代理对该被测系统的http访问。通过该http代理模块44来代理对被测系统的http访问,这样对被测系统所有访问所产生的数据都可以被自动化的漏洞检测装置4检测出来,从而为后续的漏洞检测提供数据支撑。需要说明的是,http是最常见的对系统的访问方式,如果采用其他的访问方式,本实施方式的http代理模块44也可以替换为其他类型的代理模块,这些均在本发明的精神范围内。
[0050]本发明第五实施方式也涉及一种自动化的漏洞检测装置4,如图6所示。第五实施方式与第三实施方式之间的不同在于,其还包括:去重模块45,用于对记录模块41记录的访问记录进行去重复操作,以得到去重后的访问记录。而该匹配模块42,用于将该去重后的访问记录分别与该预设的多个漏洞检测规则进行匹配。由于在访问被测系统时,可能会产生许多重复的数据,因此进行去重操作,可以简化后续漏洞检测时需处理的数据量,从而可以提尚检测效率。[〇〇51]本发明第六实施方式也涉及一种自动化的漏洞检测装置4,如图7所示。第六实施方式与第三实施方式之间的不同在于,其还包括:显示模块46,用于显示该确定模块43确定的漏洞以及该漏洞的相关参数。其中,将确定的漏洞及相关的参数显示出来,有助于对漏洞的快速修复。
[0052]不难发现,上述各装置实施方式与上述各方法实施方式可以相配合实施。上述方法实施方式中提到的相关技术细节在上述的装置实施方式中依然有效,为了减少重复,这里不再赘述。相应地,上述装置的实施方式中提到的相关技术细节也可应用在上述方法的实施方式中。[〇〇53]值得一提的是,上述装置实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。[〇〇54]下面再举一例,说明上述装置实施方式中的各模块可以由具体的物理单元实现。
[0055]本发明第七实施方式涉及一种http代理服务器5,如图8所示,其包括:缓存器51、 处理器52、收发器53及显示器54。其中缓存器51主要用于缓存浏览器客户端访问服务器时所产生的访问记录。其中处理器52主要实现如下功能:作为浏览器客户端的代理系统,提供相应的代理功能;利用预设的漏洞检测规则来对缓存器52中缓存的数据进行漏洞检测,以确定漏洞及相关的参数。其中,收发器53主要用于负责与浏览器客户端和服务器之间的交互,即将来自浏览器客户端的访问请求转发至服务器,以及将服务器的访问响应转发至浏览器客户端。其中,显示器54主要用于显示处理器52所确定到的漏洞及相关参数。其中,需要说明的是,处理器52为系统的核心,而缓存器51、收发器53及显示器54所执行的功能均可以在处理器52的协调和控制下完成的。
[0056]前述已经从不同层面对本发明的自动化的漏洞检测方法及装置进行了说明,下面再举一个详细示例说明本发明。需要说明的是,下述示例涵盖了本发明的一些设计思路和较细节的实现方式,但这些都仅不应理解为本发明的限制;显然本领域技术人员在阅读完了以下实施方式之后,可以根据实际情况而省略、修改或替换相关的实施细节,而这些变化均包含在本发明的范围内。
[0057]具体而言,本实施方式根据各种各样的漏洞检测规则(即各种漏洞检测插件)搭建一套代理(proxy)系统作为检测漏洞的扫描器,并且它上面带有一定容量的缓存器 (Redis),用于记录通过该代理系统访问服务器时所产生的所有数据;然后把缓存器中的内容都去跑一遍这些事先设定的漏洞检测规则,每符合其中的一个漏洞检测规则,就代表存在一种该类型的漏洞,最后把所有扫描出来的结果通过数据库显示出来,告诉测试人员存在某种类型的漏洞以及它的参数是什么(即具体存在什么样的漏洞或者可能由什么导致的),这样测试人员可以及时给研发反馈并解决问题。
[0058] 该扫描器可以针对网站http的测试。正常的网站请求是从浏览器到服务端,可以在他们之间加入一个http代理(如扫描器),在这个代理里面会看到测试人员的所有请求与响应,因为该代理在中间去做了这个中转工作,这个代理可以相当于浏览器本地代理,即通过本地代理的方式把所有的请求与响应打到本地代理的某个端口(如8080)上。[〇〇59] 测试人员在测试过程中的所有请求与响应都会经过本地的8080端口,打到代理的缓存器(redis)里面,即把所有的请求与响应都缓存起来,缓存器会记录测试人员访问的一堆URL,并会把所有的URL都抓取下来做一个去重操作,例如测试访问了 100个URL经去重后只有80个URL,因为它在不停的重复下单、支付,然后把去重剩余的80个URL丢入到自动化测试工具中,去跑事先设定的这一堆规则,最后把所有扫描出来的结果通过数据库显示出来, 告诉测试人员某个URL存在某种类型的漏洞以及它的参数是什么(即可能由什么原因导致)。
[0060]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。[〇〇61]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种自动化的漏洞检测方法,其特征在于,包括: 记录对被测系统进行访问时所产生的访问记录; 将该访问记录分别与预设的多个漏洞检测规则进行匹配; 根据匹配结果,确定该被测系统存在的漏洞。2.根据权利要求1所述的自动化漏洞检测方法,其特征在于,所述访问记录包括:对所述被测系统中网页的访问请求以及对应的访问响应。3.根据权利要求2所述的自动化的漏洞检测方法,其特征在于,在所述记录对被测系统进行访问时所产生的访问记录之前,还包括: 建立代理系统,对所述被测系统的访问均通过该代理系统进行。4.根据权利要求3所述的自动化的漏洞检测方法,其特征在于,所述记录对被测系统进行访问时所产生的访问记录,包括: 利用该代理系统中的缓存器来记录对该被系统进行访问所产生的访问记录。5.根据权利要求1至4中任一项所述的自动化的漏洞检测方法,其特征在于,所述将该访问记录分别与预设的多个漏洞检测规则进行匹配,包括: 对该访问记录进行去重复操作,以得到去重后的访问记录; 将该去重后的访问记录分别与该预设的多个漏洞检测规则进行匹配。6.根据权利要求1至4中任一项所述的自动化的漏洞检测方法,其特征在于,所述确定该被测系统存在的漏洞之后,还包括: 显示该确定的漏洞以及该漏洞的相关参数。7.—种自动化的漏洞检测装置,其特征在于,包括: 记录模块,用于记录对被测系统进行访问时所产生的访问记录;以及匹配模块,用于将该记录模块记录的该访问记录分别与预设的多个漏洞检测规则进行匹配; 确定模块,用于根据该匹配模块进行匹配所产生的匹配结果,确定该被测系统存在的漏洞。8.根据权利要求7所述的自动化漏洞检测装置,其特征在于,对该被测系统进行访问是指对该被测系统中的网页进行访问,其中该访问记录包括:对该被测系统中网页的访问请求以及对应的访问响应。9.根据权利要求8所述的自动化的漏洞检测装置,其特征在于,还包括: 代理模块,用于代理对该被测系统的访问。10.根据权利要求8所述的自动化的漏洞检测装置,其特征于,还包括:去重模块,用于对记录模块记录的该访问记录进行去重复操作,以得到去重后的访问记录; 所述匹配模块,用于将该去重后的访问记录分别与该预设的多个漏洞检测规则进行匹配。
【文档编号】G06F21/57GK106055985SQ201610379804
【公开日】2016年10月26日
【申请日】2016年5月31日
【发明人】车祺丰
【申请人】乐视控股(北京)有限公司, 乐视电子商务(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1