一种漏洞检测方法、装置及系统与流程

专利2022-06-29  33


本申请涉及系统安全领域,具体涉及一种漏洞检测方法、装置及系统。另外,还涉及一种漏洞检测的电子设备和存储设备。



背景技术:

随着网络技术的发展,现有的移动终端运行的操作系统中不可避免的存在一些漏洞,使得黑客经常会利用这些漏洞窃取用户的个人信息和企业的商业秘密等,给网络信息安全造成极大的威胁。如何高效、快速的识别程序中存在的漏洞,从而减少用户以及企业的损失,成为互联网领域亟待解决的技术问题。

目前,现有技术中检测系统漏洞的方式存在的问题为:测试样本缺乏针对性,导致对某个操作系统进行漏洞检测的测试结果存在盲目性,且测试效率较低。无法根据待检测操作系统的不同获得更有针对性的测试样本,使得测试结果的准确性和可靠性不高,不利于测试人员根据测试结果进行漏洞修复,尤其是针对大型网站的检测效率过低,导致扫描过程通常花费较长的时间。



技术实现要素:

本申请提供一种漏洞检测方法、装置及系统,以解决现有技术中存在的漏洞检测方法效率低下、可靠性不高的问题。本申请还提供一种漏洞检测电子设备和存储设备。

本申请提供一种漏洞检测方法,包括:获得移动终端运行的操作系统的特征;根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

可选的,所述的漏洞检测方法还包括:获得所述移动终端运行的操作系统的源代码;根据所述源代码,获得所述移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系;分析所述入口函数、所述函数调用关系以及所述系统调用关系,获得针对所述移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域;生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合;所述根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,具体包括:根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

可选的,所述生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合,具体包括:获得针对所述目标区域存在的业务逻辑漏洞的测试需求;对所述测试需求中相应的测试路径进行扫描,获得测试场景信息;根据预先定义的测试样本的文件格式和所述测试场景信息,生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。

可选的,所述根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,包括:根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得满足针对移动终端运行的操作系统进行漏洞检测需要的多个测试样本;所述根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果,包括:根据所述多个测试样本中的至少一个测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的至少一个测试结果。

可选的,所述的漏洞检测方法所述方法还包括:若判断所述移动终端运行的操作系统不存在漏洞,则根据所述漏洞检测流程对所述多个测试样本中的剩余测试样本进行检测,获得针对所述移动终端运行的操作系统运行所述剩余测试样本的测试结果;根据针对所述剩余测试样本的测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

可选的,所述获得移动终端运行的操作系统的特征,包括:获得多个移动终端运行的操作系统的特征;所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识;所述根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,包括:根据所述移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;根据所述当前待测试的移动终端运行的操作系统的系统标识,获得满足所述当前待测试的移动终端运行的操作系统漏洞检测需要的测试样本。

可选的,所述根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则,包括:根据所述多个移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;分析所述当前待测试的移动终端运行的操作系统的测试需求,定义针对至所述测试需求的漏洞检测流程和漏洞判断规则。

可选的,所述的漏洞检测方法还包括:获得检测完成的所述测试样本的信息;根据所述检测完成的所述测试样本的信息,获得检测完成的所述测试样本;将所述检测完成的所述测试样本从所述测试样本集合中移除。

相应的,本申请还提供一种漏洞检测装置,包括:设备控制器单元,用于获得移动终端运行的操作系统的特征;生成器单元,用于根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;自定义单元,用于根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;主模糊器单元,用于根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;本地控制器单元,用于根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

可选的,所述的漏洞检测装置还包括:第一获得单元,用于获得所述移动终端运行的操作系统的源代码;第二获得单元,用于根据所述源代码,获得所述移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系;分析单元,用于分析所述入口函数、所述函数调用关系以及所述系统调用关系,获得针对所述移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域;测试样本集合生成单元,用于生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合;所述生成器单元具体用于,根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

