本发明涉及检测技术,尤其涉及一种病毒检测方法、终端、服务器及系统。
背景技术:
随着智能终端的发展,人手一部智能终端已经非常普及,大部分的生活服务都可以通过智能终端上安装的应用或通过联网实现,给用户带来很多便利。可是,带来便利的同时,也存在安全隐患,联网的过程中容易受到病毒的入侵。在与病毒的对抗中,能及早发现病毒非常重要。通过对病毒早发现,早处置,可以减少用户的损失,保障用户的资金账户和隐私信息等等的信息安全。检测病毒的方法包括:特征码匹配法、行为监测法、软件模拟法等等,这些方法依据的原理不同,实现病毒检测所占用系统开销不同,检测范围也不同,各有所长。其中,特征码匹配法是比较常用的方法,然而,现有的特征码匹配法,并不能准确有效的检测出病毒的变种,从而影响到病毒检测的准确性,无法保障用户的资金账户和隐私信息等等的信息安全。对于该问题,尚无有效解决方案。
技术实现要素:
有鉴于此,本发明实施例希望提供一种病毒检测方法、终端及服务器,至少解决了现有技术存在的问题。
本发明实施例的技术方案是这样实现的:
本发明实施例的一种病毒检测方法,所述方法包括:
对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;
根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测;
接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
上述方案中,所述对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,包括:
获取所述待处理文件,从所述待处理文件中查询到指定文件;
从所述指定文件中解析出目标指令,从所述目标指令中提取字节分布符合所述指定规则的部分指令片段,根据所述部分指令片段生成目标序列,将所述目标序列确定为所述有效信息。
上述方案中,所述根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测,包括:
将所述目标序列作为病毒检测的待检测样本,将由所述待检测样本计算得到的第一模糊哈希值发送给服务器进行病毒比对的检测;
所述第一特征参数值包括所述第一模糊哈希值。
上述方案中,所述方法还包括:
根据收集的已知病毒特征信息及病毒变种的趋势信息生成所述预设策略,以得到对抗病毒变种入侵的有效信息。
本发明实施例的一种终端,所述终端包括:
第一预处理单元,用于对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;
第一特征参数运算单元,用于根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测;
病毒查杀单元,用于接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
上述方案中,所述预处理单元,进一步用于:
获取所述待处理文件,从所述待处理文件中查询到指定文件;
从所述指定文件中解析出目标指令,从所述目标指令中提取字节分布符合所述指定规则的部分指令片段,根据所述部分指令片段生成目标序列,将所述 目标序列确定为所述有效信息。
上述方案中,所述第一特征参数运算单元,进一步用于:
将所述目标序列作为病毒检测的待检测样本,将由所述待检测样本计算得到的第一模糊哈希值发送给服务器进行病毒比对的检测;
所述第一特征参数值包括所述第一模糊哈希值。
上述方案中,所述终端还包括:
策略生成单元,用于根据收集的已知病毒特征信息及病毒变种的趋势信息生成所述预设策略,以得到对抗病毒变种入侵的有效信息。
本发明实施例的一种病毒检测方法,所述方法包括:
对病毒库样本文件按照预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;
根据所述待比对信息计算得到第二特征参数值;
接收由待检测样本计算得到的第一特征参数值,对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;
所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒。
上述方案中,所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒,包括:
在所述第一特征参数值和所述第二特征参数值间的相似度满足所述阈值时,将待检测样本加入待决策结果列表中,直至与指定数量或所有病毒库样本文件比对结束后,如果从所述待决策结果列表中能选出与所述待检测样本相似度最高的病毒样本,则疑似病毒为病毒,并将其作为病毒比对的检测结果;如果从所述待决策结果列表中未能选出与所述待检测样本相似的病毒样本,则疑似病毒为非病毒,并将其作为病毒比对的检测结果;
所述方法还包括:将所述病毒比对的检测结果发送给终端。
本发明实施例的一种服务器,所述服务器包括:
第二预处理单元,用于对病毒库样本文件按照预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;
第二特征参数运算单元,用于根据所述待比对信息计算得到第二特征参数值;
判断单元,用于接收由待检测样本计算得到的第一特征参数值,对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;
病毒检测单元,用于所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒。
上述方案中,所述病毒检测单元,进一步用于:
在所述第一特征参数值和所述第二特征参数值间的相似度满足所述阈值时,将待检测样本加入待决策结果列表中,直至与指定数量或所有病毒库样本文件比对结束后,如果从所述待决策结果列表中能选出与所述待检测样本相似度最高的病毒样本,则疑似病毒为病毒,并将其作为病毒比对的检测结果;如果从所述待决策结果列表中未能选出与所述待检测样本相似的病毒样本,则疑似病毒为非病毒,并将其作为病毒比对的检测结果;
所述服务器还包括:
发送单元,用于将所述病毒比对的检测结果发送给终端。
本发明实施例的一种病毒检测方法,所述方法包括:
服务器对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;
服务器对病毒库样本文件按照所述预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;
服务器根据所述有效信息计算得到第一特征参数值,所述第一特征参数值作为待检测样本的特征值;
服务器根据所述待比对信息计算得到第二特征参数值,所述第二特征参数 值作为病毒样本的特征值;
服务器对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;
所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,服务器确定出所述疑似病毒为病毒或非病毒,并将其作为病毒比对的检测结果发送给终端;
终端接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
本发明实施例的一种病毒检测系统,所述系统包括:服务器和终端;其中,
所述服务器包括:
第一预处理单元,用于对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;
第二预处理单元,用于对病毒库样本文件按照所述预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;
第一特征参数值运算单元,用于根据所述有效信息计算得到第一特征参数值,所述第一特征参数值作为待检测样本的特征值;
第二特征参数值运算单元,用于根据所述待比对信息计算得到第二特征参数值,所述第二特征参数值作为病毒样本的特征值;
判断单元,用于对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;
病毒检测单元,用于所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒,并将其作为病毒比对的检测结果发送给终端;
所述终端包括:
病毒查杀单元,用于接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
本发明实施例的病毒检测方法包括:对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测;接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。采用本发明实施例,能准确有效的检测出病毒的变种,从而提高病毒检测的准确性,保障用户的资金账户和隐私信息等等的信息安全。
附图说明
图1为本发明实施例中进行信息交互的各方硬件实体的示意图;
图2-7为本发明实施例中病毒查杀应用的多个可选UI界面示意图;
图8为本发明实施例一的一个实现流程示意图;
图9为应用本发明实施例二的上报第一模糊哈希值的示意图;
图10为本发明实施例三的一个模块组成结构示意图;
图11为本发明实施例七的一个模块交互示意图;
图12为应用本发明实施例的一个硬件组成结构示意图;
图13为应用本发明实施例一应用场景的模块组成结构示意图;
图14为应用本发明实施例一应用场景的分片模糊哈希值计算示意图;
图15为应用本发明实施例一应用场景的病毒库生成流程示意图;
图16为应用本发明实施例一应用场景的待检测样本的病毒比对检测流程;
图17为应用本发明实施例一应用场景的客户端+云端方式实现病毒检测的示意图。
具体实施方式
下面结合附图对技术方案的实施作进一步的详细描述。
图1为本发明实施例中进行信息交互的各方硬件实体的示意图,图1中包括:服务器11、终端设备21-24,终端设备21-24通过有线网络或者无线网络 与服务器进行信息交互,终端设备包括手机、台式机、PC机、一体机等类型。其中,终端设备中安装有应用(如游戏应用,地图导航应用,高铁线路应用,病毒查杀应用等)采用本发明实施例,基于上述图1所示的系统,终端对获取的待处理文件(需进行病毒检测的文件)按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,有效信息具备稳定性,经预处理后得到的该信息是待处理文件中最稳定的信息,这种信息是病毒作者很难绕过去和容易重新混淆的部分,所以该信息作为对抗病毒变种入侵的有效信息使用,该信息为图1中终端上报给服务器的待检测样本,具体应用中,还可以对该待检测样本进行模糊哈希值计算,将计算结果(第一模糊哈希值)上报给服务器进行病毒检测比对,构成所述有效信息的字节分布符合指定规则(即具备上述稳定性要求,是待处理文件中最稳定的信息);服务器对病毒库样本文件按照所述预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则,具体的,服务器对已有的病毒库样本文件中的病毒样本文件进行预处理,也采用与终端侧相同的预设策略进行预处理,目的是为了从病毒库样本文件中截取出与终端上报待检测样本中相同特征的数据进行比对,这样会提高比对的精确度,具体应用中,还可以对该病毒样本文件进行模糊哈希值计算,将计算结果(第二模糊哈希值)与终端上报的计算结果(第一模糊哈希值)进行病毒检测比对,其中,第一模糊哈希值是终端根据所述有效信息(待检测样本)计算得到的第一特征参数值,第二模糊哈希值是服务器根据所述待比对信息(病毒样本)计算得到的第二特征参数值;服务器对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,服务器确定出所述疑似病毒为病毒或非病毒,并将其作为病毒比对的检测结果发送给终端;终端接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
图2-图7为应用本发明实施例的几个可选的UI界面示意图。如图2所示,在终端用户界面显示有多个已安装的应用,在终端用户界面找到病毒查杀应用 (如手机管家),点击病毒查杀应用(如手机管家)以开启病毒查杀应用(如手机管家),进入如图3或图4所示的病毒查杀应用(如手机管家)的应用界面,应用界面中包含病毒查杀的启动按钮,如图3中的“立即扫描”,或者,如图4中的“快速扫描”和“全盘扫描”,通过图4中的不同启动按钮可以触发不同查杀策略,举例来说,快速扫描是选取终端中的核心内容作为待检测样本,与10万病毒样本进行比对,而全盘扫描是将终端中的全部内容作为待检测样本,与全部病毒样本(如30万病毒样本)进行比对,图5-图6为终端上报待检测样本后,在云端进行病毒样本查杀过程的界面图,可以对终端中应用内嵌的广告插件,染毒文件或染毒网址等进行高效快捷的查杀,查杀结束后的界面如图7所示,这个实例是终端未被病毒入侵,病毒比对检测结果为安全。如果终端被病毒入侵,病毒比对检测结果中会包括需要用户处理的待清理的病毒文件或广告插件等,用户根据自身需求进行文件清理。
上述图1的例子只是实现本发明实施例的一个系统架构实例,本发明实施例并不限于上述图1所述的系统结构,上述图2-图7为可选的UI界面图,本发明实施例实际应用中并不限于这些UI界面图。在此,基于图1的系统架构,提出本发明各个实施例。
实施例一:
本发明实施例的一种病毒检测方法,如图8所示,所述方法包括:
步骤101、对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;
这里,本步骤的一个具体应用为:在终端侧实现预处理,以得到该有效信息。终端对获取的待处理文件(需进行病毒检测的文件)按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,有效信息具备稳定性,经预处理后得到的该信息是待处理文件中最稳定的信息,这种信息是病毒作者很难绕过去和容易重新混淆的部分,所以该信息作为对抗病毒变种入侵的有效信息使用。
本步骤的另一个具体应用为:在服务器侧实现预处理,包括得到有效信息的预处理操作,将有效信息作为待检测样本;还包括:得到比对信息的预处理 操作,将比对信息作为病毒样本,二者可以采用相同的预处理策略,以便能更精确的将待检测样本与病毒样本进行对应特征的精确特征匹配。
步骤102、根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测;
这里,该有效信息的一个实例为图1中终端上报给服务器的待检测样本,实际应用中,可以对该待检测样本进行模糊哈希值计算,将计算结果(第一模糊哈希值)上报给服务器进行病毒检测比对,构成所述有效信息的字节分布符合指定规则(即具备上述稳定性要求,是待处理文件中最稳定的信息)。第一模糊哈希值是终端根据所述有效信息(待检测样本)计算得到的第一特征参数值。
步骤103、接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
这里,检测的目的是为了病毒查杀,在终端病毒查杀应用界面对用户进行提示,病毒查杀应用界面几个可选的例子如图2-图7所示。根据不同查杀策略会生成不同的终端病毒查杀应用界面,如图3和图4的病毒查杀应用界面就有所不同。图4中包含不同的启动按钮“快速扫描”和“全盘扫描”,不同启动按钮可以触发不同查杀策略,举例来说,快速扫描是选取终端中的核心内容作为待检测样本,与10万病毒样本进行比对,而全盘扫描是将终端中的全部内容作为待检测样本,与全部病毒样本(如30万病毒样本)进行比对。
实施例二:
本发明实施例的一种病毒检测方法,所述方法包括:
步骤201、获取所述待处理文件,从所述待处理文件中查询到指定文件;
这里,以终端系统为安卓系统为例,获取APK文件作为待处理文件,APK文件为可执行文件,病毒通常入侵可执行文件,以触发病毒的运行,因此,首先要对APK文件进行重点监控和病毒检测。在APK文件查询Dex和SO文件,由于对APK文件通常进行Dex加壳、乱序保护、SO加壳、虚拟机指令保护等多重保护,有效的对存储数据进行加密保护、保护APK文件安全,是APK 文件安全加固的首选,因此,在本发明实施例中,对从所述待处理文件中查询指定文件时,选取的是Dex和SO文件。
步骤202、从所述指定文件中解析出目标指令,从所述目标指令中提取字节分布符合所述指定规则的部分指令片段,根据所述部分指令片段生成目标序列,将所述目标序列确定为所述有效信息;
这里,结合上述步骤201,考虑到需要得到具备稳定性的特征代码进行特征代码匹配的病毒检测出来,因此,从所述待处理文件中选取出Dex和SO文件后,从Dex和SO文件的函数指令中提取其中opcode代码部分(指令中最具稳定性特征的代码部分),opcode代码部分的字节分布符合所述指定规则(指令中最具稳定性特征),根据所述opcode部分生成的目标序列。
通过上述步骤201-202对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息为:根据所述opcode部分生成的目标序列。
这里,本步骤的一个具体应用为:在终端侧实现预处理,以得到该有效信息。终端对获取的待处理文件(需进行病毒检测的文件)按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息(根据所述opcode部分生成的目标序列),有效信息(根据所述opcode部分生成的目标序列)具备稳定性,经预处理后得到的该信息是待处理文件中最稳定的信息,这种信息是病毒作者很难绕过去和容易重新混淆的部分,所以该信息作为对抗病毒变种入侵的有效信息使用。
本步骤的另一个具体应用为:在服务器侧实现预处理,包括得到有效信息(根据所述opcode部分生成的目标序列)的预处理操作,将有效信息(根据所述opcode部分生成的目标序列)作为待检测样本;还包括:得到比对信息的预处理操作,将比对信息作为病毒样本,二者可以采用相同的预处理策略,以便能更精确的将待检测样本与病毒样本进行对应特征的精确特征匹配。
步骤203、根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测;
这里,一个具体应用为:将所述目标序列作为病毒检测的待检测样本,将 由所述待检测样本计算得到的第一模糊哈希值发送给服务器进行病毒比对的检测;所述第一特征参数值包括所述第一模糊哈希值。
这里,该有效信息(根据所述opcode部分生成的目标序列)的一个实例为图1中终端上报给服务器的待检测样本,实际应用中,可以对该待检测样本进行模糊哈希值计算,将计算结果(第一模糊哈希值)上报给服务器进行病毒检测比对,构成所述有效信息(根据所述opcode部分生成的目标序列)的字节分布符合指定规则(即具备上述稳定性要求,是待处理文件中最稳定的信息)。第一模糊哈希值是终端根据所述有效信息(根据所述opcode部分生成的目标序列)计算得到的第一特征参数值,终端将第一模糊哈希值上报给服务器进行病毒检测比对,如图9所示。图9中,包括:服务器31和终端32,终端32作为服务器收集待检测样本的来源,上报的样本来源包括活跃病毒,疑似病毒和非病毒类型,本发明实施例只是一个实例,除此类型外,还可以包括已知病毒变种和新病毒类型等等。终端32将其待检测样本进行分段求哈希值得到第一模糊哈希值后,上报第一模糊哈希值给服务器31,在服务器31侧进行病毒检测的比对,最终,服务器31将病毒检测比对结果反馈给终端进行呈现。
步骤204、接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
这里,检测的目的是为了病毒查杀,在终端病毒查杀应用界面对用户进行提示,病毒查杀应用界面几个可选的例子如图2-图7所示。根据不同查杀策略会生成不同的终端病毒查杀应用界面,如图3和图4的病毒查杀应用界面就有所不同。图4中包含不同的启动按钮“快速扫描”和“全盘扫描”,不同启动按钮可以触发不同查杀策略,举例来说,快速扫描是选取终端中的核心内容作为待检测样本,与10万病毒样本进行比对,而全盘扫描是将终端中的全部内容作为待检测样本,与全部病毒样本(如30万病毒样本)进行比对。
在本发明实施例一实施方式中,所述方法还包括:根据收集的已知病毒特征信息及病毒变种的趋势信息生成所述预设策略,以得到对抗病毒变种入侵的有效信息。根据病毒及其变种利用序列进行入侵的特征,来选择利用该opcode 序列稳定性来对抗这个入侵干扰。
实施例三:
本发明实施例的一种终端,如图10所示,所述终端包括:第一预处理单元41,用于对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;第一特征参数运算单元42,用于根据所述有效信息计算得到第一特征参数值,将所述第一特征参数值发送给服务器进行病毒比对的检测;病毒查杀单元43,用于接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
这里,第一预处理单元41的一个具体处理过程为:第一预处理单元41可以为终端侧,则在终端侧实现预处理,以得到该有效信息。终端对获取的待处理文件(需进行病毒检测的文件)按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,有效信息具备稳定性,经预处理后得到的该信息是待处理文件中最稳定的信息,这种信息是病毒作者很难绕过去和容易重新混淆的部分,所以该信息作为对抗病毒变种入侵的有效信息使用。
第一预处理单元41的另一个具体处理过程为:第一预处理单元41可以为服务器侧,则在服务器侧实现预处理,包括得到有效信息的预处理操作,将有效信息作为待检测样本;还包括:得到比对信息的预处理操作,将比对信息作为病毒样本,二者可以采用相同的预处理策略,以便能更精确的将待检测样本与病毒样本进行对应特征的精确特征匹配。
这里,该有效信息的一个实例为图1中终端上报给服务器的待检测样本,实际应用中,可以对该待检测样本进行模糊哈希值计算,则第一特征参数运算单元42用于将计算结果(第一模糊哈希值)上报给服务器进行病毒检测比对,构成所述有效信息的字节分布符合指定规则(即具备上述稳定性要求,是待处理文件中最稳定的信息)。第一模糊哈希值是终端根据所述有效信息(待检测样本)计算得到的第一特征参数值。
这里,病毒查杀单元43的一个具体处理过程为:由于检测的目的是为了病毒查杀,因此,病毒查杀单元43用于接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描,将扫描结果在终端病毒查杀应用界面对用户进行提示,病毒查杀应用界面几个可选的例子如图2-图7所示。根据不同查杀策略会生成不同的终端病毒查杀应用界面,如图3和图4的病毒查杀应用界面就有所不同。图4中包含不同的启动按钮“快速扫描”和“全盘扫描”,不同启动按钮可以触发不同查杀策略,举例来说,快速扫描是选取终端中的核心内容作为待检测样本,与10万病毒样本进行比对,而全盘扫描是将终端中的全部内容作为待检测样本,与全部病毒样本(如30万病毒样本)进行比对。
本发明实施例一实施方式中,所述预处理单元,进一步用于:获取所述待处理文件,从所述待处理文件中查询到指定文件;从所述指定文件中解析出目标指令,从所述目标指令中提取字节分布符合所述指定规则的部分指令片段,根据所述部分指令片段生成目标序列,将所述目标序列确定为所述有效信息。
本发明实施例一实施方式中,所述第一特征参数运算单元,进一步用于:将所述目标序列作为病毒检测的待检测样本,将由所述待检测样本计算得到的第一模糊哈希值发送给服务器进行病毒比对的检测;所述第一特征参数值包括所述第一模糊哈希值。
本发明实施例一实施方式中,所述终端还包括:策略生成单元,用于根据收集的已知病毒特征信息及病毒变种的趋势信息生成所述预设策略,以得到对抗病毒变种入侵的有效信息。
实施例四:
本发明实施例的一种病毒检测方法,所述方法包括:
步骤301、对病毒库样本文件按照预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;
这里,以终端系统为安卓系统为例,病毒库样本文件为APK文件为例, APK文件为可执行文件,病毒通常入侵可执行文件,以触发病毒的运行,因此,首先要对APK文件进行重点监控和病毒检测。在APK文件查询Dex和SO文件,由于对APK文件通常进行Dex加壳、乱序保护、SO加壳、虚拟机指令保护等多重保护,有效的对存储数据进行加密保护、保护APK文件安全,是APK文件安全加固的首选,因此,在本发明实施例中,从APK文件中选取Dex和SO文件,以生成比对信息。具体的,从所述待处理文件中选取出Dex和SO文件后,从Dex和SO文件的函数指令中提取其中opcode代码部分,opcode代码部分的字节分布符合所述指定规则,将由所述opcode部分生成的目标序列作为比对信息。
步骤302、根据所述待比对信息计算得到第二特征参数值;
这里,一个具体应用为:将所述目标序列作为比对信息,将由比对信息计算得到的第二模糊哈希值与终端上报的第一模糊哈希值进行病毒比对的检测;所述第二特征参数值包括所述第二模糊哈希值。
步骤303、接收由待检测样本计算得到的第一特征参数值,对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;
这里,由比对信息计算得到的第二模糊哈希值与终端上报的第一模糊哈希值进行病毒比对的检测,可以是计算二者的相似度,得到相似度判断结果。
步骤304、所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒。
这里,在所述第一模糊哈希值和所述第二模糊哈希值间的相似度满足所述阈值时,将待检测样本加入待决策结果列表中,直至与指定数量或所有病毒库样本文件比对结束后,如果从所述待决策结果列表中能选出与所述待检测样本相似度最高的病毒样本,则疑似病毒为病毒,并将其作为病毒比对的检测结果;如果从所述待决策结果列表中未能选出与所述待检测样本相似的病毒样本,则疑似病毒为非病毒,并将其作为病毒比对的检测结果,之后,将所述病毒比对的检测结果发送给终端。
实施例五:
本发明实施例的一种服务器,所述服务器包括:第二预处理单元,用于对病毒库样本文件按照预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;及第二特征参数运算单元,用于根据所述待比对信息计算得到第二特征参数值;及判断单元,用于接收由待检测样本计算得到的第一特征参数值,对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;及病毒检测单元,用于所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒。
在本发明实施例一实施方式中,所述病毒检测单元,进一步用于:在所述第一特征参数值和所述第二特征参数值间的相似度满足所述阈值时,将待检测样本加入待决策结果列表中,直至与指定数量或所有病毒库样本文件比对结束后,如果从所述待决策结果列表中能选出与所述待检测样本相似度最高的病毒样本,则疑似病毒为病毒,并将其作为病毒比对的检测结果;如果从所述待决策结果列表中未能选出与所述待检测样本相似的病毒样本,则疑似病毒为非病毒,并将其作为病毒比对的检测结果;所述服务器还包括:发送单元,用于将所述病毒比对的检测结果发送给终端。
实施例六:
本实施例区别于上述实施例,上述实施例中,可以通过终端上报经预处理后得到的待检测样本,对待检测样本进行哈希值计算后提供给服务器进行与病毒样本哈希值的比对,以实现病毒检测的比对。本发明实施例,预处理及哈希值计算等都是在服务器执行的,终端只作为提供样本的来源。由于所有处理过程都是在服务器执行的,可以避免占用终端的开销。
本发明实施例的一种病毒检测方法,包括:
步骤401、服务器对获取的待处理文件按照预设策略进行预处理,得到对 抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;
步骤402、服务器对病毒库样本文件按照所述预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;
步骤403、服务器根据所述有效信息计算得到第一特征参数值,所述第一特征参数值作为待检测样本的特征值;
步骤404、服务器根据所述待比对信息计算得到第二特征参数值,所述第二特征参数值作为病毒样本的特征值;
步骤405、服务器对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结果;
步骤406、所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,服务器确定出所述疑似病毒为病毒或非病毒,并将其作为病毒比对的检测结果发送给终端;
步骤407、终端接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
实施例七:
本发明实施例的一种病毒检测系统,如11所示,所述系统包括:服务器和终端;其中,所述服务器包括:第一预处理单元51,用于对获取的待处理文件按照预设策略进行预处理,得到对抗病毒变种入侵的有效信息,构成所述有效信息的字节分布符合指定规则;第二预处理单元52,用于对病毒库样本文件按照所述预设策略进行预处理,得到病毒库样本文件中的待比对信息,构成所述待比对信息的字节分布符合指定规则;第一特征参数值运算单元53,用于根据所述有效信息计算得到第一特征参数值,所述第一特征参数值作为待检测样本的特征值;第二特征参数值运算单元54,用于根据所述待比对信息计算得到第二特征参数值,所述第二特征参数值作为病毒样本的特征值;判断单元55,用于对所述第一特征参数值和所述第二特征参数值进行相似度判断,得到判断结 果;及病毒检测单元56,用于所述判断结果满足阈值时,将待检测样本作为疑似病毒,直至与指定数量或所有病毒库样本文件比对结束后,确定出所述疑似病毒为病毒或非病毒,并将其作为病毒比对的检测结果发送给终端。所述终端包括:样本上报单元61,用于上报待检测样本,待检测样本的类型如图9所示,可以包括活跃病毒,疑似病毒和非病毒;及病毒查杀单元62,用于接收病毒比对的检测结果,根据所述病毒比对的检测结果对本地文件进行病毒查杀的全部扫描或部分扫描。
这里需要指出的是,上述终端可以为PC这种电子设备,还可以为如PAD,平板电脑,手提电脑这种便携电子设备、还可以为如手机这种智能移动终端,不限于这里的描述;所述服务器可以是通过集群系统构成的,为实现各单元功能而合并为一或各单元功能分体设置的电子设备,终端和服务器都至少包括用于存储数据的数据库和用于数据处理的处理器,或者包括设置于服务器内的存储介质或独立设置的存储介质。
其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital Singnal Processor)或可编程逻辑阵列(FPGA,Field-Programmable Gate Array)实现;对于存储介质来说,包含操作指令,该操作指令可以为计算机可执行代码,通过所述操作指令来实现上述本发明实施例信息处理方法流程中的各个步骤。
该终端和该服务器作为硬件实体S11的一个示例如图12所示。所述装置包括处理器71、存储介质72以及至少一个外部通信接口73;所述处理器71、存储介质72以及外部通信接口73均通过总线74连接。
这里需要指出的是:以上涉及终端和服务器项的描述,与上述方法描述是类似的,同方法的有益效果描述,不做赘述。对于本发明终端和服务器实施例中未披露的技术细节,请参照本发明方法实施例的描述。
以一个现实应用场景为例对本发明实施例阐述如下:
本应用场景中,对Android病毒的检测技术方案主要依靠特征码匹配进行 检测,常用的特征有:APK文件的HASH、签名、Package名字、classes.dex中的类名和函数名。这些现有的病毒检测方案都存在各种的问题,比如,1)基于APK文件的哈希、签名、Package名字、类名等特征是基于简单的规则或者数字签名进行识别,很容易被病毒制作者绕开,造成漏过恶意程序的问题。2)基于APK文件的哈希进行识别的方式,采用的哈希算法一般是MD5、SHA1等,这些算法对输入值很敏感,APK文件即使只有一个字节的变化,计算出来的哈希值就会不同,因此,病毒作者很容易通过重新混淆,或者,在APK文件中添加新的资源文件乃至修改代码等方式,使通过哈希算法提取的KEY发生改变,进而导致无法识别;3)基于签名的识别方式可以通过更换签名的方式绕过;4)基于Package名字来识别的方式也可通过修改包名的方式来绕过;通过扫描类名来进行识别的方式,一方面因为仅仅检查类名从而容易误报,另一方面也很容易被病毒制造者通过混淆或者直接修改类名而绕过。而且更改混淆方式,修改APK文件(添加删除资源,代码等)或者更换签名对病毒制造者而言都很容易,所以病毒作者很轻易地就可以制造新的病毒变种从而绕过安全软件的识别。有鉴于此,针对这些问题,需要一种更精准的病毒检测技术,以便更能行之有效的对病毒进行查杀,用以准确、有效地检测Android病毒变种,从而提高APK的安全性。
本应用场景采用本发明实施例,可以是一种基于opcode相似度的Android病毒检测技术,通过解析APK文件中的dex文件和so文件,获取其中函数的指令,跳过指令中容易变化的部分,提取比较稳定的opcode部分组成序列,然后依据这些函数的opcode序列来计算模糊哈希值。进行样本检测时,将待检测样本的模糊哈希值与病毒样本库中的模糊哈希值进行比较,得到的相似度若满足阈值,则加入待决策结果列表中,比较完所有病毒样本后,从待决策结果列表中选出与待检测样本相似度最高的病毒作为检测结果。如果待决策列表为空,说明没有找到与待检测样本相似的病毒样本,此时检测结果为非病毒。采用本发明实施例,能够有效识别那些通过混淆或者重编译等方法企图绕过安全软件的病毒变种,并且能有效减小病毒检测过程中的资源消耗。
一个采用手机安装的病毒查杀应用实现本发明实施例的多个可选UI示意图如图2-图7所示,首先,开启病毒查杀应用的云查杀功能,病毒查杀应用对手机上的待检测样本生成待检测样本对应的模糊哈希值,将待检测样本对应的模糊哈希值发到云端(服务器侧),云端(服务器侧)使用预置的病毒库来计算相似度(具体是将待检测样本的模糊哈希值与病毒样本库中的模糊哈希值,进行相似度判断),从而判别该待检测样本的安全状态,后将病毒比对检测结果返回给病毒查杀应用,病毒查杀应用可以根据需要对用户展示和对样本进行处理。
技术实现中涉及的流程及系统中的信息交互图如图13-图17所示。
本应用场景采用本发明实施例,一个基本模块的组成功能如图13所示,以下对每个模块的具体功能描述如下:
一,模糊哈希生成模块:
a)分片:
Android平台的安装包格式为apk格式,即标准的zip压缩包格式,dex和so文件是apk中的代码可执行文件,是恶意代码的真实载体。
dex文件中每条指令的基本格式可以概括为:
A/OP Index Arg
其中第一段中的OP部分用来描述当前指令类型,A是配置部分,用于对OP或OP使用参数进行配置,Index是调用函数的索引或当期指令所引用的静态数据的索引,通过索引可以在dex文件中的其他部分找到函数的对应详细信息,Arg部分则是参数寄存器相关的定义和指令。从实际情况来看,不同的函数调用和数据操作指令,每次生成dex的文件中指令的二进制内容都会发生变化,Index和Arg部分的二进制内容对dex的重新编译生成和调用而出现一定的随机性,根据不同的编译和优化策略A也会有一定的变化,只有OP段部分是相对稳定的数值内容,一般不会发生变化。
同样的,对于so文件来说,一般使用的是ARM指令集,ARM指令的基本格式可以概括为:
<opcode>{<cond>}{S}<Rd>,<Rn>{,<opcode2>}
其中opcode是指令助记符,即操作码,说明指令需要执行的操作,在指令中是必需的。
本发明实施例通过对dex和so文件进行解析,获取每个函数的Opcode序列,作为模糊哈希计算中的分片。
b)每片求哈希值:
将文件分片完以后,就可以对每片分别计算哈希了。可以使用传统的哈希算法,本发明实施例中使用MD5算法。
c)压缩映射:
对每一个文件分片,计算得到一个哈希值以后,可以选择将结果压缩短。但是,这种压缩映射会损失一部分准确性,引入误报问题。本发明选择不做压缩映射,保留MD5的结果。
d)连接哈希值:
将每片压缩后的哈希值连接到一起,就得到这个文件的模糊哈希值了。
本发明实施例中使用的分片模糊哈希值(simhash)算法的整个生成流程如图14所示。这里,模糊哈希算法有多种,可以是simhash,也可以是spamsum或者其他模糊哈希算法。
二,相似度计算模块:
本发明实施例中使用海明距离来计算两个样本的相似度。二进制串A和二进制串B的海明距离就是A xor B后二进制中1的个数。
举例如下:
A=100111;
B=101010;
hamming_distance(A,B)=count_1(A xor B)=count_1(001101)=3;
当算出两个样本的simhash值之后,样本A和样本B之间是否相似的条件是:A和B的海明距离是否小于等于N,这个N值可以根据经验或者实验来选取。
三,结果判定模块:
对于一个待检测样本来说,其模糊哈希值可能和病毒库里面的多个样本的模糊哈希值间的海明距离都小于我们的阈值,也就是说此检测样本与病毒库里的多个病毒样本都相似,此时,需要以一种策略来决定应该选取哪个病毒样本的病毒id来作为检测样本的病毒id。本发明实施例中使用的策略是取其中距离最小的样本的病毒id作为结果。
本发明实施例中主要有两个流程:图15所示的病毒库生成流程和图16所示的待检测样本的病毒比对检测流程。
一,病毒库生成流程如图15所示,包括:
步骤701、从病毒样本库中随机取出一个样本;
步骤702、生成模糊哈希值;
步骤703、将生成的模糊哈希值和样本对应的病毒id加入病毒库中;
步骤704、判断全部样本是否已处理完毕,如果是,执行步骤705,否则,返回执行步骤701;
步骤705、输出病毒库。
二,待检测样本的病毒比对检测流程如图16所示,包括:
步骤801、取出待检测样本;
步骤802、生成模糊哈希值;
步骤803、从病毒库中依次取出一个模糊哈希vh及其对应的病毒vid;
步骤804、计算待检测样本的模糊哈希dh和病毒库取出的模糊哈希vh间的距离d;
步骤805、判断d<=N,如果是,执行步骤806,否则,执行步骤807;
步骤806、将vh、vid及d作为一项加入待决策列表中;
步骤807、判断病毒库中所有项是否已处理完,如果是,执行步骤808;否则,返回执行步骤803。
步骤808、判断待决策列表为空;如果是,则执行步骤809;否则,执行步骤810。
步骤809、判断为非病毒APK;
步骤810、将待决策列表中选出距离d最小的项对应的vid作为此检测样本的病毒id。
本发明实施例的病毒检测系统可以将所有的执行过程都放在云端(服务器)处理,也可以采用终端(终端上安装的病毒查杀应用客户端)+云端(服务器)的方式部署,将病毒库生成流程和样本检测流程放到云端,客户端负责生成待检测样本的模糊哈希值,发送给云端,云端完成检测后,回传结果给客户端。此时,系统的架构如图17所示,系统各个模块的功能和流程和之前一致,不做赘述。
本应用场景采用本发明实施例,一个具体实现是通过提取dex和so文件中函数的opcode序列作为模糊哈希的输入分片,然后利用模糊哈希的比较来检测Android病毒,由于opcode序列的稳定性较高,不随文件中其他数据变化,因此抗变性好,使得本实施例可以有效检测病毒变种,能对病毒进精准的检测和病毒查杀处理。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软 件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。