CN108959931A - 漏洞检测方法及装置、信息交互方法及设备 - Google Patents

漏洞检测方法及装置、信息交互方法及设备 Download PDF

Info

Publication number
CN108959931A
CN108959931A CN201710374134.3A CN201710374134A CN108959931A CN 108959931 A CN108959931 A CN 108959931A CN 201710374134 A CN201710374134 A CN 201710374134A CN 108959931 A CN108959931 A CN 108959931A
Authority
CN
China
Prior art keywords
loophole
preposition
association
path
postposition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710374134.3A
Other languages
English (en)
Other versions
CN108959931B (zh
Inventor
陈晋福
曹建峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710374134.3A priority Critical patent/CN108959931B/zh
Publication of CN108959931A publication Critical patent/CN108959931A/zh
Application granted granted Critical
Publication of CN108959931B publication Critical patent/CN108959931B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种漏洞检测方法及装置、信息交互方法及设备,涉及安全技术领域。所述漏洞检测方法获取与待检测程序对应的多个漏洞,判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。本申请实施例能够提高漏洞检测的准确性和可靠性。

Description

漏洞检测方法及装置、信息交互方法及设备
技术领域
本申请涉及安全技术领域,特别是涉及一种漏洞检测方法及装置、以及一种信息交互方法及设备。
背景技术
随着各种计算机设备的广泛应用,网络安全问题以越来越受到重视。不可避免地,计算机设备中的软件总会存在一些功能性或安全性的逻辑缺陷,即漏洞。这些漏洞可能会损坏计算机设备的功能性或安全性,比如容易受到攻击者的干扰或利用而泄露计算机设备中的数据,因此,为了对计算机设备的软件中可能存在的漏洞进行修复,保障计算机设备的功能性和安全性,亟需一种漏洞检测方法。
现有技术中,可以预先设置漏洞检测规则库,该漏洞检测规则库中包括多个漏洞检测规则。可以通过漏洞检测器分别对该软件进行检测,将该多个规则逐一在该软件中进行匹配,从而检测得到该软件中存在的多个漏洞,之后,对用户进行提示,以便于用户对该各漏洞进行分析,并确定是否对各漏洞进行修复。
但是,由于是通过将该多个漏洞检测规则逐一在该软件中进行匹配来得到该多个漏洞,而各漏洞可能并不是孤立存在,比如其中一个漏洞能够触发另一个漏洞,且不同软件的漏洞之间也可能会相互触发,因此,现有技术不利于用户评估各漏洞可能带来的危害,难以有效保障计算机设备的功能性和安全性。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的漏洞检测方法及装置,以及信息交互方法及设备。
依据本申请的第一方面,提供了一种漏洞检测方法,包括:
获取与待检测程序对应的多个漏洞;
判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
可选的,在所述将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞之后,所述漏洞检测方法还包括:
绘制所述第一漏洞至所述第二漏洞之间的风险路径,并提供给显示设备进行展示。
可选的,各漏洞具有至少一个触发条件和至少一个触发结果,所述判定所述多个漏洞中存在至少一组关联漏洞包括:
针对各漏洞,查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞,查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞;
以所述漏洞与其前置漏洞以及所述漏洞与其后置漏洞,分别构建为一组关联漏洞。
可选的,在所述判定所述多个漏洞中存在至少一组关联漏洞之前,所述漏洞检测方法还包括:
根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果。
可选的,所述根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果包括:
访问检测漏洞查找到的漏洞执行代码;
从所述漏洞执行代码中查找第一个函数对应的至少一个触发条件,作为所述漏洞的触发条件;
从所述漏洞代码中查找最后一个函数对应的至少一个触发结果,作为所述漏洞的触发结果。
可选的,所述访问检测漏洞查找到的漏洞执行代码包括:
根据检测漏洞得到的漏洞路径访问所述漏洞对应的漏洞执行代码,所述漏洞通过至少一个顺序执行的函数构成的漏洞执行代码实现,所述漏洞路径由所述至少一个顺序执行的函数对应的函数标识按序组成。
可选的,在所述从所述漏洞代码中查找第一个函数对应的至少一个触发条件之前,所述确定各漏洞对应的至少一个触发条件和至少一个触发结果还包括:
提取所述漏洞路径中第一个函数标识,并查找所述第一个函数标识对应的第一个函数。
可选的,在所述从所述漏洞代码中查找最后一个函数对应的至少一个触发条件之前,所述确定各漏洞对应的至少一个触发条件和至少一个触发结果还包括:
提取所述漏洞路径中最后一个函数标识,并查找所述最后一个函数标识对应的最后一个函数。
可选的,所述获取与待检测程序对应的多个漏洞包括:
采用配置有多个漏洞检测规则的漏洞检测器检测所述待检测程序,得到与所述待检测程序对应的多个漏洞。
可选的,所述漏洞检测规则由对应识别触发条件的前置条件和识别触发结果的后置条件构成,所述漏洞检测方法还包括:
识别软件代码中与前置条件匹配的第一函数和与后置条件匹配的第二函数;
提取从所述第一函数至所述第二函数的代码片段,作为漏洞执行代码。
可选的,所述查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞包括:
查找触发结果包括所述漏洞的任一触发条件的另一漏洞作为前置漏洞;
所述查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞包括:
查找任一触发条件包括在所述漏洞的触发结果中的另一漏洞作为后置漏洞。
可选的,在所述从所述多个漏洞中查找不具有前置漏洞的第一漏洞之前,所述漏洞检测方法还包括:
连接各组关联漏洞的前置漏洞与后置漏洞,构建以关联的各漏洞为节点、以一组关联漏洞之间的前后置关系为连线方向的有向图;
针对所述有向图中的各节点,根据所述节点对应的前置漏洞的个数确定所述节点的入度,根据所述节点对应的后置漏洞的个数确定所述节点的出度。
可选的,所述从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的多个漏洞中,确定不具有后置漏洞的第二漏洞包括:
在所述有向图中,查找入度为设定值的节点作为所述第一漏洞;
确定以所述第一漏洞为起点顺次关联的多个漏洞,在所述多个漏洞中查找出度为所述设定值的节点作为所述第二漏洞。
可选的,所述漏洞检测方法还包括:
根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据,所述漏洞相关信息包括漏洞类型、归属的目标软件至少一种,所述目标软件为所述待检测程序中的软件。
可选的,所述根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据包括:
查找针对所述风险路径中包括的各漏洞的漏洞相关信息对应分配的风险评价数据;
将查找的风险评价数据中最高级别的风险评价数据,作为所述风险路径的风险评价数据。
可选的,所述漏洞检测方法还包括:
查找所述风险路径中第一漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过客户端提供给用户。
可选的,所述漏洞检测方法还包括:
查找所述风险路径包括的各漏洞分别归属的目标软件;
采用各漏洞分别归属的目标软件的软件标识对所述风险路径包括的各漏洞进行标记,并将标记后的风险路径通过客户端提供给用户。
根据本申请的第二方面,提供了一种信息交互方法,包括:
接收用户选择的待检测程序,并向计算机设备提交针对所述待检测程序的漏洞检测请求;
接收所述计算机设备反馈的风险路径并进行展示;所述风险路径通过从所述待检测程序获取到多个漏洞,并在判定所述多个漏洞中存在至少一组关联漏洞后,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,以及连接所述第一漏洞与所述第二漏洞之间的路径得到;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
依据本申请的第三方面,提供了一种漏洞检测方法,包括:
获取与待检测程序对应的多个漏洞;
判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径。
依据本申请的第四方面,提供了一种漏洞检测装置,包括:
漏洞获取模块,用于获取与待检测程序对应的多个漏洞;
关联漏洞判定模块,用于判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
漏洞查找模块,用于从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
连续漏洞确定模块,用于将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
依据本申请的第五方面,提供了一种信息交互设备,包括:
漏洞检测请求提交模块,用于接收用户选择的待检测程序,并向计算机设备提交针对所述待检测程序的漏洞检测请求;
风险路径展示模块,用于接收计算机设备反馈的风险路径并进行展示;所述风险路径通过从所述待检测程序获取到多个漏洞,并在判定所述多个漏洞中存在至少一组关联漏洞后,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,以及连接所述第一漏洞与所述第二漏洞之间的路径得到;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
依据本申请的第六方面,提供了一种漏洞检测装置,包括:
漏洞获取模块,用于获取与待检测程序对应的多个漏洞;
关联漏洞判定模块,用于判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
漏洞查找模块,用于从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
风险路径显示模块,用于显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径。
依据本申请的第七方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如第一方面所提供的一个或多个的方法。
依据本申请的第八方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所提供的一个或多个的方法。
依据本申请的第九方面,提供了一种漏洞检测方法,包括:
获取与待检测程序对应的多组关联漏洞,其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
获取所述多个关联漏洞形成的连续漏洞。
在本申请实施例中,能够获取到与待检测程序对应的多个漏洞,由于一个漏洞可能会触发另一个漏洞,所以,可以判定该多个漏洞中存在至少一组关联漏洞,以确定从该多个漏洞之间的关联关系,准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。其次,由于同一漏洞可能会被其它漏洞触发,也可能会触发其它漏洞,即该多个漏洞中的某些漏洞可能会顺次触发,从而可能会带来更严重的危害,所以,通过从该多个漏洞中查找到第一漏洞,以及以第一漏洞顺次关联的漏洞,直至第二漏洞,将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞,从而准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其它的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本申请一个实施例的一种漏洞检测方法流程图;
图2示出了根据本申请一个实施例的另一种漏洞检测方法流程图;
图3示出了根据本申请一个实施例的一种有向图;
图4示出了根据本申请一个实施例的一种信息交互方法流程图;
图5示出了根据本申请一个实施例的又一种漏洞检测方法流程图;
图6示出了根据本申请一个实施例的又一种漏洞检测方法流程图;
图7示出了根据本申请一个实施例的一种漏洞检测装置的框图;
图8示出了根据本申请一个实施例的一种信息交互设备的框图;
图9示出了根据本申请一个实施例的另一种漏洞检测装置的框图;
图10示出了根据本申请一个实施例的另一种漏洞检测装置的框图;
图11示出了根据本申请一个实施例的一种示例性系统的框图。
具体实施方式
下面将参照附图更详细地描述本申请示例性实施例。虽然附图中显示了本申请示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
在对本分明进行详细的解释说明之前,先对本申请的应用场景予以介绍。
本申请实施例可以实现为客户端或者插件,计算机设备可以从远程服务器获取并安装该客户端或者该插件,从而通过该客户端或者该插件来实施本申请实施例中的漏洞检测方法,也可以以漏洞检测软件的形式部署在远程服务器上,需要进行漏洞检测时通过访问该远程服务器来获取漏洞检测的服务。
计算机设备可以是手机、智能电视、智能手表、VR(Virtual Reality,虚拟现实)设备或电脑等终端设备,也可以是服务器或服务器集群。该计算机设备中包括程序,该程序中可以包括一个软件,或者包括多个软件构成的软件系统,比如安卓系统、苹果系统或Windows系统等软件系统,该软件系统中可以包括多个软件,该多个软件可以包括由该计算机设备或该软件系统的开发商预置的系统软件、以及第三方软件等。
漏洞包括软件在设计时的产生的缺陷或编码时产生的错误,以及处理业务过程中的设计缺陷或逻辑流程上的不合理之处。由于漏洞可能会被利用,比如受到黑客攻击或者病毒入侵等,从而导致数据丢失或泄露,损害计算机设备的功能性和安全性。更为严重的是,软件中的漏洞可能并不是孤立存在,而是可能会触发另一个漏洞,从而漏洞不仅本身不仅会产生危害,还会因为引发别的漏洞,从而带来更加严重的危害。所以,为了及时发现软件中的漏洞,并准确评估各漏洞可能带来的危害,从而实现漏洞的全面修复,本申请提供一种漏洞检测机制来检测漏洞之间的关联关系。
客户端能够通过执行本申提供的漏洞检测机制进行漏洞检测,客户端可以由该计算机设备从远程服务器获取并安装。插件能够通过执行本申提供的漏洞检测机制进行漏洞检测,插件可以由该计算机设备从远程服务器获取并安装。
实施例一
参照图1,示出了根据本申请一个实施例的一种漏洞检测方法流程图,具体步骤包括:
步骤101,获取与待检测程序对应的多个漏洞。
由于程序中可以包括一个以上的软件,且各软件均可能会存在漏洞。不同的漏洞之间可能会存在关联关系,比如一个漏洞可以触发另一个漏洞,从而损坏该计算机设备的安全性和功能性,因此为了确定各漏洞之间是否存在关联关系,准确评估各漏洞可能带来的危害,进而确定是否修复漏洞,可以对该待检测程序进行漏洞检测,以获取到该与该待检测程序对应的多个漏洞。
漏洞检测可以分为对已知漏洞的检测和对未知漏洞的检测。对已知漏洞的检测主要是通过安全检测技术,检测软件中是否存在已公布的漏洞;而未知漏洞检测的目的在于发现软件中可能存在但尚未发现的漏洞。现有的未知漏洞检测技术有源代码检测、反汇编检测、环境错误注入等。源代码检测和反汇编检测为静态的漏洞检测技术,不需要运行软件就可分析软件中可能存在的漏洞;而环境错误注入为动态的漏洞检测技术,利用可执行程序测试软件存在的漏洞。其中,安全检测也称为脆弱性评估,其基本原理是采用模拟黑客攻击的方式对软件中可能存在的已知的漏洞进行检测;源代码检测主要针对开放源代码的软件,通过检查软件中不符合规则的文件结构、命名规则、函数、堆栈指针等,进而发现软件中可能隐含的缺陷;反汇编检测可以针对不公开源代码的软件,通过对软件进行反汇编得到软件的汇编脚本语言,再对汇编出来的脚本语言进行检测,进而识别一些可疑的汇编代码;环境错误注入可以在软件运行的环境中故意注入人为的错误,并验证反应,从而验证计算机设备和软件系统的容错性、可靠性。
本申请实施例中,优选地,可以对该待检测程序包括各软件进行漏洞检测,从而得到多个归属于不同目标软件的漏洞。当然,在本申请的一个优选实施例中,可以该待检测程序包括的各软件中选择部分软件,然后对选的的软件进行漏洞检测,比如各软件通常会有用户体验评分,当用户体验评分较低时可以说明该软件可能会存在较多的漏洞,因此可以获取针对该待检测程序中软件的用户体验评分,选择用户体验评分低于预设评分的软件,从而具有针对性的检测该待检测程序中的漏洞,提高检测效率。
其中,用户体验评分可以包括字符、图形等不同形式的评分,比如,可以是0-10之间的数字,或者是A到F之间的字母。该预设评分的形式可以与该用户体验评分的形式相同,并在选择用户体验评分低于预设评分的软件之前设置得到。
步骤102,判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
由于各漏洞之间可能并不是孤立存在,不同的漏洞之间可能存在关联关系,所以为了便于对各漏洞的危害进行评估,进而保障计算机设备的可靠性,可以判断检测到的多个漏洞中是否能够触发该漏洞的前置漏洞,或者有能够被该漏洞触发的后置漏洞,从而判断所检测到的多个漏洞中是否存在关联的漏洞。
对于检测到的各漏洞,可以模拟运行该待检测程序,并触发该漏洞,判断该漏洞所触发是否能够触发该多个漏洞中的其它漏洞,当判定该漏洞能够触发该多个漏洞中的其它漏洞时,确定该多个漏洞中存在能够被该漏洞触发的后置漏洞,相应的,该漏洞即为该漏洞所能够触发的后置漏洞的前置漏洞。
其中,前置漏洞为能够触发其它漏洞的漏洞,后置漏洞为能够被其它漏洞触发的漏洞。对于任意两个漏洞,如果其中一个漏洞(前置漏洞)能够触发另一个漏洞(后置漏洞),则这两个漏洞即为一组关联漏洞。
在本申请的一个优选实施例中,对于该多个漏洞中的各漏洞,该漏洞可能会包括三种可能的情况:第一种可能的情况,该漏洞既不能触发该多个漏洞中的其它漏洞,也不能被该多个漏洞中的其它漏洞触发,即该多个漏洞中不存在与该漏洞关联的漏洞;第二种可能的情况,该漏洞能够触发该多个漏洞中的至少一个漏洞,即该多个漏洞中存在至少一组以该漏洞为前置漏洞的关联漏洞;第三种可能的情况,该漏洞能够被该多个漏洞中的至少一个漏洞触发,即该多个漏洞中存在至少一组以该漏洞为后置漏洞的关联漏洞。当然,上述第二种可能的情况与第三种可能的情况可以同时存在。
例如,检测到的多个漏洞包括漏洞1、漏洞2、漏洞3、漏洞4。其中,漏洞1既不能触发该多个漏洞中的其它漏洞,也不能被该多个漏洞中的其它漏洞触发,所以该多个漏洞中不存在与漏洞1关联的漏洞;漏洞2能够触发漏洞3,所以漏洞2和漏洞3为一组关联漏洞,且漏洞2为前置漏洞,漏洞3为后置漏洞;漏洞3能够触发漏洞4,所以漏洞3和漏洞4为一组关联漏洞,且漏洞3为前置漏洞,漏洞4为后置漏洞。
步骤103,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞。
由于对于该多个漏洞中的各漏洞,该漏洞既可能会触发该多个漏洞中的其它漏洞,也可能会被该多个漏洞中的其它漏洞触发,也即是,该多个漏洞中可能会存在一系列能够顺次触发的漏洞。可能某个漏洞单独并不会带来较大的危害,但由于该漏洞顺次触发其它漏洞,该漏洞所引发的问题或危害会也可能会与其它漏洞所引发的问题或危害叠加放大,从而从而导致严重的危害,所以为了准确评估各漏洞可能带来的危害,进而保障计算机设备的可靠性,可以在以不具有前置漏洞的第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,从而确定一系列能够顺次触发的漏洞。
其中,第一漏洞为能够触发其它漏洞,但不能被其它漏洞触发的漏洞,第二漏洞为能够被其它漏洞触发,但不能触发其它漏洞。
例如,检测到的多个漏洞包括漏洞2、漏洞3、漏洞4。查找到漏洞2能够触发其它漏洞,但不能被其它漏洞触发的漏洞,则确定漏洞2即为第一漏洞,以漏洞2为起点,查找到漏洞2能够触发漏洞3,漏洞3能够触发漏洞4,则确定与漏洞2顺次关联的漏洞为漏洞3和漏洞4,查找到漏洞4能够被其它漏洞触发,但不能触发其它漏洞,则确定漏洞4为第二漏洞。
在本申请的一个优选实施例中,对于任一漏洞,由于检测到的多个漏洞中可能并不存在与该漏洞关联的漏洞,所以,该漏洞可以既是第一漏洞也是第二漏洞。
步骤104,将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
由于从第一漏洞至第二漏洞之间连续触发的多个漏洞即为一系列能够顺次触发的漏洞,这些漏洞可能会引发严重的危害,所以,为了准确评估各漏洞可能带来的危害,进而保障计算机设备的可靠性,可以将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
例如,检测到的多个漏洞包括漏洞2、漏洞3、漏洞4。其中,漏洞2位第一漏洞,漏洞4为第二漏洞,漏洞2能够触发漏洞3,且漏洞3能够触发漏洞4,所以,漏洞2、漏洞3和漏洞4即为连续漏洞。
在本申请实施例中,能够获取到与待检测程序对应的多个漏洞,由于一个漏洞可能会触发另一个漏洞,所以,可以判定该多个漏洞中存在至少一组关联漏洞,以确定从该多个漏洞之间的关联关系,准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。其次,由于同一漏洞可能会被其它漏洞触发,也可能会触发其它漏洞,即该多个漏洞中的某些漏洞可能会顺次触发,从而可能会带来更严重的危害,所以,通过从该多个漏洞中查找到第一漏洞,以及以第一漏洞顺次关联的漏洞,直至第二漏洞,将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞,从而准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
实施例二
参照图2,示出了根据本申请一个实施例的一种漏洞检测方法流程图,具体步骤包括:
步骤201,获取与待检测程序对应的多个漏洞。
其中,获取与待检测程序对应的多个漏洞的方式可以参见实施例一中的步骤101,此处不再一一赘述。
本申请实施例中,优选地,由于软件是一系列按照特定顺序组织的计算机数据和指令的集合,且不同的软件可能会因为处理的业务不同而有不同的处理逻辑,所以为了提高检测漏洞的效率和准确率,可以根据不合理的处理逻辑,或者可能会存在问题的计算机数据和指令的集合,事先配置漏洞检测规则,从而能够采用配置有多个漏洞检测规则的漏洞检测器该待检测程序,得到与该待检测程序对应的多个漏洞。
其中,由于该待检测程序可以包括一个以上的软件,所以,可以采用配置有多个漏洞检测规则的漏洞检测器,分别对各软件进行检测。
漏洞检测规则为用于指示不合理的处理逻辑或者可能会存在问题的计算机数据和指令的集合的规则。通过漏洞检测器可以对各软件的软件代码进行检测,查找该软件代码中与任一漏洞检测规则匹配的软件代码,该软件代码包括软件的源代码,也可以用包括针对软件进行反编译得到的汇编代码从而查找到软件代码中可能存在等缺陷的软件代码,得到多个漏洞。
本申请实施例中,优选地,为了能够准确地对漏洞的触发条件和触发结果分别进行识别,进而提高检测漏洞的准确率,所述漏洞检测规则由对应识别触发条件的前置条件和识别触发结果的后置条件构成。
可以获取预置的漏洞检测规则,根据该预置的漏洞检测规则所指示不合理的处理逻辑或者可能会存在问题的计算机数据和指令的集合,识别预置的漏洞检测规则中所设置的漏洞的触发条件作为前置条件,识别预置的漏洞检测规则中所设置的漏洞的触发结果作为后置条件。
其中,触发条件为触发与该漏洞检测规则匹配的漏洞的条件,触发结果为触发与该漏洞检测规则匹配的漏洞所产生的结果。相应的,前置条件为漏洞检测规则中用于识别触发条件的规则,后置条件为用于识别触发结果的规则。
例如,漏洞检测规则可以包括:前置条件1,通过手机上安装一个软件可以触发该漏洞;前置条件2,通过网络劫持形成中间人攻击触发;前置条件3,通过用户点击网址进行远程攻击触发;前置条件4,通过替换软件内某一文件触发;前置条件5,通过软件暴露的服务接口触发。该漏洞检测器配置的后置条件包括:后置条件1,触发后可以启动软件内的任意Activity(其中,Activity为安卓系统中一种与用户交互有关的组件)并控制参数;后置条件2,触发后可以启动软件内任意服务(其中,服务为安卓系统中的一种组件),并控制其传入参数;后置条件3,触发后可以发送任意内容的广播;后置条件4,触发后可以下载任意文件到指定目录。其中,任一前置条件和任一后置条件均可以互相组合。
本申请实施例中,优选地,为了检测任一软件是否有启动属于该软件的某些Activity或服务的漏洞,可以在对该软件进行检测之前,获取该软件中多个Activity标识或服务标识,将获取到的多个Activity标识或服务标识添加至针对启动Activity或服务的漏洞检测规则中。
Activity标识用于唯一标识一个Activity,Activity标识可以是Activity的名称、ID(IDentification,身份证)等。服务标识用于唯一标识一个服务,服务标识可以是服务的名称、ID等。
步骤202,提取各漏洞的漏洞执行代码。
由于漏洞为通过漏洞检测规则对软件代码进行检测得到,为了对产生漏洞的软件代码进行分析,以评估各漏洞可能带来的危害,可以提取各漏洞的漏洞执行代码。漏洞执行代码为产生漏洞的软件代码。
本申请实施例中,优选地,由于软件代码通常是通过函数来实现相应的处理逻辑,且漏洞检测规则由对应识别触发条件的前置条件和识别触发结果的后置条件构成,所以准确地提取漏洞代码,可以识别软件代码中与前置条件匹配的第一函数和与后置条件匹配的第二函数,提取从所述第一函数至所述第二函数的代码片段,作为漏洞执行代码。
可以对软件代码中包括的各函数所包括的功能、数据结构、堆栈指针等中的至少一个进行检测,如果检测到该函数包括的功能、数据结构、堆栈指针等中的至少一个与该前置条件所设置的触发条件匹配,则将该函数识别为与该前置条件匹配的第一函数,如果检测到该函数包括的功能、数据结构、堆栈指针等中的至少一个与该后置条件所设置的触发条件匹配,则将该函数识别为与该后置条件匹配的第二函数。
步骤203,根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果。
为了确定检测到的各漏洞之间是否存在有关联关系的漏洞,从而提高对各漏洞可能带来的危害进行评估的准确性,可以确定各漏洞对应的至少一个触发条件和至少一个触发结果,进而能够根据各漏洞的触发条件和触发结果判断检测到的各漏洞之间是否存在有关联关系的漏洞。
本申请实施例中,优选地,由于漏洞执行代码包括与前置条件匹配的第一函数、以及与后置条件匹配的第二函数,且前置条件能够对应识别触发条件,后置条件能够对应识别触发结果,所以为了准确地确定各漏洞对应的至少一个触发条件和至少一个触发结果,进而提高确定检测到的多个漏洞中存在关联漏洞的准确率,对于各漏洞,可以访问检测漏洞查找到的漏洞执行代码,从所述漏洞执行代码中查找第一个函数对应的至少一个触发条件,作为所述漏洞的触发条件,从所述漏洞代码中查找最后一个函数对应的至少一个触发结果,作为所述漏洞的触发结果。
可以将第一个函数分别与多个前置条件进行匹配,根据与第一个函数所匹配的至少一个前置条件,确定第一个函数所对应的至少一个触发条件,将最后一个函数分别与多个后置条件进行匹配,根据与最后一个函数所匹配的至少一个后置条件,确定最后一个函数所对应的至少一个触发结果。
例如,对于软件1,检测到漏洞1,访问检测漏洞1查找到的漏洞执行代码,得到该漏洞执行代码中第一个函数对应的触发条件为:接收到一个针对MainActivity(软件1中一个Activity的Activity标识)的、可控的参数,该漏洞执行代码中最后一个函数对应的触发结果为:发送一个内容可控、地址可控的系统广播。所以漏洞1的触发条件为“接收到一个针对MainActivity的、可控的参数”,触发结果为“发送一个内容可控、地址可控的系统广播”。
本申请实施例中,优选地,由于软件代码可以包括多个顺序执行的函数,所以产生漏洞的漏洞执行代码可以包括至少一个顺序执行的函数,即漏洞通过至少一个顺序执行的函数构成的漏洞执行代码实现,相应的,该至少一个顺序执行的函数对应的函数标识按序组成该漏洞的漏洞路径,该漏洞路径即为该至少一个顺序执行的函数的在执行时的路径。
函数标识用于在唯一标识一个函数,该函数标识可以是函数的名称。
例如,对于软件1,检测到漏洞1,漏洞1的漏洞路径为:
com/example/activity/A#onCreate->
com/example/thread/MessageHandler#handleMsg->
com/example/thread/MessageHandler#dispatchMsg->
com/example/thread/MessageHandler#send.
其中,com/example/activity/A#onCreate即为漏洞1的漏洞路径中的第一个函数标识,com/example/thread/MessageHandler#handleMsg为漏洞1的漏洞路径中的第二个函数标识,com/example/thread/MessageHandler#dispatchMsg为漏洞1的漏洞路径中的第三个函数标识,com/example/thread/MessageHandler#send即为漏洞1的漏洞路径中的第四个函数标识,也是最后一个函数标识。
本申请实施例中,优选地,由于该漏洞路径为该至少一个顺序执行的函数的在执行时的路径,所以为了快速准确地访问到漏洞执行代码,提高确定各漏洞的前置条件和后置条件的效率,进而提高确定各关联漏洞中存在关联的漏洞的效率,可以根据检测漏洞得到的漏洞路径访问所述漏洞对应的漏洞执行代码。
由于函数标识能够唯一标识一个函数,所以可以根据漏洞路径中的各函数标识,在软件代码中查找到对应的函数,从而得到漏洞对应的漏洞执行代码。
由于该漏洞路径为该至少一个顺序执行的函数的在执行时的路径,所以为了快速准确地查找到第一个函数,进而提高确定漏洞前置条件的效率,在所述从所述漏洞代码中查找第一个函数对应的至少一个触发条件之前,可以提取所述漏洞路径中第一个函数标识,并查找所述第一个函数标识对应的第一个函数。
对于各漏洞的漏洞路径,可以从该漏洞路径中提取第一个函数标识,根据第一个函数标识,从该漏洞的漏洞执行代码中查找第一个函数标识对应的第一个函数。
例如,从漏洞1的漏洞路径中提取漏洞1的漏洞路径中提取第一个函数标识为com/example/activity/A#onCreate,然后根据第一个函数标识,从漏洞1的漏洞执行代码中查找到对应的第一个函数。
本申请实施例中,优选地,由于该漏洞路径为该至少一个顺序执行的函数的在执行时的路径,所以为了快速准确地查找到第一个函数,进而提高确定漏洞后置条件的效率,在所述从所述漏洞代码中查找最后一个函数对应的至少一个触发条件之前,可以提取所述漏洞路径中最后一个函数标识,并查找所述最后一个函数标识对应的最后一个函数。
对于各漏洞的漏洞路径,可以从该漏洞路径中提取最后一个函数标识,根据最后一个函数标识,从该漏洞的漏洞执行代码中查找最后一个函数标识对应的最后一个函数。
例如,从漏洞1的漏洞路径中提取漏洞1的漏洞路径中提取最后一个函数标识为com/example/thread/MessageHandler#send,然后根据最后一个函数标识,从漏洞1的漏洞执行代码中查找到对应的最后一个函数。
步骤204,判定所述多个漏洞中存在至少一组关联漏洞,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
判定所述多个漏洞中存在至少一组关联漏洞的方式可以与实施例一中步骤102的方式相同,此处不再一一赘述。
本申请实施例中,优选地,为了准确地确定各漏洞是否存在前置漏洞和后置漏洞,提高判定该多个漏洞中存在个漏洞关联漏洞的准确率,进而体现各漏洞之间的关联关系,从而准确评估各漏洞的危害,提高检测漏洞的可靠性,进而提高了计算机设备的可靠性:针对各漏洞,可以查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞,查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞,以所述漏洞与其前置漏洞以及所述漏洞与其后置漏洞,分别构建为一组关联漏洞。
对于各漏洞,可以分别将该漏洞的触发条件与该多个漏洞中其它漏洞的触发结果进行匹配,以在该多个漏洞中查找触发结果与该触发条件匹配的漏洞,并将触发结果与该触发条件匹配的另一漏洞作为前置漏洞;还可以分别将该漏洞的触发结果与该多个漏洞中其他漏洞的触发条件进行匹配,以在该多个漏洞中查找触发条件与该触发结果匹配的漏洞,并将触发条件与该触发结果匹配的另一漏洞作为后置漏洞。
本申请实施例中,优选地,当触发结果与触发条件相同时,确定触发结果与触发条件匹配。
例如,检测得到的多个漏洞包括漏洞1、漏洞2、漏洞3、漏洞4。其中,漏洞1的触发条件不与任一漏洞的触发结果匹配,漏洞1的触发结果也不与任一漏洞的触发条件匹配,所以该多个漏洞中不存在与漏洞1关联的漏洞;漏洞3的触发条件与漏洞2的触发结果匹配,漏洞3的触发结果与漏洞4的触发条件匹配,所以,漏洞2和漏洞3为一组关联漏洞,且在该组关联漏洞中,漏洞2为前置漏洞,漏洞3为后置漏洞,漏洞3和漏洞4为一组关联漏洞,且在该组关联漏洞中,漏洞3为前置漏洞,漏洞4为后置漏洞。
本申请实施例中,优选地,由于各漏洞可以包括至少一个触发条件和至少一个触发结果,该漏洞的任一触条件均有可能与另一漏洞的任一触发结果匹配,从而被另一漏洞所触发,或者,该漏洞的任一触发结果均有可能与另一漏洞的任一触发条件匹配,从而触发另一漏洞,所以,为了准确地查找与漏洞关联的漏洞,提高判定该多个漏洞中存在个漏洞关联漏洞的准确率,进而准确评估各漏洞的危害,提高检测漏洞的可靠性和计算机设备的可靠性,可以查找触发结果包括所述漏洞的任一触发条件的另一漏洞作为前置漏洞;查找任一触发条件包括在所述漏洞的触发结果中的另一漏洞作为后置漏洞。
对于任一漏洞,可以判定该漏洞的任一触发条件与另一漏洞的任一触发结果匹配,即确定该漏洞的任一触发条件包括在另一漏洞的触发结果中,可以判定该漏洞的任一触发结果是否与另一漏洞的任一触发条件匹配,即确定该漏洞的触发结果包括另一漏洞的触发条件。
本申请实施例中,优选地,判定该多个漏洞中不存在任一组关联漏洞,可以将判定该多个漏洞中不存在任一组关联漏洞的结果和该多个漏洞提供给用户,以便于用户确定是否修复该多个漏洞。
其中,可以通过客户端的形式,向用户提供一个窗口,并在该窗口中展示该多个漏洞。
步骤205,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞。
为了直观地向用户展示多个漏洞之间的关联关系,确定各漏洞能够触发的其它漏洞以及能够触发该漏洞的其它漏洞,进而准确地对各漏洞的危害进行评估,提高计算机设备的可靠性和计算机设备的可靠性,可以连接各组关联漏洞的前置漏洞与后置漏洞,构建以关联的各漏洞为节点、以一组关联漏洞之间的前后置关系为连线方向的有向图,针对所述有向图中的各节点,根据所述节点对应的前置漏洞的个数确定所述节点的入度,根据所述节点对应的后置漏洞的个数确定所述节点的出度。
有向图为表示物件与物件之间的关系的图形,该有向图中可以包括多个节点,该多个节点中任意两个节点之间可以通过有方向的线连接,从而表示两个节点之间的指向关系。对于任一节点,由其它节点指向该节点的线的数目即为该节点的入度,由该节点指向其它节点的线的数目即为该节点的出度。入度或出度可以通过数值表示,当然也可以通过字母等其它类型的字符表示。
对于各组关联漏洞,连接该组关联漏洞中的前置漏洞与后置漏洞,且连线方向由前置漏洞指向后置漏洞。当然,对于不存在相关联漏洞的漏洞,该漏洞可以不与任何漏洞连接,即该漏洞为一个孤立的节点。
例如,检测得到的多个漏洞包括漏洞1、漏洞2、漏洞3、漏洞4、漏洞5、漏洞6、漏洞7、漏洞8、漏洞9、漏洞10。其中,漏洞1不存在相关联的漏洞,漏洞2与漏洞3为一组关联漏洞,漏洞3和漏洞4为一组关联漏洞,漏洞5和漏洞6分别与漏洞7为一组关联漏洞,漏洞7和漏洞8为一组关联漏洞,漏洞8分别与漏洞9以及漏洞10为一组关联漏洞,且上述各组关联漏洞中排序靠前的为前置漏洞,排序靠后的为后置漏洞,以包括漏洞2与漏洞3的关联漏洞为例,漏洞2即为前置漏洞,漏洞3即为后置漏洞。构建以各漏洞为节点的有向图可以如图3所示。
在本申请的一个优选实施例中,可以将该有向图提供给用户,比如通过客户端向用户显示该有向图,从而使用户直观准确地个漏洞之间的关联关系,评估各漏洞可能来带的危害,从而保障计算机设备的可靠性。
本申请实施例中,优选地,由于有向图能够通过各漏洞之间的连线方向,因此,根据该有向图直观地表示各漏洞之间的关联关系,所以为了快速准确地确定检测得到的漏洞中的第一漏洞、以第一漏洞为起点顺次关联的多个漏洞以及该多个漏洞中的第二漏洞,即提高确定第一漏洞、第二漏洞以及以第一漏洞为起点顺次关联的多个漏洞的效率和准确率,进而提高检测漏洞的可靠性,可以在所述有向图中,查找入度为设定值的节点作为所述第一漏洞,确定以所述第一漏洞为起点顺次关联的多个漏洞,在所述多个漏洞中查找出度为所述设定值的节点作为所述第二漏洞。
本申请实施例中,优选地可以通过计算该有向图中的各节点的入度,并分别判断该节点的入度和出度是否与预设值相同,如果该节点的入度为该该预设值,则该节点为第一漏洞,确定以第一漏洞为起点顺次所指向的其它漏洞,并确定其它漏洞的出度,直至确定其它漏洞中存在一个出度为该预设值的节点,即为第二漏洞。
其中,该设定值可以根据入度和出度的形式不同而不同,比如,当入度和出度可以通过数值表示时,该设定值可以为0。
例如,在如图3所示的有向图中,漏洞2、漏洞3和漏洞4为一组以漏洞2为起点、顺次关联、以漏洞3为终点的顺次关联的多个漏洞,同理,漏洞5、漏洞7、漏洞8和漏洞9,漏洞5、漏洞7、漏洞8和漏洞10,漏洞6、漏洞7、漏洞8和漏洞9,漏洞6、漏洞7、漏洞8和漏洞10也均为一组顺次关联的漏洞。
在本申请的一个优选实施例中,对于该多个漏洞中的任一漏洞,该漏洞可能是一个孤立的节点,所以,该漏洞的入度和出度可以均为该设定值。
步骤206,将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
其中,将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞的方式,可以与实施例一中步骤104相同,此处不再一一赘述。
步骤207,绘制所述第一漏洞至所述第二漏洞之间的风险路径,并提供给显示设备进行展示。
由于该连续漏洞能够顺次触发,为了便于直观准确地说明该连续漏洞中的各漏洞以及各漏洞的触发次序,进而能够准确地对各漏洞可能带来的危害进行评估,提高漏洞检测的准确性以及计算机设备的可靠性,对于该连续漏洞,可以根据从第一漏洞至第二漏洞之间连续触发的多个漏洞的触发次序,绘制从第一漏洞到第二漏洞之间的风险路径,并将该风险路径提供给显示设备进行显示。
风险路径为能够顺次触发的漏洞顺次触发所构成的路径,用于表示能够顺次触发的漏洞以及各漏洞的触发次序。
由于第一漏洞为能够触发其它漏洞,但不能被其它漏洞触发的漏洞,第二漏洞为能够被其它漏洞触发,但不能触发其它漏洞,因此,第一漏洞可以作为风险路径的起点,第二漏洞可以作为风险路径的终点,任一第一漏洞与任一第二漏洞之间的路径,即任一组顺次关联的漏洞均可以作为一条风险路径。
例如,连续漏洞包括漏洞2、漏洞3、漏洞4。其中,漏洞2为第一漏洞,漏洞4为第二漏洞,所以漏洞2可以作为风险路径的起点,漏洞4作为风险路径的终点,漏洞2与漏洞4之间的路径即可以作为一条风险路径。当漏洞2被触发时,能够顺次触发漏洞3,直至触发漏洞4。
例如,风险路径1中包括漏洞2、漏洞3和漏洞4,其中,漏洞2为“通过针对软件1接收的参数,启动软件1中任意一个Activity,并控制传入Activity的参数”,漏洞3为“软件1中的Activity A可以加载一个外部可控的网页”,漏洞4为“在Activity A暴露给加载网页的方法中,有一个发送短信给指定地址,指定内容的漏洞”,即漏洞2、漏洞3和漏洞4同为归属于软件1的漏洞,且漏洞2能够触发漏洞3,漏洞3能够触发漏洞4。如果孤立地评估漏洞2、漏洞3或漏洞4,可能并不会该计算机设备带来较大危害,但如果将漏洞2、漏洞3和漏洞4联系起来,由于触发漏洞2最终会导致漏洞4被触发,即可能会通过Activity A向某个指定地址发送短信,造成恶意扣费等后果。风险路径2包括漏洞11和漏洞12,其中,漏洞11为“接收系统广播,并根据广播内容静默卸载指定软件”,漏洞12为“接收控制参数,向指定软件发送系统广播”,漏洞11属于软件2,漏洞12属于软件3,且软件2和软件3均为系统软件。如果孤立地评估漏洞11和漏洞12,由于漏洞11需要接收系统广播才能触发,而系统广播通常只有系统软件才能够发送,所以危害较小,漏洞12能够发送系统广播,危害也较小,但如果将漏洞11和漏洞12联系起来,可以通过漏洞12触发漏洞11,软件3接收到控制参数,向软件2发送系统广播,从而导致软件2可以卸载任一各软件,损坏计算机设备的功能性和安全性。
其中,在以检测到的各漏洞为节点构建的有向图中,以任一入度为该设定值的节点为起点,直接指向或者经过至少一个入度和初度均不为该设定值的节点指向任一出度为该设定值的节点之间的路径,即为一条风险路径。
例如,在如图3所示的有向图中,漏洞2、漏洞3和漏洞4,漏洞5、漏洞7、漏洞8和漏洞9,漏洞5、漏洞7、漏洞8和漏洞10,漏洞6、漏洞7、漏洞8和漏洞9,漏洞6、漏洞7、漏洞8和漏洞10均为一条风险路径。
在本申请的一个优选实施例中,由于孤立的漏洞所带来的危害可能远小于一个风险路径中包括的各漏洞所带来的危害,因此在将该有向图提供给用户之时,可以将该有向图中的风险路径进行高亮显示,或者只显示风险路径,从而使用户直观准确地确定漏洞之间的关联关系,判断各漏洞可能来带的危害。
为了进一步便于对各漏洞可能带来的危害进行评估,从而确定是否修复漏洞,保障计算机设备的可靠性,可以根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据,所述漏洞相关信息包括漏洞类型、归属的目标软件至少一种。
其中,目标软件为该待检测程序中的软件。
可以预先设置的各漏洞类型的权值或各目标软件的权值,获取该风险路径中包括的各漏洞的漏洞类型和归属的目标软件中的至少一个,根据各漏洞类型的漏洞的数目以及预先设置的各漏洞类型的权值,或者根据归属于各目标软件的漏洞的数目以及预先设置的各目标软件的权值,统计得到该风险路径的风险评价数据。
其中,风险评价数据可以是针对漏洞检测规则预置的风险评价数据,该风险评价数据用于说明风险程度,该风险评价数据可以通过一个一百以内的整数来表示,当然,也可以通过其它形式的字符来表示。该风险程度可以包括通过低、中、高、极高等。
漏洞类型可以是针对漏洞检测规则预置的漏洞类型,以说明符合与该漏洞检测规则匹配的漏洞的漏洞类型。漏洞类型可以包括注入攻击、跨站脚本攻击、弱口令漏洞等,当然,在实际应用中,还可以包括其它的漏洞类型。
在本申请的一个优选实施例中,由于第二漏洞为该风险路径最终触发的漏洞,即为该风险路径最终可能会带来的危害,所以可以将该风险路径中的第二漏洞的风险评价数据确定为该风险路径的风险评价数据。
本申请实施例中,优选地,由于该风险路径中的各漏洞可能带来的危害不同,而危害最严重的漏洞可能并不是第二漏洞,所以为了提高确定评价风险路径的风险评价数据的准确性,进而保障计算机设备的可靠性,可以查找针对所述风险路径中包括的各漏洞的漏洞相关信息对应分配的风险评价数据,将查找的风险评价数据中最高级别的风险评价数据,作为所述风险路径的风险评价数据。
优选地,可以针对该漏洞的漏洞类型或该漏洞归属的目标软件配置相应的权值,根据漏洞相关信息对应的风险评价数据与权值,通过加权运算确定该漏洞的风险评价数据。
对于任一风险路径,如果该风险路径中的第一漏洞被触发,则该风险漏洞中的其它漏洞也会被触发,从而可能带来严重的危害,所以为了提高确定该而风险路径可能带来的危害的准确性,进而确定是否对第一漏洞进行修复,保障计算机设备的可靠性,可以查找所述风险路径中第一漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过客户端提供给用户。
其中,漏洞处理策略用于提示对漏洞的修复方式或建议,该漏洞处理策略可以是在将风险路径的提示信息提供给用户之前,查找与第一漏洞匹配的漏洞检测规则所对应的漏洞处理策略得到。
在本申请的一个优选实施例中,可以在配置多个漏洞检测规则时,配置各漏洞检测规则对应的漏洞处理策略,并将各漏洞检测规则以及与各漏洞检测规则对应的漏洞处理策略,存储至漏洞检测规则与漏洞处理策略之间的对应关系中,之后,当查找与第一漏洞匹配的漏洞检测规则所对应的漏洞处理策略时,可以根据第一漏洞所匹配的漏洞检测规则,从漏洞检测规则与漏洞处理策略之间的对应关系中,获取与第一漏洞匹配的漏洞检测规则所对应的漏洞处理策略。
在本申请的另一个优选实施例中,由于该风险路径最终触发的为第二漏洞,所以为了避免第二漏洞被触发,降低该风险路径可能带来的危害,可以将第二漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过该客户端提供给用户。
在本申请的另一个优选实施例中,该风险路径中风险程度最高的漏洞所带来的危害可能最严重,因此,为了提高根据该风险路径修复漏洞的可靠性,可以根据该风险路径中各漏洞的风险最评价数据,查找风险程度最高的漏洞,将查找到的漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过该客户端提供给用户。
在本申请的另一个优选实施例中,由于该风险路径中可能包括多个风险程度较高的漏洞,所以,为了进一步便于准确评估该风险路径可能带来的危害,保障计算机设备的可靠性,可以根据该风险路径中各漏洞的风险评价数据,查找风险评价数据为第一预设数据的漏洞,即风险程度高于预设风险程度的漏洞,将查找到的漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过该客户端提供给用户
其中,预设风险程度可以在根据该风险路径中各漏洞的风险评价数据,查找风险评价数据为第一预设数据的漏洞之前,根据接收到所提交的风险评价数据确定,第一预设数据的形式可以与风险评价数据的形式相同,比如,当风险评价数据为一百以内的整数时,第一预设数据可以是70,相应的,该预设风险程度可以是高。
可选的,由于一组关联漏洞中可能会包括归属于不同软件的漏洞,所以为了便于确定该风险路径中是否包括归属于不同软件的漏洞,进而根据各漏洞的关联关系确定各漏洞所归属的软件的关联关系,进一步提高确定各漏洞可能带来危害的准确率,可以查找所述风险路径包括的各漏洞分别归属的软件,采用各漏洞分别归属的目标软件的软件标识对所述风险路径包括的各漏洞进行标记,并将标记后的风险路径通过客户端提供给用户。
其中,对于各漏洞,可以查找该漏洞的漏洞执行代码所归属的软件,将查找到的软件确定为该漏洞所归属的目标软件,采用该目标软件的软件标识对风险路径中的该漏洞进行标记。
在本申请的一个优选实施例中,软件标识用于唯一标识一个软件,软件标识可以是软件的包名、ID等。
在本申请的另一个优选实施例中,为了便于用户之直观地确定归属于各软件的漏洞之间的关联关系,提高确定风险路径中各漏洞的危害的准确性,可以在构建的有向图中,采用各漏洞分别归属的目标软件的软件标识对风险路径中的各节点进行标记。
在本申请实施例中,能够获取到与待检测程序对应的多个漏洞,由于一个漏洞可能会触发另一个漏洞,所以,可以判定该多个漏洞中存在至少一组关联漏洞,以确定从该多个漏洞之间的关联关系,准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。其次,由于同一漏洞可能会被其它漏洞触发,也可能会触发其它漏洞,即该多个漏洞中的某些漏洞可能会顺次触发,从而可能会带来更严重的危害,所以,通过从该多个漏洞中查找到第一漏洞,以及以第一漏洞顺次关联的漏洞,直至第二漏洞,将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞,从而准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
另外,能够绘制第一漏洞到第二漏洞之间的风险路径,以进一步直观准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,从而能够进一步准确地评估各漏洞可能带来的危害,提高了漏洞检测的准确性和可靠性,进而提高了计算机设备的可靠性。
另外,各漏洞具有至少一个触发条件和至少一个触发结果,因此,在检测漏洞时,所检测到的漏洞可以是具有任一触发条件和任一触发结果的漏洞,即能够检测到具有不同组合的触发条件和触发结果的漏洞,提高了检测到漏洞的准确率和灵活性。另外,对于任一漏洞,能够将触发结果包括该漏洞的任一触发条件的另一漏洞作为该漏洞的前置漏洞,并将任一触发条件包括在该漏洞的触发结果中的另一漏洞作为该漏洞的后置漏洞,所以对于具有的至少一个触发条件和至少一个触发结果的各漏洞,能够准确判断各漏洞是否存在关联漏洞,便于准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。
另外,能够以各漏洞为节点,以各组关联漏洞之间的前后置关系为连线方向,构建有向图,从而能够直观准确地确定检测到的漏洞中存在的风险路径,以及同一风险路径中各漏洞的触发顺序,进一步便于准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。
实施例三
参照图4,示出了根据本申请一个实施例的一种信息交互方法流程图,具体步骤包括:
步骤401,接收用户选择的待检测程序,并向计算机设备提交针对所述待检测程序的漏洞检测请求。
因此为了获取与用户所选择的待检测程序对应多个漏洞中是否包括存在关联关系的漏洞,并准确评估各漏洞可能带来的危害,进而确定是否修复漏洞,可以向计算机设备提交对针对该待检测程序的漏洞获取请求。
其中,计算机设备可以是具有漏洞检测功能的设备,且该计算机设备能够通过实施例一以及实施例二所提供的漏洞检测方法对该软件系统进行漏洞检测。
该漏洞检测请求用于指示对该待检测程序进行漏洞检测。
步骤402,接收计算机设备反馈的风险路径并进行展示;所述风险路径通过从所述待检测程序获取到多个漏洞,并在判定所述多个漏洞中存在至少一组关联漏洞后,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,以及连接所述第一漏洞与所述第二漏洞之间的路径得到;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
由于风险路径中包括关联漏洞,也即是,能够体现各漏洞之间的关联关系、以及关联漏洞之间的触发次序,所以为了便于准确评估确定软件系统中的漏洞可能会给该软件系统带来的危害,从而确定是否需要修复漏洞,保障该软件系统的可靠性,可以展示风险路径。
在本申请实施例中,优选的,为了便于进一步准确确定风险路径可能带来的危害,还可以接收计算机设备反馈的与风险路径有关的其它并进行展示,比如风险路径的风险评价数据、风险路径中各漏洞的风险评价数据等。
在本申请实施例中,由于能够针对用户所选择的待检测程序向计算机设备提交漏洞检测请求,从而使计算机设备对该待检测程序进行漏洞检测,并将计算机设备反馈的风险路径进行展示,所以便于评估漏洞可能对该软件系统带来的危害,以及确定是否修复漏洞,从而提高该待检测程序的可靠性。其次,由于风险路径能够体现同一风险路径中各漏洞之间的关联关系、以及关联漏洞之间的触发次序,进一步便于准确评估漏洞可能对该软件系统带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
实施例四
参照图5,示出了根据本申请一个实施例的一种漏洞检测方法流程图,具体步骤包括:
步骤501,获取与待检测程序对应的多个漏洞。
其中,获取与待检测程序对应的多个漏洞的方式,可以与实施例一中步骤101相同,此处不再一一赘述。
步骤502,判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
其中,判定所述多个漏洞中存在至少一组关联漏洞的方式,可以与实施例一中步骤102相同,此处不再一一赘述。
步骤503,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞。
其中,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞的方式,可以与实施例一中步骤103相同,此处不再一一赘述。
步骤504,显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径。
其中,显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径的方式,可以与实施例二中步骤207中显示设备显示该风险路径的方式相似,此处不再一一赘述。
在本申请实施例中,能够获取到与待检测程序对应的多个漏洞,由于一个漏洞可能会触发另一个漏洞,所以,可以判定该多个漏洞中存在至少一组关联漏洞,以确定从该多个漏洞之间的关联关系,准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。其次,由于同一漏洞可能会被其它漏洞触发,也可能会触发其它漏洞,即该多个漏洞中的某些漏洞可能会顺次触发,从而可能会带来更严重的危害,所以,通过从该多个漏洞中查找到第一漏洞,以及以第一漏洞顺次关联的漏洞,直至第二漏洞,将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞,从而准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。另外,能够显示第一漏洞到第二漏洞之间的风险路径,以进一步直观准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,从而能够进一步准确地评估各漏洞可能带来的危害,提高了漏洞检测的准确性和可靠性,进而提高了计算机设备的可靠性。
实施例五
参照图6,示出了根据本申请一个实施例的一种漏洞检测方法流程图,具体步骤包括:
步骤601,获取与待检测程序对应的多组关联漏洞,其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
其中,可以通过前述实施例所提供的相关方法或操作,获取到与该待检测程序对应的多个关联漏洞,当然,也可以是接收其它对该待检测程序进行检测的计算机设备所反馈的关联漏洞,从而获取到该多个关联漏洞。
步骤602,获取所述多个关联漏洞形成的连续漏洞。
其中,可以通过前述实施例所提供的相关方法或操作,获取多个关联漏洞所形成的连续漏洞。
在本申请实施例中,能够获取到与待检测程序对应的多个关联漏洞,由于一组关联漏洞中的前置漏洞能够触发后置漏洞,便于对该组关联漏洞中的各漏洞可能带来的危害进行评估,提高了漏洞检测的准确性和可靠性。其次,该组关联漏洞中的漏洞也可能被另一组关联漏洞中的漏洞所触发,或者触发另一组关联漏洞中的漏洞,能够获取该多组关联漏洞所形成的连续漏洞,从而准确地体现连漏洞中包括的各漏洞以及各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
实施例六
参照图7,示出了根据本申请一个实施例的一种漏洞检测装置的框图,该漏洞检测装置包括:
漏洞获取模块701,用于获取与待检测程序对应的多个漏洞;
关联漏洞判定模块702,用于判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
漏洞查找模块703,用于从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
连续漏洞确定模块704,用于将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
可选的,所述漏洞检测装置还包括:
风险路径绘制模块,用于绘制所述第一漏洞至所述第二漏洞之间的风险路径,并提供给显示设备进行展示。
可选的,各漏洞具有至少一个触发条件和至少一个触发结果,所述关联漏洞判定模块包括:
第一漏洞查找子模块,用于针对各漏洞,查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞,查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞;
构建子模块,用于以所述漏洞与其前置漏洞以及所述漏洞与其后置漏洞,分别构建为一组关联漏洞。
可选的,所述漏洞检测装置还包括:
触发条件和触发结果确定模块,用于根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果。
可选的,所述触发条件和触发结果确定模块包括:
访问子模块,用于访问检测漏洞查找到的漏洞执行代码;
触发条件查找子模块,用于从所述漏洞执行代码中查找第一个函数对应的至少一个触发条件,作为所述漏洞的触发条件;
触发结果查找子模块,用于从所述漏洞代码中查找最后一个函数对应的至少一个触发结果,作为所述漏洞的触发结果。
可选的,所述访问子模块还用于:
根据检测漏洞得到的漏洞路径访问所述漏洞对应的漏洞执行代码,所述漏洞通过至少一个顺序执行的函数构成的漏洞执行代码实现,所述漏洞路径由所述至少一个顺序执行的函数对应的函数标识按序组成。
可选的,所述触发条件和触发结果确定模块还包括:
第一提取子模块,用于提取所述漏洞路径中第一个函数标识,并查找所述第一个函数标识对应的第一个函数。
可选的,触发条件和触发结果确定模块还包括:
第二提取子模块,用于提取所述漏洞路径中最后一个函数标识,并查找所述最后一个函数标识对应的最后一个函数。
可选的,所述漏洞获取模块包括:
获取子模块,用于采用配置有多个漏洞检测规则的漏洞检测器检测所述待检测程序,得到与所述待检测程序对应的多个漏洞。
可选的,所述漏洞检测规则由对应识别触发条件的前置条件和识别触发结果的后置条件构成,所述漏洞检测装置还包括:
识别模块,用于识别软件代码中与前置条件匹配的第一函数和与后置条件匹配的第二函数;
提取模块,用于提取从所述第一函数至所述第二函数的代码片段,作为漏洞执行代码。
可选的,所述第一漏洞查找子模块还用于:
查找触发结果包括所述漏洞的任一触发条件的另一漏洞作为前置漏洞;
查找任一触发条件包括在所述漏洞的触发结果中的另一漏洞作为后置漏洞。
可选的,所述漏洞检测装置还包括:
构建模块,用于连接各组关联漏洞的前置漏洞与后置漏洞,构建以关联的各漏洞为节点、以一组关联漏洞之间的前后置关系为连线方向的有向图;
入度和出度确定模块,用于针对所述有向图中的各节点,根据所述节点对应的前置漏洞的个数确定所述节点的入度,根据所述节点对应的后置漏洞的个数确定所述节点的出度。
可选的,所述漏洞查找模块包括:
第二漏洞查找子模块,用于在所述有向图中,查找入度为设定值的节点作为所述第一漏洞;
漏洞确定子模块,用于确定以所述第一漏洞为起点顺次关联的多个漏洞,在所述多个漏洞中查找出度为所述设定值的节点作为所述第二漏洞。
可选的,所述漏洞检测装置还包括:
风险评价数据确定模块,用于根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据,所述漏洞相关信息包括漏洞类型、归属的目标软件至少一种,所述目标软件为所述待检测程序中的软件。
可选的,所述风险评价数据确定模块包括:
风险评价数据查找子模块,用于查找针对所述风险路径中包括的各漏洞的漏洞相关信息对应分配的风险评价数据;
评价子模块,用于将查找的风险评价数据中最高级别的风险评价数据,作为所述风险路径的风险评价数据。
可选的,所述漏洞检测装置还包括:
提示信息查找模块,用于查找所述风险路径中第一漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过客户端提供给用户。
可选的,所述漏洞检测装置还包括:
归属软件查找模块,用于查找所述风险路径包括的各漏洞分别归属的目标软件;
标记模块,用于采用各漏洞分别归属的目标软件的软件标识对所述风险路径包括的各漏洞进行标记,并将标记后的风险路径通过客户端提供给用户。
在本申请实施例中,能够获取到与待检测程序对应的多个漏洞,由于一个漏洞可能会触发另一个漏洞,所以,可以判定该多个漏洞中存在至少一组关联漏洞,以确定从该多个漏洞之间的关联关系,准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。其次,由于同一漏洞可能会被其它漏洞触发,也可能会触发其它漏洞,即该多个漏洞中的某些漏洞可能会顺次触发,从而可能会带来更严重的危害,所以,通过从该多个漏洞中查找到第一漏洞,以及以第一漏洞顺次关联的漏洞,直至第二漏洞,将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞,从而准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
实施例七
参见图8,示出了根据本申请一个实施例的一种信息交互设备的框图,该信息交互设备包括:
漏洞检测请求提交模块801,用于接收用户选择的待检测程序,并向计算机设备提交针对所述待检测程序的漏洞检测请求;所述软件系统由多个软件构成;
风险路径展示模块802,用于接收所述计算机设备反馈的风险路径并进行展示;所述风险路径通过从所述待检测程序获取到多个漏洞,并在判定所述多个漏洞中存在至少一组关联漏洞后,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,以及连接所述第一漏洞与所述第二漏洞之间的路径得到;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
在本申请实施例中,由于能够针对用户所选择的待检测程序向计算机设备提交漏洞检测请求,从而使计算机设备对该待检测程序进行漏洞检测,并将计算机设备反馈的风险路径进行展示,所以便于评估漏洞可能对该软件系统带来的危害,以及确定是否修复漏洞,从而提高该待检测程序的可靠性。其次,由于风险路径能够体现同一风险路径中各漏洞之间的关联关系、以及关联漏洞之间的触发次序,进一步便于准确评估漏洞可能对该软件系统带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
实施例八
参见图9,示出了根据本申请一个实施例的一种漏洞检测装置的框图,该漏洞检测装置包括:
漏洞获取模块901,用于获取与待检测程序对应的多个漏洞;
关联漏洞判定模块902,用于判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
漏洞查找模块903,用于从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
风险路径显示模块904,用于显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径。
在本申请实施例中,能够获取到与待检测程序对应的多个漏洞,由于一个漏洞可能会触发另一个漏洞,所以,可以判定该多个漏洞中存在至少一组关联漏洞,以确定从该多个漏洞之间的关联关系,准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性。其次,由于同一漏洞可能会被其它漏洞触发,也可能会触发其它漏洞,即该多个漏洞中的某些漏洞可能会顺次触发,从而可能会带来更严重的危害,所以,通过从该多个漏洞中查找到第一漏洞,以及以第一漏洞顺次关联的漏洞,直至第二漏洞,将从第一漏洞至第二漏洞之间连续触发的多个漏洞确定为连续漏洞,从而准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。另外,能够显示第一漏洞到第二漏洞之间的风险路径,以进一步直观准确地体现该多个漏洞中能够顺次触发的漏洞以及能够顺次触发的各漏洞的触发次序,从而能够进一步准确地评估各漏洞可能带来的危害,提高了漏洞检测的准确性和可靠性,进而提高了计算机设备的可靠性。
实施例九
参见图10,示出了根据本申请一个实施例的一种漏洞检测装置的框图,该漏洞检测装置包括:
关联漏洞获取模块1001,用于获取与待检测程序对应的多组关联漏洞,其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
连续漏洞获取模块1002,用于获取所述多个关联漏洞形成的连续漏洞。
在本申请实施例中,能够获取到与待检测程序对应的多个关联漏洞,由于一组关联漏洞中的前置漏洞能够触发后置漏洞,便于对该组关联漏洞中的各漏洞可能带来的危害进行评估,提高了漏洞检测的准确性和可靠性。其次,该组关联漏洞中的漏洞也可能被另一组关联漏洞中的漏洞所触发,或者触发另一组关联漏洞中的漏洞,能够获取该多组关联漏洞所形成的连续漏洞,从而准确地体现连漏洞中包括的各漏洞以及各漏洞的触发次序,以进一步准确评估各漏洞可能带来的危害,提高漏洞检测的准确性和可靠性,从而保障计算机设备的可靠性。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例可被实现为使用任意适当的硬件,固件,软件,或及其任意组合进行想要的配置的系统。图11示意性地示出了可被用于实现本申请中所述的各个实施例的示例性系统(或装置)1109。
对于一个实施例,图11示出了示例性系统1100,该系统具有一个或多个处理器1102、被耦合到(一个或多个)处理器1102中的至少一个的系统控制模块(芯片组)1104、被耦合到系统控制模块1104的系统存储器1106、被耦合到系统控制模块1104的非易失性存储器(NVM)/存储设备1108、被耦合到系统控制模块1104的一个或多个输入/输出设备1110,以及被耦合到系统控制模块1106的网络接口1112。
处理器1102可包括一个或多个单核或多核处理器,处理器1102可包括通用处理器或专用处理器(例如图形处理器、应用处理器、基频处理器等)的任意组合。在一些实施例中,系统1100能够作为本申请实施例中所述的浏览器。
在一些实施例中,系统1100可包括具有指令的一个或多个计算机可读介质(例如,系统存储器1106或NVM/存储设备1108)以及与该一个或多个计算机可读介质相合并被配置为执行指令以实现模块从而执行本申请中所述的动作的一个或多个处理器1102。
对于一个实施例,系统控制模块1104可包括任意适当的接口控制器,以向(一个或多个)处理器1102中的至少一个和/或与系统控制模块1104通信的任意适当的设备或组件提供任意适当的接口。
系统控制模块1104可包括存储器控制器模块,以向系统存储器1106提供接口。存储器控制器模块可以是硬件模块、软件模块和/或固件模块。
系统存储器1106可被用于例如为系统1100加载和存储数据和/或指令。对于一个实施例,系统存储器1106可包括任意适当的易失性存储器,例如,适当的DRAM。在一些实施例中,系统存储器1106可包括双倍数据速率类型四同步动态随机存取存储器(DDR4SDRAM)。
对于一个实施例,系统控制模块1104可包括一个或多个输入/输出控制器,以向NVM/存储设备1108及(一个或多个)输入/输出设备1110提供接口。
例如,NVM/存储设备1108可被用于存储数据和/或指令。NVM/存储设备1108可包括任意适当的非易失性存储器(例如,闪存)和/或可包括任意适当的(一个或多个)非易失性存储设备(例如,一个或多个硬盘驱动器(HDD)、一个或多个光盘(CD)驱动器和/或一个或多个数字通用光盘(DVD)驱动器)。
NVM/存储设备1108可包括在物理上作为系统1100被安装在其上的设备的一部分的存储资源,或者其可被该设备访问而不必作为该设备的一部分。例如,NVM/存储设备1108可通过网络经由(一个或多个)输入/输出设备1110进行访问。
(一个或多个)输入/输出设备1110可为系统1100提供接口以与任意其他适当的设备通信,输入/输出设备1110可以包括通信组件、音频组件、传感器组件等。网络接口1112可为系统1100提供接口以通过一个或多个网络通信,系统1100可根据一个或多个无线网络标准和/或协议中的任意标准和/或协议来与无线网络的一个或多个组件进行无线通信,例如接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合进行无线通信。
对于一个实施例,(一个或多个)处理器1102中的至少一个可与系统控制模块1104的一个或多个控制器(例如,存储器控制器模块)的逻辑封装在一起。对于一个实施例,(一个或多个)处理器1102中的至少一个可与系统控制模块1104的一个或多个控制器的逻辑封装在一起以形成系统级封装(SiP)。对于一个实施例,(一个或多个)处理器1102中的至少一个可与系统控制模块1104的一个或多个控制器的逻辑集成在同一模具上。对于一个实施例,(一个或多个)处理器1102中的至少一个可与系统控制模块1104的一个或多个控制器的逻辑集成在同一模具上以形成片上系统(SoC)。
在各个实施例中,系统1100可以但不限于是:浏览器、工作站、台式计算机设备或移动计算机设备(例如,膝上型计算机设备、手持计算机设备、平板电脑、上网本等)。在各个实施例中,系统1100可具有更多或更少的组件和/或不同的架构。例如,在一些实施例中,系统1100包括一个或多个摄像机、键盘、液晶显示器(LCD)屏幕(包括触屏显示器)、非易失性存储器端口、多个天线、图形芯片、专用集成电路(ASIC)和扬声器。
其中,如果显示器包括触摸面板,显示屏可以被实现为触屏显示器,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本申请实施例还提供了一种非易失性可读存储介质,该存储介质中存储有一个或多个模块(programs),该一个或多个模块被应用在终端设备时,可以使得该终端设备执行本申请实施例中各方法步骤的指令(instructions)。
在一个示例中提供了一种装置,包括:一个或多个处理器;和,其上存储的有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如本申请实施例中浏览器执行的方法。
在一个示例中还提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如本申请实施例中浏览器执行的方法。
本申请实施例公开了一种方法和装置,示例1包括一种方法,包括:
获取与待检测程序对应的多个漏洞;
判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
示例2可包括示例1所述的方法,其中,在所述将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞之后,所述漏洞检测方法还包括:
绘制所述第一漏洞至所述第二漏洞之间的风险路径,并提供给显示设备进行展示。
示例3可包括示例1所述的方法,其中,各漏洞具有至少一个触发条件和至少一个触发结果,所述判定所述多个漏洞中存在至少一组关联漏洞包括:
针对各漏洞,查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞,查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞;
以所述漏洞与其前置漏洞以及所述漏洞与其后置漏洞,分别构建为一组关联漏洞。
示例4可包括示例3所述的方法,其中,在所述判定所述多个漏洞中存在至少一组关联漏洞之前,所述漏洞检测方法还包括:
根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果。
示例5可包括示例4所述的方法,其中,所述根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果包括:
访问检测漏洞查找到的漏洞执行代码;
从所述漏洞执行代码中查找第一个函数对应的至少一个触发条件,作为所述漏洞的触发条件;
从所述漏洞代码中查找最后一个函数对应的至少一个触发结果,作为所述漏洞的触发结果。
示例6可包括示例5所述的方法,其中,所述访问检测漏洞查找到的漏洞执行代码包括:
根据检测漏洞得到的漏洞路径访问所述漏洞对应的漏洞执行代码,所述漏洞通过至少一个顺序执行的函数构成的漏洞执行代码实现,所述漏洞路径由所述至少一个顺序执行的函数对应的函数标识按序组成。
示例7可包括示例6所述的方法,其中,在所述从所述漏洞代码中查找第一个函数对应的至少一个触发条件之前,所述确定各漏洞对应的至少一个触发条件和至少一个触发结果还包括:
提取所述漏洞路径中第一个函数标识,并查找所述第一个函数标识对应的第一个函数。
示例8可包括示例6所述的方法,其中,在所述从所述漏洞代码中查找最后一个函数对应的至少一个触发条件之前,所述确定各漏洞对应的至少一个触发条件和至少一个触发结果还包括:
提取所述漏洞路径中最后一个函数标识,并查找所述最后一个函数标识对应的最后一个函数。
示例9可包括示例1所述的方法,其中,所述获取与待检测程序对应的多个漏洞包括:
采用配置有多个漏洞检测规则的漏洞检测器检测所述待检测程序,得到与所述待检测程序对应的多个漏洞。
示例10可包括示例9所述的方法,其中,所述漏洞检测规则由对应识别触发条件的前置条件和识别触发结果的后置条件构成,所述漏洞检测方法还包括:
识别软件代码中与前置条件匹配的第一函数和与后置条件匹配的第二函数;
提取从所述第一函数至所述第二函数的代码片段,作为漏洞执行代码。
示例11可包括示例3所述的方法,其中,所述查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞包括:
查找触发结果包括所述漏洞的任一触发条件的另一漏洞作为前置漏洞;
所述查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞包括:
查找任一触发条件包括在所述漏洞的触发结果中的另一漏洞作为后置漏洞。
示例12可包括示例1所述的方法,其中,在所述从所述多个漏洞中查找不具有前置漏洞的第一漏洞之前,所述漏洞检测方法还包括:
连接各组关联漏洞的前置漏洞与后置漏洞,构建以关联的各漏洞为节点、以一组关联漏洞之间的前后置关系为连线方向的有向图;
针对所述有向图中的各节点,根据所述节点对应的前置漏洞的个数确定所述节点的入度,根据所述节点对应的后置漏洞的个数确定所述节点的出度。
示例13可包括示例12所述的方法,其中,所述从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的多个漏洞中,确定不具有后置漏洞的第二漏洞包括:
在所述有向图中,查找入度为设定值的节点作为所述第一漏洞;
确定以所述第一漏洞为起点顺次关联的多个漏洞,在所述多个漏洞中查找出度为所述设定值的节点作为所述第二漏洞。
示例14可包括示例1所述的方法,其中,所述漏洞检测方法还包括:
根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据,所述漏洞相关信息包括漏洞类型、归属的目标软件至少一种,所述目标软件为所述待检测程序中的软件。
示例15可包括示例14所述的方法,其中,其特征在于,所述根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据包括:
查找针对所述风险路径中包括的各漏洞的漏洞相关信息对应分配的风险评价数据;
将查找的风险评价数据中最高级别的风险评价数据,作为所述风险路径的风险评价数据。
示例16可包括示例1所述的方法,其中,所述漏洞检测方法还包括:
查找所述风险路径中第一漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过客户端提供给用户。
示例17可包括示例1所述的方法,其中,所述漏洞检测方法还包括:
查找所述风险路径包括的各漏洞分别归属的目标软件;
采用各漏洞分别归属的目标软件的软件标识对所述风险路径包括的各漏洞进行标记,并将标记后的风险路径通过客户端提供给用户。
示例18、一种装置,包括:一个或多个处理器;和其上存储的有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述装置执行如权利要求示例1-示例17一个或多个的方法。
示例19、一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求示例1-示例17一个或多个的方法。
虽然某些实施例是以说明和描述为目的的,各种各样的替代、和/或、等效的实施方案、或计算来达到同样的目的实施例示出和描述的实现,不脱离本申请的实施范围。本申请旨在覆盖本文讨论的实施例的任何修改或变化。因此,显然本文描述的实施例仅由权利要求和它们的等同物来限定。

Claims (25)

1.一种漏洞检测方法,其特征在于,包括:
获取与待检测程序对应的多个漏洞;
判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
2.根据权利要求1所述的漏洞检测方法,其特征在于,在所述将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞之后,所述漏洞检测方法还包括:
绘制所述第一漏洞至所述第二漏洞之间的风险路径,并提供给显示设备进行展示。
3.根据权利要求1所述的漏洞检测方法,其特征在于,各漏洞具有至少一个触发条件和至少一个触发结果,所述判定所述多个漏洞中存在至少一组关联漏洞包括:
针对各漏洞,查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞,查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞;
以所述漏洞与其前置漏洞以及所述漏洞与其后置漏洞,分别构建为一组关联漏洞。
4.根据权利要求3所述的漏洞检测方法,其特征在于,在所述判定所述多个漏洞中存在至少一组关联漏洞之前,所述漏洞检测方法还包括:
根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果。
5.根据权利要求4所述的漏洞检测方法,其特征在于,所述根据检测漏洞查找到的漏洞执行代码,确定各漏洞对应的至少一个触发条件和至少一个触发结果包括:
访问检测漏洞查找到的漏洞执行代码;
从所述漏洞执行代码中查找第一个函数对应的至少一个触发条件,作为所述漏洞的触发条件;
从所述漏洞代码中查找最后一个函数对应的至少一个触发结果,作为所述漏洞的触发结果。
6.根据权利要求5所述的漏洞检测方法,其特征在于,所述访问检测漏洞查找到的漏洞执行代码包括:
根据检测漏洞得到的漏洞路径访问所述漏洞对应的漏洞执行代码,所述漏洞通过至少一个顺序执行的函数构成的漏洞执行代码实现,所述漏洞路径由所述至少一个顺序执行的函数对应的函数标识按序组成。
7.根据权利要求6所述的漏洞检测方法,其特征在于,在所述从所述漏洞代码中查找第一个函数对应的至少一个触发条件之前,所述确定各漏洞对应的至少一个触发条件和至少一个触发结果还包括:
提取所述漏洞路径中第一个函数标识,并查找所述第一个函数标识对应的第一个函数。
8.根据权利要求6所述的漏洞检测方法,其特征在于,在所述从所述漏洞代码中查找最后一个函数对应的至少一个触发条件之前,所述确定各漏洞对应的至少一个触发条件和至少一个触发结果还包括:
提取所述漏洞路径中最后一个函数标识,并查找所述最后一个函数标识对应的最后一个函数。
9.根据权利要求1所述的漏洞检测方法,其特征在于,所述获取与待检测程序对应的多个漏洞包括:
采用配置有多个漏洞检测规则的漏洞检测器检测所述待检测程序,得到与所述待检测程序对应的多个漏洞。
10.根据权利要9所述的漏洞检测方法,其特征在于,所述漏洞检测规则由对应识别触发条件的前置条件和识别触发结果的后置条件构成,所述漏洞检测方法还包括:
识别软件代码中与前置条件匹配的第一函数和与后置条件匹配的第二函数;
提取从所述第一函数至所述第二函数的代码片段,作为漏洞执行代码。
11.根据权利要求3所述的漏洞检测方法,其特征在于,所述查找触发结果与所述漏洞的触发条件匹配的另一漏洞作为前置漏洞包括:
查找触发结果包括所述漏洞的任一触发条件的另一漏洞作为前置漏洞;
所述查找触发条件与所述漏洞的触发结果匹配的另一漏洞作为后置漏洞包括:
查找任一触发条件包括在所述漏洞的触发结果中的另一漏洞作为后置漏洞。
12.根据权利要求1所述的漏洞检测方法,其特征在于,在所述从所述多个漏洞中查找不具有前置漏洞的第一漏洞之前,所述漏洞检测方法还包括:
连接各组关联漏洞的前置漏洞与后置漏洞,构建以关联的各漏洞为节点、以一组关联漏洞之间的前后置关系为连线方向的有向图;
针对所述有向图中的各节点,根据所述节点对应的前置漏洞的个数确定所述节点的入度,根据所述节点对应的后置漏洞的个数确定所述节点的出度。
13.根据权利要求12所述的漏洞检测方法,其特征在于,所述从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的多个漏洞中,确定不具有后置漏洞的第二漏洞包括:
在所述有向图中,查找入度为设定值的节点作为所述第一漏洞;
确定以所述第一漏洞为起点顺次关联的多个漏洞,在所述多个漏洞中查找出度为所述设定值的节点作为所述第二漏洞。
14.根据权利要求1所述的漏洞检测方法,其特征在于,所述漏洞检测方法还包括:
根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据,所述漏洞相关信息包括漏洞类型、归属的目标软件至少一种,所述目标软件为所述待检测程序中的软件。
15.根据权利要求14所述的漏洞检测方法,其特征在于,所述根据所述风险路径中包括的各漏洞的相关信息确定所述风险路径的风险评价数据包括:
查找针对所述风险路径中包括的各漏洞的漏洞相关信息对应分配的风险评价数据;
将查找的风险评价数据中最高级别的风险评价数据,作为所述风险路径的风险评价数据。
16.根据权利要求1所述的漏洞检测方法,其特征在于,所述漏洞检测方法还包括:
查找所述风险路径中第一漏洞的漏洞类型、归属的目标软件、漏洞处理策略中至少一种作为所述风险路径的提示信息,并通过客户端提供给用户。
17.根据权利要求1所述的漏洞检测方法,其特征在于,所述漏洞检测方法还包括:
查找所述风险路径包括的各漏洞分别归属的目标软件;
采用各漏洞分别归属的目标软件的软件标识对所述风险路径包括的各漏洞进行标记,并将标记后的风险路径通过客户端提供给用户。
18.一种信息交互方法,其特征在于,包括:
接收用户选择的待检测程序,并向计算机设备提交针对所述待检测程序的漏洞检测请求;
接收所述计算机设备反馈的风险路径并进行展示;所述风险路径通过从所述待检测程序获取到多个漏洞,并在判定所述多个漏洞中存在至少一组关联漏洞后,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,以及连接所述第一漏洞与所述第二漏洞之间的路径得到;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
19.一种漏洞检测方法,其特征在于,包括:
获取与待检测程序对应的多个漏洞;
判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径。
20.一种漏洞检测装置,其特征在于,包括:
漏洞获取模块,用于获取与待检测程序对应的多个漏洞;
关联漏洞判定模块,用于判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
漏洞查找模块,用于从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
连续漏洞确定模块,用于将从所述第一漏洞至所述第二漏洞之间连续触发的多个漏洞确定为连续漏洞。
21.一种信息交互设备,其特征在于,包括:
漏洞检测请求提交模块,用于接收用户选择的待检测程序,并向计算机设备提交针对所述待检测程序的漏洞检测请求;
风险路径展示模块,用于接收计算机设备反馈的风险路径并进行展示;所述风险路径通过从所述待检测程序获取到多个漏洞,并在判定所述多个漏洞中存在至少一组关联漏洞后,从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞,以及连接所述第一漏洞与所述第二漏洞之间的路径得到;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞。
22.一种漏洞检测装置,其特征在于,包括:
漏洞获取模块,用于获取与待检测程序对应的多个漏洞;
关联漏洞判定模块,用于判定所述多个漏洞中存在至少一组关联漏洞;其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
漏洞查找模块,用于从所述多个漏洞中查找不具有前置漏洞的第一漏洞,并在以第一漏洞为起点顺次关联的漏洞中,确定不具有后置漏洞的第二漏洞;
风险路径显示模块,用于显示与所述待检测程序对应的所述第一漏洞与所述第二漏洞之间的风险路径。
23.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-17一个或多个的方法。
24.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-17一个或多个的方法。
25.一种漏洞检测方法,其特征在于,包括:
获取与待检测程序对应的多组关联漏洞,其中,一组关联漏洞包括一个可触发另一漏洞的前置漏洞和一个被所述前置漏洞触发的后置漏洞;
获取所述多个关联漏洞形成的连续漏洞。
CN201710374134.3A 2017-05-24 2017-05-24 漏洞检测方法及装置、信息交互方法及设备 Active CN108959931B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710374134.3A CN108959931B (zh) 2017-05-24 2017-05-24 漏洞检测方法及装置、信息交互方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710374134.3A CN108959931B (zh) 2017-05-24 2017-05-24 漏洞检测方法及装置、信息交互方法及设备

Publications (2)

Publication Number Publication Date
CN108959931A true CN108959931A (zh) 2018-12-07
CN108959931B CN108959931B (zh) 2022-03-01

Family

ID=64493790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710374134.3A Active CN108959931B (zh) 2017-05-24 2017-05-24 漏洞检测方法及装置、信息交互方法及设备

Country Status (1)

Country Link
CN (1) CN108959931B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110909361A (zh) * 2019-11-08 2020-03-24 北京长亭未来科技有限公司 一种漏洞检测方法,装置和计算机设备
CN111625835A (zh) * 2020-05-18 2020-09-04 Xc5香港有限公司 程序漏洞路径追踪方法、装置、计算机设备及存储介质

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694454A (zh) * 2005-05-10 2005-11-09 西安交通大学 主动式网络安全漏洞检测器
CN101661543A (zh) * 2008-08-28 2010-03-03 西门子(中国)有限公司 软件源代码安全漏洞的检测方法及检测装置
CN101695033A (zh) * 2009-09-25 2010-04-14 上海交通大学 基于权限提升的网络脆弱性分析系统
CN103748990B (zh) * 2010-05-07 2012-02-08 北京理工大学 基于最小顶点割的网络攻击意图阻止方法
US20120233699A1 (en) * 2011-01-11 2012-09-13 Sushil Jajodia K-zero day safety
CN103124223A (zh) * 2011-12-21 2013-05-29 中国科学院软件研究所 一种it系统安全态势自动实时判定方法
CN103368976A (zh) * 2013-07-31 2013-10-23 电子科技大学 一种基于攻击图邻接矩阵的网络安全评估装置
CN104348652A (zh) * 2013-08-06 2015-02-11 南京理工大学常熟研究院有限公司 基于关联分析的系统安全评估方法和装置
CN104376264A (zh) * 2014-07-11 2015-02-25 腾讯科技(深圳)有限公司 一种软件漏洞处理方法、装置和系统
JP2016091402A (ja) * 2014-11-07 2016-05-23 株式会社日立製作所 リスク評価システムおよびリスク評価方法
CN105681338A (zh) * 2016-03-04 2016-06-15 西北大学 漏洞利用成功概率计算方法及网络安全风险管理方法
CN106156630A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 一种应用程序安装包的漏洞检测方法和装置
CN106295348A (zh) * 2015-05-29 2017-01-04 阿里巴巴集团控股有限公司 应用程序的漏洞检测方法及装置
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN106549950A (zh) * 2016-11-01 2017-03-29 南京理工大学 一种基于状态攻防图的矩阵可视化方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1694454A (zh) * 2005-05-10 2005-11-09 西安交通大学 主动式网络安全漏洞检测器
CN101661543A (zh) * 2008-08-28 2010-03-03 西门子(中国)有限公司 软件源代码安全漏洞的检测方法及检测装置
CN101695033A (zh) * 2009-09-25 2010-04-14 上海交通大学 基于权限提升的网络脆弱性分析系统
CN103748990B (zh) * 2010-05-07 2012-02-08 北京理工大学 基于最小顶点割的网络攻击意图阻止方法
US20120233699A1 (en) * 2011-01-11 2012-09-13 Sushil Jajodia K-zero day safety
CN103124223A (zh) * 2011-12-21 2013-05-29 中国科学院软件研究所 一种it系统安全态势自动实时判定方法
CN103368976A (zh) * 2013-07-31 2013-10-23 电子科技大学 一种基于攻击图邻接矩阵的网络安全评估装置
CN104348652A (zh) * 2013-08-06 2015-02-11 南京理工大学常熟研究院有限公司 基于关联分析的系统安全评估方法和装置
CN104376264A (zh) * 2014-07-11 2015-02-25 腾讯科技(深圳)有限公司 一种软件漏洞处理方法、装置和系统
JP2016091402A (ja) * 2014-11-07 2016-05-23 株式会社日立製作所 リスク評価システムおよびリスク評価方法
CN106156630A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 一种应用程序安装包的漏洞检测方法和装置
CN106295348A (zh) * 2015-05-29 2017-01-04 阿里巴巴集团控股有限公司 应用程序的漏洞检测方法及装置
CN105681338A (zh) * 2016-03-04 2016-06-15 西北大学 漏洞利用成功概率计算方法及网络安全风险管理方法
CN106446689A (zh) * 2016-09-02 2017-02-22 中科信息安全共性技术国家工程研究中心有限公司 一种对android应用进行自动化安全检测的方法
CN106549950A (zh) * 2016-11-01 2017-03-29 南京理工大学 一种基于状态攻防图的矩阵可视化方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
WANG YI 等: "An Intelligent Model for Vulnerability Analysis Using Attack Graph", 《2009 INTERNATIONAL FORUM ON INFORMATION TECHNOLOGY AND APPLICATIONS》 *
高志民: "漏洞关联图在风险评估中的应用", 《电讯技术》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110909361A (zh) * 2019-11-08 2020-03-24 北京长亭未来科技有限公司 一种漏洞检测方法,装置和计算机设备
CN111625835A (zh) * 2020-05-18 2020-09-04 Xc5香港有限公司 程序漏洞路径追踪方法、装置、计算机设备及存储介质
CN111625835B (zh) * 2020-05-18 2024-01-05 深圳知释网络技术有限公司 程序漏洞路径追踪方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN108959931B (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US20200125730A1 (en) System and method for vetting mobile phone software applications
Adamsen et al. Systematic execution of android test suites in adverse conditions
Dureuil et al. From code review to fault injection attacks: Filling the gap using fault model inference
TWI575397B (zh) 利用運行期代理器及動態安全分析之應用程式逐點保護技術
CN103729595A (zh) 一种Android应用程序隐私数据泄露离线检测方法
CN109726107A (zh) 测试方法、装置、设备及存储介质
CN110348218B (zh) 一种基于车载终端系统的漏洞测试方法及装置
CN104537308B (zh) 提供应用安全审计功能的系统及方法
CN104050417B (zh) 一种在移动终端对软件状态进行检测的方法及装置
CN105335283A (zh) 终端设备中的应用测试方法及装置
CN105338110A (zh) 远程调试方法和平台、服务器
CN103996007A (zh) Android应用权限泄露漏洞的测试方法及系统
CN106326120B (zh) 一种应用软件的回归测试方法及装置、电子设备
Zhang et al. Ripple: Reflection analysis for android apps in incomplete information environments
CN104715203A (zh) 信息泄漏漏洞的定量分析的方法和系统
CN113569246A (zh) 漏洞检测方法、装置、计算机设备和存储介质
CN108197476A (zh) 一种智能终端设备的漏洞检测方法及装置
CN110110527A (zh) 一种漏洞组件的发现方法、发现装置、计算机装置以及存储介质
CN109388946A (zh) 恶意进程检测方法、装置、电子设备及存储介质
CN107944278A (zh) 一种内核漏洞检测方法及装置
CN113391874A (zh) 一种虚拟机检测对抗方法、装置、电子设备及存储介质
CN108959931A (zh) 漏洞检测方法及装置、信息交互方法及设备
KR20140046121A (ko) 애플리케이션 검증을 위한 시스템 및 방법
CN108958890A (zh) 容器镜像检测方法、装置及电子设备
Ran et al. Automated visual testing for mobile apps in an industrial seting

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant