CN109101819A - 一种漏洞检测方法及终端、存储介质 - Google Patents

一种漏洞检测方法及终端、存储介质 Download PDF

Info

Publication number
CN109101819A
CN109101819A CN201710476997.1A CN201710476997A CN109101819A CN 109101819 A CN109101819 A CN 109101819A CN 201710476997 A CN201710476997 A CN 201710476997A CN 109101819 A CN109101819 A CN 109101819A
Authority
CN
China
Prior art keywords
detection
analysis
target data
data
call
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.)
Pending
Application number
CN201710476997.1A
Other languages
English (en)
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.)
Beijing University of Technology
ZTE Corp
Original Assignee
Beijing University of Technology
ZTE Corp
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 Beijing University of Technology, ZTE Corp filed Critical Beijing University of Technology
Priority to CN201710476997.1A priority Critical patent/CN109101819A/zh
Publication of CN109101819A publication Critical patent/CN109101819A/zh
Pending legal-status Critical Current

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)

Abstract

本发明实施例公开了一种漏洞检测方法及终端、存储介质,该方法包括:获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。

Description

一种漏洞检测方法及终端、存储介质
技术领域
本发明涉及终端技术,尤其涉及一种漏洞检测方法及终端、存储介质。
背景技术
随着终端技术的飞速发展,Android操作系统已成为市场占有率最高的终端操作系统,基于Android操作系统开发的应用的数量也越来越庞大,然而,由于Android应用的质量参差不齐,用户在使用Android终端上安装的存在漏洞的应用程序时,就会存在照片、联系人、银行卡账号等保存在终端上的个人信息被窃取的风险,导致用户隐私泄露和财产损失。因此,开发者应该在发布Android应用之前先对其进行漏洞检测及分析,并根据检测结果对漏洞进行修复。目前对Android应用分析的方法主要分为静态分析和动态分析,其中,静态分析通过逆向工程来获取程序特征,并通过对权限信息、组件信息、函数调用图、数据流等程序特征进行分析,查找应用程序中存在的漏洞,其不需要实际运行应用程序,具有快速高效、代码覆盖率高等特点。
基于数据流的分析方法是对Android应用静态分析中检测精度最高的方法,但是,当前常见的对Android应用进行静态分析的手段中,利用flowdroid工具对应用进行静态分析虽然在理论上的检测精度比较高,然而flowdroid工具进行静态分析的分析结构较为复杂,因此在对应用进行漏洞检测时,对检测配置要求高且检测效率较低,并不适合实际应用。由此可见,现有的对Android应用静态分析的漏洞检测方法,并不能有效地基于数据流进行漏洞检测,从而造成在漏洞检测时检测效率比较低的缺陷。
发明内容
本发明实施例提供一种漏洞检测方法及终端、存储介质,对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
为达到上述目的,本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种漏洞检测方法,包括:
获取应用安装包文件对应的函数调用图,并根据预存源方法以及所述函数调用图,确定调用方法和所述调用方法对应的目标数据;
根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测,得到所述目标数据对应的漏洞检测结果;其中,所述预存漏洞检测原理用于确定所述目标数据的数据流分析方法;所述数据流分析方法包括数据流前向分析和数据流后向分析。
在上述方案中,所述根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测,包括:
根据预设配置文件确定所述预存漏洞检测原理对应的检测脚本;
当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流前向分析时,按照所述检测脚本对所述目标数据进行数据流前向分析检测;
当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流后向分析时,按照所述检测脚本对所述目标数据进行数据流后向分析检测。
在上述方案中,所述按照所述检测脚本对所述目标数据进行数据流前向分析检测,包括:
按照所述检测脚本对所述目标数据进行方法内前向分析检测;
根据所述方法内前向分析检测对应的检测结果,对所述目标数据进行方法间前向分析检测。
在上述方案中,所述按照所述检测脚本对所述目标数据进行方法内前向分析检测,包括:
当未完成对所述目标数据执行所述调用方法时,判断所述调用方法中的第i指令对应的下级方法是否为陷入方法;其中,所述第i指令为所述调用方法中的全部指令中的一个指令,i为大于或者等于1的自然数;
当所述下级方法不为陷入方法、所述第i指令为调用指令,且完成对所述目标数据执行所述下级方法时,获取所述下级方法对应的第一运行数据,并将所述下级方法和所述第一运行数据存储至预设前向方法队列;
当所述下级方法不为陷入方法,且所述第i指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;
当所述寄存器被重新赋值时,结束此次方法内前向分析检测;
当所述寄存器未被重新赋值时,继续对第i+1指令进行所述方法内前向分析检测,直到遍历完所述调用方法对应的全部指令。
在上述方案中,所述判断所述调用方法中的第i指令对应的下级方法是否为陷入方法之后,所述方法还包括:
当所述下级方法为陷入方法时,确定存在漏洞,并结束漏洞检测。
在上述方案中,所述根据所述方法内前向分析检测对应的检测结果,对所述目标数据进行方法间前向分析检测,包括:
提取所述预设前向方法队列中的所述下级方法和所述第一运行数据;
将所述下级方法确定为所述调用方法、将所述第一运行数据确定为所述目标数据,进行所述方法内前向分析检测,直到将所述预设前向方法队列中的所述下级方法和所述第一运行数据处理完毕。
在上述方案中,所述按照所述检测脚本对所述目标数据进行数据流后向分析检测,包括:
按照所述检测脚本对所述目标数据进行方法内后向分析检测;
根据所述方法内后向分析检测对应的检测结果,对所述目标数据进行方法间后向分析检测。
在上述方案中,所述按照所述检测脚本对所述目标数据进行方法内后向分析检测,包括:
当未完成对所述目标数据执行所述调用方法时,获取所述调用方法对应的上级方法;其中,所述上级方法为调用所述调用方法的方法;
判断所述上级方法中的第j指令对应的同级方法是否为陷入方法;其中,所述第j指令为所述上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数;所述同级方法为所述上级方法通过所述第j指令调用的全部方法中的一个方法;
当所述同级方法不为陷入方法、所述第j指令为调用指令,且完成对所述目标数据执行所述同级方法时,获取所述同级方法对应的第二运行数据,并将所述同级方法和所述第二运行数据存储至预设前向方法队列;
当所述同级方法不为陷入方法,且所述第j指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;
当所述寄存器被重新赋值时,结束此次方法内后向分析检测;
当所述寄存器未被重新赋值时,继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令。
在上述方案中,所述判断所述上级方法中的第j指令对应的同级方法是否为陷入方法之后,所述方法还包括:
当所述同级方法为陷入方法时,确定存在漏洞,并结束漏洞检测。
在上述方案中,所述将所述同级方法和所述第二运行数据存储至预设前向方法队列之后,所述方法还包括:
提取所述预设前向方法队列中的所述同级方法和所述第二运行数据;
将所述同级方法确定为所述调用方法、将所述第二运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设前向方法队列中的所述同方法和所述第二运行数据处理完毕。
在上述方案中,所述继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令之后,所述方法还包括:
当所述上级方法中的全部指令对应的全部同级方法都不为所述陷入方法时,获取所述上级方法对应的第三运行数据,并将所述上级方法和所述第三运行数据存储至预设后向方法队列。
在上述方案中,所述根据所述方法内后向分析检测对应的检测结果,对所述目标数据进行方法间后向分析检测,包括:
提取所述预设后向方法队列中的所述上级方法和所述第三运行数据;
将所述上级方法确定为所述调用方法、将所述第三运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设后向方法队列中的所述上级方法和所述第三运行数据处理完毕。
在上述方案中,所述获取应用安装包文件对应的函数调用图之前,所述方法还包括:
获取所述应用安装包文件,并通过解析所述应用安装包文件获得文件信息;
根据所述文件信息建立所述函数调用图。
在上述方案中,所述根据预设配置文件确定所述预存漏洞检测原理对应的检测脚本,包括:
通过解析所述预设配置文件获取配置内容;
根据所述配置内容设置检测参数;
根据所述检测参数加载所述预存漏洞检测原理对应的检测脚本。
本发明实施例提供了一种终端,所述终端包括:获取单元,确定单元以及检测单元,
所述获取单元,用于获取应用安装包文件对应的函数调用图;
所述确定单元,用于根据预存源方法以及所述函数调用图,确定调用方法和所述调用方法对应的目标数据;
所述检测单元,用于根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测;
所述获取单元,还用于得到所述目标数据对应的漏洞检测结果;其中,所述预存漏洞检测原理用于确定所述目标数据的数据流分析方法;所述数据流分析方法包括数据流前向分析和数据流后向分析。
在上述方案中,所述检测单元包括:确定子单元和检测子单元,
所述确定子单元,用于根据预设配置文件确定所述预存漏洞检测原理对应的检测脚本;
所述检测子单元,用于当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流前向分析时,按照所述检测脚本对所述目标数据进行数据流前向分析检测;及当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流后向分析时,按照所述检测脚本对所述目标数据进行数据流后向分析检测;
其中,所述确定子单元,具体用于通过解析所述预设配置文件获取配置内容;根据所述配置内容设置检测参数;根据所述检测参数加载所述预存漏洞检测原理对应的检测脚本。
在上述方案中,所述检测子单元,具体用于按照所述检测脚本对所述目标数据进行方法内前向分析检测;以及根据所述方法内前向分析检测对应的检测结果,对所述目标数据进行方法间前向分析检测。
在上述方案中,所述检测子单元,具体用于当未完成对所述目标数据执行所述调用方法时,判断所述调用方法中的第i指令对应的下级方法是否为陷入方法;其中,所述第i指令为所述调用方法中的全部指令中的一个指令,i为大于或者等于1的自然数;以及当所述下级方法不为陷入方法、所述第i指令为调用指令,且完成对所述目标数据执行所述下级方法时,获取所述下级方法对应的第一运行数据,并将所述下级方法和所述第一运行数据存储至预设前向方法队列;以及当所述下级方法不为陷入方法,且所述第i指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;以及当所述寄存器被重新赋值时,结束此次方法内前向分析检测;以及当所述寄存器未被重新赋值时,继续对第i+1指令进行所述方法内前向分析检测,直到遍历完所述调用方法对应的全部指令;
所述检测子单元,具体还用于在判断所述调用方法中的第i指令对应的下级方法是否为陷入方法之后,当所述下级方法为陷入方法时,确定存在漏洞,并结束漏洞检测;
所述检测子单元,具体还用于提取所述预设前向方法队列中的所述下级方法和所述第一运行数据;以及将所述下级方法确定为所述调用方法、将所述第一运行数据确定为所述目标数据,进行所述方法内前向分析检测,直到将所述预设前向方法队列中的所述下级方法和所述第一运行数据处理完毕。
在上述方案中,所述检测子单元,具体用于按照所述检测脚本对所述目标数据进行方法内后向分析检测;以及根据所述方法内后向分析检测对应的检测结果,对所述目标数据进行方法间后向分析检测。
在上述方案中,所述检测子单元,具体用于当未完成对所述目标数据执行所述调用方法时,获取所述调用方法对应的上级方法;其中,所述上级方法为调用所述调用方法的方法;以及判断所述上级方法中的第j指令对应的同级方法是否为陷入方法;其中,所述第j指令为所述上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数;所述同级方法为所述上级方法通过所述第j指令调用的全部方法中的一个方法;以及当所述同级方法不为陷入方法、所述第j指令为调用指令,且完成对所述目标数据执行所述同级方法时,获取所述同级方法对应的第二运行数据,并将所述同级方法和所述第二运行数据存储至预设前向方法队列;以及当所述同级方法不为陷入方法,且所述第j指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;以及当所述寄存器被重新赋值时,结束此次方法内后向分析检测;以及当所述寄存器未被重新赋值时,继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令;
所述检测子单元,具体还用于在判断所述上级方法中的第j指令对应的同级方法是否为陷入方法之后,当所述同级方法为陷入方法时,确定存在漏洞,并结束漏洞检测;
所述检测子单元,具体还用于在将所述同级方法和所述第二运行数据存储至预设前向方法队列之后,提取所述预设前向方法队列中的所述同级方法和所述第二运行数据;以及将所述同级方法确定为所述调用方法、将所述第二运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设前向方法队列中的所述同方法和所述第二运行数据处理完毕;
所述检测子单元,具体还用于在继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令之后,当所述上级方法中的全部指令对应的全部同级方法都不为所述陷入方法时,获取所述上级方法对应的第三运行数据,并将所述上级方法和所述第三运行数据存储至预设后向方法队列;
所述检测子单元,具体还用于提取所述预设后向方法队列中的所述上级方法和所述第三运行数据;以及将所述上级方法确定为所述调用方法、将所述第三运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设后向方法队列中的所述上级方法和所述第三运行数据处理完毕。
在上述方案中,所述终端还包括:建立单元,
所述获取单元,还用于在获取应用安装包文件对应的函数调用图之前,获取所述应用安装包文件,并通过解析所述应用安装包文件获得文件信息;
所述建立单元,用于根据所述文件信息建立所述函数调用图。
本发明实施例提供了一种终端,所述终端包括处理器、存储有所述处理器可执行指令的存储器、通信接口,和用于连接所述处理器、所述存储器以及所述通信接口的总线,当所述指令被执行时,所述处理器执行如下操作:
所述处理器,用于获取应用安装包文件对应的函数调用图,并根据预存源方法以及所述函数调用图,确定调用方法和所述调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测,得到所述目标数据对应的漏洞检测结果;其中,所述预存漏洞检测原理用于确定所述目标数据的数据流分析方法;所述数据流分析方法包括数据流前向分析和数据流后向分析。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,应用于终端中,所述程序被处理器执行时实现如权利要求1-14任一项所述的方法。
由此可见,本发明实施例提供了一种漏洞检测方法及终端、存储介质,获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。也就是说,本发明实施例提出的一种漏洞检测方法及终端、存储介质,能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
附图说明
图1为本发明实施例提出的一种漏洞检测方法的实现流程示意图一;
图2为本发明实施例提出的一种漏洞检测方法的实现流程示意图二;
图3为本发明实施例提出的一种漏洞检测方法的实现流程示意图三;
图4为本发明实施例提出的一种漏洞检测方法的实现流程示意图四;
图5为本发明实施例提出的一种漏洞检测方法的实现流程示意图五;
图6为本发明实施例提出的一种数据前向分析实现流程示意图;
图7为本发明实施例提出的一种漏洞检测方法的实现流程示意图六;
图8为本发明实施例提出的一种漏洞检测方法的实现流程示意图七;
图9为本发明实施例提出的一种漏洞检测方法的实现流程示意图八;
图10为本发明实施例提出的一种漏洞检测方法的实现流程示意图九;
图11为本发明实施例提出的一种数据后向分析实现流程示意图;
图12为本发明实施例提出的一种漏洞检测方法的实现流程示意图十;
图13为本发明实施例提出的一种漏洞检测方法的实现流程示意图十一;
图14为本发明实施例提出的终端的组成结构示意图一;
图15为本发明实施例提出的终端的组成结构示意图二;
图16为本发明实施例提出的终端的组成结构示意图三;
图17为本发明实施例提出的终端的组成结构示意图四。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
图1为本发明实施例提出的一种漏洞检测方法的实现流程示意图一,如图1所示,在本发明的实施例中,终端进行漏洞检测的方法可以包括以下步骤:
步骤101、获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据。
在本发明的实施例中,终端可以先获取应用安装包文件对应的函数调用图,然后可以根据预存源方法和函数调用图确定调用方法,以及上述调用方法对应的目标数据。需要说明的是,在本发明的实施例中,上述应用安装包文件可以为通过网络获取下载并存储在终端中的Android应用的安装包文件。
进一步地,在本发明的实施例中,终端可以预先存储一个漏洞库,该漏洞库中包括常见的应用漏洞,并且,终端还可以将该漏洞库中的全部预存漏洞对应的源方法进行存储。具体地,在本发明的实施例中,终端可以预先存储源方法和漏洞,即上述预存源方法和预存漏洞,且上述预存源方法为上述预存漏洞对应的源方法。
进一步地,在本发明的实施例中,终端在获取应用安装包文件对应的函数调用图之后,并可以根据上述函数调用图和上述预存源方法,确定出上述函数调用图对应的调用方法。
步骤102、根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。
在本发明的实施例中,终端在获取应用安装包文件对应的函数调用图,并根据预存源方法和函数调用图,确定调用方法和调用方法对应的目标数据之后,可以根据预存漏洞检测原理和预设检测策略,对上述目标数据进行数据流分析检测,从而得到上述目标数据对应的漏洞检测结果。
进一步地,在本发明的实施例中,终端可以通过预先存储的漏洞确定预存漏洞对应的预存漏洞检测原理。具体地,在本发明的实施例中,终端可以通过上述预存漏洞检测原理确定对上述预存漏洞进行分析检测时所需要的数据流分析方法。
进一步地,在本发明的实施例中,终端在确定预存漏洞对应的预存漏洞检测原理之后,可以根据预存漏洞检测原理和预设检测策略,对上述目标数据进行数据流分析检测,最终得到上述目标数据对应的漏洞检测结果。
需要说明的是,在本发明的实施例中,上述数据流分析可以包括数据流前向分析和数据流后向分析。具体地,数据流前向分析为根据函数调用图沿程序运行方向进行数据流分析,而数据流后向分析则为根据函数调用图沿程序运行逆方向进行数据流分析。
进一步地,在本发明的实施例中,终端在根据上述预存漏洞检测原理和上述预设检测策略,对上述目标数据进行数据流前向分析检测或者数据流后向分析检测之后,便可以获得漏洞检测的检测结果。进一步地,在本发明的实施例中,终端可以将上述漏洞检测的检测结果进行整合输出,从而获得上述应用安装包对应的漏洞检测结果。
本发明实施例提供了一种漏洞检测方法,获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。也就是说,本发明实施例提出的一种漏洞检测方法,能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
实施例二
图2为本发明实施例提出的一种漏洞检测方法的实现流程示意图二,如图2所示,基于实施例一,在本发明的实施例中,进一步地,终端根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测的方法可以包括以下步骤:
步骤102a、根据预设配置文件确定预存漏洞检测原理对应的检测脚本。
在本发明的实施例中,终端在对上述目标数据进行数据流分析检测之前,可以先根据预先设置的配置文件确定上述预存漏洞检测原理对应的检测脚本,然后可以按照上述检测脚本对上述目标数据进行数据流分析检测。
步骤102b、当预存漏洞检测原理对应的数据流分析方法为数据流前向分析时,按照检测脚本对目标数据进行数据流前向分析检测。
在发明的实施例中,终端在根据预设配置文件确定预预存漏洞检测原理对应的检测脚本之后,可以按照上述检测脚本对上述目标数据进行数据流分析检测。具体地,在发明的实施例中,终端可以先根据上述预存漏洞检测原理确定对应的数据流分析方法,当上述预存漏洞检测原理对应的数据流分析方法为数据流前向分析方法时,那么终端便可以按照上述检测脚本对上述目标数据进行数据流前向分析检测。
步骤102c、当预存漏洞检测原理对应的数据流分析方法为数据流后向分析时,按照检测脚本对目标数据进行数据流后向分析检测。
在发明的实施例中,终端在根据预设配置文件确定预存漏洞检测原理对应的检测脚本之后,可以按照上述检测脚本对上述目标数据进行数据流分析检测。具体地,在发明的实施例中,终端可以先根据上述预存漏洞检测原理确定对应的数据流分析方法,当上述预存漏洞检测原理对应的数据流分析方法为数据流后向分析方法时,那么终端便可以按照上述检测脚本对上述目标数据进行数据流后向分析检测。
根据上述的描述可知,通过上述的步骤102a~102c,终端可以根据预设配置文件确定预存漏洞检测原理对应的检测脚本;当预存漏洞检测原理对应的数据流分析方法为数据流前向分析方法时,终端可以按照检测脚本对目标数据进行数据流前向分析检测;当预存漏洞检测原理对应的数据流分析方法为数据流后向分析方法时,终端可以按照检测脚本对目标数据进行数据流后向分析检测;从而能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
实施例三
图3为本发明实施例提出的一种漏洞检测方法的实现流程示意图三,如图3所示,基于实施例一和实施例二,在本发明的实施例中,终端按照检测脚本对目标数据进行数据流前向分析检测的方法可以包括以下步骤:
步骤201、按照检测脚本对目标数据进行方法内前向分析检测。
在本发明的实施例中,当确定上述预存漏洞检测原理对应的数据流分析方法为数据流前向分析方法时,终端可以通过执行上述检测脚本,对上述目标数据进行方法内前向分析检测。
进一步地,在本发明的实施例中,终端对上述目标数据进行数据流前向分析检测时可以具体包括对上述目标数据的方法内前向分析检测和方法间前向分析检测。
步骤202、根据方法内前向分析检测对应的检测结果,对目标数据进行方法间前向分析检测。
在本发明的实施例中,终端在按照上述检测脚本对上述目标数据进行方法内前向分析检测之后,可以根据上述方法内前向分析检测对应的检测结果,对上述目标数据进行方法间前向分析检测。
图4为本发明实施例提出的一种漏洞检测方法的实现流程示意图四,如图4所示,在本发明的实施例中,终端按照检测脚本对目标数据进行方法内前向分析检测的方法可以包括以下步骤:
步骤201a、当未完成对目标数据执行调用方法时,判断调用方法中的第i指令对应的下级方法是否为陷入方法;其中,第i指令为调用方法中的全部指令中的一个指令,i为大于或者等于1的自然数。
在本发明的实施例中,终端可以先判断是否完成了对上述目标数据执行上述调用方法的处理,如果判定未完成对上述目标数据执行上述调用方法时,终端可以判断上述调用方法中的第i指令对应的下级方法是否为陷入方法。
需要说明的是,在本发明的实施例中,上述第i指令为上述调用方法中的全部指令中的一个指令,其中,i为大于或者等于1的自然数;上述第i指令对应的下级方法为上述第i指令调用的全部方法中的一个方法。
进一步地,在本发明的实施例中,终端执行上述检测脚本,当判定已经完成对上述目标数据执行上述调用方法时,那么终端可以不继续进行任何操作,从而可以保证对任意一个调用方法都只进行一次处理,避免循环处理同一个调用方法,从而降低了检测时间,提高了检测效率。
步骤201b、当下级方法不为陷入方法、第i指令为调用指令,且完成对目标数据执行下级方法时,获取下级方法对应的第一运行数据,并将下级方法和第一运行数据存储至预设前向方法队列。
在本发明的实施例中,终端在判定上述下级方法不为陷入方法,同时,判定上述第i指令为调用指令,且完成对上述目标数据执行上述下级方法时,终端可以先获取下级方法对应的第一运行数据,并将上述下级方法和上述第一运行数据存储至预先设置的前向方法队列。
进一步地,在本发明的实施例中,终端如果判定上述下级方法是陷入方法时,终端可以确定存在漏洞,并结束漏洞检测。
步骤201c、当下级方法不为陷入方法,且第i指令不为调用指令时,判断目标数据对应的寄存器是否被重新赋值。
在本发明的实施例中,终端在判定上述下级方法不为陷入方法,同时,判定上述第i指令不为调用指令时,终端可以判断上述目标数据对应的寄存器是否被重新赋值。
步骤201d、当寄存器被重新赋值时,结束此次方法内前向分析检测。
在本发明的实施例中,终端在判定上述运行数据对应的寄存器是否被重新赋值之后,如果上述运行数据对应的寄存器被重新赋值,那么终端可以结束此次方法内前向分析检测。
步骤201e、当寄存器未被重新赋值时,继续对第i+1指令进行方法内前向分析检测,直到遍历完调用方法对应的全部指令。
在本发明的实施例中,终端在判定上述运行数据对应的寄存器是否被重新赋值之后,如果上述运行数据对应的寄存器没有被重新赋值,那么终端可以继续对第i+1指令进行上述方法内前向分析检测,即对上述调用方法中的下一个指令进行步骤201a至步骤201e的处理流程,直到遍历完上述调用方法对应的全部指令。
图5为本发明实施例提出的一种漏洞检测方法的实现流程示意图五,如图5所示,在本发明的实施例中,终端根据方法内前向分析检测对应的检测结果,对目标数据进行方法间前向分析检测的方法可以包括以下步骤:
步骤202a、提取预设前向方法队列中的下级方法和第一运行数据。
在本发明的实施例中,终端在将上述下级方法和上述第一运行数据存储至上述预设前向方法队列之后,可以提取上述预设前向方法队列中的上述下级方法和上述第一运行数据。
步骤202b、将下级方法确定为调用方法、将第一运行数据确定为目标数据,进行方法内前向分析检测,直到将预设前向方法队列中的下级方法和第一运行数据处理完毕。
在本发明的实施例中,终端在提取上述预设前向方法队列中的上述下级方法和上述第一运行数据之后,可以按照上述步骤201a至步骤201e的处理流程对上述下级方法和上述第一运行数据进行上述方法间前向分析检测,直到上述预设前向方法队列为空。
进一步地,在本发明的实施例中,终端在提取上述预设前向方法队列中的上述下级方法和上述第一运行数据之后,可以将上述下级方法确定为调用方法、同时将上述第一运行数据确定为目标数据,然后进行方法内前向分析检测,直到将上述预设前向方法队列中的全部下级方法和对应的全部第一运行数据处理完毕。
基于上述图4和上述图5,图6为本发明实施例提出的一种数据前向分析实现流程示意图,如图6所示,实现数据前向分析的方法主要包括以下步骤:
步骤301、判断是否完成了对目标数据执行调用方法的处理,若是则不执行任何操作,否则执行步骤302。
步骤302、遍历调用方法中每条指令,对每条指令执行步骤303~步骤309的操作。
步骤303、判断当前指令对应的下级方法是否为陷入方法,若是则执行步骤304,否则执行步骤305。
步骤304、终止漏洞检测。
步骤305、判断当前指令是否为调用指令,若是执行步骤306,否则执行步骤307。
步骤306、判断目标数据是否为传入参数,即判断是否完成了对目标数据执行下级方法的处理,若是则执行步骤308,否则执行步骤307。
步骤307、判断运行数据对应的寄存器是否被重新赋值,若是执行步骤309,否则执行步骤3010。
步骤308、获取下级方法对应的运行数据,将下级方法和运行数据存储至预设前向方法队列,并执行步骤3011。
步骤309、结束此次方法内前向分析检测。
步骤3010、继续对下一个指令进行方法内前向分析检测,直到遍历完调用方法对应的全部指令。
步骤3011、提取预设前向方法队列中存储的下级方法和运行数据执行步骤301,直到预设前向方法队列为空。
在本发明的实施例中,上述步骤301~步骤3010为方法内数据前向分析,步骤3011为方法间数据前向分析。
由此可见,本发明实施例提出的一种漏洞检测方法,能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
实施例四
图7为本发明实施例提出的一种漏洞检测方法的实现流程示意图六,如图7所示,基于实施例一和实施例二,在本发明的实施例中,终端按照检测脚本对目标数据进行数据流后向分析检测的方法可以包括以下步骤:
步骤401、按照检测脚本对目标数据进行方法内后向分析检测。
在本发明的实施例中,当确定上述预存漏洞检测原理对应的数据流分析方法为数据流后向分析方法时,终端可以通过执行上述检测脚本,对上述目标数据进行方法内后向分析检测。
进一步地,在本发明的实施例中,终端对上述目标数据进行数据流后向分析检测时可以具体包括对上述目标数据的方法内后向分析检测和方法间后向分析检测。
步骤402、根据方法内后向分析检测对应的检测结果,对目标数据进行方法间后向分析检测。
在本发明的实施例中,终端在按照上述检测脚本对上述目标数据进行方法内后向分析检测之后,可以根据上述方法内后向分析检测对应的检测结果,对上述目标数据进行方法间后向分析检测。
图8为本发明实施例提出的一种漏洞检测方法的实现流程示意图七,如图8所示,在本发明的实施例中,终端按照检测脚本对目标数据进行方法内后向分析检测的方法可以包括以下步骤:
步骤401a、当未完成对目标数据执行调用方法时,获取调用方法对应的上级方法;其中,上级方法为调用上述调用方法的方法。
在本发明的实施例中,终端可以先判断是否完成了对上述目标数据执行上述调用方法的处理,如果判定未完成对上述目标数据执行上述调用方法时,终端可以获取上述调用方法对应的上级方法。
需要说明的是,在本发明的实施例中,上述上级方法是调用上述调用方法的至少一个方法。
进一步地,在本发明的实施例中,终端执行上述检测脚本,当判定已经完成对上述目标数据执行上述调用方法时,那么终端可以不继续进行任何操作,从而可以保证对任意一个调用方法都只进行一次处理,避免循环处理同一个调用方法,从而降低了检测时间,提高了检测效率。
步骤401b、判断上级方法中的第j指令对应的同级方法是否为陷入方法;其中,第j指令为上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数;同级方法为上级方法通过第j指令调用的全部方法中的一个方法。
在本发明的实施例中,终端在获取上述调用方法对应的上级方法之后,可以先确定上述上级方法中的第j指令对应的同级方法,然后判断上级方法中的第j指令对应的同级方法是否为陷入方法。
需要说明的是,在本发明的实施例中,上述第j指令为上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数。
需要说明的是,在本发明的实施例中,上述同级方法是上述第j指令调用的全部方法中的一个方法,即上述统计方法和上述调用方法均被上述上级方法通过第j指令所调用。
步骤401c、当同级方法不为陷入方法、第j指令为调用指令,且完成对目标数据执行同级方法时,获取同级方法对应的第二运行数据,并将同级方法和第二运行数据存储至预设前向方法队列。
在本发明的实施例中,终端在判定上述同级方法不为陷入方法,同时,判定上述第j指令为调用指令,且完成对上述目标数据执行上述同级方法时,终端可以先获取同级方法对应的第二运行数据,并将上述同级方法和上述第二运行数据存储至预先设置的前向方法队列。
进一步地,在本发明的实施例中,终端如果判定上述同级方法是陷入方法时,终端可以确定存在漏洞,并结束漏洞检测。
步骤401d、当同级方法不为陷入方法,且第j指令不为调用指令时,判断目标数据对应的寄存器是否被重新赋值。
在本发明的实施例中,终端在判定上述同级方法不为陷入方法,同时,判定上述第j指令不为调用指令时,终端可以判断上述目标数据对应的寄存器是否被重新赋值。
步骤401e、当寄存器被重新赋值时,结束此次方法内后向分析检测。
在本发明的实施例中,终端在判定上述运行数据对应的寄存器是否被重新赋值之后,如果上述运行数据对应的寄存器被重新赋值,那么终端可以结束此次方法内后向分析检测。
步骤401f、当寄存器未被重新赋值时,继续对第j+1指令进行方法内后向分析检测,直到遍历完上级方法对应的全部指令。
在本发明的实施例中,终端在判定上述运行数据对应的寄存器是否被重新赋值之后,如果上述运行数据对应的寄存器没有被重新赋值,那么终端可以继续对第j+1指令进行上述方法内后向分析检测,即对上述上级方法对应的下一个指令进行步骤401a至步骤401f的处理流程,直到遍历完上述上级方法对应的全部指令。
在本发明的实施例中,进一步地,如上述图8所示,终端在将同级方法和第二数据存储至预设前向方法队列之后,即步骤401c之后,终端按照检测脚本对目标数据进行方法内后向分析检测的方法还可以包括以下步骤:
步骤401g、提取预设前向方法队列中的同级方法和第二数据。
在本发明的实施例中,终端在将上述同级方法和上述第二数据存储至上述预设前向方法队列之后,可以提取上述预设前向方法队列中的同级方法和上述第二数据。
步骤401h、将同级方法确定为调用方法、将第二运行数据确定为目标数据,进行方法内后向分析检测,直到将预设前向方法队列中的同方法和第二运行数据处理完毕。
在本发明的实施例中,终端在提取上述预设前向方法队列中的同级方法和上述第二运行数据之后,可以按照上述步骤401a至步骤401f的处理流程对同级方法和上述第二运行数据进行上述方法内后向分析检测,直到上述预设前向方法队列为空。
进一步地,在本发明的实施例中,终端在提取上述预设前向方法队列中的上述同级方法和上述第二运行数据之后,可以将上述同级方法确定为调用方法、同时将上述第二运行数据确定为目标数据,然后进行方法内前向分析检测,直到将上述预设前向方法队列中的全部同级方法和对应的全部第二运行数据处理完毕。
进一步地,在本发明的实施例中,图9为本发明实施例提出的一种漏洞检测方法的实现流程示意图八,如图9所示,在本发明的实施例中,终端在继续对第j+1指令进行方法内后向分析检测,直到遍历完上级方法对应的全部指令之后,即步骤401f之后,终端按照检测脚本对目标数据进行方法内后向分析检测的方法还可以包括以下步骤:
步骤401i、当上级方法中的全部指令对应的全部同级方法都不为陷入方法时,获取上级方法对应的第三运行数据,并将上级方法和第三运行数据存储至预设后向方法队列。
在本发明的实施例中,终端在遍历完上述上级方法对应的全部指令之后,如果上述上级方法中的全部指令对应的全部同级方法都不为陷入方法时,可以先获取上述上级方法对应的第三运行数据,并将上述上级方法和上述第三运行数据存储至预先设置的后向方法队列。
图10为本发明实施例提出的一种漏洞检测方法的实现流程示意图九,如图10所示,在本发明的实施例中,终端根据方法内后向分析检测对应的检测结果,对目标数据进行方法间后向分析检测的方法可以包括以下步骤:
步骤402a、提取预设后向方法队列中的上级方法和第三运行数据。
在本发明的实施例中,终端在将上述上级方法和上述第三运行数据存储至上述预设后向方法队列之后,可以提取上述预设后向方法队列中的上述上级方法和上述第三运行数据。
步骤402b、将上级方法确定为调用方法、将第三运行数据确定为目标数据,进行方法内后向分析检测,直到将预设后向方法队列中的上级方法和第三运行数据处理完毕。
在本发明的实施例中,终端在提取上述预设后向方法队列中的上述上级方法和上述第三运行数据之后,可以按照上述步骤401a至步骤401i的处理流程对上述上级方法和上述第三运行数据进行上述方法间后向分析检测,直到上述预设后向方法队列为空。
进一步地,在本发明的实施例中,终端在提取上述预设前向方法队列中的上述上级方法和上述第三运行数据之后,可以将上述上级方法确定为调用方法、同时将上述第三运行数据确定为目标数据,然后进行方法内前向分析检测,直到将上述预设前向方法队列中的全部上级方法和对应的全部第三运行数据处理完毕。
基于上述图8、图9和图10,图11为本发明实施例提出的一种数据后向分析实现流程示意图,如图11所示,实现数据后向分析的方法主要包括以下步骤:
步骤501、判断是否完成了对上述目标数据执行上述调用方法的处理,若是则不执行任何操作,否则执行步骤502。
步骤502、获取调用方法对应的上级方法。
步骤503、遍历上级方法中每条指令,对每条指令执行步骤504~步骤5010的操作。
步骤504、判断当前指令对应的同级方法是否为陷入方法,若是则执行步骤505,否则执行步骤506。
步骤505、终止漏洞检测。
步骤506、判断当前指令是否为调用指令,若是执行步骤507,否则执行步骤508。
步骤507、判断目标数据是否为传入参数,即判断是否完成了对目标数据执行同级方法的处理,若是则执行步骤509,否则执行步骤508。
步骤508、判断目标数据对应的寄存器是否被重新赋值,若是执行步骤5010,否则执行步骤5011。
步骤509、获取同级方法对应的运行数据,将同级方法和运行数据存储至预设前向方法队列,并执行步骤5012。
步骤5010、结束此次方法内后向分析检测。
步骤5011、继续对下一个指令进行方法内后向分析检测,直到遍历完上级方法对应的全部指令。
步骤5012、提取预设前向方法队列中存储的同级方法和对应的运行数据执行步骤501,直到预设前向方法队列为空。
步骤5013、获取上级方法对应的运行数据,并将上级方法和对应的运行数据存储至预设后向方法队列。
步骤5014、提取预设后向方法队列中的上级方法和对应的运行数据执行步骤501,直到预设前向方法队列为空。
在本发明的实施例中,上述步骤501~步骤5013为方法内数据后向分析,步骤5014为方法间数据后向分析。
由此可见,本发明实施例提出的一种漏洞检测方法,能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
实施例五
图12为本发明实施例提出的一种漏洞检测方法的实现流程示意图十,如图12所示,基于实施例一,在本发明的实施例中,终端在获取应用安装包文件对应的函数调用图之前,及步骤101之前,终端进行漏洞检测的实现流程还可以包括以下步骤:
步骤103、获取应用安装包文件,并通过解析应用安装包文件获得文件信息。
在本发明的实施例中,终端可以先获取应用安装包文件,并通过解析上述应用安装包文件获得对应的文件信息。其中,上述文件信息可以包括上述应用安装包文件中的字符串、类、方法等基本信息。
需要说明的是,在本发明的实施例中,终端对上述应用安装包文件解析可以获得上述应用安装包文件包含的多个文件的文件信息,例如,resources资源文件和AndroidManifest.xml文件、dex文件等文件的文件信息。
进一步地,在本发明的实施例中,终端可以通过解析AndroidManifest.xml文件,获取其中包含的组件、权限、包名等信息;终端还可以通过解析资源文件resource.arsc文件,获取其包含的字符串、布局文件等信息;终端还可以通过解析classes.dex文件,获取其包含的字符串、类、方法等信息。
步骤104、根据文件信息建立函数调用图。
在本发明的实施例中,终端在通过解析应用安装包文件获得文件信息之后,可以根据上述文件信息建立上述应用安装包文件对应的函数调用图。
进一步地,终端可以通过扫描dex文件中的类信息和方法信息来构建函数调用图。
本发明实施例提出的一种漏洞检测方法,能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
实施例六
图13为本发明实施例提出的一种漏洞检测方法的实现流程示意图十一,如图13所示,基于实施例一和实施例二,在本发明的实施例中,终端根据预设配置文件确定预存漏洞检测原理对应的检测脚本的可以包括以下步骤:
步骤102a1、通过解析预设配置文件获取配置内容。
在本发明的实施例中,终端可以先获取预先设置的配置文件,然后可以对上述预设配置文件进行解析,并获取相应的配置内容。
需要说明的是,上述配置文件中存储有不同漏洞的配置内容,例如,上述配置文件中可以保存不同漏洞的检测开启状态,从而可以使终端更加方便直接的对漏洞检测开启状态进行设置。
步骤102a2、根据配置内容设置检测参数。
在本发明的实施例中,终端在获取预设配置文件,并通过解析预设配置文件获取配置内容之后,可以根据配置内容设置检测参数。具体地,上述配置文件中存储的配置内容为不同漏洞的检测项内容,因此,终端可以根据上述配置内容设置检测参数,从而对上述不同漏洞进行检测。
步骤102a3、根据检测参数加载预存漏洞检测原理对应的检测脚本。
在本发明的实施例中,终端在根据配置内容设置检测参数之后,可以根据检测参数加载预存漏洞检测原理对应的检测脚本。
需要说明的是,在本发明的实施例中,上述检测脚本是根据预存漏洞的原理分析出对应的漏洞检测项,因此终端可以使用上述检测脚本实现对预存漏洞检测项的检测。
根据上述的描述可知,通过上述的步骤102a1~102a3,终端可以通过解析预设配置文件获取配置内容;根据配置内容设置检测参数;根据检测参数加载预存漏洞检测原理对应的检测脚本;从而能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
实施例七
基于实施例一至实施例六的同一发明构思下,图14为为本发明实施例提出的终端的组成结构示意图一,如图14所示,本发明实施例提出的终端1包括:获取单元11,确定单元12以及检测单元13。
获取单元11,用于获取应用安装包文件对应的函数调用图。
确定单元12,用于在获取单元11获取应用安装包文件对应的函数调用图之后,根据预存源方法以及函数调用图,确定调用方法。
检测单元13,还用于在确定单元12根据预存源方法以及函数调用图,确定调用方法之后,根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测;
获取单元11,还用于在检测单元13根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测之后,得到目标数据对应的漏洞检测结果;其中,上述预存漏洞检测原理用于确定上述目标数据的数据流分析方法;上述数据流分析方法包括数据流前向分析和数据流后向分析。
图15为本发明实施例提出的终端的组成结构示意图二,如图15所示,检测单元13包括:确定子单元131和检测子单元132。
确定子单元131,用于根据预设配置文件确定预存漏洞检测原理对应的检测脚本。
检测子单元132,用于在确定子单元131根据预设配置文件确定预存漏洞检测原理对应的检测脚本之后,当预存漏洞检测原理对应的数据流分析方法为数据流前向分析时,按照检测脚本对预存漏洞进行数据流前向分析检测;及当预存漏洞检测原理对应的数据流分析方法为数据流后向分析时,按照检测脚本对预存漏洞进行数据流后向分析检测。
其中,确定子单元131,具体用于通过解析上述预设配置文件获取配置内容;根据上述配置内容设置检测参数;根据上述检测参数加载上述预存漏洞检测原理对应的检测脚本。
在本发明的实施例中,进一步地,检测子单元132具体用于按照上述检测脚本对上述目标数据进行方法内前向分析检测;以及根据上述方法内前向分析检测对应的检测结果,对上述目标数据进行方法间前向分析检测。
进一步地,在本发明的实施例中,检测子单元132具体用于当未完成对上述目标数据执行上述调用方法时,判断上述调用方法中的第i指令对应的下级方法是否为陷入方法;其中,上述第i指令为上述调用方法中的全部指令中的一个指令,i为大于或者等于1的自然数;以及当上述下级方法不为陷入方法、上述第i指令为调用指令,且完成对上述目标数据执行上述下级方法时,获取上述下级方法对应的第一运行数据,并将上述下级方法和上述第一运行数据存储至预设前向方法队列;以及当上述下级方法不为陷入方法,且上述第i指令不为调用指令时,判断上述目标数据对应的寄存器是否被重新赋值;以及当上述寄存器被重新赋值时,结束此次方法内前向分析检测;以及当上述寄存器未被重新赋值时,继续对第i+1指令进行上述方法内前向分析检测,直到遍历完上述调用方法对应的全部指令。
进一步地,在本发明的实施例中,检测子单元132具体还用于当上述下级方法为陷入方法时,确定存在漏洞,并结束漏洞检测。
进一步地,在本发明的实施例中,检测子单元132具体还用于提取上述预设前向方法队列中的上述下级方法和上述第一运行数据;以及将下级方法确定为调用方法、将第一运行数据确定为目标数据,进行方法内前向分析检测,直到将预设前向方法队列中的下级方法和第一运行数据处理完毕。
在本发明的实施例中,进一步地,检测子单元132具体用于按照上述检测脚本对上述目标数据进行方法内后向分析检测;以及根据上述方法内后向分析检测对应的检测结果,对上述目标数据进行方法间后向分析检测。
进一步地,在本发明的实施例中,检测子单元132具体用于当未完成对目标数据执行调用方法时,获取调用方法对应的上级方法;其中,上级方法为调用上述调用方法的方法;以及判断上级方法中的第j指令对应的同级方法是否为陷入方法;其中,第j指令为上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数;同级方法为上级方法通过第j指令调用的全部方法中的一个方法;以及当上述同级方法不为陷入方法、上述第j指令为调用指令,且完成对上述目标数据执行上述同级方法时,获取上述同级方法对应的第二运行数据,并将上述同级方法和上述第二运行数据存储至预设前向方法队列;以及当上述同级方法不为陷入方法,且上述第j指令不为调用指令时,判断上述目标数据对应的寄存器是否被重新赋值;以及当上述寄存器被重新赋值时,结束此次方法内后向分析检测;以及当上述寄存器未被重新赋值时,继续对第j+1指令进行上述方法内后向分析检测,直到遍历完上述上级方法对应的全部指令;以及当上级方法中的全部指令对应的全部同级方法都不为陷入方法时,获取上级方法对应的第三运行数据,并将上级方法和第三运行数据存储至预设后向方法队列。
进一步地,在本发明的实施例中,检测子单元132具体还用于当上述同级方法为陷入方法时,确定存在漏洞,并结束漏洞检测。
进一步地,在本发明的实施例中,检测子单元132具体还用于提取上述预设前向方法队列中的上述同级方法和上述第二运行数据;以及将同级方法确定为调用方法、将第二运行数据确定为目标数据,进行方法内后向分析检测,直到将预设前向方法队列中的同方法和第二运行数据处理完毕。
进一步地,在本发明的实施例中,检测子单元132具体还用于提取上述预设后向方法队列中的上述上级方法和上述第三运行数据;以及将上级方法确定为调用方法、将第三运行数据确定为目标数据,进行方法内后向分析检测,直到将预设后向方法队列中的上级方法和第三运行数据处理完毕。
图16为本发明实施例提出的终端的组成结构示意图三,如图16所示,终端1还包括:建立单元14。
获取单元11,还用于在获取应用安装包文件对应的函数调用图之前,获取应用安装包文件,并通过解析应用安装包文件获得文件信息。
建立单元14,用于在获取单元11获取应用安装包文件,并通过解析应用安装包文件获得文件信息之后,根据文件信息建立函数调用图。
图17为本发明实施例提出的终端的组成结构示意图四,在实际应用中,基于实施例一至实施例六的同一发明构思下,如图17所示,终端1可以包括处理器15、存储有处理器15可执行指令的存储器16、通信接口17,和用于连接处理器15、存储器16以及通信接口17的总线18。
在本发明的实施例中,获取单元11,确定单元12、检测单元13以及建立14均可由位于终端1上的处理器15实现,上述处理器15可以为特定用途集成电路(ASIC,ApplicationSpecific Integrated Circuit)、数字信号处理器(DSP,Digital Signal Processor)、数字信号处理装置(DSPD,Digital Signal Processing Device)、可编程逻辑装置(PLD,ProgRAMmable Logic Device)、现场可编程门阵列(FPGA,Field ProgRAMmable GateArray)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本发明实施例不作具体限定。该终端1还可以包括存储器16,该存储器16可以与处理器15连接,其中,存储器16用于存储可执行程序代码,该程序代码包括计算机操作指令,存储器16可能包含高速RAM存储器,也可能还包括非易失性存储器,例如,至少一个磁盘存储器。
在本发明的实施例中,总线18用于连接通信接口17、处理器15和存储器16以及这些器件之间的相互通信。
在本发明的实施例中,存储器16,用于存储指令和数据。
处理器15,用于获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。
在实际应用中,上述存储器16可以是易失性第一存储器(volatile memory),例如随机存取第一存储器(RAM,Random-Access Memory);或者非易失性第一存储器(non-volatile memory),例如只读第一存储器(ROM,Read-Only Memory),快闪第一存储器(flash memory),硬盘(HDD,Hard Disk Drive)或固态硬盘(SSD,Solid-State Drive);或者上述种类的第一存储器的组合,并向处理器15提供指令和数据。
本发明实施例提供了一种终端,获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。也就是说,本发明实施例提出的一种终端,能够通过对应用的安装包文件进行基于数据流分析的漏洞检测,快速准确且全面的检测到应用中存在的漏洞,有效地提高了漏洞检测的检测效率,保证了应用的安全性。
另外,在本实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,ReadOnly Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明实施例提供一种计算机可读存储介质,其上存储有程序,应用于终端中,该程序被处理器执行时实现如实施例一至实施例六的方法。
具体来讲,本实施例中的一种漏洞检测方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种漏洞检测方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:
获取应用安装包文件对应的函数调用图,并根据预存源方法以及函数调用图,确定调用方法和调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对目标数据进行数据流分析检测,得到目标数据对应的漏洞检测结果;其中,预存漏洞检测原理用于确定目标数据的数据流分析方法;数据流分析方法包括数据流前向分析和数据流后向分析。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (23)

