CN112632548B - 一种恶意安卓程序检测方法、装置,电子设备及存储介质 - Google Patents
一种恶意安卓程序检测方法、装置,电子设备及存储介质 Download PDFInfo
- Publication number
- CN112632548B CN112632548B CN202011643298.XA CN202011643298A CN112632548B CN 112632548 B CN112632548 B CN 112632548B CN 202011643298 A CN202011643298 A CN 202011643298A CN 112632548 B CN112632548 B CN 112632548B
- Authority
- CN
- China
- Prior art keywords
- features
- program
- android
- detected
- slow
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000013145 classification model Methods 0.000 claims abstract description 30
- 239000013598 vector Substances 0.000 claims description 31
- 238000000605 extraction Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 5
- 230000001174 ascending effect Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003066 decision tree Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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)
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本申请提供一种恶意安卓程序检测方法、装置,电子设备及存储介质。该方法包括:提取待测安卓程序的快特征;将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果;当所述判定结果表征所述待测安卓程序为疑似恶意安卓程序时,提取所述待测安卓程序的慢特征;通过所述慢特征对所述待测安卓程序进行检测,得到所述待测安卓程序的检测结果。通过上述方式,一来可以利用快特征对待测安卓程序进行首次判断,而无需提取详细特征,提高了检测效率,能够大幅减少检测所消耗的时间。二来再利用慢特征对疑似恶意安卓程序进行二次检测,能够降低检测误报率,改善检测性能。
Description
技术领域
本申请涉及网络安全技术领域,具体而言,涉及一种恶意安卓程序检测方法、装置,电子设备及存储介质。
背景技术
安卓(android)是一种基于linux(一种操作***)内核的开放源代码操作***,安卓手机用户可以从官方应用商店下载应用程序,也可以安装其他来源的安卓应用程序,应用程序来源较为广泛,也给恶意程序在手机上的植入带来了可乘之机。
传统的恶意安卓程序检测技术主要是检测安装包内的所有文件,对每一个文件均进行二进制特征匹配,依赖安全研究人员提取的特征进行特征匹配,由于需要对每一个安装包内的文件进行扫描,因此耗时较长,并且该方式严重依赖特征库的完备性和提取特征的成熟度,错误或者不完善的特征会造成恶意程序的误报。
发明内容
本申请实施例的目的在于提供一种恶意安卓程序检测方法、装置,电子设备及存储介质,以改善“现有的恶意安卓程序检测方式存在耗时较长、出现误报”的问题。
本发明是这样实现的:
第一方面,本申请实施例提供一种恶意安卓程序检测方法,包括:提取待测安卓程序的快特征;其中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征以及慢特征;将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果;当所述判定结果表征所述待测安卓程序为疑似恶意安卓程序时,提取所述待测安卓程序的慢特征;通过所述慢特征对所述待测安卓程序进行检测,得到所述待测安卓程序的检测结果。
在本申请实施例中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征和慢特征;然后在对安卓程序进行检测时,提取待测安卓程序中的快特征,将快特征输入至预先训练好的分类模型中,得到安卓程序的判定结果。当判定结果表征为疑似恶意安卓程序时,再提取待测安卓程序中的慢特征,对慢特征进行检测,得到待测安卓程序的检测结果。通过上述方式,一来可以利用快特征对待测安卓程序进行首次判断,而无需提取详细特征,提高了检测效率,能够大幅减少检测所消耗的时间。二来再利用慢特征对疑似恶意安卓程序进行二次检测,能够降低检测误报率,改善检测性能。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果,包括:将所述快特征进行特征编码,生成快特征向量;将所述快特征向量输入所述预先训练好的分类模型中,得到所述待测安卓程序的判定分值;其中,所述预先训练好的分类模型通过已知安全安卓程序包集合生成的快特征向量集合以及已知恶意安卓程序包集合生成的快特征向量集合作为输入进行训练;其中,当所述判定分值处于预设恶意程序数值区间时,则表征所述待测安卓程序为疑似恶意安卓程序。
在本申请实施例中,预先通过已知安全安卓程序包集合生成的快特征向量集合以及已知恶意安卓程序包集合生成的快特征向量集合作为输入来训练分类模型;使得后续待测安卓程序的快特征进行特征编码,生成快特征向量后,能够通过该分类模型得到待测安卓程序准确、可靠的判定结果。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,当所述判定分值不处于所述预设恶意程序数值区间时,则表征所述待测安卓程序为安全安卓程序。
在本申请实施例中,当判定分值不处于预设恶意程序数值区间时,则表征待测安卓程序为安全安卓程序,则无需再对该待测安卓程序进行检测。也即,仅利用快特征就能够输出安全安卓程序的判定结果,而无需提取详细特征,提高了检测效率,能够大幅减少检测所消耗的时间。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述通过所述慢特征对所述待测安卓程序进行检测,包括:基于提取的所述慢特征,生成待测慢特征集合;将所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对;其中,每个所述子集合包含不同的恶意安卓程序的慢特征;当所述待测慢特征集合与任意一个子集合的比对数值超过预设数值时,则表征所述待测安卓程序为恶意安卓程序。
在本申请实施例中,预先构建恶意程序慢特征集合库,该集合库中包含不同的恶意安卓程序的慢特征。然后在提取到待测安卓程序的慢特征,生成待测慢特征集合后,将待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对,进而基于该比对结果确定待测安卓程序的检测结果。通过上述比对方式,能够得到准确的检测结果。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,当所述待测慢特征集合与所有子集合的比对数值均低于所述预设数值时,则表征所述待测安卓程序为安全安卓程序。
在本申请实施例中,当待测慢特征集合与所有子集合的比对数值均低于预设数值时,则表征疑似恶意安卓程序为安全安卓程序。进而输出待测安卓程序为安全安卓程序的输出结果,通过慢特征对疑似恶意安卓程序进行二次检测的方式,降低了检测误报率,改善了检测性能。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述将所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对,包括:获取所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合的杰卡德距离;相应的,当所述待测慢特征集合与任意一个子集合的杰卡德距离超过所述预设数值时,则表征所述待测安卓程序为恶意安卓程序。
在本申请实施例中,采用杰卡德距离来对待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对,检测效率较高,能够降低二次检测所消耗的时间。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,当所述待测慢特征集合与任意一个子集合的比对数值超过预设数值时,所述方法还包括:将所述待测慢特征集合添加至所述预设的恶意程序慢特征集合库中。
在本申请实施例中,当待测慢特征集合与任意一个子集合的比对数值超过预设数值时,则表征待测安卓程序为恶意安卓程序,此时,将该待测安卓程序的待测慢特征集合添加至预设的恶意程序慢特征结合库中,进而丰富了恶意程序慢特征集合库的数据,提高了后续安卓程序检测的准确性。
第二方面,本申请实施例提供一种恶意安卓程序检测装置,包括:第一提取模块,用于提取待测安卓程序的快特征;其中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征以及慢特征;判定模块,用于将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果;第二提取模块,用于当所述判定结果表征所述待测安卓程序为疑似恶意安卓程序时,提取所述待测安卓程序的慢特征;检测模块,用于通过所述慢特征对所述待测安卓程序进行检测,得到所述待测安卓程序的检测结果。
第三方面,本申请实施例提供一种电子设备,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中的程序,执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
第四方面,本申请实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种电子设备的结构示意图。
图2为本申请实施例提供的一种恶意安卓程序检测方法的步骤流程图。
图3为本申请实施例提供的另一种恶意安卓程序检测方法的步骤流程图。
图4为本申请实施例提供的一种恶意安卓程序检测装置的模块框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
鉴于现有的恶意安卓程序检测方式存在耗时较长、出现误报的问题,本申请发明人经过研究探索,提出以下实施例以解决上述问题。
请参阅图1,本申请实施例提供的一种应用恶意安卓程序检测方法及装置的电子设备100的示意性结构框图。本申请实施例中,电子设备100可以是,但不限于个人电脑(Personal Computer、PC)、智能手机、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、移动上网设备(Mobile Internet Device,MID)等。在结构上,电子设备100可以包括处理器110和存储器120。
处理器110与存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。恶意安卓程序检测装置包括至少一个可以软件或固件(Firmware)的形式存储在存储器120中或固化在电子设备100的操作***(Operating System,OS)中的软件模块。处理器110用于执行存储器120中存储的可执行模块,例如,恶意安卓程序检测装置所包括的软件功能模块及计算机程序等,以实现恶意安卓程序检测方法。处理器110可以在接收到执行指令后,执行计算机程序。
其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),以及电可擦编程只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
应当理解,图1所示的结构仅为示意,本申请实施例提供的电子设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
请参阅图2,图2为本申请实施例提供的恶意安卓程序检测方法的步骤流程图,该方法应用于图1所示的电子设备100。需要说明的是,本申请实施例提供的恶意安卓程序检测方法不以图2及以下所示的顺序为限制。具体的,该方法包括:步骤S101-步骤S104。
步骤S101:提取待测安卓程序的快特征;其中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征以及慢特征。
步骤S102:将快特征输入至预先训练好的分类模型中,得到待测安卓程序的判定结果。
步骤S103:当判定结果表征待测安卓程序为疑似恶意安卓程序时,提取待测安卓程序的慢特征。
步骤S104:通过慢特征对待测安卓程序进行检测,得到待测安卓程序的检测结果。
综上,在本申请实施例中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征和慢特征;然后在对安卓程序进行检测时,提取待测安卓程序中的快特征,将快特征输入至预先训练好的分类模型中,得到安卓程序的判定结果。当判定结果表征为疑似恶意安卓程序时,再提取待测安卓程序中的慢特征,对慢特征进行检测,得到待测安卓程序的检测结果。通过上述方式,一来可以利用快特征对待测安卓程序进行首次判断,而无需提取详细特征,提高了检测效率,能够大幅减少检测所消耗的时间。二来再利用慢特征对疑似恶意安卓程序进行二次检测,能够降低检测误报率,改善检测性能。
下面结合具体的示例对上述步骤进行详细说明。
本申请实施例所提供的恶意安卓程序检测方法首先需要对安卓程序包中的特征进行划分。
需要说明的是,安卓程序包以扩展名为.apk(Android application package,安卓应用程序包)的压缩包形式。一个完整的apk包必定包含AndroidManifest.xml和classes.dex这两个文件,同时也可能具备META-INF(签名文件夹)和res(资源文件夹)等其他包含文件,也可能具备多个classes.dex文件,例如classes1.dex,classes2.dex……等。AndroidManifest.xml是安卓应用程序的应用清单,包含有app(application,应用程序)的配置信息,而dex文件是java(一种计算机编程语言)代码编译打包后的二进制文件,早期安卓程序包只有一个dex文件,随着代码量逐渐增加,后期安卓程序包中包括多个dex文件。
于本申请实施例,基于安卓程序包中的特征所需提取时间的长短将特征划分为快特征和慢特征。具体的,可以采用安卓样本解析工具,比如androguard工具对安卓程序包进行解析,提取安卓程序包内对实施检测有帮助的各项特征,并在解析代码实现时***代码运行耗时记录,记录每一个所选特征提取过程的代码耗时。通过特征提取过程的代码耗时确定出快特征和慢特征。
可选地,为了增加样本多样性,解决不同安卓程序包代码长短不一给特征提取耗费时间带来的变化,采取随机选择包含恶意安卓程序包和正常安卓程序包的总体安卓程序库中一定数量的安卓程序包进行提取操作,并计算每一个特征的时间消耗均值作为该特征时间消耗的基准值。然后,根据特征提取时间消耗的均值进行排序。
示例性的,选取多个恶意安卓程序包和正常安卓程序包做为测试,在计算机上记录每个特征的时间消耗平均值,然后构建特征-耗时表,如表1所示。
表1
在表1中,第一列为特征名称,第二列为每个特征提取时所耗费的平均时间。其中,Action特征、Intent-filter特征和Uses-feature特征均为安卓程序包中的内部代码特征。
作为一种实施方式,可以按照特征消耗时间进行升序排列,取前N个特征作为快特征,剩余特征作为慢特征。其中,N的数值可以根据特征的总数进行确定,比如特征总数为200,则N的取值可以接近特征总数的一半,如100、80等。当然,N的数值也可以是任意数值,比如50、30等等,本申请不作限定。
作为另一种实施方式,还可以按照特征消耗时间进行升序排列,取小于预设阈值的特征作为快特征,大于预设阈值的特征作为慢特征。其中,预设阈值可以根据实际情况而定,比如可以是0.009秒、0.01秒,本申请不作限定。
在通过上述任意一种实施方式划分快特征和慢特征后,可以得到划分结果,如表2所示。
表2
在表2中,第一列为划分出的快特征,第二列为划分出的慢特征。
相应的,在步骤S101中,在获取到待测安卓程序后,基于表2所提供的快特征和慢特征的划分结果,提取待测安卓程序中的快特征。
在步骤S102中,将通过上述划分结果所提取的待测安卓程序中的快特征输入至预先训练好的分类模型中,得到待测安卓程序的判定结果。
作为一种实施方式,步骤S102中将快特征输入至预先训练好的分类模型中,得到待测安卓程序的判定结果具体包括:将快特征进行特征编码,生成快特征向量;将快特征向量输入预先训练好的分类模型中,得到待测安卓程序的判定分值。
其中,预先训练好的分类模型通过已知安全安卓程序包集合生成的快特征向量集合以及已知恶意安卓程序包集合生成的快特征向量集合作为输入进行训练。也即,首先提取出已知安全安卓程序包集合中各个已知安全安卓程序包的快特征,以及已知恶意安卓程序包集合中的各个已知恶意安卓程序包的快特征,然后对各快特征进行特征编码,生成快特征向量。需要说明的是,不同的快特征所采用的特征编码的方式不同,例如权限特征可以编码成[0,1,0,0,1……]形式的one-hot编码,是否包含多个dex文件可以采用布尔类型编码,用0或1表示,xml和dex文件的字节分布可以使用两个256位的向量进行编码,每一位分别统计00,01,……,FE,FF字节在两个二进制文件中出现的数量。训练时,可以将同一个已知安卓程序包中的快特征向量汇聚起来,形成一个总体特征向量,然后将该总体特征向量输入至分类模型中进行训练,得到训练好的分类模型。训练好的分类模型,其输出结果为判定分值。例如,判定分值可以是0~1中的任意数值,比如0.5、0.9等。在本步骤中,设定预设恶意程序数值区间来判定该分值的属性,比如可以根据检出率来确定一个阈值,如当判定分值大于0.6时多为恶意安卓程序包,当判定分值小于0.6时多为安全安卓程序包,则阈值可以设置为0.6,相应的,预设恶意程序数值区间为0.6~1。相应的,安全程序数值则为0~0.6。
于本申请实施例中,上述的分类模型可以采用GBDT(Gradient BoostingDecision Tree,梯度增强决策树)决策树算法模型。当然,也可以采用其他的机器学习模型,对此,本申请不作限定。
相应的,在实际应用中,将快特征进行特征编码,生成快特征向量后,也将待测安卓程序的快特征向量进行汇聚,形成一个总体特征向量后,输入至训练好的分类模型,得到待测安卓程序的判定分值。其中,特征编码的过程与训练过程中对各快特征进行特征编码的方式相同,因此,该过程可以参考上述说明,本申请不作赘述。
在本申请实施例中,预先通过已知安全安卓程序包集合生成的快特征向量集合以及已知恶意安卓程序包集合生成的快特征向量集合作为输入来训练分类模型;使得后续待测安卓程序的快特征进行特征编码,生成快特征向量后,能够通过该分类模型得到待测安卓程序准确、可靠的判定结果。
需要说明的是,当判定分值处于预设恶意程序数值区间时,则表征待测安卓程序为疑似恶意安卓程序。此时执行步骤S103。当判定分值不处于预设恶意程序数值区间时,则表征待测安卓程序为安全恶意安卓程序,此时无需再对该待测安卓程序进行检测。也即,仅利用快特征就能够输出安全安卓程序的判定结果,而无需提取详细特征,提高了检测效率,能够大幅减少检测所消耗的时间。
请参阅图3,可选地,在步骤S104中通过慢特征对待测安卓程序进行检测包括:步骤S201-步骤S202。
步骤S201:基于提取的慢特征,生成待测慢特征集合。
步骤S202:将待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对。
也即,本申请实施例提供一种特征比对方式,通过将待测安卓程序中的慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对进而得到比对结果。
具体的,通过如下步骤构建预设的恶意程序慢特征集合库,获取搜集到的已知恶意安卓程序集合,提取每一个已知恶意安卓程序的慢特征,构成一个子集合Ai(其中,i代表第i个已知恶意安卓程序)。子集合Ai构成一个预设的恶意程序慢特征集合库,记为S={A1,A1,......AN},N为已知恶意安卓程序总数。
为了便于理解,本实施例以一恶意安卓程序(MD5:000db93ae6b67e6303e5b5b4839df016)为作为子集合为Ai例,列举出在本实施例中使用的提取出的java源代码外部类和内部类名称列表为:
外部调用类:
[\"Landroid/support/v4/a/a;\", \"Landroid/support/v4/a/b;\",
\"Landroid/support/v4/a/c;\", \"Landroid/support/v4/a/d;\",
\"Landroid/support/v4/app/BackStackState;\",
\"Landroid/support/v4/app/Fragment$SavedState;\",
\"Landroid/support/v4/app/Fragment;\",
\"Landroid/support/v4/app/FragmentActivity;\",
\"Landroid/support/v4/app/FragmentManagerState;\"……]
内部自定义类:
上述的的外部调用类以及内部自定义类中的特征即为子集合Ai中的慢特征。
在构建好预设的恶意程序慢特征集合库S后,基于待测安卓程序中提取的慢特征,生成待测慢特征集合D。然后将待测慢特征集合D与预设的恶意程序慢特征集合库S中的每个子集合进行比对。
其中,当待测慢特征集合与任意一个子集合的比对数值超过预设数值时,则表征待测安卓程序为恶意安卓程序。当待测慢特征集合与所有子集合的比对数值均低于所述预设数值时,则表征待测安卓程序为安全安卓程序。通过该方式,能够得到准确的比对结果。且通过慢特征对疑似恶意安卓程序进行二次检测的方式,降低了检测误报率,改善了检测性能。
作为一种可选的比对方式,将待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对包括:获取待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合的杰卡德(Jaccard)距离。
其中,杰卡德距离可以用于表示两个集合的相似程度,其表达式为:
杰卡德距离
上述表达式中,J表示杰卡德距离,0≤J≤1,A表示待测慢特征集合,B表示预设的恶意程序慢特征集合库中的一个子集合,上述公式中的|.|运算符表示集合本身,集合交集,集合并集运算后的集合内部元素的数量。
需要说明的是,当待测慢特征集合与任意一个子集合的杰卡德距离超过预设数值时,则表征待测安卓程序为恶意安卓程序;当待测慢特征集合与所有子集合的杰卡德距离小于预设数值时,则表征待测安卓程序为安全安卓程序。
其中预设数值可以设定为0.6、0.7等,本申请不作限定。
可选地,当待测慢特征集合与任意一个子集合的比对数值超过预设数值时,该方法还包括:将待测慢特征集合添加至预设的恶意程序慢特征集合库中。
需要说明的是,当待测慢特征集合与任意一个子集合的比对数值超过预设数值时,则表征待测安卓程序为恶意安卓程序,此时,将该待测安卓程序的待测慢特征集合添加至预设的恶意程序慢特征结合库中,进而丰富了恶意程序慢特征集合库的数据,提高了后续安卓程序检测的准确性。
在其他实施例中,还可以通过余弦距离、欧式距离等方式将待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对,对此,本申请不作限定。
可选地,还可以采用哈希方法来提高相似度比对的速度和效率。在本实施例中使用最小哈希(minhash)工具,但不限于使用该工具。该算法工具用于计算大量待测样本之间的近似相似度,而可以减少两两计算相似度的时间复杂度和空间复杂度,该相似度为估计值,但可以通过增加随机哈希函数的数量来提高结果的精度。
请参阅图4,基于同一发明构思,本申请实施例还提供一种恶意安卓程序检测装置200,包括:提取模块201、判定模块202、提取模块203以及检测模块204。
第一提取模块201用于提取待测安卓程序的快特征;其中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征以及慢特征。
判定模块202用于将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果。
第二提取模块203用于当所述判定结果表征所述待测安卓程序为疑似恶意安卓程序时,提取所述待测安卓程序的慢特征。
检测模块204用于通过所述慢特征对所述待测安卓程序进行检测,得到所述待测安卓程序的检测结果。
可选地,判定模块202具体用于将所述快特征进行特征编码,生成快特征向量;将所述快特征向量输入所述预先训练好的分类模型中,得到所述待测安卓程序的判定分值;其中,所述预先训练好的分类模型通过已知安全安卓程序包集合生成的快特征向量集合以及已知恶意安卓程序包集合生成的快特征向量集合作为输入进行训练;其中,当所述判定分值处于预设恶意程序数值区间时,则表征所述待测安卓程序为疑似恶意安卓程序。
可选地,检测模块204具体用于基于提取的所述慢特征,生成待测慢特征集合;将所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对;其中,每个所述子集合包含不同的恶意安卓程序的慢特征;当所述待测慢特征集合与任意一个子集合的比对数值超过预设数值时,则表征所述待测安卓程序为恶意安卓程序。
可选地,检测模块204还具体用于获取所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合的杰卡德距离;相应的,当所述待测慢特征集合与任意一个子集合的杰卡德距离超过所述预设数值时,则表征所述待测安卓程序为恶意安卓程序。
可选地,该装置还包括添加模块205。
添加模块205用于当所述待测慢特征集合与任意一个子集合的比对数值超过预设数值时,将所述待测慢特征集合添加至所述预设的恶意程序慢特征集合库中。
需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种恶意安卓程序检测方法,其特征在于,包括:
提取待测安卓程序的快特征;其中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征以及慢特征;其中,快特征为将安卓程序包中的特征按照特征消耗时间升序排列后的前N个特征,剩余特征为慢特征;或者,快特征为特征消耗时间小于预设阈值的特征,慢特征为特征消耗时间大于预设阈值的特征;
将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果;
当所述判定结果表征所述待测安卓程序为疑似恶意安卓程序时,提取所述待测安卓程序的慢特征;
通过所述慢特征对所述待测安卓程序进行检测,得到所述待测安卓程序的检测结果。
2.根据权利要求1所述的恶意安卓程序检测方法,其特征在于,所述将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果,包括:
将所述快特征进行特征编码,生成快特征向量;
将所述快特征向量输入所述预先训练好的分类模型中,得到所述待测安卓程序的判定分值;其中,所述预先训练好的分类模型通过已知安全安卓程序包集合生成的快特征向量集合以及已知恶意安卓程序包集合生成的快特征向量集合作为输入进行训练;
其中,当所述判定分值处于预设恶意程序数值区间时,则表征所述待测安卓程序为疑似恶意安卓程序。
3.根据权利要求2所述的恶意安卓程序检测方法,其特征在于,当所述判定分值不处于所述预设恶意程序数值区间时,则表征所述待测安卓程序为安全安卓程序。
4.根据权利要求1所述的恶意安卓程序检测方法,其特征在于,所述通过所述慢特征对所述待测安卓程序进行检测,包括:
基于提取的所述慢特征,生成待测慢特征集合;
将所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对;其中,每个所述子集合包含不同的恶意安卓程序的慢特征;
当所述待测慢特征集合与任意一个子集合的比对数值超过预设数值时,则表征所述待测安卓程序为恶意安卓程序。
5.根据权利要求4所述的恶意安卓程序检测方法,其特征在于,当所述待测慢特征集合与所有子集合的比对数值均低于所述预设数值时,则表征所述待测安卓程序为安全安卓程序。
6.根据权利要求4所述的恶意安卓程序检测方法,其特征在于,所述将所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合进行比对,包括:
获取所述待测慢特征集合与预设的恶意程序慢特征集合库中的每个子集合的杰卡德距离;
相应的,当所述待测慢特征集合与任意一个子集合的杰卡德距离超过所述预设数值时,则表征所述待测安卓程序为恶意安卓程序。
7.根据权利要求6所述的恶意安卓程序检测方法,其特征在于,当所述待测慢特征集合与任意一个子集合的比对数值超过预设数值时,所述方法还包括:
将所述待测慢特征集合添加至所述预设的恶意程序慢特征集合库中。
8.一种恶意安卓程序检测装置,其特征在于,包括:
第一提取模块,用于提取待测安卓程序的快特征;其中,预先根据安卓程序包中的特征所需提取时间的长短将特征划分为快特征以及慢特征;其中,快特征为将安卓程序包中的特征按照特征消耗时间升序排列后的前N个特征,剩余特征为慢特征;或者,快特征为特征消耗时间小于预设阈值的特征,慢特征为特征消耗时间大于预设阈值的特征;
判定模块,用于将所述快特征输入至预先训练好的分类模型中,得到所述待测安卓程序的判定结果;
第二提取模块,用于当所述判定结果表征所述待测安卓程序为疑似恶意安卓程序时,提取所述待测安卓程序的慢特征;
检测模块,用于通过所述慢特征对所述待测安卓程序进行检测,得到所述待测安卓程序的检测结果。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器和所述存储器连接;
所述存储器用于存储程序;
所述处理器用于运行存储在所述存储器中的程序,执行如权利要求1-7中任一项所述的方法。
10.一种存储介质,其特征在于,其上存储有计算机程序,所述计算机程序在被计算机运行时执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011643298.XA CN112632548B (zh) | 2020-12-30 | 2020-12-30 | 一种恶意安卓程序检测方法、装置,电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011643298.XA CN112632548B (zh) | 2020-12-30 | 2020-12-30 | 一种恶意安卓程序检测方法、装置,电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632548A CN112632548A (zh) | 2021-04-09 |
CN112632548B true CN112632548B (zh) | 2024-01-23 |
Family
ID=75291236
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011643298.XA Active CN112632548B (zh) | 2020-12-30 | 2020-12-30 | 一种恶意安卓程序检测方法、装置,电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632548B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113792294B (zh) * | 2021-11-15 | 2022-03-08 | 北京升鑫网络科技有限公司 | 一种恶意类检测方法、***、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834857A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学深圳研究生院 | 批量安卓恶意软件检测方法及装置 |
CN106557695A (zh) * | 2015-09-25 | 2017-04-05 | 卓望数码技术(深圳)有限公司 | 一种恶意应用检测方法和*** |
CN106874760A (zh) * | 2016-12-23 | 2017-06-20 | 浙江工业大学 | 一种基于层次式SimHash的Android恶意代码分类方法 |
CN110704841A (zh) * | 2019-09-24 | 2020-01-17 | 北京电子科技学院 | 一种基于卷积神经网络的大规模安卓恶意应用检测***及方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106503558B (zh) * | 2016-11-18 | 2019-02-19 | 四川大学 | 一种基于社团结构分析的Android恶意代码检测方法 |
-
2020
- 2020-12-30 CN CN202011643298.XA patent/CN112632548B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834857A (zh) * | 2015-03-27 | 2015-08-12 | 清华大学深圳研究生院 | 批量安卓恶意软件检测方法及装置 |
CN106557695A (zh) * | 2015-09-25 | 2017-04-05 | 卓望数码技术(深圳)有限公司 | 一种恶意应用检测方法和*** |
CN106874760A (zh) * | 2016-12-23 | 2017-06-20 | 浙江工业大学 | 一种基于层次式SimHash的Android恶意代码分类方法 |
CN110704841A (zh) * | 2019-09-24 | 2020-01-17 | 北京电子科技学院 | 一种基于卷积神经网络的大规模安卓恶意应用检测***及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112632548A (zh) | 2021-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210256127A1 (en) | System and method for automated machine-learning, zero-day malware detection | |
CN109684840B (zh) | 基于敏感调用路径的Android恶意软件检测方法 | |
CN109359439B (zh) | 软件检测方法、装置、设备及存储介质 | |
Tian et al. | An automated classification system based on the strings of trojan and virus families | |
US20150242626A1 (en) | Method of generating in-kernel hook point candidates to detect rootkits and the system thereof | |
EP2975873A1 (en) | A computer implemented method for classifying mobile applications and computer programs thereof | |
CN109271788B (zh) | 一种基于深度学习的Android恶意软件检测方法 | |
Ban et al. | Integration of multi-modal features for android malware detection using linear SVM | |
US11068595B1 (en) | Generation of file digests for cybersecurity applications | |
CN114386046A (zh) | 一种未知漏洞检测方法、装置、电子设备及存储介质 | |
O'Kane et al. | N-gram density based malware detection | |
CN112632548B (zh) | 一种恶意安卓程序检测方法、装置,电子设备及存储介质 | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
Guerra-Manzanares et al. | In-depth Feature Selection and Ranking for Automated Detection of Mobile Malware. | |
CN117435480A (zh) | 一种二进制文件检测方法、装置、电子设备及存储介质 | |
Darshan et al. | An empirical study to estimate the stability of random forest classifier on the hybrid features recommended by filter based feature selection technique | |
CN116821903A (zh) | 检测规则确定及恶意二进制文件检测方法、设备及介质 | |
CN112163217B (zh) | 恶意软件变种识别方法、装置、设备及计算机存储介质 | |
CN115357894A (zh) | 带有自定义验证函数的应用程序漏洞检测方法及*** | |
CN114282216A (zh) | 一种恶意软件检测方法、装置、计算机设备及存储介质 | |
CN115412274A (zh) | 攻击溯源方法及相关数据处理、关联展示方法及装置 | |
CN112597498A (zh) | 一种webshell的检测方法、***、装置及可读存储介质 | |
Zhao et al. | Malware algorithm classification method based on big data analysis | |
CN115221522B (zh) | Elf恶意文件快速静态检测方法、装置、电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |