CN111460449A - 应用程序识别方法、系统、存储介质以及电子设备 - Google Patents

应用程序识别方法、系统、存储介质以及电子设备 Download PDF

Info

Publication number
CN111460449A
CN111460449A CN202010162219.7A CN202010162219A CN111460449A CN 111460449 A CN111460449 A CN 111460449A CN 202010162219 A CN202010162219 A CN 202010162219A CN 111460449 A CN111460449 A CN 111460449A
Authority
CN
China
Prior art keywords
application program
application
sample
feature
static
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.)
Pending
Application number
CN202010162219.7A
Other languages
English (en)
Inventor
卞佳丽
邝坚
庞佳琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202010162219.7A priority Critical patent/CN111460449A/zh
Publication of CN111460449A publication Critical patent/CN111460449A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本公开公开了一种应用程序识别方法、系统、存储介质以及电子设备,涉及智能家居技术领域,该方法包括:获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值;将待识别应用程序的静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。本公开的有益效果是:能够准确、快速地对应用程序进行识别,避免用户安装恶性应用程序,导致造成损失。

Description

应用程序识别方法、系统、存储介质以及电子设备
技术领域
本公开属于计算机程序安全领域,尤其涉及一种应用程序识别方法、系统、存储介质以及电子设备。
背景技术
Android(安卓)手机是目前全球最受欢迎的移动智能终端之一。Android平台的开源性为第三方Android应用的开发带来了便利,但也为恶性应用的开发提供了条件。除了Google(谷歌)的官方应用商店外,也存在着许多良莠不齐的第三方Android应用商店。由于Android应用数量的庞大,以及部分应用商店的管理疏漏,导致用户下载安装了恶性应用程序,造成泄露隐私、恶意扣费等不良后果。因此,如何对应用程序进行识别,成为重要的技术问题。
发明内容
本公开正是基于目前移动终端应用程序繁多当管理不完善,导致存在较多的恶性应用程序的技术问题,提出了一种应用程序识别方法、系统、存储介质以及电子设备。
第一方面,本公开实施例提供了一种应用程序识别方法,包括:
获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值;
将待识别应用程序的静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
可选地,所述识别模型通过以下步骤构建:
获取训练样本集,该训练样本集中包括良性应用程序样本以及恶性应用程序样本;
提取所述训练样本集中的每个应用程序样本的静态特征;
将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型。
可选地,将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型,包括:
根据应用程序样本的静态特征,构建特征矩阵;
将所述特征矩阵作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型;
其中,所述特征矩阵为m行n列的矩阵,该矩阵中的每个元素表示为amn;其中,m表示第m个应用程序样本,n表示该应用程序样本的第n个静态特征。
可选地,根据应用程序样本的静态特征,构建特征矩阵,包括:
当该特征矩阵中的第n个静态特征为权限请求特征时,根据所述权限请求信息确定第m个应用程序样本中是否存在该权限请求特征,若存在,则amn的取值为1,若不存在,则amn的取值为0;
当该特征矩阵中的第n个静态特征为API请求特征时,根据所述API请求信息确定第m个应用程序样本中是否存在该API请求特征,若存在,则amn的取值为1,若不存在,则amn的取值为0;
当该特征矩阵中的第n个静态特征为活动组件比值特征时,当第m个应用程序样本的活动组件比值大于等于预设阈值时,amn的取值为1,当第m个应用程序样本的活动组件比值小于所述预设阈值时,amn的取值为0。
可选地,所述预设阈值的取值包括0.4。
可选地,所述分类器包括朴素贝叶斯分类器。
第二方面,本公开实施例还提供了一种应用程序识别系统,包括:
获取模块,配置为获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值;
识别模块,将待识别应用程序的静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
可选地,还包括:
样本获取模块,配置为获取训练样本集,该训练样本集中包括良性应用程序样本以及恶性应用程序样本;
特征提取模块,配置为提取所述训练样本集中的每个应用程序样本的静态特征;
训练模块,配置为将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型。
第三方面,本公开实施例还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例中任一项所述的应用程序识别方法。
第四方面,本公开还实施例提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例中任一项所述的应用程序识别方法。
在本公开实施例提供的一种应用程序识别方法、系统、存储介质以及电子设备,通过获取待识别应用程序的静态特征,其中,所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值。并将所述静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。可见,本公开实施例提供的应用程序识别方法,通过利用权限请求信息和/或API请求信息和/或活动组件比值的静态特征作为判断应用程序的性质,可以得到该待识别应用程序的准确判断结果,从而确定所述待识别应用程序是否为恶性应用程序。能够准确、快速地对应用程序进行识别,避免用户安装恶性应用程序造成损失。
附图说明
通过结合附图阅读下文示例性实施例的详细描述可更好地理解本公开的范围。其中所包括的附图是:
图1示出了本公开实施例一提出的一种应用程序识别方法的流程示意图;
图2示出了本公开实施例二提出的构建识别模型的流程示意图;
图3示出了本公开实施例二提出的活动组件比值影响分类器训练的准确度的示意图;
图4示出了本公开实施例二提出的活动组件比值影响分类器预测时间的示意图;
图5示出了本公开实施例五提出的一种电子设备的结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,以下将结合附图及实施例来详细说明本公开的实施方法,借此对本公开如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但是,本公开还可以采用其他不同于在此描述的其他方式来实施,因此,本公开的保护范围并不受下面公开的具体实施例的限制。
实施例一
根据本公开的实施例,提供了一种应用程序识别方法,图1示出了本公开实施例一提出的一种应用程序识别方法的流程示意图,如图1所示,该应用程序识别方法可以包括:步骤110至步骤120。
在步骤110中,获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值。
这里,可以使用反编译工具将Android安装包反编译成AndroidManifest文件、dex文件等,然后从这些文件中提取应用程序样本的静态特征。值得说明的是,应用程序中的AndroidManifest清单文件、dex文件等,是用于记录Android应用的名字,列出申请的权限、各个四大组件的名字、申请使用的设备硬件等信息的清单文件。
值得说明的是,权限请求信息是指Android操作系统为了保证系统安全和用户权益,引入了权限机制。例如,开发者想要使用Android设备的拍照功能,则需要在AndroidManifest文件里,请求对应的权限。在使用该功能时,系统会询问用户是否授予该项权限,若用户不授权,则无法执行相应功能。若不申请权限,直接执行相关功能,则会引发Android应用的崩溃。如当需要执行发送短信,需要在清单文件中分别申请android.permission.SEND_SMS;如当需要执行访问照相机,需要在清单文件中分别申请android.permission.CAMERA。
API请求信息是指Android系统为开发者提供了用于与设备的硬件或软件交互的接口,开发者可以通过调用系统API接口完成与系统的交互,例如调用系统API接口打开手机自带的手电筒。通过对dex文件的提取,可以获得Android应用调用的系统API请求信息。
活动组件比值则是指安卓系统的四大组件中的活动组件(Activity)在Activity、BroadcastReceiver(广播接收者)、Service(服务)和Content Provider(内容提供者)这四大组件中所占的比例。其中,Activity负责与用户进行交互,如响应用户的点击操作,对用户可见。BroadcastReceiver用于处理广播,如监听系统开机广播,并执行对应操作。Service主要用于在后台提供耗时服务,如下载大文件等。Content Provider用于进程间的数据交互,如读写手机内联系人数据等。四种组件只有Activity主要完成与用户的交互,其余三种组件对用户基本透明,因此许多如静默下载、窃取联系人信息等高危操作也多隐藏在这里。因此,活动组件比值可以作为判断一个应用程序为良性应用程序或恶性应用程序的一个条件。
在步骤120中,将所述静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
这里,该识别模型是训练好的用于识别恶性应用程序的模型,通过将所述静态特征输入识别模型,所述识别模型输出识别结果,从而根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。例如,将所述静态特征输入识别模型,所述识别模型输出1或0的结果,其中,1表示待识别应用程序为恶性应用程序,0表示待识别应用程序为良性应用程序。
在本实施例中,通过利用权限请求信息和/或API请求信息和/或活动组件比值的静态特征作为判断应用程序的性质,可以得到该待识别应用程序的准确判断结果,从而确定所述待识别应用程序是否为恶性应用程序。能够准确、快速地对应用程序进行识别,避免用户安装恶性应用程序造成损失。
实施例二
在上述实施例的基础上,本公开的实施例提供了一种应用程序识别方法,该应用程序识别方法可以包括:步骤210至步骤220。
在步骤210中,获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值。
这里,可以使用反编译工具将Android安装包反编译成AndroidManifest文件、dex文件等,然后从这些文件中提取应用程序样本的静态特征。值得说明的是,应用程序中的AndroidManifest清单文件、dex文件等,是用于记录Android应用的名字,列出申请的权限、各个四大组件的名字、申请使用的设备硬件等信息的清单文件。
在上述实施例中已对静态特征进行了解释,在此不再赘述。
在步骤220中,将所述静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
这里,该识别模型是训练好的用于识别恶性应用程序的模型,通过将所述静态特征输入识别模型,所述识别模型输出识别结果,从而根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。例如,将所述静态特征输入识别模型,所述识别模型输出1或0的结果,其中,1表示待识别应用程序为恶性应用程序,0表示待识别应用程序为良性应用程序。
在一个可选的实施方式中,图2示出了本公开实施例二提出的构建识别模型的流程示意图,如图2所示,还包括识别模型的构建方法,该识别模型的构建方法可以包括:步骤201至步骤203。
在步骤201中,获取训练样本集,该训练样本集中包括良性应用程序样本以及恶性应用程序样本。
这里,可以通过在VirusShare网站收集的Android安装包作为恶性样本,以及在应用商店中进行爬取,并通过杀毒软件,筛选符合条件Android安装包作为良性样本,从而获得所述训练样本集。
在步骤202中,提取所述训练样本集中的每个应用程序样本的静态特征。
这里,通过反编译工具将Android安装包进行反编译,可以获取到应用程序样本的静态特征。
值得说明的是,本公开所采集的应用程序样本的权限信息以及API请求信息可以是该应用程序样本的所有权限信息以及API请求信息,也可以是特定的一些权限请求信息和API请求信息。例如,API请求信息可以包括表1列出的29个API接口。
表1
Figure BDA0002406199920000071
Figure BDA0002406199920000081
步骤203,将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型。
这里,可以将应用程序样本的静态特征分为训练数据集以及测试数据集。例如,将应用程序样本的静态特征中的70%作为训练数据集,该训练数据集用于对分类器进行训练;将应用程序样本的静态特征中的30%作为测试数据集,该测试数据集用于对训练后的分类器进行测试,以验证训练后的分类器的识别效果。
在本实施例中,通过利用应用程序样本的静态特征对分类器进行训练,可以得到一个能够准备、快速识别良性应用程序和恶性应用程序的识别模型。
在一个可选的实施方式中,步骤203可以包括:
根据应用程序样本的静态特征,构建特征矩阵;
将所述特征矩阵作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型;
其中,所述特征矩阵为m行n列的矩阵,该矩阵中的每个元素表示为amn;其中,m表示第m个应用程序样本,n表示该应用程序样本的第n个静态特征。
这里,将每个应用程序样本的静态特征转换为特征矩阵,即利用矩阵表达每个应用程序样本的静态特征,进而将该特征矩阵用于分类器的训练。
例如,构建特征矩阵如下:
Figure BDA0002406199920000082
则a11表示第一个应用程序样本的第一个静态特征,该第一个静态特征可以是权限请求信息、API请求信息以及活动组件比值中的一种。在实际应用中,其可以根据实际情况设定。
值得说明的是,该分类器可以包括朴素贝叶斯分类器。朴素贝叶斯分类器中的“朴素”,意为假设在当前的分类目标下,所有的特征都是相互独立的。其被广泛应用在各种领域的分类,如文本分类、疾病预测和噪声检测等技术领域。
朴素贝叶斯分类器的原理为:
假设每个元组使用一个n维向量={X1,X2,…,Xn}表示,描述其对属性X1,X2,…,Xn的测量。
假设分类器存在m个类C1,C2,…,Cm,预测一个给定元组X属于类别Ci的条件为:
P(Ci/X)>P(Cj/X),1≤j≤m,j≠i
假设当P(Ci/X)=P(Cj/X),i<j时,X属于Ci,根据贝叶斯定理,有:
Figure BDA0002406199920000091
其中,P(X)对所有类为常数,因此只需求得使P(X/Ci)P(Ci)最大的类别,即为预测类别。
朴素贝叶斯假设每个属性之间相互独立,则可以得到:
Figure BDA0002406199920000092
综上,可得出分类为Ci的条件为:
Figure BDA0002406199920000093
在本实施方式中,通过将所述训练样本集中的每个应用程序样本的静态特征作为朴素贝叶斯分类器的输入,以进行机器学习,得到所述识别模型。即得到一个用于识别恶性应用程序的朴素贝叶斯分类器。
在一个可选的实施方式中,根据应用程序样本的静态特征,构建特征矩阵,包括:
当该特征矩阵中的第n个静态特征为权限请求特征时,根据所述权限请求信息确定第m个应用程序样本中是否存在该权限请求特征,若存在,则amn的取值为1,若不存在,则amn的取值为0;
当该特征矩阵中的第n个静态特征为API请求特征时,根据所述API请求信息确定第m个应用程序样本中是否存在该API请求特征,若存在,则amn的取值为1,若不存在,则amn的取值为0;
当该特征矩阵中的第n个静态特征为活动组件比值特征时,当第m个应用程序样本的活动组件比值大于等于预设阈值时,amn的取值为1,当第m个应用程序样本的活动组件比值小于所述预设阈值时,amn的取值为0。
这里,在将权限请求信息转换成为特征矩阵时,对于某一预设权限的特征处理,本公开使用数值1表示申请了该项权限,用数值0表示未申请该权限。例如样本demo.apk申请了android.permission.SEND_SMS权限,则demo.apk样本中SEND_SMS权限在矩阵中对应的特征位为1,否则为0。
在将API请求信息转换成为特征矩阵时,对于某一预设API接口的特征处理,本公开使用数值1表示应用程序申请了该项API接口,用数值0表示应用程序未申请API接口。当Android应用程序样本demo.apk调用了android.telephony.SmsManager.getDefault()接口(即表1中的API 1),则应用程序样本demo.apk中API 1接口在矩阵对应的特征值取1,否则为0。
在将活动组件比值转换成为特征矩阵时,对于某一应用程序的活动组件比值进行特征处理,本公开通过设定预设阈值,当活动组件比值大于等于预设阈值时,则应用程序样本中活动组件比值在矩阵对应的元素的取值为1,当活动组件比值小于预设阈值时,应用程序样本中活动组件比值在矩阵对应的元素取值为0。
其中,预设阈值的取值优选为0.4。即当活动组件比值大于等于0.4时,则应用程序样本中活动组件比值在矩阵对应的元素的取值为1;当活动组件比值小于0.4时,则应用程序样本中活动组件比值在矩阵对应的元素的取值为0。
值得说明的是,该特征矩阵以特定的序列分布的。即在选择了25个权限请求、29个API请求和活动组件比值作为静态特征时,完整的特征矩阵的长度为55,其顺序可以是25个权限请求在前,其次是29个API请求,最后为活动组件比值。例如,特征矩阵[a1,1 … a1,25a1,26 … a1,54 a55]中的a1,1至a1,25表示25个权限请求特征,a1,26至a1,54表示29个API请求特征,a55表示活动组件比值这一特征。其中,a1,1至a1,25中的25个权限请求特征的排布顺序根据实际情况确定,a1,26至a1,54中的29个API请求特征的排布顺序根据实际情况确定。
例如,良性样本“demo.apk”,通过反编译工具获取到它申请了CAMERA、MESSAGE权限,调用了onLocationChange()和sendMessage()的系统API,活动组件比值为0.3。
假设CAMERA、MESSAGE为第1、第3个权限请求特征;onLocationChange和sendMessage分别为第2、第3个API请求特征,则除活动组件比值外的特征矩阵为[1 a1,2 1… a1,25 1 1 … a1,54]。
当预设阈值取0.4时,则完整的特征矩阵为[1 a1,2 1 … a1,25 1 1 … a1,54 0]。;当预设阈值的阈值取0.2时,则完整的特征矩阵为[1 a1,2 1 … a1,25 1 1 … a1,54 1]。
在本实施例中,通过引入权项请求信息和/或API请求信息和/或活动组件比值的静态特征,并通过预设阈值来限定活动组件比值在特征矩阵中取值,来对贝叶斯分类器进行训练,可以得到一个识别准确度高、识别速度快的贝叶斯分类器,从而能够实现对恶性应用程序的快速识别。
下面,通过一个具体的实例对权项请求信息和/或API请求信息和/或活动组件比值的静态特征提高贝叶斯分类器的识别准确度进行说明。
首先,在本实施方式中设定以下概念:
TP:True Positive代表将良性Android应用判定为良性Android应用。
TN:True Negative代表将恶性Android应用判定为恶性Android应用。
FP:False Positive代表将恶性Android应用判定为良性Android应用。
FN:False Negative代表将良性Android应用判定为恶性Android应用。
Accuracy(准确度)表示分类正确的样本数占所有样本数的比例,其表示为:
Figure BDA0002406199920000111
Precision(精确度)表示被判定为良性Android应用的样本中,实际为良性Android应用样本的比例,其表示为:
Figure BDA0002406199920000112
Recall(召回率)表示所有良性Android应用样本中,被判定为良性样本的比例,其表示为:
Figure BDA0002406199920000113
衡量机器学习的指标F1-score,可以表示为:
Figure BDA0002406199920000114
当α=1时,F结果为F1-score,即:
Figure BDA0002406199920000115
在处理Android安装包的权限请求特征和系统API请求特征时,将其按照特定的顺序转换为特征矩阵。之后,对Android安装包的活动组件比值进行单独处理。将只包含权限请求和API请求特征,不包含活动组件比值特征的分类实验结果作为识别模型的基础实验结果。
然后,动态调整预设阈值进行Android应用分类的实验。例如,当预设阈值取0.1时,当某一Android安装包的预设阈值≥0.1时,活动组件比值的特征取值为1,否则为0。我们将预设阈值的取值从0.05-0.95进行调整,步距为0.05。对每个预设阈值均进行1000次实验,对Accuracy、Precision、Recall和F1-score分别计算平均值。观察并记录预设阈值对实验结果的影响。得到的实验结果如图3所示。其中,图3中的横坐标为预设阈值,纵坐标为识别率。
良性Android应用被误判为恶性Android应用,与恶性被误判为良性,用户的损失并不是一致的。当一个良性Android应用被误判为恶性时,对用户的影响为对该应用提高警惕、或重新进行检测确认。而恶性被误判为良性时,则可能造成用户防范意识下降,导致用户的隐私泄露及资费损失等不良后果。因此,提高实验的Precision是尤其重要的。如图3所示,当预设阈值的取值为0.4时,Precision达到最高,约为84.71%,同时Accuracy也达到最高,约为87.18%。而未引入活动组件比值这一特征时,分类的Precision和Accuracy分别约为71.06%和76.64%。显然,利用活动组件比值这一特征对贝叶斯分类器进行训练,可以得到一个识别准确度高、识别速度快的贝叶斯分类器,从而能够实现对恶性应用程序的快速识别。
同样,对每个活动组件比值的取值进行贝叶斯分类器训练和预测总时间进行记录,计算每组1000次实验耗时的平均值。得到的统计图如图4所示,其中,图4的横坐标为预设阈值的取值,纵坐标为耗时。
如图4所示,可以发现,引入活动组件比值后对模型训练和预测的总耗时影响在0.5ms以内。显然,利用活动组件比值这一特征可以提高贝叶斯分类器的识别速度。
实施例三
根据本公开的实施例,还提供了一种应用程序识别系统,包括:
获取模块,配置为获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值;
识别模块,将待识别应用程序的静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
可选地,还包括:
样本获取模块,配置为获取训练样本集,该训练样本集中包括良性应用程序样本以及恶性应用程序样本;
特征提取模块,配置为提取所述训练样本集中的每个应用程序样本的静态特征;
训练模块,配置为将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型。
实施例四
根据本公开的实施例,还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被处理器执行时,实现如上述实施例任一项所述的应用程序识别方法。
实施例五
根据本公开的实施例,还提供了一种电子设备,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如上述实施例任一项所述的应用程序识别方法。
图5示出了本公开实施例五提出的一种电子设备的结构示意图,如图5所示,该电子设备400可以包括:处理器401,存储器402,多媒体组件403,输入/输出(I/O)接口404以及通信组件405。
其中,处理器401用于控制该雷达400的整体操作,以完成上述的的方法中的全部或部分步骤。存储器402用于存储各种类型的数据以支持在该雷达400的操作,这些数据例如可以包括用于在该电子设备400上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器402可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。雷达本体406包括用于雷达探测的所有部件,多媒体组件403可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器402或通过通信组件405发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口404为处理器401和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件405用于该装置400与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件405可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
以上结合附图详细说明了本公开的技术方案,考虑到相关技术中,目前移动终端应用程序繁多当管理不完善,导致存在较多的恶性应用程序。本公开提供一种应用程序识别方法、系统、存储介质以及电子设备,通过训练好的识别模型对待识别应用程序的静态特征进行处理,可以得到该待识别应用程序的判断结果,从而确定所述待识别应用程序是否为恶性应用程序。能够准确、快速地对应用程序进行识别,避免用户安装恶性应用程序,导致造成损失。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本公开实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
虽然本公开所公开的实施方式如上,但所述的内容只是为了便于理解本公开而采用的实施方式,并非用以限定本公开。任何本公开所属技术领域内的技术人员,在不脱离本公开所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本公开的保护范围,仍须以所附的权利要求书所界定的范围为准。

