CN103530557B - 一种基于云端海量样本的病毒apk的扫描方法及系统 - Google Patents
一种基于云端海量样本的病毒apk的扫描方法及系统 Download PDFInfo
- Publication number
- CN103530557B CN103530557B CN201310077913.9A CN201310077913A CN103530557B CN 103530557 B CN103530557 B CN 103530557B CN 201310077913 A CN201310077913 A CN 201310077913A CN 103530557 B CN103530557 B CN 103530557B
- Authority
- CN
- China
- Prior art keywords
- apk
- clouds
- scanning
- eigenvalue
- storehouse
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Apparatus Associated With Microorganisms And Enzymes (AREA)
Abstract
本发明公开一种基于云端海量样本的病毒apk的扫描方法及系统,其中,所述扫描方法包括步骤:当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果。本发明的扫描方法快速、有效、准确,大大提高了扫描效率。
Description
技术领域
本发明涉及网络信息安全领域,尤其涉及一种基于云端海量样本的病毒apk的扫描方法及系统。
背景技术
apk是Android application package file的缩写,即Android安装包,也可理解为Android 设备上安装的应用软件。apk文件本质上是压缩文件,只是后缀名被修改为apk,apk文件被解压后可以看到Dex文件(Dalvik VM executes,可执行文件类型),即Android可执行程序,并非标准的Java字节码而是Dalvik字节码。
现有技术中,Android设备apk的扫描方法是通过提取各种apk的apk特征信息来确定是否具有病毒特征,这种方法存在以下缺点:
1、需要对apk进行解压,提取dex中的特征信息,而apk本身信息仅作为辅助信息,在扫描时未充分使用,且dex中包含的特征信息通常是相当复杂的,提取出的不同样本的异构性很大,不利于快速扫描;
2、病毒样本库的分类通常是非黑即白的,一方面忽略了病毒也具有阶梯灰度性,另一方面在病毒样本库扩充时,要经过高成本的分析才能确定是否属于新病毒,随后再入库,这是一种增长缓慢的扩充方式,也不利于对Android设备进行快速扫描。
所以,现有技术的病毒apk的扫描方法扫描效率低、成本高、资源开销大、准确性差。
因此,现有技术还有待于改进和发展。
发明内容
鉴于上述现有技术的不足,本发明的目的在于提供一种基于云端海量样本的病毒apk的扫描方法及系统,旨在解决现有的病毒apk的扫描效率低、成本高、资源开销大、准确性差的问题。
本发明的技术方案如下:
一种基于云端海量样本的病毒apk的扫描方法,其中,包括步骤:
A、收集海量apk,并计算每一apk的特征值,作为对应apk的特征信息;
B、根据收集的海量apk是否携带病毒,在云端建立一样本染色数据库,所述样本染色数据库中设置有云端黑名单库、云端白名单库、云端灰名单库,所述云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息;
C、预先在所述样本染色数据库中提取数据建立Android设备上的本地染色数据库;
D、对Android设备上的apk进行快速扫描,并计算扫描到的apk的特征值,在本地染色数据库中进行查找比对;
E、当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果。
所述的基于云端海量样本的病毒apk的扫描方法,其中,所述步骤A具体包括:
A1、通过二进制流方式读取apk;
A2、以字节方式将读取到的流输入一数组;
A3、对所述数组使用hash算法,计算出数组的hash值,将计算出的hash值作为对应apk的特征值。
所述的基于云端海量样本的病毒apk的扫描方法,其中,所述步骤B具体包括:
B1、对收集的每一apk进行深度扫描分析,判断收集的每一apk是否携带病毒;
B2、将判断为确定携带病毒的apk及该apk的特征信息放入云端黑名单库,将判断为确定不携带病毒的apk及该apk的特征信息放入云端白名单库,将判断为不确定是否携带病毒的apk及该apk的特征信息放入云端灰名单库。
所述的基于云端海量样本的病毒apk的扫描方法,其中,所述步骤C具体包括:
C1、对Android设备上各软件的常用程度及各病毒的威胁程度进行分析;
C2、根据分析结果从所述样本染色数据库中提取数据建立Android设备上的本地染色数据库。
所述的基于云端海量样本的病毒apk的扫描方法,其中,所述本地染色数据库中设置有本地黑名单库及本地白名单库中,所述本地黑名单库中存储有确定携带病毒的apk及该apk的特征信息,所述本地白名单库中存储有确定不携带病毒的apk及该apk的特征信息。
所述的基于云端海量样本的病毒apk的扫描方法,其中,步骤E具体包括:
E1、当查找到扫描到的apk的特征值在所述本地染色数据库中的本地黑名单库中时,返回扫描到的apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述本地染色数据库中的本地白名单库中时,返回扫描到的apk不携带病毒的扫描结果;
E2、当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送到云端,在云端的样本染色数据库中进行查找比对;
E3、当查找到扫描到的apk的特征值在所述样本染色数据库的云端黑名单库中时,返回所述apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端白名单库中时,返回所述apk不携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端灰名单库中时,返回不确定所述apk携带病毒的扫描结果;
E4、当查找到扫描到的apk的特征值不在所述样本染色数据库中时,将扫描到的apk及其特征值存入到云端灰名单库中;
E5、对云端灰名单库中的apk进行深度扫描分析,确定云端灰名单库中的apk是否携带病毒,并将确定携带病毒的apk及其特征值存入云端黑名单库中,将确定不携带病毒的apk及其特征值存入云端白名单库中。
一种基于云端海量样本的病毒apk的扫描系统,其中,包括:
特征信息获取模块,用于收集海量apk,并计算每一apk的特征值,作为对应apk的特征信息;
样本染色数据库建立模块,用于根据收集的海量apk是否携带病毒,在云端建立一样本染色数据库,所述样本染色数据库中设置有云端黑名单库、云端白名单库、云端灰名单库,所述云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息;
本地染色数据库建立模块,用于预先在所述样本染色数据库中提取数据建立Android设备上的本地染色数据库;
本地染色数据库查找模块,用于对Android设备上的apk进行快速扫描,并计算扫描到的apk的特征值,在本地染色数据库中进行查找比对;
扫描结果返回模块,用于当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果。
所述的基于云端海量样本的病毒apk的扫描系统,其中,所述特征信息获取模块包括:
apk读取单元,用于通过二进制流方式读取apk;
流输入单元,用于以字节方式将读取到的流输入一数组;
hash值计算单元,用于对所述数组使用hash算法,计算出数组的hash值,将计算出的hash值作为对应apk的特征值。
所述的基于云端海量样本的病毒apk的扫描系统,其中,所述样本染色数据库建立模块包括:
深度扫描分析单元,用于对收集的每一apk进行深度扫描分析,判断收集的每一apk是否携带病毒;
样本染色数据库建立单元,用于将判断为确定携带病毒的apk及该apk的特征信息放入云端黑名单库,将判断为确定不携带病毒的apk及该apk的特征信息放入云端白名单库,将判断为不确定是否携带病毒的apk及该apk的特征信息放入云端灰名单库。
所述的基于云端海量样本的病毒apk的扫描系统,其中,所述扫描结果返回模块包括:
本地染色数据库返回单元,用于当查找到扫描到的apk的特征值在所述本地染色数据库中的本地黑名单库中时,返回扫描到的apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述本地染色数据库中的本地白名单库中时,返回扫描到的apk不携带病毒的扫描结果;
特征值发送单元,用于当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送到云端,在云端的样本染色数据库中进行查找比对;
样本染色数据库返回单元,用于当查找到扫描到的apk的特征值在所述样本染色数据库的云端黑名单库中时,返回所述apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端白名单库中时,返回所述apk不携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端灰名单库中时,返回不确定所述apk携带病毒的扫描结果;
云端灰名单库更新单元,用于当查找到扫描到的apk的特征值不在所述样本染色数据库中时,将扫描到的apk及其特征值存入到云端灰名单库中;
云端灰名单库扫描单元,用于对云端灰名单库中的apk进行深度扫描分析,确定云端灰名单库中的apk是否携带病毒,并将确定携带病毒的apk及其特征值存入云端黑名单库中,将确定不携带病毒的apk及其特征值存入云端白名单库中。
有益效果:本发明通过快速提取apk本身的特征信息,替代解压分析apk并寻找病毒特征的过程,并且通过在云端建立样本染色数据库及在本地建立本地染色数据库,将不确定是否携带病毒的apk存入云端黑名单库中,由云端进行深度扫描分析,确定云端黑名单库中的apk是否携带病毒,本发明的扫描方法快速、有效、准确,大大提高了扫描效率。
附图说明
图1为本发明基于云端海量样本的病毒apk的扫描方法较佳实施例的流程图。
图2为本发明的方法中apk特征值获取过程的流程图。
图3为本发明的方法中样本染色数据库建立过程的流程图。
图4为本发明的方法中本地染色数据库建立过程的流程图。
图5为本发明的方法中扫描结果返回过程的流程图。
图6为本发明基于云端海量样本的病毒apk的扫描方法另一实施例的流程图。
图7为本发明基于云端海量样本的病毒apk的扫描系统较佳实施例的结构框图。
图8为图7所示系统中特征信息获取模块的结构框图。
图9为图7所示系统中样本染色数据库建立模块的结构框图。
图10为图7所示系统中本地染色数据库建立模块的结构框图。
图11为图7所示系统中扫描结果返回模块的结构框图。
具体实施方式
本发明提供一种基于云端海量样本的病毒apk的扫描方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请参阅图1,图1为本发明基于云端海量样本的病毒apk的扫描方法较佳实施例的流程图,如图所示,其包括步骤:
S101、收集海量apk,并计算每一apk的特征值,作为对应apk的特征信息;
S102、根据收集的海量apk是否携带病毒,在云端建立一样本染色数据库,所述样本染色数据库中设置有云端黑名单库、云端白名单库、云端灰名单库,所述云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息;
S103、预先在所述样本染色数据库中提取数据建立Android设备上的本地染色数据库;
S104、对Android设备上的apk进行快速扫描,并计算扫描到的apk的特征值,在本地染色数据库中进行查找比对;
S105、当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果。
首先在步骤S101中,需收集海量的apk,然后对收集到的apk进行快速扫描,计算出每一apk本身的特征值,如图2所示,本发明所采用的计算方法包括步骤:
S201、通过二进制流方式读取apk;此步骤是将apk文件当做二进制流文件读入,以二进制格式读取apk文件,可使用现成接口编程,例如java中的readChar(读取字节)。
S202、以字节方式将读取到的流输入一数组;转换出的位字符串是二进制格式的,例如01100001 01100010 01100011 ,然后输入到数组中,批量计算。
S203、对所述数组使用hash算法,计算出数组的hash值,将计算出的hash值作为对应apk的特征值。采用的hash算法可以是例如MD5(消息摘要算法)或者SHA1算法(安全哈希算法),通过该算法即可计算出apk文件的特征值,例如以SHA1算法计算apk特征值的过程相当于计算出apk文件的SHA1消息摘要,关于hash算法的具体内容,可参见现有技术中的内容。
由于上述计算过程无需对apk进行解压提取特征信息,所以扫描速度快,从而提高了扫描速度和扫描效率。并且提取到的特征值的类型和长度均相同,而非传统扫描方法因样本的不同导致异构性大,所以本发明基于该特征值的扫描方法能够有效提高扫描效率。
在步骤S102中,在云端建立一个样本染色数据库,此样本染色数据库的建立是基于上述收集到的海量apk及特征信息,对于样本染色数据库中的apk需要确定是否携带病毒,可通过深度扫描分析来判断apk是否具有病毒特征,至于如何来通过深度扫描分析来判断apk是否具有病毒特征可采用传统的分析方法,即本领域技术人员可通过现有技术来实现,此部分内容不在本发明中赘述。
根据上述的分析结果,即根据海量apk是否携带病毒,分别将不同类型的apk放入到样本染色数据库中的不同染色库中,在所述的样本染色数据库中建立有三种染色库:云端黑名单库、云端白名单库及云端灰名单库,其中,云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息。
从上可知,如图3所示,步骤S102可以具体细化为以下步骤:
S301、对收集的每一apk进行深度扫描分析,判断收集的每一apk是否携带病毒;
S302、将判断为确定携带病毒的apk及该apk的特征信息放入云端黑名单库,将判断为确定不携带病毒的apk及该apk的特征信息放入云端白名单库,将判断为不确定是否携带病毒的apk及该apk的特征信息放入云端灰名单库。
在步骤S103中,基于上述的云端的样本染色数据库,可在Android设备中建立一个本地染色数据库,该本地染色数据库是用于快速扫描Android设备中的apk的安全性,在本地染色数据库中的数据是根据软件的常用程度及病毒威胁程度选取的,具体来说,如图4所示,步骤S103包括:
S401、对Android设备上各软件的常用程度及各病毒的威胁程度进行分析;此步骤是在云端建立具有一定规模的样本染色数据库后,根据Android设备各软件的常用程度及各病毒的威胁程度,确定Android设备上一些最流行的apk数据,即apk及相应的特征信息。
S402、根据分析结果从所述样本染色数据库中提取数据建立Android设备上的本地染色数据库,根据上述的分析结果,提取出最流行的apk数据建立本地染色数据库。
在该本地染色数据库中设置有两种染色库:本地黑名单库和本地白名单库,本地黑名单库用于存储确定携带病毒的apk及该apk的特征信息,本地白名单库则用于存储确定不携带病毒的apk及该apk的特征信息,所以,在本地染色数据中的apk的安全性均是确定的,要么是携带病毒的,要么是不携带病毒的。
在步骤S104中,建立了本地染色数据库后,可先对Android设备上的apk进行快速扫描,然后计算扫描到的apk的特征值,因为本发明是提取apk本身的特征信息,所以这种扫描方法效率得到大大提高,优化了资源有限的Android设备上的扫描病毒时的解压开销。获取到apk的特征值后,可先在本地染色数据库中进行查找比对。
在步骤S105中,因为本地染色数据库的两种染色库都是存储确定携带和不携带病毒的apk,所以若在本地染色数据库中查找到相应特征值的apk,那么即可判断扫描到的apk的安全性。若在本地染色数据库中未找到,则将扫描到的apk的特征值发送到云端,由云端进行快速扫描,并返回扫描结果。
如图5所示,步骤S105可具体细化为以下步骤:
S501、当查找到扫描到的apk的特征值在所述本地染色数据库中的本地黑名单库中时,返回扫描到的apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述本地染色数据库中的本地白名单库中时,返回扫描到的apk不携带病毒的扫描结果;由于本地染色数据库中存储的是一些最为流行的数据,即最常用软件以及威胁最大的病毒,该本地染色数据库相当于样本染色数据库的一个子集,在本地染色数据库中能够快速查找比对,可尽早发现最常见以及威胁最大的病毒,只有在本地染色数据库中未找到相应的apk时,就由云端继续进行查找比对,即转入步骤S502。
S502、当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送到云端,在云端的样本染色数据库中进行查找比对;若在本地染色数据库中未找到相应的apk时,则将扫描到的apk的特征值发送到云端进行二次扫描。
S503、当查找到扫描到的apk的特征值在所述样本染色数据库的云端黑名单库中时,返回所述apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端白名单库中时,返回所述apk不携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端灰名单库中时,返回不确定所述apk携带病毒的扫描结果;此步骤是由云端进行扫描的过程,如果能够在云端的各个染色库中查找到相应特征值的apk时,就返回相应的扫描结果。
S504、当查找到扫描到的apk的特征值不在所述样本染色数据库中时,将扫描到的apk及其特征值存入到云端灰名单库中;若在样本染色数据库中的各个染色库中未找到相应特征值的apk时,说明还不确定扫描到的apk的安全性,可暂时先将扫描到的apk及其特征值存入到云端灰名单库中。
S505、对云端灰名单库中的apk进行深度扫描分析,确定云端灰名单库中的apk是否携带病毒,并将确定携带病毒的apk及其特征值存入云端黑名单库中,将确定不携带病毒的apk及其特征值存入云端白名单库中。此步骤可由云端采用离线方式来对云端灰名单库中的apk进行深度扫描分析,来判断是否携带病毒,并且根据深度扫描分析的结果,将其存入到不同的染色库中,例如将确定携带病毒的apk及其特征值存入到云端黑名单库中,将确定为不携带病毒的apk及其特征值存入到云端白名单库中。那么,在下次扫描分析时,即可快速确定该apk的安全性。
下面结合一具体实施例来对本发明的扫描方法进行说明。
如图6所示,本发明的扫描方法包括步骤:
S601、对Android设备上的apk进行扫描;
S602、计算扫描到的apk的特征值;
S603、根据计算到的特征值,在本地染色数据库中进行查找比对;
S604、判断计算到的特征值是否在本地黑名单库中;当在本地黑名单库中时,转入步骤S615,即返回该apk携带病毒的扫描结果,当不在本地黑名单库中时,转入步骤S605;
S605、判断计算到的特征值是否在本地白名单库中;当在本地白名单库中时,转入步骤S615,即返回该apk不携带病毒的扫描结果,当不在本地白名单库中时,转入步骤S606;
S606、将计算到的特征值发送到云端;
S607、根据发送过来的特征值,在云端的样本染色数据库中进行查找比对;
S608、判断发送过来的特征值是否在云端黑名单库中;当在云端黑名单库中,转入步骤S616,即返回该apk携带病毒的扫描结果,否则转入步骤S609;
S609、判断发送过来的特征值是否在云端白名单库中;当在云端白名单库中时,转入步骤S616,即返回该apk不携带病毒的扫描结果,否则转入步骤S610;
S610、判断发送过来的特征值是否在云端灰名单库中;当在云端灰名单库中时,转入步骤S616,即返回不确定该apk是否携带病毒的扫描结果,否则转入步骤S611;本发明中的云端灰名单库用于暂时存放不确定是否携带病毒的apk及其特征值,这样能够提高apk的扫描速度,而不用让用户等待较长时间,因为对一个新的apk进行深度扫描分析,需要耗费大量的时间,用户只有继续等待扫描结果,本发明则是直接返回一个不确定是否携带病毒的结果,并可提示用户在扫描完成后,云端会采用离线方式自动对不确定是否携带病毒的apk进行深度扫描分析,确定是否携带病毒,提示用户下次扫描时即可迅速确定是该apk是否携带病毒,这样用户就不用去长时间等待,从而提高扫描效率以及用户的使用体验。
S611、将该apk及特征值存入到云端灰名单库中;
S612、对云端灰名单库中的apk进行深度扫描分析,判断是否携带病毒;
S613、当判断为携带病毒时,将该apk及其特征值存入到云端黑名单库中;
S614、当判断为不携带病毒时,将该apk及特征值存入到云端白名单库中。
基于上述方法,本发明还提供一种基于云端海量样本的病毒apk的扫描系统,如图7所示,其包括:
特征信息获取模块100,用于收集海量apk,并计算每一apk本身的特征值,作为对应apk的特征信息;
样本染色数据库建立模块200,用于根据收集的海量apk是否携带病毒,在云端建立一样本染色数据库,所述样本染色数据库中设置有云端黑名单库、云端白名单库、云端灰名单库,所述云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息;
本地染色数据库建立模块300,用于预先在所述样本染色数据库中提取数据建立Android设备上的本地染色数据库;
本地染色数据库查找模块400,用于对Android设备上的apk进行快速扫描,并计算扫描到的apk的特征值,在本地染色数据库中进行查找比对;
扫描结果返回模块500,用于当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果。
进一步,如图8所示,所述特征信息获取模块100包括:
apk读取单元110,用于通过二进制流方式读取apk;
流输入单元120,用于以字节方式将读取到的流输入一数组;
hash值计算单元130,用于对所述数组使用hash算法,计算出数组的hash值,将计算出的hash值作为对应apk的特征值。
进一步,如图9所示,所述样本染色数据库建立模块200包括:
深度扫描分析单元210,用于对收集的每一apk进行深度扫描分析,判断收集的每一apk是否携带病毒;
样本染色数据库建立单元220,用于将判断为确定携带病毒的apk及该apk的特征信息放入云端黑名单库,将判断为确定不携带病毒的apk及该apk的特征信息放入云端白名单库,将判断为不确定是否携带病毒的apk及该apk的特征信息放入云端灰名单库。
进一步,如图10所示,所述本地染色数据库建立模块300包括:
分析单元310,用于对Android设备上各软件的常用程度及各病毒的威胁程度进行分析;
本地染色数据库建立单元320,用于根据分析结果从所述样本染色数据库中提取数据建立Android设备上的本地染色数据库。
进一步,如图11所示,所述扫描结果返回模块包括:
本地染色数据库返回单元510,用于当查找到扫描到的apk的特征值在所述本地染色数据库中的本地黑名单库中时,返回扫描到的apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述本地染色数据库中的本地白名单库中时,返回扫描到的apk不携带病毒的扫描结果;
特征值发送单元520,用于当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送到云端,在云端的样本染色数据库中进行查找比对;
样本染色数据库返回单元530,用于当查找到扫描到的apk的特征值在所述样本染色数据库的云端黑名单库中时,返回所述apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端白名单库中时,返回所述apk不携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端灰名单库中时,返回不确定所述apk携带病毒的扫描结果;
云端灰名单库更新单元540,用于当查找到扫描到的apk的特征值不在所述样本染色数据库中时,将扫描到的apk及其特征值存入到云端灰名单库中;
云端灰名单库扫描单元550,用于对云端灰名单库中的apk进行深度扫描分析,确定云端灰名单库中的apk是否携带病毒,并将确定携带病毒的apk及其特征值存入云端黑名单库中,将确定不携带病毒的apk及其特征值存入云端白名单库中。关于上述功能模块的技术细节在前面的方法中已有详述,故不再赘述。
综上所述,本发明通过快速提取apk本身的特征信息,替代解压分析apk并寻找病毒特征的过程,并且通过在云端建立样本染色数据库及在本地建立本地染色数据库,将不确定是否携带病毒的apk存入云端黑名单库中,由云端进行深度扫描分析,确定云端黑名单库中的apk是否携带病毒,本发明的扫描方法快速、有效、准确,大大提高了扫描效率。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种基于云端海量样本的病毒apk的扫描方法,其特征在于,包括步骤:
A、收集海量apk,并计算每一apk的特征值,作为对应apk的特征信息;
B、根据收集的海量apk是否携带病毒,在云端建立一样本染色数据库,所述样本染色数据库中设置有云端黑名单库、云端白名单库、云端灰名单库,所述云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息;
C、对Android设备上各软件的常用程度及各病毒的威胁程度进行分析,根据分析结果预先在所述样本染色数据库中提取数据建立Android设备上的本地染色数据库;
D、对Android设备上的apk进行快速扫描,并计算扫描到的apk的特征值,在本地染色数据库中进行查找比对;
E、当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果;
所述步骤A具体包括:
A1、通过二进制流方式读取apk;
A2、以字节方式将读取到的流输入一数组;
A3、对所述数组使用hash算法,计算出数组的hash值,将计算出的hash值作为对应apk的特征值。
2.根据权利要求1所述的基于云端海量样本的病毒apk的扫描方法,其特征在于,所述步骤B具体包括:
B1、对收集的每一apk进行深度扫描分析,判断收集的每一apk是否携带病毒;
B2、将判断为确定携带病毒的apk及该apk的特征信息放入云端黑名单库,将判断为确定不携带病毒的apk及该apk的特征信息放入云端白名单库,将判断为不确定是否携带病毒的apk及该apk的特征信息放入云端灰名单库。
3.根据权利要求1所述的基于云端海量样本的病毒apk的扫描方法,其特征在于,所述本地染色数据库中设置有本地黑名单库及本地白名单库中,所述本地黑名单库中存储有确定携带病毒的apk及该apk的特征信息,所述本地白名单库中存储有确定不携带病毒的apk及该apk的特征信息。
4.根据权利要求3所述的基于云端海量样本的病毒apk的扫描方法,其特征在于,步骤E具体包括:
E1、当查找到扫描到的apk的特征值在所述本地染色数据库中的本地黑名单库中时,返回扫描到的apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述本地染色数据库中的本地白名单库中时,返回扫描到的apk不携带病毒的扫描结果;
E2、当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送到云端,在云端的样本染色数据库中进行查找比对;
E3、当查找到扫描到的apk的特征值在所述样本染色数据库的云端黑名单库中时,返回所述apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端白名单库中时,返回所述apk不携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端灰名单库中时,返回不确定所述apk携带病毒的扫描结果;
E4、当查找到扫描到的apk的特征值不在所述样本染色数据库中时,将扫描到的apk及其特征值存入到云端灰名单库中;
E5、对云端灰名单库中的apk进行深度扫描分析,确定云端灰名单库中的apk是否携带病毒,并将确定携带病毒的apk及其特征值存入云端黑名单库中,将确定不携带病毒的apk及其特征值存入云端白名单库中。
5.一种基于云端海量样本的病毒apk的扫描系统,其特征在于,包括:
特征信息获取模块,用于收集海量apk,并计算每一apk的特征值,作为对应apk的特征信息;
样本染色数据库建立模块,用于根据收集的海量apk是否携带病毒,在云端建立一样本染色数据库,所述样本染色数据库中设置有云端黑名单库、云端白名单库、云端灰名单库,所述云端黑名单库用于存储已确定携带病毒的apk及其特征信息,所述云端白名单库用于存储已确定不携带病毒的apk及其特征信息,所述云端灰名单库用于存储不确定是否携带病毒的apk及其特征信息;
本地染色数据库建立模块,用于对Android设备上各软件的常用程度及各病毒的威胁程度进行分析,根据分析结果预先在所述样本染色数据库中提取数据建立Android设备上的本地染色数据库;
本地染色数据库查找模块,用于对Android设备上的apk进行快速扫描,并计算扫描到的apk的特征值,在本地染色数据库中进行查找比对;
扫描结果返回模块,用于当查找到扫描到的apk的特征值在所述本地染色数据库中时,返回扫描到的apk是否携带病毒的扫描结果,当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送至云端,由云端返回扫描到的apk是否携带病毒的扫描结果;
所述特征信息获取模块包括:
apk读取单元,用于通过二进制流方式读取apk;
流输入单元,用于以字节方式将读取到的流输入一数组;
hash值计算单元,用于对所述数组使用hash算法,计算出数组的hash值,将计算出的hash值作为对应apk的特征值。
6.根据权利要求5所述的基于云端海量样本的病毒apk的扫描系统,其特征在于,所述样本染色数据库建立模块包括:
深度扫描分析单元,用于对收集的每一apk进行深度扫描分析,判断收集的每一apk是否携带病毒;
样本染色数据库建立单元,用于将判断为确定携带病毒的apk及该apk的特征信息放入云端黑名单库,将判断为确定不携带病毒的apk及该apk的特征信息放入云端白名单库,将判断为不确定是否携带病毒的apk及该apk的特征信息放入云端灰名单库。
7.根据权利要求5所述的基于云端海量样本的病毒apk的扫描系统,其特征在于,所述扫描结果返回模块包括:
本地染色数据库返回单元,用于当查找到扫描到的apk的特征值在所述本地染色数据库中的本地黑名单库中时,返回扫描到的apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述本地染色数据库中的本地白名单库中时,返回扫描到的apk不携带病毒的扫描结果;
特征值发送单元,用于当扫描到的apk的特征值不在所述本地染色数据库中时,将扫描到的apk的特征值发送到云端,在云端的样本染色数据库中进行查找比对;
样本染色数据库返回单元,用于当查找到扫描到的apk的特征值在所述样本染色数据库的云端黑名单库中时,返回所述apk携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端白名单库中时,返回所述apk不携带病毒的扫描结果;当查找到扫描到的apk的特征值在所述样本染色数据库的云端灰名单库中时,返回不确定所述apk携带病毒的扫描结果;
云端灰名单库更新单元,用于当查找到扫描到的apk的特征值不在所述样本染色数据库中时,将扫描到的apk及其特征值存入到云端灰名单库中;
云端灰名单库扫描单元,用于对云端灰名单库中的apk进行深度扫描分析,确定云端灰名单库中的apk是否携带病毒,并将确定携带病毒的apk及其特征值存入云端黑名单库中,将确定不携带病毒的apk及其特征值存入云端白名单库中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310077913.9A CN103530557B (zh) | 2013-03-12 | 2013-03-12 | 一种基于云端海量样本的病毒apk的扫描方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310077913.9A CN103530557B (zh) | 2013-03-12 | 2013-03-12 | 一种基于云端海量样本的病毒apk的扫描方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103530557A CN103530557A (zh) | 2014-01-22 |
CN103530557B true CN103530557B (zh) | 2017-02-08 |
Family
ID=49932561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310077913.9A Expired - Fee Related CN103530557B (zh) | 2013-03-12 | 2013-03-12 | 一种基于云端海量样本的病毒apk的扫描方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103530557B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823871A (zh) * | 2014-02-26 | 2014-05-28 | 可牛网络技术(北京)有限公司 | 软件查找方法和装置 |
CN103984899B (zh) * | 2014-06-09 | 2017-02-01 | 武汉大学 | 一种虚拟机在线高效批量杀毒系统及杀毒方法 |
CN104243470B (zh) * | 2014-09-10 | 2018-04-06 | 东软集团股份有限公司 | 基于自适应分类器的云查杀方法及系统 |
CN104598822A (zh) * | 2015-01-15 | 2015-05-06 | 百度在线网络技术(北京)有限公司 | 应用程序的检测方法及装置 |
CN104573518B (zh) * | 2015-01-23 | 2019-03-26 | 百度在线网络技术(北京)有限公司 | 文件扫描方法、装置、服务器及系统 |
CN104573519B (zh) * | 2015-01-30 | 2018-04-13 | 北京瑞星网安技术股份有限公司 | 文件扫描方法和系统 |
CN105590053B (zh) * | 2015-12-18 | 2018-11-09 | 北京奇虎科技有限公司 | 启动项未知风险的检测方法及装置 |
CN109740341B (zh) * | 2018-12-25 | 2021-03-12 | 北京广成同泰科技有限公司 | 一种程序白名单策略融合方法及融合系统 |
CN111563256A (zh) * | 2019-10-28 | 2020-08-21 | 张瑞 | 一种安全的大数据收集存放方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924762A (zh) * | 2010-08-18 | 2010-12-22 | 奇智软件(北京)有限公司 | 一种基于云安全的主动防御方法 |
CN102231873A (zh) * | 2011-06-22 | 2011-11-02 | 中兴通讯股份有限公司 | 垃圾短信监控方法、系统和监控处理装置 |
CN102413142A (zh) * | 2011-11-30 | 2012-04-11 | 华中科技大学 | 基于云平台的主动防御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984628B2 (en) * | 2008-10-21 | 2015-03-17 | Lookout, Inc. | System and method for adverse mobile application identification |
-
2013
- 2013-03-12 CN CN201310077913.9A patent/CN103530557B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924762A (zh) * | 2010-08-18 | 2010-12-22 | 奇智软件(北京)有限公司 | 一种基于云安全的主动防御方法 |
CN102231873A (zh) * | 2011-06-22 | 2011-11-02 | 中兴通讯股份有限公司 | 垃圾短信监控方法、系统和监控处理装置 |
CN102413142A (zh) * | 2011-11-30 | 2012-04-11 | 华中科技大学 | 基于云平台的主动防御方法 |
Non-Patent Citations (1)
Title |
---|
基于MD5的文件完整性检测软件设计;郑光明 等;《湖南理工学院学报(自然科学版)》;20070330;第20卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103530557A (zh) | 2014-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530557B (zh) | 一种基于云端海量样本的病毒apk的扫描方法及系统 | |
US11188635B2 (en) | File authentication method and apparatus | |
US8935788B1 (en) | Two stage virus detection | |
US9349006B2 (en) | Method and device for program identification based on machine learning | |
CN107786564B (zh) | 基于威胁情报的攻击检测方法、系统及电子设备 | |
CN109992969B (zh) | 一种恶意文件检测方法、装置及检测平台 | |
CN109829306A (zh) | 一种优化特征提取的恶意软件分类方法 | |
CN102413142A (zh) | 基于云平台的主动防御方法 | |
RU2012156448A (ru) | Система и способ автоматической модификации антивирусной базы данных | |
CN109063482B (zh) | 宏病毒识别方法、装置、存储介质及处理器 | |
CN102970272A (zh) | 用于病毒检测的方法、装置和云服务器 | |
CN111368289B (zh) | 一种恶意软件检测方法和装置 | |
WO2022205644A1 (zh) | 一种目标检测方法、装置、计算机设备和存储介质 | |
KR20150083627A (ko) | 액티비티 문자열 분석에 의한 안드로이드 악성코드 검출 방법 | |
CN113935033A (zh) | 特征融合的恶意代码家族分类方法、装置和存储介质 | |
US20230418943A1 (en) | Method and device for image-based malware detection, and artificial intelligence-based endpoint detection and response system using same | |
CN112615873B (zh) | 物联网设备安全检测方法、设备、存储介质及装置 | |
CN110135153A (zh) | 软件的可信检测方法及装置 | |
CN102799804A (zh) | 未知文件安全性综合鉴定方法及系统 | |
KR101404108B1 (ko) | 윈도우 실행파일 추출방법, 및 장치 | |
CN111343153A (zh) | 数据包检测方法、装置、服务器及存储介质 | |
CN110532772B (zh) | 文件检测方法、模型、设备及计算机可读存储介质 | |
CN108229168B (zh) | 一种嵌套类文件的启发式检测方法、系统及存储介质 | |
CN101989322A (zh) | 自动提取恶意代码内存特征的方法和系统 | |
CN114547628B (zh) | 漏洞检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170208 |