可选的,所述测试样本集合生成单元具体用于:获得针对所述目标区域存在的业务逻辑漏洞的测试需求;对所述测试需求中相应的测试路径进行扫描,获得测试场景信息;根据预先定义的测试样本的文件格式和所述测试场景信息,生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。

可选的,所述生成器单元具体用于,根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得满足针对移动终端运行的操作系统进行漏洞检测需要的多个测试样本;所述主模糊器单元具体用于,根据所述多个测试样本中的至少一个测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的至少一个测试结果。

可选的,所述装置还包括第二主模糊器单元所述第二主模糊器单元,用于若判断所述移动终端运行的操作系统不存在漏洞,则根据所述漏洞检测流程对所述多个测试样本中的剩余测试样本进行检测,获得针对所述移动终端运行的操作系统运行所述剩余测试样本的测试结果;所述本地控制器单元还用于,根据针对所述剩余测试样本的测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

可选的,所述设备控制器单元具体用于,获得多个移动终端运行的操作系统的特征;所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识;所述生成器单元具体用于:根据所述移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;根据所述当前待测试的移动终端运行的操作系统的系统标识,获得满足所述当前待测试的移动终端运行的操作系统漏洞检测需要的测试样本。

可选的,所述自定义单元具体用于:根据所述多个移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;分析所述当前待测试的移动终端运行的操作系统的测试需求,定义针对至所述测试需求的漏洞检测流程和漏洞判断规则。

可选的,所述的漏洞检测装置还包括:第三获得单元,用于获得检测完成的所述测试样本的信息;第四获得单元,用于根据所述检测完成的所述测试样本的信息,获得检测完成的所述测试样本;移除单元,用于将所述检测完成的所述测试样本从所述测试样本集合中移除。

相应的,本申请还提供一种漏洞检测系统,其特征在于,包括:上述漏洞检测装置中的至少一种装置。

相应的,本申请还提供一种电子设备,包括:处理器;以及存储器,用于存储漏洞检测方法的程序,该设备通电并通过所述处理器运行该漏洞检测方法的程序后,执行下述步骤:获得移动终端运行的操作系统的特征;根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

相应的,本申请还提供一种存储设备,存储有漏洞检测方法的程序,该程序被处理器运行,执行下述步骤:获得移动终端运行的操作系统的特征;根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

与现有技术相比,本申请具有以下优点:

采用本申请提供的漏洞检测方法,可以根据移动终端运行的操作系统的特征,匹配更有针对性的检测样本,并定义与之相匹配的漏洞检测流程和漏洞判断规则,获得准确的测试结果,从而能够高效、快速的识别程序漏洞,减少繁琐的操作过程,便于测试人员进行漏洞修复。

附图说明

图1为本发明实施例提供的一种漏洞检测方法的流程图;

图2为本发明实施例提供的一种漏洞检测装置的示意图;

图3为本发明实施例提供的一种漏洞检测的电子设备示意图;

图4为本发明实施例提供的一种漏洞检测装置的结构图;

图5为本发明实施例提供的一种漏洞检测装置的完整运行流程图;

图6为本发明实施例提供的一种漏洞检测装置中ssh基于口令的安全认证过程的流程图;

图7为本发明实施例提供的一种漏洞检测装置中ssh基于密钥的安全认证过程的流程图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此,本发明不受下面公开的具体实施的限制。

下面基于本发明提供的漏洞检测方法,对其实施例进行详细描述。请参考图1所示,其为本发明实施例提供的一种漏洞检测方法的流程图。

本发明实施例提供的漏洞检测方法具体包括以下步骤:

步骤s101,获得移动终端运行的操作系统的特征。

在本发明实施例中,若要实现对移动终端运行的操作系统进行漏洞检测,首先需要获得移动终端运行的操作系统的特征,所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识。

步骤s102,根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

在本发明实施例中,根据移动终端运行的操作系统的特征,获得与移动终端运行的操作系统的特征相匹配的测试样本,具体为,首先需要获得移动终端运行的操作系统的源代码,通过分析所述源代码,获得移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系。分析入口函数、函数调用关系以及系统调用关系,获得针对移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域,进而生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。根据当前移动终端运行的操作系统的特征,从测试样本集合获得与当前移动终端运行的操作系统的特征相匹配的多个测试样本。

其中,所述的生成满足检测目标区域存在的业务逻辑漏洞的测试样本集合,具体为,获得针对目标区域存在的业务逻辑漏洞的测试需求,对测试需求中相应的测试路径进行扫描,获得测试场景信息,根据预先定义的测试样本的文件格式和测试场景信息,生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。需要说明的是,所述的测试样本的文件格式包括但不限于png、mp4、gif、xml等。所述针对移动终端运行的操作系统进行漏洞检测的测试样本,可以是指满足移动终端运行的操作系统漏洞检测需要的多个测试样本。

步骤s103,根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则。

所述根据移动终端运行的操作系统的特征,获得与移动终端运行的操作系统的特征相匹配的测试样本,具体为,根据移动终端运行的操作系统的特征,从测试样本集合获得满足针对移动终端运行的操作系统进行漏洞检测需要的多个测试样本。

步骤s104,根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果。

在本发明实施例中,所述根据测试样本和漏洞检测流程对移动终端运行的操作系统进行检测,获得针对移动终端运行的操作系统的测试结果,包括:根据预先获得相应的测试样本集合包含的多个测试样本中的至少一个测试样本和预设的漏洞检测流程对移动终端运行的操作系统进行检测,获得针对移动终端运行的操作系统的至少一个测试结果。

需要说明的是,所述漏洞检测流程包括测试样本库中的多个测试样本依次输入移动终端运行的操作系统中执行相应操作的先后顺序以及将测试样本输入至移动终端运行的操作系统中需要进一步执行的操作。

具体的,将预先生成的存储在测试样本库中的多个测试样本输入到移动终端运行的操作系统中,执行相应的操作,监测移动终端运行的操作系统在执行相应操作时的运行结果,收集移动终端运行的操作系统在执行相应操作时的测试日志,通过将测试样本输入到移动终端运行的操作系统中,并执行相应操作。监控移动终端运行的操作系统在执行相应操作时出现的异常情况,根据上述运行结果和测试日志,获得针对所述移动终端运行的操作系统的测试结果。

需要说明的是,移动终端运行的操作系统执行相应操作具体是指移动终端运行的操作系统根据预设的漏洞测试流程执行相应的操作。在实际测试过程中,通常需要根据测试样本库中包含的多个测试样本,自动化重复以上测试步骤,从而保证了漏洞测试的覆盖率。当然,通过测试日志记录的信息,也可以监控移动终端运行的操作系统在执行操作时出现的异常运行情况,根据该异常运行情况可以获得针对移动终端运行的操作系统的测试结果包含的可能存在漏洞的信息。

另外,为了避免盲目进行全路径覆盖测试,提高模糊测试效率。本发明还提供一种实施方式,由于绝大部分可利用的安全漏洞都是因为移动终端运行的操作系统未对输入数据进行校验或未对不合法的输入数据做相应的出错处理导致的。

因此,在本发明实施例中,根据测试样本和漏洞检测流程对移动终端运行的操作系统进行检测之前,首先需要确定测试数据。将测试数据输入到移动终端运行的操作系统中,根据移动终端运行的操作系统日志记录信息,获取模糊测试中发生的所有异常状态。通过异常分析,确定漏洞可能发生的位置,找出移动终端运行的操作系统中最有可能产生漏洞的程序位置。然后,根据移动终端运行的操作系统中漏洞可能发生的位置或最有可能产生漏洞的程序点,生成足够多的测试样本和相应漏洞检测流程。根据该测试样本和漏洞检测流程对移动终端运行的操作系统更有针对性的进行检测,获得更有针对性的测试结果,从而避免盲目进行全路径覆盖测试,提高模糊测试效率。