Claims (10)

1.一种应用程序识别方法,其特征在于,包括:
获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值;
将待识别应用程序的静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
2.根据权利要求1所述的应用程序识别方法,其特征在于,所述识别模型通过以下步骤构建:
获取训练样本集,该训练样本集中包括良性应用程序样本以及恶性应用程序样本;
提取所述训练样本集中的每个应用程序样本的静态特征;
将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型。
3.根据权利要求2所述的应用程序识别方法,其特征在于,将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型,包括:
根据应用程序样本的静态特征,构建特征矩阵;
将所述特征矩阵作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型;
其中,所述特征矩阵为m行n列的矩阵,该矩阵中的每个元素表示为amn;其中,m表示第m个应用程序样本,n表示该应用程序样本的第n个静态特征。
4.根据权利要求3所述的应用程序识别方法,其特征在于,根据应用程序样本的静态特征,构建特征矩阵,包括:
当该特征矩阵中的第n个静态特征为权限请求特征时,根据所述权限请求信息确定第m个应用程序样本中是否存在该权限请求特征,若存在,则amn的取值为1,若不存在,则amn的取值为0;
当该特征矩阵中的第n个静态特征为API请求特征时,根据所述API请求信息确定第m个应用程序样本中是否存在该API请求特征,若存在,则amn的取值为1,若不存在,则amn的取值为0;
当该特征矩阵中的第n个静态特征为活动组件比值特征时,当第m个应用程序样本的活动组件比值大于等于预设阈值时,amn的取值为1,当第m个应用程序样本的活动组件比值小于所述预设阈值时,amn的取值为0。
5.根据权利要求4所述的应用程序识别方法,其特征在于,所述预设阈值的取值包括0.4。
6.根据权利要求3所述的应用程序识别方法,其特征在于,所述分类器包括朴素贝叶斯分类器。
7.一种应用程序识别系统,其特征在于,包括:
获取模块,配置为获取待识别应用程序的静态特征;所述静态特征包括权限请求信息、API请求信息以及活动组件比值中的至少一项;其中,该活动组件比值表征应用程序所使用的活动组件的数量与该应用程序所使用的四大组件的总数的比值;
识别模块,将待识别应用程序的静态特征作为训练好的识别模型的输入,获得所述待识别应用程序的识别结果,以根据所述识别结果确定所述待识别应用程序是否为恶性应用程序。
8.根据权利要求7所述的应用程序识别系统,其特征在于,还包括:
样本获取模块,配置为获取训练样本集,该训练样本集中包括良性应用程序样本以及恶性应用程序样本;
特征提取模块,配置为提取所述训练样本集中的每个应用程序样本的静态特征;
训练模块,配置为将每个应用程序样本的静态特征作为待训练的分类器的输入,以对所述分类器进行训练,得到所述识别模型。
9.一种存储介质,所述存储介质上存储有程序代码,其特征在于,所述程序代码被处理器执行时,实现如权利要求1至6中任一项所述的应用程序识别方法。
10.一种电子设备,其特征在于,所述电子设备包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的程序代码,所述程序代码被所述处理器执行时,实现如权利要求1至6中任一项所述的应用程序识别方法。
CN202010162219.7A 2020-03-10 2020-03-10 应用程序识别方法、系统、存储介质以及电子设备 Pending CN111460449A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010162219.7A CN111460449A (zh) 2020-03-10 2020-03-10 应用程序识别方法、系统、存储介质以及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010162219.7A CN111460449A (zh) 2020-03-10 2020-03-10 应用程序识别方法、系统、存储介质以及电子设备