1.一种漏洞检测方法,其特征在于,所述方法包括:
获取应用安装包文件对应的函数调用图,并根据预存源方法以及所述函数调用图,确定调用方法和所述调用方法对应的目标数据;
根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测,得到所述目标数据对应的漏洞检测结果;其中,所述预存漏洞检测原理用于确定所述目标数据的数据流分析方法;所述数据流分析方法包括数据流前向分析和数据流后向分析。
2.根据权利要求1所述的方法,其特征在于,所述根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测,包括:
根据预设配置文件确定所述预存漏洞检测原理对应的检测脚本;
当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流前向分析时,按照所述检测脚本对所述目标数据进行数据流前向分析检测;
当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流后向分析时,按照所述检测脚本对所述目标数据进行数据流后向分析检测。
3.根据权利要求2所述的方法,其特征在于,所述按照所述检测脚本对所述目标数据进行数据流前向分析检测,包括:
按照所述检测脚本对所述目标数据进行方法内前向分析检测;
根据所述方法内前向分析检测对应的检测结果,对所述目标数据进行方法间前向分析检测。
4.根据权利要求3所述的方法,其特征在于,所述按照所述检测脚本对所述目标数据进行方法内前向分析检测,包括:
当未完成对所述目标数据执行所述调用方法时,判断所述调用方法中的第i指令对应的下级方法是否为陷入方法;其中,所述第i指令为所述调用方法中的全部指令中的一个指令,i为大于或者等于1的自然数;
当所述下级方法不为陷入方法、所述第i指令为调用指令,且完成对所述目标数据执行所述下级方法时,获取所述下级方法对应的第一运行数据,并将所述下级方法和所述第一运行数据存储至预设前向方法队列;
当所述下级方法不为陷入方法,且所述第i指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;
当所述寄存器被重新赋值时,结束此次方法内前向分析检测;
当所述寄存器未被重新赋值时,继续对第i+1指令进行所述方法内前向分析检测,直到遍历完所述调用方法对应的全部指令。
5.根据权利要求4所述的方法,其特征在于,所述判断所述调用方法中的第i指令对应的下级方法是否为陷入方法之后,所述方法还包括:
当所述下级方法为陷入方法时,确定存在漏洞,并结束漏洞检测。
6.根据权利要求4所述的方法,其特征在于,所述根据所述方法内前向分析检测对应的检测结果,对所述目标数据进行方法间前向分析检测,包括:
提取所述预设前向方法队列中的所述下级方法和所述第一运行数据;
将所述下级方法确定为所述调用方法、将所述第一运行数据确定为所述目标数据,进行所述方法内前向分析检测,直到将所述预设前向方法队列中的所述下级方法和所述第一运行数据处理完毕。
7.根据权利要求2所述的方法,其特征在于,所述按照所述检测脚本对所述目标数据进行数据流后向分析检测,包括:
按照所述检测脚本对所述目标数据进行方法内后向分析检测;
根据所述方法内后向分析检测对应的检测结果,对所述目标数据进行方法间后向分析检测。
8.根据权利要求7所述的方法,其特征在于,所述按照所述检测脚本对所述目标数据进行方法内后向分析检测,包括:
当未完成对所述目标数据执行所述调用方法时,获取所述调用方法对应的上级方法;其中,所述上级方法为调用所述调用方法的方法;
判断所述上级方法中的第j指令对应的同级方法是否为陷入方法;其中,所述第j指令为所述上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数;所述同级方法为所述上级方法通过所述第j指令调用的全部方法中的一个方法;
当所述同级方法不为陷入方法、所述第j指令为调用指令,且完成对所述目标数据执行所述同级方法时,获取所述同级方法对应的第二运行数据,并将所述同级方法和所述第二运行数据存储至预设前向方法队列;
当所述同级方法不为陷入方法,且所述第j指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;
当所述寄存器被重新赋值时,结束此次方法内后向分析检测;
当所述寄存器未被重新赋值时,继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令。
9.根据权利要求8所述的方法,其特征在于,所述判断所述上级方法中的第j指令对应的同级方法是否为陷入方法之后,所述方法还包括:
当所述同级方法为陷入方法时,确定存在漏洞,并结束漏洞检测。
10.根据权利要求8所述的方法,其特征在于,所述将所述同级方法和所述第二运行数据存储至预设前向方法队列之后,所述方法还包括:
提取所述预设前向方法队列中的所述同级方法和所述第二运行数据;
将所述同级方法确定为所述调用方法、将所述第二运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设前向方法队列中的所述同方法和所述第二运行数据处理完毕。
11.根据权利要求8所述的方法,其特征在于,所述继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令之后,所述方法还包括:
当所述上级方法中的全部指令对应的全部同级方法都不为所述陷入方法时,获取所述上级方法对应的第三运行数据,并将所述上级方法和所述第三运行数据存储至预设后向方法队列。
12.根据权利要求11所述的方法,其特征在于,所述根据所述方法内后向分析检测对应的检测结果,对所述目标数据进行方法间后向分析检测,包括:
提取所述预设后向方法队列中的所述上级方法和所述第三运行数据;
将所述上级方法确定为所述调用方法、将所述第三运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设后向方法队列中的所述上级方法和所述第三运行数据处理完毕。
13.根据权利要求1所述的方法,其特征在于,所述获取应用安装包文件对应的函数调用图之前,所述方法还包括:
获取所述应用安装包文件,并通过解析所述应用安装包文件获得文件信息;
根据所述文件信息建立所述函数调用图。
14.根据权利要求2所述的方法,其特征在于,所述根据预设配置文件确定所述预存漏洞检测原理对应的检测脚本,包括:
通过解析所述预设配置文件获取配置内容;
根据所述配置内容设置检测参数;
根据所述检测参数加载所述预存漏洞检测原理对应的检测脚本。
15.一种终端,其特征在于,所述终端包括:获取单元,确定单元以及检测单元,
所述获取单元,用于获取应用安装包文件对应的函数调用图;
所述确定单元,用于根据预存源方法以及所述函数调用图,确定调用方法和所述调用方法对应的目标数据;
所述检测单元,用于根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测;
所述获取单元,还用于得到所述目标数据对应的漏洞检测结果;其中,所述预存漏洞检测原理用于确定所述目标数据的数据流分析方法;所述数据流分析方法包括数据流前向分析和数据流后向分析。
16.根据权利要求15所述的终端,其特征在于,所述检测单元包括:确定子单元和检测子单元,
所述确定子单元,用于根据预设配置文件确定所述预存漏洞检测原理对应的检测脚本;
所述检测子单元,用于当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流前向分析时,按照所述检测脚本对所述目标数据进行数据流前向分析检测;及当所述预存漏洞检测原理对应的所述数据流分析方法为所述数据流后向分析时,按照所述检测脚本对所述目标数据进行数据流后向分析检测;
其中,所述确定子单元,具体用于通过解析所述预设配置文件获取配置内容;根据所述配置内容设置检测参数;根据所述检测参数加载所述预存漏洞检测原理对应的检测脚本。
17.根据权利要求16所述的终端,其特征在于,
所述检测子单元,具体用于按照所述检测脚本对所述目标数据进行方法内前向分析检测;以及根据所述方法内前向分析检测对应的检测结果,对所述目标数据进行方法间前向分析检测。
18.根据权利要求17所述的终端,其特征在于,
所述检测子单元,具体用于当未完成对所述目标数据执行所述调用方法时,判断所述调用方法中的第i指令对应的下级方法是否为陷入方法;其中,所述第i指令为所述调用方法中的全部指令中的一个指令,i为大于或者等于1的自然数;以及当所述下级方法不为陷入方法、所述第i指令为调用指令,且完成对所述目标数据执行所述下级方法时,获取所述下级方法对应的第一运行数据,并将所述下级方法和所述第一运行数据存储至预设前向方法队列;以及当所述下级方法不为陷入方法,且所述第i指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;以及当所述寄存器被重新赋值时,结束此次方法内前向分析检测;以及当所述寄存器未被重新赋值时,继续对第i+1指令进行所述方法内前向分析检测,直到遍历完所述调用方法对应的全部指令;
所述检测子单元,具体还用于在判断所述调用方法中的第i指令对应的下级方法是否为陷入方法之后,当所述下级方法为陷入方法时,确定存在漏洞,并结束漏洞检测;
所述检测子单元,具体还用于提取所述预设前向方法队列中的所述下级方法和所述第一运行数据;以及将所述下级方法确定为所述调用方法、将所述第一运行数据确定为所述目标数据,进行所述方法内前向分析检测,直到将所述预设前向方法队列中的所述下级方法和所述第一运行数据处理完毕。
19.根据权利要求16所述的终端,其特征在于,
所述检测子单元,具体用于按照所述检测脚本对所述目标数据进行方法内后向分析检测;以及根据所述方法内后向分析检测对应的检测结果,对所述目标数据进行方法间后向分析检测。
20.根据权利要求19所述的终端,其特征在于,
所述检测子单元,具体用于当未完成对所述目标数据执行所述调用方法时,获取所述调用方法对应的上级方法;其中,所述上级方法为调用所述调用方法的方法;以及判断所述上级方法中的第j指令对应的同级方法是否为陷入方法;其中,所述第j指令为所述上述方法中的全部指令中的一个指令,j为大于或者等于1的自然数;所述同级方法为所述上级方法通过所述第j指令调用的全部方法中的一个方法;以及当所述同级方法不为陷入方法、所述第j指令为调用指令,且完成对所述目标数据执行所述同级方法时,获取所述同级方法对应的第二运行数据,并将所述同级方法和所述第二运行数据存储至预设前向方法队列;以及当所述同级方法不为陷入方法,且所述第j指令不为调用指令时,判断所述目标数据对应的寄存器是否被重新赋值;以及当所述寄存器被重新赋值时,结束此次方法内后向分析检测;以及当所述寄存器未被重新赋值时,继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令;
所述检测子单元,具体还用于在判断所述上级方法中的第j指令对应的同级方法是否为陷入方法之后,当所述同级方法为陷入方法时,确定存在漏洞,并结束漏洞检测;
所述检测子单元,具体还用于在将所述同级方法和所述第二运行数据存储至预设前向方法队列之后,提取所述预设前向方法队列中的所述同级方法和所述第二运行数据;以及将所述同级方法确定为所述调用方法、将所述第二运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设前向方法队列中的所述同方法和所述第二运行数据处理完毕;
所述检测子单元,具体还用于在继续对第j+1指令进行所述方法内后向分析检测,直到遍历完所述上级方法对应的全部指令之后,当所述上级方法中的全部指令对应的全部同级方法都不为所述陷入方法时,获取所述上级方法对应的第三运行数据,并将所述上级方法和所述第三运行数据存储至预设后向方法队列;
所述检测子单元,具体还用于提取所述预设后向方法队列中的所述上级方法和所述第三运行数据;以及将所述上级方法确定为所述调用方法、将所述第三运行数据确定为所述目标数据,进行所述方法内后向分析检测,直到将所述预设后向方法队列中的所述上级方法和所述第三运行数据处理完毕。
21.根据权利要求15所述的终端,其特征在于,所述终端还包括:建立单元,
所述获取单元,还用于在获取应用安装包文件对应的函数调用图之前,获取所述应用安装包文件,并通过解析所述应用安装包文件获得文件信息;
所述建立单元,用于根据所述文件信息建立所述函数调用图。
22.一种终端,其特征在于,所述终端包括处理器、存储有所述处理器可执行指令的存储器、通信接口,和用于连接所述处理器、所述存储器以及所述通信接口的总线,当所述指令被执行时,所述处理器执行如下操作:
所述处理器,用于获取应用安装包文件对应的函数调用图,并根据预存源方法以及所述函数调用图,确定调用方法和所述调用方法对应的目标数据;根据预存漏洞检测原理和预设检测策略,对所述目标数据进行数据流分析检测,得到所述目标数据对应的漏洞检测结果;其中,所述预存漏洞检测原理用于确定所述目标数据的数据流分析方法;所述数据流分析方法包括数据流前向分析和数据流后向分析。
23.一种计算机可读存储介质,其上存储有程序,应用于终端中,其特征在于,所述程序被处理器执行时实现如权利要求1-14任一项所述的方法。
CN201710476997.1A 2017-06-21 2017-06-21 一种漏洞检测方法及终端、存储介质 Pending CN109101819A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710476997.1A CN109101819A (zh) 2017-06-21 2017-06-21 一种漏洞检测方法及终端、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710476997.1A CN109101819A (zh) 2017-06-21 2017-06-21 一种漏洞检测方法及终端、存储介质

