病毒识别方法和装置
技术领域
本公开的实施例涉及计算机技术领域,尤其涉及一种病毒识别方法和装置。
背景技术
计算机及网络技术的迅猛发展极大地促进了信息交互。但是,与此同时,计算机病毒也伴随技术的发展而不断地演化更新,从初期的恶作剧游戏发展到今日,计算机病毒已经严重威胁到了人们对计算机的正常使用。由此,如何防范病毒侵袭已然成为人们关注的一个焦点。
现有技术中进行病毒识别的方式一般是预先建立相应的病毒库,并进行病毒库进行比对,将与病毒库中的病毒匹配的文件认定为病毒;或者人为的设定相应的规则,符合相应的规则的文件认定为病毒。在实施时,通常是对待识别的文件中的部分内容或者全部内容进行相应的哈希运算得到对应的哈希值,之后根据该哈希值与病毒值的对应关系(比如如果一个哈希值对应的文件为病毒,在该哈希值对应的病毒值为1,否则对应的病毒值为0),确定相应的文件是否为病毒。在对相关技术研究的过程中,发明人发现,以上所述的方式存在如下问题:待识别的文件中的部分内容或者全部内容中的任何一个字段发生变化,都会导致所对应的哈希值发生改变。理论上,为了正确的识别该待识别的文件,就需要预先设置该待识别的文件的哈希值所对应的病毒值。在病毒变种数量非常大的情况下,几乎无法完成相应的标定工作。
发明内容
本公开至少一个实施例的主要目的在于提供一种新的病毒识别方法,可以至少部分的解决上述的问题。
第一方面,本公开的实施例提供了一种病毒文件识别方法,包括:
对待识别的手机文件中的预设关键内容进行特征提取;所述预设关键内容包括可能隐藏有恶意代码的文件内容;
对提取到的特征按照预设哈希算法进行哈希运算;
根据哈希运算结果判断待识别的手机文件是否为病毒文件。
在一些实施例中,所述预设关键内容包括:APP格式文件的尾部注释。
在一些实施例中,所述预设关键内容包括:META-INF内部和/或外部的空目录以及空文件。
在一些实施例中,所述预设关键内容还包括:关键字段。
在一些实施例中,所述手机文件为安卓手机文件。
第二方面,本公开的实施例一种病毒识别装置,包括:
特征提取模块,用于对待识别的手机文件中的预设关键内容进行特征提取;所述预设关键内容包括格式相关特征;
运算模块,用于对提取到的特征按照预设哈希算法进行哈希运算;
判断模块,用于根据哈希运算结果判断待识别的手机文件是否为病毒文件。
在一些实施例中,所述预设关键内容包括包括:APP格式文件的尾部注释。
在一些实施例中,所述预设关键内容包括:META-INF内部和/或外部的空目录以及空文件。
在一些实施例中,所述预设关键内容还包括:用于关键字段。
在一些实施例中,所述手机文件为安卓手机文件。
在本公开至少一个实施例中,首先对待识别文件中的预设关键内容进行提取,之后对提取到的内容进行哈希运算。对于同一类的病毒文件,只要其预设关键内容一致,即使其他部分的内容存在一些差异,这些病毒文件所对应的哈希值也都是一样的。这样就仅需通过设置一个哈希值对应的病毒值,即可完成对一类病毒文件的识别,能够减少相应的标定工作。
附图说明
图1展示了本公开实施例提供的一种病毒识别方法的主要流程;
图2展示了本公开实施例提供的一种病毒识别方法的主要结构。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
本公开第一方面的实施例提供了一种病毒识别方法,该方法可以由电子设备中的处理器执行,参见图1,所述方法主要包括如下流程:
步骤S11,对待识别的手机文件中的预设关键内容进行特征提取;所述预设关键内容包括可能隐藏有恶意代码的文件内容;
相关技术领域内的人员均知道的是,一些恶意代码可能隐藏到一些特定的文件中,而这些文件往往不会被系统检测。比如一些恶意代码可能隐藏到 APP格式文件的尾部注释中,或者一些恶意代码可能伪装成META-INF内部和/或外部的空目录以及空文件。发明人在对相关技术研究的过程中发现,一些病毒文件往往在这些内容中会有一些恶意代码,通过提取这部分内容作为预设关键内容的一部分,能够作为病毒文件区分的依据。APP格式文件的尾部注释、META-INF内部和外部的空目录以及空文件中的任意一项或者任意几项都可以作为预设关键内容中的一部分。
在安卓手机中,这里的APP格式文件可以是指APK格式文件或者ZIP 格式文件,APK格式本质是ZIP格式,以ZIP格式文件举例,其尾部注释是指:ZIP文件结构中有一段数据为注释,这部分数据不会影响ZIP文件的正常解压,也不会影响APK的正常运行,但是一些APK可能会利用注释位置存储恶意代码。例如:在注释部分放置一个URL地址,APK运行后去读取这个注释,获取到URL地址,访问该URL地址。
一些代码比如下载文件的ID,可能会隐藏在ZIP格式文件的尾部注释中。系统在对一个ZIP格式文件进行扫描时,往往不太关注ZIP格式文件的尾部注释,这样即使在一个被鉴定为安全的ZIP格式文件的尾部注释中添加相应的恶意代码,也不会被系统感知到。本公开的一些实施例通过将这部分内容设置为预设关键内容,能够很好的判断相应的文件是否为病毒文件。
在安卓手机中,META-INF内部及外部的空目录指只有目录名称,目录下没有其他内容。空文件指只有文件名称,文件大小为零字节。安卓系统在安装和运行一个APK的时候,并不会对META-INF内部和外部的空文件及空目录进行校验,即在APK中增加任意的空目录或者空文件,是不会影响到 APK的安装和运行的。一些APK可能会利用空目录及空文件的名称来存储一些恶意代码。例如:在APK内部特定位置放一个空目录或者空文件,其名称为一个URL地址(地址也可能是经过编码后的),APK运行后去读取这个空目录或空文件的名称,获取到URL地址,并访问这个URL地址。。通过将这部分内容设置为预设关键内容,也能够很好的判断相应的文件是否为病毒文件。
在另外一些实施例中,上述的预设关键内容还可以包括一些关键字段。这里的关键字段主要是指安卓系统本身用来校验APK的证书、密钥、摘要文件等字段,比如可以为:META-INF目录下的*.MF、*.RSA、*.SF等文件。步骤S12,对提取到的特征按照预设哈希算法进行哈希运算。
这里的哈希运算的目的是为了针对不同的特征能够获得不一样的哈希值,从而便于后续利用通过哈希值与病毒值的对应关系确定具备相应的特征的待识别文件是否为病毒文件。在具体实施时,这里的预设哈希算法可以为任何一种适于进行上述的运算的算法。
步骤S13,根据哈希运算结果判断待识别的手机文件是否为病毒文件。
在具体实施时,这里的哈希预算结果通常是指所得到的哈希值,如以上所述的,可以预先标定好哈希值与病毒值之间的对应关系。如果所得到的哈希值所对应的病毒值指示相应的待识别文件为病毒文件(比如病毒值为1),则在本步骤中,认定相应的待识别文件为病毒文件。
在以上任意实施例中,首先对待识别文件中的预设关键内容进行提取,之后对提取到的预设关键内容进行哈希运算。对于同一类的病毒文件,只要其预设关键内容一致,即使其他部分的内容存在一些差异,这些病毒文件所对应的哈希值也都是一样的。这样就仅需通过设置一个哈希值对应的病毒值,即可完成对一类病毒文件的识别,能够减少相应的标定工作。
第二方面,本公开的实施例提供了一种病毒识别装置,参见图2,所述装置包括:
特征提取模块21,用于对待识别的手机文件中的预设关键内容进行特征提取;所述预设关键内容包括格式相关特征;
运算模块22,用于对提取到的特征按照预设哈希算法进行哈希运算;
判断模块23,用于根据哈希运算结果判断待识别的手机文件是否为病毒文件。
在一些实施例中,所述预设关键内容包括包括:APP格式文件的尾部注释。
在一些实施例中,所述预设关键内容包括:META-INF目录内目录和/或 META-INF目录外空目录。
在一些实施例中,所述预设关键内容还包括:关键字段:
在一些实施例中,所述手机文件为安卓手机文件。
本公开实施例还提供了一种计算机存储介质,所述计算机存储介质中存储计算机指令代码;所述计算机指令代码在被计算机执行时,执行上述病毒识别方法的步骤。
本公开实施例还提供了一种计算机系统,所述计算机系统包括至少一个处理器和一个存储器,所述存储器耦接至所述处理器;所述处理器被配置为执行所述存储器中存储的计算机指令;所述处理器在执行所述计算机指令时,执行上述病毒识别方法的步骤。
可以理解的是,本公开第二、第三、第四方面的实施例所提供的装置、计算机存储介质以及电子设备主要用以或者配置为执行第一方面的实施例所提供的方法。本公开第二、第三、第四方面的实施例中的术语以及相应的实施方式可以参照第一方面的实施例,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
以上仅为本公开的优选实施例,并非因此限制本公开的专利范围,凡是利用本公开说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本公开的专利保护范围内。