步骤s105,根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

在本发明实施例中,首先需要获得移动终端运行的操作系统的源代码。分析源代码,获得该移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系。分析入口函数、函数调用关系以及系统调用关系,可以得到针对该移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域。进而生成满足检测该目标区域存在的业务逻辑漏洞的测试样本集合,并将所述测试样本集合预先存储至测试样本库中以备调用。

将所述测试样本集合中的多个测试样本按照定义的漏洞检测流程中的顺序依次输入至移动终端运行的操作系统中,并执行相应的操作,基于不同的测试样本会获得不同的测试结果。将测试结果与预先定义的漏洞判断规则进行对比,若符合预先定义的判断规则,则确定该移动终端运行的操作系统存在漏洞。

若根据输入移动终端运行的操作系统中的第一个测试样本判断移动终端运行的操作系统不存在漏洞,则根据预先定义的漏洞检测流程对测试样本库中的剩余测试样本继续进行漏洞检测操作,获得记录剩余测试样本相关测试结果的测试日志信息。将测试日志信息中记录的剩余测试样本的测试结果与预定的漏洞判断规则再进行对比分析,判断所述测试样本库中的剩余测试样检测在移动终端运行的操作系统是否存在漏洞,直至便利生成的满足检测该目标区域存在的业务逻辑漏洞的测试样本集合中包含的所有测试样本。

采用本申请提供的漏洞检测方法,可以根据移动终端运行的操作系统的特征,匹配更有针对性的检测样本,并定义与之相匹配的漏洞检测流程和漏洞判断规则,获得准确的测试结果,从而能够高效、快速的识别程序漏洞,减少繁琐的操作过程,便于测试人员进行漏洞修复。

在本发明实施例中,所述的移动终端运行的操作系统可以是指多个移动终端分别运行的不同操作系统。根据多个移动终端分别运行的不同操作系统对应的各自的特征,分别获得对应不同操作系统的特征相匹配的测试样本。根据不同移动终端运行的不同操作系统的特征,分别定义相应的漏洞检测流程和漏洞判断规则。根据定义的测试样本和漏洞检测流程对移动终端运行的操作系统进行检测,分别获得针对不同移动终端运行的不同操作系统的测试结果。将获得的所述测试结果分别与漏洞判断规则进行对比分析,判断不同移动终端运行的不同操作系统是否存在漏洞。其中,所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识。

进一步的,在本发明实施例中,还可以获得在移动终端运行的操作系统中检测完成的测试样本的信息,分析检测完成的测试样本的信息,获得检测完成的测试样本,将所述检测完成的所测试样本从存储测试样本集合的测试样本库中移除。

与上述提供的一种漏洞检测方法相对应,本发明还提供一种漏洞检测装置。由于本装置实施例相似于上述方法实施例,所以描述的比较简单,相关之处请参见上述方法实施例部分说明即可,下面描述漏洞检测装置实施例仅是示意性的。请参考图2和4所示,其分别为本发明实施例提供的一种漏洞检测装置的示意图和结构图。

本发明实施例所述的漏洞检测装置包括如下部分:

设备控制器单元201,用于获得移动终端运行的操作系统的特征。

生成器单元202,用于根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

可选的,所述的漏洞检测装置还包括:第一获得单元,用于获得所述移动终端运行的操作系统的源代码;第二获得单元,用于根据所述源代码,获得所述移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系;分析单元,用于分析所述入口函数、所述函数调用关系以及所述系统调用关系,获得针对所述移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域;测试样本集合生成单元,用于生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合;所述生成器单元具体用于,根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

可选的,所述测试样本集合生成单元具体用于:获得针对所述目标区域存在的业务逻辑漏洞的测试需求;对所述测试需求中相应的测试路径进行扫描,获得测试场景信息;根据预先定义的测试样本的文件格式和所述测试场景信息,生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。

可选的,所述生成器单元具体用于,根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得满足针对移动终端运行的操作系统进行漏洞检测需要的多个测试样本;所述主模糊器单元具体用于,根据所述多个测试样本中的至少一个测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的至少一个测试结果。

自定义单元203,用于根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则。

主模糊器单元204,用于根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果。

可选的,所述装置还包括第二主模糊器单元所述第二主模糊器单元,用于若判断所述移动终端运行的操作系统不存在漏洞,则根据所述漏洞检测流程对所述多个测试样本中的剩余测试样本进行检测,获得针对所述移动终端运行的操作系统运行所述剩余测试样本的测试结果;所述本地控制器单元还用于,根据针对所述剩余测试样本的测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

本地控制器单元205,用于根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

可选的,所述设备控制器单元具体用于,获得多个移动终端运行的操作系统的特征;所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识;所述生成器单元具体用于:根据所述移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;根据所述当前待测试的移动终端运行的操作系统的系统标识,获得满足所述当前待测试的移动终端运行的操作系统漏洞检测需要的测试样本。

可选的,所述自定义单元具体用于:根据所述多个移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;分析所述当前待测试的移动终端运行的操作系统的测试需求,定义针对至所述测试需求的漏洞检测流程和漏洞判断规则。

可选的,所述的漏洞检测装置还包括:第三获得单元,用于获得检测完成的所述测试样本的信息;第四获得单元,用于根据所述检测完成的所述测试样本的信息,获得检测完成的所述测试样本;移除单元,用于将所述检测完成的所述测试样本从所述测试样本集合中移除。

请参考图5所示,其为本发明实施例提供的一种漏洞检测装置的完整运行流程图。主模糊器单元204可以控制模块设备控制器单元201、生成器单元202、本地控制器单元205、日志记录器单元206的调度。其中,本地控制器单元205可以控制关于自定义测试流程和生成poc的电脑端操作。设备控制器单元201可以控制设备端操作,维持与设备端的稳定连接。生成器单元202可以生成大量不同的测试用例。日志记录器单元206可以收集移动终端运行的操作系统运行测试样本是产生的测试日志。

具体地,安全测试人员可以通过自定义单元203预定义测试样本的文件格式,即png、mp4、gif、xml等文件格式;也可以通过自定义单元203预定义移动终端运行的操作系统的漏洞测试流程和漏洞判断规则,用于判断是否存在漏洞。同时,主模糊器单元204可以调用日志记录器单元206开始生成测试日志;并调用生成器单元202读取预先定义的测试样本格式,解析预先定义的测试样本格式内容,由生成器单元202调用sulley生成子单元(sulleygenerator)和peach生成子单元(peachgenerator)生成互补的、杂交的大量测试样本,并将测试样本保存到测试样本库中。

然后,生成器单元202发送通知给主模糊器单元204,告知测试样本生成完成;主模糊器单元204将测试样本库的具体样本信息告知本地控制器单元205;本地控制器单元205调用设备控制器单元201启动模糊测试;日志记录器单元206开始生成收集设备总体日志。

以常见的android和ios等操作系统为例,本地控制器单元205将测试样本库中的测试样本按顺序依次发送给设备控制器单元201,每次发送一个,设备控制器单元201将测试用例上传到android和ios等操作系统。日志记录器单元206开始收集单个测试样本测试日志;本地控制器单元205通过设备控制器单元201发送漏洞测试流程到android和ios等操作系统;告知android和ios操作系统根据漏洞测试流程进行相应操作,并从样本测试库中移除这个测试完成的测试样本;android和ios操作系统根据漏洞测试流程运行测试样本。

日志记录器单元206结束收集单个测试样本测试日志,并将单个测试样本测试日志交给本地控制器单元205。本地控制器单元205将单个测试样本的测试日志与预先生成的漏洞判断规则进行比对,如果存不存在漏洞,继续测试样本库中的测试剩余测试样本;如果存在漏洞,则将该单个测试样本的测试日志和测试样本存入存储可疑测试样本的数据库中,并继续测试样本库中的测试剩余测试样本。

