渗透测试的方法及装置制造方法及图纸

技术编号:15691361 阅读:462 留言:0更新日期:2017-06-24 04:30
本发明专利技术实施例提供了一种渗透测试的方法及装置,涉及代码审计领域,方法包括:获取待测试的链接数据流;通过预设的漏洞库,对所述数据流进行漏洞扫描;所述漏洞库中存储有,用于验证数据流存在漏洞的多条漏洞验证代码POC,且所述POC为通过对历史数据流进行机器学习后获得;输出第一漏洞扫描结果。本发明专利技术实施例的方案,通过机器学习更新漏洞库中的POC,并利用不断更新的漏洞库对待测试的数据流进行漏洞扫描,以满足查找形式多样化的漏洞的需求。

Method and apparatus for penetration testing

The embodiment of the invention provides a method and apparatus for penetration testing, involving code audit, methods include: link data acquisition for testing flow; through the preset vulnerability database, vulnerability scanning of the data stream; the vulnerability is stored in a database, used to verify the number according to a plurality of holes to flow loopholes the verification code POC, and the POC for machine learning based on historical data flow after the output of the first vulnerability scan results. The embodiment of the invention, update vulnerability in the POC library through machine learning, and use the updated vulnerability testing data flow to vulnerability scanning, to meet the diverse needs to find loopholes form.

【技术实现步骤摘要】
渗透测试的方法及装置
本专利技术实施例涉及代码审计领域,特别涉及一种渗透测试的方法及装置。
技术介绍
代码审计顾名思义就是检查源代码中的缺点和错误信息,分析并找到这些问题引发的安全漏洞,并提供代码修订措施和建议,从而在系统开发阶段/运维阶段进行深入的问题查找和消灭过程。渗透测试是代码审计中,对代码进行漏洞查找,以及修复的关键环节。现有的渗透测试过程,主要是以人工方式,对待测试的源代码数据流(以下简称“数据流”)进行观察,并依据程序员自身的专业水平和经验来查找数据流中可能存在的漏洞。当然,还存在以漏洞验证代码(ProofOfConcept,POC)进行自动化的漏洞查找方式。专利技术人在实现本专利技术的过程中,发现现有技术存在如下缺陷:采用人工方式进行漏洞查找,需耗费大量人力,且耗时,测试效率低;而采用现有的POC查找漏洞的方式,虽然可以节省人力,但只能查找相对单一的漏洞,并不能满足查找形式多样化的漏洞的需求。
技术实现思路
本专利技术实施例提供一种渗透测试的方法及装置,通过机器学习更新漏洞库中的POC,并利用不断更新的漏洞库对待测试的数据流进行漏洞扫描,以满足查找形式多样化的漏洞的需求。为达到上述目的,本专利技术实施例提供了一种渗透测试的方法,包括:获取待测试的链接数据流;通过预设的漏洞库,对所述数据流进行漏洞扫描;所述漏洞库中存储有,用于验证数据流存在漏洞的多条漏洞验证代码POC,且所述POC为通过对历史数据流进行机器学习后获得;输出第一漏洞扫描结果。本专利技术实施例提供了一种渗透测试的装置,包括:数据采集模块,用于获取待测试的链接数据流;第一漏洞扫描模块,用于通过预设的漏洞库,对所述数据流进行漏洞扫描;所述漏洞库中存储有,用于验证数据流存在漏洞的多条漏洞验证代码POC,且所述POC为通过对历史数据流进行机器学习后获得;漏洞输出模块,用于输出第一漏洞扫描结果。本专利技术实施例的渗透测试的方法及装置,利用能够不断自动更新POC的漏洞库,且更新的POC为通过对历史数据流进行机器学习后获得,从而使在对待测试数据流进行漏洞扫描时,能够查找出更为多样化、复杂的漏洞。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明图1为本专利技术实施例提供的渗透测试的方法流程图一;图2为本专利技术实施例提供的渗透测试的流程框架图;图3为本专利技术实施例提供的渗透测试的方法流程图二;图4为本专利技术实施例提供的渗透测试的装置结构示意图一;图5为本专利技术实施例提供的渗透测试的装置结构示意图二;图6为本专利技术实施例提供的数据学习模块的结构示意图;图7为本专利技术实施例提供的数据采集模块的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。实施例一图1为本专利技术实施例提供的渗透测试的方法流程图一,该方法的执行主体可以是具有渗透测试功能的终端或服务器。如图1所示,该渗透测试的方法包括步骤如下:S110,获取待测试的链接数据流;链接也称超级链接,所谓的超链接是指从一个网页指向一个目标的连接关系,而在一个网页中用来超链接的对象,可以是一段文本或者是一个图片,当浏览者单击已经链接的文字或图片后,链接目标将显示在浏览器上,并且根据目标的类型来打开或运行。网页上的超链接,通常采用统一资源定位符(UniformResourceLocator,URL)实现。本实施例中的链接数据流(以下简称“数据流”),可以理解为是在完成一次链接的过程中,所需要传送的所有用于请求链接新网址的数据包的集合,以网页链接为例,该链接对应的数据流可以是用于请求链接的URL数据所包含的所有数据包。具体地,当以URL数据作为待测试的数据流时,可通过如下方法获取URL数据流:步骤1,在地址栏中输入指定域名IP进行网页链接,并通过爬虫技术获取目标网页的URL数据,例如,在网页浏览器的地址栏中输入目标网页的IP地址,然后进行网页链接,在链接过程中,通过爬虫技术抓取从当前网页请求跳转到目标网页的URL数据,记为目标网页的URL数据。步骤2,对URL数据进行指纹识别对比,以去除重复的URL数据。具体地,在通过网络爬虫抓取到大量的URL数据后,这些URL数据中可能存在重复的数据,因此本实施例通过对获取的所有URL数据进行指纹识别对比,去除重复的URL数据,以减少不必要的工作量。S120,通过预设的漏洞库,对数据流进行漏洞扫描;该漏洞库中存储有,用于验证数据流存在漏洞的多条漏洞验证代码POC,且这些POC为通过对历史数据流进行机器学习后获得。本实施例基于现有技术中,采用漏洞验证代码POC自动进行漏洞验证的方式,预先建立了一个包含多条POC的漏洞库,通过该漏洞库,对数据流进行漏洞扫描。具体地,在执行漏洞扫描时,将待测试的数据流逐一经漏洞库中的各POC进行验证,若验证通过,则确定该数据流中存在漏洞。所谓的POC验证通过,指在验证数据流时,POC的代码程序可被成功的执行一次,若POC的代码程序未被成功执行,则记为POC验证未通过。与现有技术不同的是,本实施例中用于验证数据流的漏洞库中的POC是不断更新的,且更新的POC为通过对历史数据流进行机器学习后获得。其中,所述的历史数据流,是指在过去时间内,各次测试所对应的数据流。具体地,针对通过对历史数据流进行机器学习,生成POC的方法步骤将在图2所对应实施例中进行详细说明。S130,输出第一漏洞扫描结果。所述的第一漏洞扫面结果,指在每次对待测试的数据流进行一次测试后所形成的测试结果数据,该测试结果数据中可以包括测试时间、存在漏洞的数据流部分,如URL数据中存在漏洞的请求数据包、参数值、地址等数据流部分。例如,以下为一个存在漏洞的URL数据:http://www.ftcredit.com/news.asp?fenlei=5经漏洞扫描确定,fenlei=5为触发漏洞的数据流部分,在第一漏洞扫面结果中可以包括该数据流部分,还可以包括该数据流部分所在的整个URL数据。另外,在第一漏洞扫描结果中,还可以标注各漏洞所属的种类,这些漏洞种类可以包括:1.注入漏洞,包括结构化查询语言(StructuredQueryLanguage,SQL)、操作系统和轻量目录访问协议(LightweightDirectoryAccessProtocol,LDAP)注入等。2.有问题的鉴别与会话管理。3.跨站脚本攻击(XSS)。4.不安全的直接对象引用。5.安全配置错误。6.暴露敏感数据。7.函数级访问控制缺失。8.跨站请求伪造(CSRF)。9.使用存在已知漏洞的组件。10.未验证的重定向。这些漏洞还可以根据其不同的影响范围以及影响程度进行等级划分。本专利技术实施例的渗透测试的方法,通过预设的漏洞库对待测试数据流进行漏洞扫描,以确定数据流中存在的漏洞,并且上述漏洞库中的POC可以不断被更新,且更新的POC为通过对历史数据流进行机器学习后获得,从而使在对待测试数据流进本文档来自技高网...
渗透测试的方法及装置