Publications (1)

Publication Number Publication Date
CN109101819A true CN109101819A (zh) 2018-12-28

Family

ID=64796207

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710476997.1A Pending CN109101819A (zh) 2017-06-21 2017-06-21 一种漏洞检测方法及终端、存储介质

Country Status (1)

Country Link
CN (1) CN109101819A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902489A (zh) * 2019-02-18 2019-06-18 福建六壬网安股份有限公司 一种检测漏洞脚本的方法及装置
CN110334523A (zh) * 2019-07-18 2019-10-15 北京智游网安科技有限公司 一种漏洞检测方法、装置、智能终端及存储介质
CN110597724A (zh) * 2019-09-18 2019-12-20 彩讯科技股份有限公司 应用安全测试组件的调用方法、装置、服务器及存储介质
CN112733158A (zh) * 2021-04-06 2021-04-30 北京邮电大学 Android系统漏洞检测方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299723A (ja) * 2007-06-01 2008-12-11 Hitachi Systems & Services Ltd プログラム検証方法、プログラム検証装置
CN103617396A (zh) * 2013-11-29 2014-03-05 杭州华三通信技术有限公司 一种漏洞利用的检测方法和系统
CN103902884A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机数据保护系统和方法
CN106156630A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 一种应用程序安装包的漏洞检测方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299723A (ja) * 2007-06-01 2008-12-11 Hitachi Systems & Services Ltd プログラム検証方法、プログラム検証装置
CN103902884A (zh) * 2012-12-28 2014-07-02 中国电信股份有限公司 虚拟机数据保护系统和方法
CN103617396A (zh) * 2013-11-29 2014-03-05 杭州华三通信技术有限公司 一种漏洞利用的检测方法和系统
CN106156630A (zh) * 2015-04-23 2016-11-23 阿里巴巴集团控股有限公司 一种应用程序安装包的漏洞检测方法和装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109902489A (zh) * 2019-02-18 2019-06-18 福建六壬网安股份有限公司 一种检测漏洞脚本的方法及装置
CN109902489B (zh) * 2019-02-18 2021-05-07 福建六壬网安股份有限公司 一种检测漏洞脚本的方法及装置
CN110334523A (zh) * 2019-07-18 2019-10-15 北京智游网安科技有限公司 一种漏洞检测方法、装置、智能终端及存储介质
CN110597724A (zh) * 2019-09-18 2019-12-20 彩讯科技股份有限公司 应用安全测试组件的调用方法、装置、服务器及存储介质
CN112733158A (zh) * 2021-04-06 2021-04-30 北京邮电大学 Android系统漏洞检测方法、电子设备及存储介质
CN112733158B (zh) * 2021-04-06 2021-08-03 北京邮电大学 Android系统漏洞检测方法、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN110275958B (zh) 网站信息识别方法、装置和电子设备
CN109101819A (zh) 一种漏洞检测方法及终端、存储介质
AU2018310287A1 (en) Smart contract processing method and apparatus
US10120783B2 (en) Determining test case efficiency
CN106776338B (zh) 一种测试方法、装置及服务器
CN108256322B (zh) 安全测试方法、装置、计算机设备和存储介质
CN106487603B (zh) 一种响应测试方法及装置
KR20080068385A (ko) 소프트웨어 테스트 시스템, 방법 및 그 방법을 실행하기위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
CN114546738B (zh) 服务器通用测试方法、系统、终端及存储介质
CN113114680B (zh) 用于文件上传漏洞的检测方法和检测装置
CN109255240A (zh) 一种漏洞处理方法和装置
CN106557412B (zh) 一种模糊测试的方法及装置
CN111309622A (zh) 应用程序测试方法、装置、终端设备以及存储介质
CN111538659A (zh) 业务场景的接口测试方法、系统、电子设备和存储介质
US10310962B2 (en) Infrastructure rule generation
CN112019544B (zh) 网络接口的安全扫描方法、装置及系统
CN111400171B (zh) 一种接口测试方法、系统、装置及可读存储介质
CN104573522B (zh) 一种漏洞分析方法和装置
CN116136950B (zh) 芯片验证方法、装置、系统、电子设备及存储介质
CN108829575A (zh) 测试案例推荐方法、电子装置及可读存储介质
CN117234916A (zh) 一种工作流应用的测试方法、装置、电子设备及存储介质
US10599797B1 (en) System, method, and computer program product for grouping one or more failures in a formal verification
CN110825391A (zh) 服务管理方法、装置、电子设备及存储介质
CN107402883B (zh) 一种数据测试处理方法和装置
US9916412B2 (en) Automatic generation of test layouts for testing a design rule checking tool

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