Publications (1)

Publication Number Publication Date
CN111460449A true CN111460449A (zh) 2020-07-28

Family

ID=71684243

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010162219.7A Pending CN111460449A (zh) 2020-03-10 2020-03-10 应用程序识别方法、系统、存储介质以及电子设备

Country Status (1)

Country Link
CN (1) CN111460449A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343238A (zh) * 2021-06-25 2021-09-03 Oppo广东移动通信有限公司 应用程序识别方法、装置、存储介质以及终端
CN113691492A (zh) * 2021-06-11 2021-11-23 杭州安恒信息安全技术有限公司 违法应用程序的确定方法、系统、装置及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105426760A (zh) * 2015-11-05 2016-03-23 工业和信息化部电信研究院 一种安卓恶意应用的检测方法及装置
US20160154960A1 (en) * 2014-10-02 2016-06-02 Massachusetts Institute Of Technology Systems and methods for risk rating framework for mobile applications
CN106845240A (zh) * 2017-03-10 2017-06-13 西京学院 一种基于随机森林的Android恶意软件静态检测方法
CN107392025A (zh) * 2017-08-28 2017-11-24 刘龙 基于深度学习的恶意安卓应用程序检测方法
CN109784057A (zh) * 2019-01-04 2019-05-21 国家计算机网络与信息安全管理中心 安卓应用加固识别方法、控制器及介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160154960A1 (en) * 2014-10-02 2016-06-02 Massachusetts Institute Of Technology Systems and methods for risk rating framework for mobile applications
CN105426760A (zh) * 2015-11-05 2016-03-23 工业和信息化部电信研究院 一种安卓恶意应用的检测方法及装置
CN106845240A (zh) * 2017-03-10 2017-06-13 西京学院 一种基于随机森林的Android恶意软件静态检测方法
CN107392025A (zh) * 2017-08-28 2017-11-24 刘龙 基于深度学习的恶意安卓应用程序检测方法
CN109784057A (zh) * 2019-01-04 2019-05-21 国家计算机网络与信息安全管理中心 安卓应用加固识别方法、控制器及介质

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
JIN LI ETC: "Significant Permission Identification for Machine Learning Based Android Malware Detection", 《IEEE》 *
JIN LI ETC: "Significant Permission Identification for Machine Learning Based Android Malware Detection", 《IEEE》, vol. 14, no. 7, 12 January 2018 (2018-01-12) *
冯擘: "Android平台恶意软件检测系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
冯擘: "Android平台恶意软件检测系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 12, 15 December 2018 (2018-12-15), pages 1 - 5 *
李晓光: "Android软件恶意行为静态检测技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
李晓光: "Android软件恶意行为静态检测技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 6, 15 June 2018 (2018-06-15) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113691492A (zh) * 2021-06-11 2021-11-23 杭州安恒信息安全技术有限公司 违法应用程序的确定方法、系统、装置及可读存储介质
CN113691492B (zh) * 2021-06-11 2023-04-07 杭州安恒信息安全技术有限公司 违法应用程序的确定方法、系统、装置及可读存储介质
CN113343238A (zh) * 2021-06-25 2021-09-03 Oppo广东移动通信有限公司 应用程序识别方法、装置、存储介质以及终端