【技术保护点】
一种渗透测试的方法,其特征在于,包括:获取待测试的链接数据流;通过预设的漏洞库,对所述数据流进行漏洞扫描;所述漏洞库中存储有,用于验证数据流存在漏洞的多条漏洞验证代码POC,且所述POC为通过对历史数据流进行机器学习后获得;输出第一漏洞扫描结果。

【技术特征摘要】
1.一种渗透测试的方法,其特征在于,包括:获取待测试的链接数据流;通过预设的漏洞库,对所述数据流进行漏洞扫描;所述漏洞库中存储有,用于验证数据流存在漏洞的多条漏洞验证代码POC,且所述POC为通过对历史数据流进行机器学习后获得;输出第一漏洞扫描结果。2.根据权利要求1所述的方法,其特征在于,所述通过预设的漏洞库,对所述数据流进行漏洞扫描包括:将所述数据流逐一经所述漏洞库中的各所述POC进行验证,若验证通过,则确定所述数据流中存在漏洞。3.根据权利要求2所述的方法,其特征在于,所述漏洞扫描结果包括:存在漏洞的数据流部分;所述方法还包括:在原所述数据流中,提取除所述存在漏洞的数据流部分以外的第一数据流,进行机器学习,生成具有潜在漏洞的第二数据流;通过所述漏洞库,对所述第二数据流进行漏洞扫描,以确定存在漏洞的部分第二数据流;依据所述存在漏洞的部分第二数据流,生成对应的POC,并添加到所述漏洞库中。4.根据权利要求3所述的方法,其特征在于,所述在原所述数据流中,提取除所述存在漏洞的数据流部分以外的第一数据流,进行机器学习,生成具有潜在漏洞的第二数据流包括:对所述第一数据流中的第一参数内容,通过朴素贝叶斯算法进行类别学习,生成与所述第一参数内容为同类别的多个第二参数内容;将原所述第一数据流中的第一参数内容替换为对应的所述第二参数内容,以形成所述第二数据流。5.根据权利要求1-4任一种所述的方法,其特征在于,所述数据流为统一资源定位符URL数据,所述获取待测试的链接数据流包括:在地址栏中输入指定域名IP进行网页链接,并通过爬虫技术获取目标网页的URL数据;对所述URL数据进行指纹识别对比,以去除重复的URL数据。6.一种渗透测试的装置,...

【专利技术属性】
技术研发人员:姚勇谭智勇薛兆云钟锋张勇
申请(专利权)人:北京瑞卓喜投科技发展有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1