本地控制器单元205判断测试样本库中是否还有剩余测试样本,如有,跳转继续测试样本库中的测试剩余测试样本;如没有,则由日志记录器单元206结束收集记录单个测试样本的测试信息的日志信息和记录全部测试样本的测试信息的日志信息,并将内容保存到指定目录。当测试样本库中没有剩余的测试样本时,结束漏洞检测。

需要说明的是,本发明能够适用于android、ios等多种移动操作系统。在保证测试样本变种率足够高的情况下,对这些测试样本进行一一测试;在测试过程中,需要观察移动终端运行的操作系统android系统的测试结果,收集移动终端运行的操作系统android系统的测试日志信息。根据收集到的记录进程中断、程序退出、crash等测试日志,来判断移动终端运行的操作系统android系统是否存在漏洞。其次,需要对以上步骤进行大量的重复,例如同一个移动终端运行的操作系统android系统,可能需要使用不同类型的测试用例多次重复以上步骤。

当本发明所述的装置与承载有ios系统的设备端连接需要达到以下要求:发起连接时,客户端能确认服务端身份,确保不被中间人攻击;建立通信链接过程中,用户密码不被泄漏;数据传输过程中,数据不被窃取。根据以上需求,在本发明实施例实现过程中采用了ssh(secureshell是一种通用的、功能强大的、基于软件的网络安全解决方案)来实现认证登陆和信道的建立,ssh是一种网络协议,用于计算机之间的加密登录,ssh有两种认证方式。

请参考图6和图7所示,其分别为本发明实施例提供的一种漏洞检测装置中ssh基于口令的安全认证过程的流程图和基于密钥的安全认证过程的流程图。

其中,ssh认证过程,以基于密钥的安全认证为例:远程主机将自身的公钥指纹的md5(md5message-digestalgorithm),一种被广泛使用的密码散列函数,可以产生出一个128位的散列值(hashvalue),用于确保信息传输完整一致)值公告出来;客户端登陆到远程主机时,会提示当前正在连接的远程主机公钥指纹,供客户端对比;客户端对比远程主机公钥指纹,若符合,则进行连接;若不符合,则终止操作,避免中间人攻击。以基于口令的安全认证为例:户端向服务端发起登陆请求服务端收到用户的登录请求,把自身公钥发给客户端;客户端使用这个公钥,将登录密码加密后,发送给服务端;服务端用自身私钥解密登录密码,如果密码正确,则同意用户登录;登陆完成后,双方使用非对称加密算法加密通信信息,协商一个对称密钥,用于后续通信加密,这个过程不仅保证了密码不被泄漏,且能保证后续通信数据不被窃取。

与上述提供的一种漏洞检测方法相对应的,本发明实施例还提供一种漏洞检测的电子设备,请参见图3,其为本发明实施例提供的一种漏洞检测的电子设备示意图。

本发明实施例所述的漏洞检测的电子设备包括如下部分:

处理器301;以及

存储器302,用于存储漏洞检测方法的程序,该设备通电并通过所述处理器运行该漏洞检测方法的程序后,执行下述步骤:

获得移动终端运行的操作系统的特征;

根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;

根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;

根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;

根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

需要说明的是,对于本发明实施例提供的一种漏洞检测的电子设备的详细描述,可以参考对本发明实施例提供的一种漏洞检测方法的相关描述,这里不再赘述。

与上述提供的一种漏洞检测方法相对应的,本发明实施例还提供一种漏洞检测的存储设备。本发明实施例所述的漏洞检测的存储设备包括如下部分:存储有漏洞检测方法的程序,该程序被处理器运行,执行下述步骤:

获得移动终端运行的操作系统的特征;

根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;

根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;

根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;

根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

需要说明的是,对于本发明实施例提供的一种漏洞检测的存储设备的详细描述,可以参考对本发明实施例提供的一种漏洞检测方法的相关描述,这里不再赘述。