Similar Documents

Publication Publication Date Title
US10951647B1 (en) Behavioral scanning of mobile applications
KR102057565B1 (ko) 멀웨어를 검출하기 위한 컴퓨팅 디바이스
Schmidt et al. Monitoring smartphones for anomaly detection
US10547618B2 (en) Method and apparatus for setting access privilege, server and storage medium
CN109271788B (zh) 一种基于深度学习的Android恶意软件检测方法
WO2015058616A1 (zh) 恶意网站的识别方法和装置
US10685113B2 (en) Determining the similarity of binary executables
CN110795732A (zh) 基于SVM的Android移动网络终端恶意代码的动静结合检测方法
US20160156646A1 (en) Signal tokens indicative of malware
CN109684008B (zh) 卡片渲染方法、装置、终端及计算机可读存储介质
Song et al. Permission Sensitivity‐Based Malicious Application Detection for Android
CN110858247A (zh) 安卓恶意应用检测方法、系统、设备及存储介质
CN110955395A (zh) 打印系统的风险评估方法、装置及存储介质
CN111460449A (zh) 应用程序识别方法、系统、存储介质以及电子设备
CN103473504A (zh) 一种基于类别分析的Android恶意代码检测方法
CN109726555B (zh) 病毒检测处理方法、病毒提示方法以及相关设备
CN108647517B (zh) 一种Android混合应用代码注入的漏洞检测系统及方法
CN109240916B (zh) 信息输出控制方法、装置及计算机可读存储介质
CN108804917B (zh) 一种文件检测方法、装置、电子设备及存储介质
CN112632538B (zh) 一种基于混合特征的安卓恶意软件检测方法及系统
CN111460448B (zh) 一种恶意软件家族检测方法及装置
CN112685255A (zh) 一种接口监控方法、装置、电子设备及存储介质
CN112153059A (zh) 邮件验证码获取方法、装置、电子设备和存储介质
CN109726550B (zh) 异常操作行为检测方法、装置及计算机可读存储介质
CN111124627A (zh) 应用程序的调起者确定方法、装置、终端及存储介质

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200728