与上述的漏洞检测装置相对应,本发明还提供一种漏洞检测系统。由于本系统实施例相似于上述漏洞检测装置和漏洞检测方法的实施例,相关之处请参见上述装置实施例和方法实施例部分的说明即可,这里不再赘述。

本发明虽然以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以做出可能的变动和修改,因此本发明的保护范围应当以本发明权利要求所界定的范围为准。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。

计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

本领域技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。


技术特征:

1.一种漏洞检测方法,其特征在于,包括:

获得移动终端运行的操作系统的特征;

根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;

根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;

根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;

根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

2.根据权利要求1所述的漏洞检测方法,其特征在于,还包括:

获得所述移动终端运行的操作系统的源代码;

根据所述源代码,获得所述移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系;

分析所述入口函数、所述函数调用关系以及所述系统调用关系,获得针对所述移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域;生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合;

所述根据所述移动终端运行的操作系统生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,具体包括:

根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

3.根据权利要求2所述的漏洞检测方法,其特征在于,所述生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合,具体包括:

获得针对所述目标区域存在的业务逻辑漏洞的测试需求;

对所述测试需求中相应的测试路径进行扫描,获得测试场景信息;

根据预先定义的测试样本的文件格式和所述测试场景信息,生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。

4.根据权利要求2所述的漏洞检测方法,其特征在于,所述根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,包括:

根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得满足针对移动终端运行的操作系统进行漏洞检测需要的多个测试样本;

所述根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果,包括:根据所述多个测试样本中的至少一个测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的至少一个测试结果。

5.根据权利要求4所述的漏洞检测方法,其特征在于,所述方法还包括:

若判断所述移动终端运行的操作系统不存在漏洞,则根据所述漏洞检测流程对所述多个测试样本中的剩余测试样本进行检测,获得针对所述移动终端运行的操作系统运行所述剩余测试样本的测试结果;

根据针对所述剩余测试样本的测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

6.根据权利要求1所述的漏洞检测方法,其特征在于,所述获得移动终端运行的操作系统的特征,包括:获得多个移动终端运行的操作系统的特征;

所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识;所述根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,包括:根据所述移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;

根据所述当前待测试的移动终端运行的操作系统的系统标识,获得满足所述当前待测试的移动终端运行的操作系统漏洞检测需要的测试样本。

7.根据权利要求6所述的漏洞检测方法,其特征在于,所述根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则,包括:

根据所述多个移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;

分析所述当前待测试的移动终端运行的操作系统的测试需求,定义针对至所述测试需求的漏洞检测流程和漏洞判断规则。

8.根据权利要求1所述的漏洞检测方法,其特征在于,还包括:

获得检测完成的所述测试样本的信息;

根据所述检测完成的所述测试样本的信息,获得检测完成的所述测试样本;

将所述检测完成的所述测试样本从所述测试样本集合中移除。

9.一种漏洞检测装置,其特征在于,包括:

设备控制器单元,用于获得移动终端运行的操作系统的特征;

生成器单元,用于根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;

自定义单元,用于根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;

主模糊器单元,用于根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;

本地控制器单元,用于根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

10.根据权利要求9所述的漏洞检测装置,其特征在于,还包括:

第一获得单元,用于获得所述移动终端运行的操作系统的源代码;

第二获得单元,用于根据所述源代码,获得所述移动终端运行的操作系统的入口函数、函数调用关系以及系统调用关系;

分析单元,用于分析所述入口函数、所述函数调用关系以及所述系统调用关系,获得针对所述移动终端运行的操作系统所有常见的存在业务逻辑漏洞的目标区域;测试样本集合生成单元,用于生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合;

所述生成器单元具体用于,根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得与所述移动终端运行的操作系统的特征相匹配的测试样本。

11.根据权利要求10所述的漏洞检测装置,其特征在于,所述测试样本集合生成单元具体用于:

获得针对所述目标区域存在的业务逻辑漏洞的测试需求;

对所述测试需求中相应的测试路径进行扫描,获得测试场景信息;

根据预先定义的测试样本的文件格式和所述测试场景信息,生成满足检测所述目标区域存在的业务逻辑漏洞的测试样本集合。

12.根据权利要求10所述的漏洞检测装置,其特征在于,所述生成器单元具体用于,根据所述移动终端运行的操作系统的特征,从所述测试样本集合获得满足针对移动终端运行的操作系统进行漏洞检测需要的多个测试样本;

所述主模糊器单元具体用于,根据所述多个测试样本中的至少一个测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的至少一个测试结果。

13.根据权利要求12所述的漏洞检测装置,其特征在于,所述装置还包括第二主模糊器单元:

所述第二主模糊器单元,用于若判断所述移动终端运行的操作系统不存在漏洞,则根据所述漏洞检测流程对所述多个测试样本中的剩余测试样本进行检测,获得针对所述移动终端运行的操作系统运行所述剩余测试样本的测试结果;

所述本地控制器单元还用于,根据针对所述剩余测试样本的测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

14.根据权利要求9所述的漏洞检测装置,其特征在于,所述设备控制器单元具体用于,获得多个移动终端运行的操作系统的特征;所述移动终端运行的操作系统的特征为用于区别移动终端运行的不同操作系统的系统标识;所述生成器单元具体用于:根据所述移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;

根据所述当前待测试的移动终端运行的操作系统的系统标识,获得满足所述当前待测试的移动终端运行的操作系统漏洞检测需要的测试样本。

15.根据权利要求14所述的漏洞检测装置,其特征在于,所述自定义单元具体用于:

根据所述多个移动终端运行的操作系统的特征,确定当前待测试的移动终端运行的操作系统;

分析所述当前待测试的移动终端运行的操作系统的测试需求,定义针对至所述测试需求的漏洞检测流程和漏洞判断规则。

16.根据权利要求9所述的漏洞检测装置,其特征在于,还包括:

第三获得单元,用于获得检测完成的所述测试样本的信息;

第四获得单元,用于根据所述检测完成的所述测试样本的信息,获得检测完成的所述测试样本;

移除单元,用于将所述检测完成的所述测试样本从所述测试样本集合中移除。

17.一种漏洞检测系统,其特征在于,包括:上述权利要求9-16所述的漏洞检测装置中的至少一种装置。

18.一种电子设备,其特征在于,包括:

处理器;以及

存储器,用于存储漏洞检测方法的程序,该设备通电并通过所述处理器运行该漏洞检测方法的程序后,执行下述步骤:

获得移动终端运行的操作系统的特征;

根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;

根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;

根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;

根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

19.一种存储设备,其特征在于,存储有漏洞检测方法的程序,该程序被处理器运行,执行下述步骤:

获得移动终端运行的操作系统的特征;

根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本;

根据所述移动终端运行的操作系统的特征,定义与所述移动终端运行的操作系统的特征相匹配的漏洞检测流程和漏洞判断规则;

根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得针对所述移动终端运行的操作系统的测试结果;

根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。

技术总结
本申请公开一种漏洞检测方法,获得移动终端运行的操作系统的特征;根据所述移动终端运行的操作系统的特征,获得与所述移动终端运行的操作系统的特征相匹配的测试样本,并定义与之相匹配的漏洞检测流程和漏洞判断规则;根据所述测试样本和所述漏洞检测流程对所述移动终端运行的操作系统进行检测,获得测试结果;根据所述测试结果以及所述漏洞判断规则,判断所述移动终端运行的操作系统是否存在漏洞。采用本申请的漏洞检测方法,能够高效、快速识别移动终端运行的操作系统的漏洞,减少繁琐的操作过程,从而提升用户的使用体验。

技术研发人员:胡晓明
受保护的技术使用者:阿里巴巴集团控股有限公司
技术研发日:2018.11.30
技术公布日:2020.06.09

转载请注明原文地址: https://bbs.8miu.com/read-22030.html

最新回复(0)