CN108090360A - 一种基于行为特征的安卓恶意应用分类方法及系统 - Google Patents

一种基于行为特征的安卓恶意应用分类方法及系统 Download PDF

Info

Publication number
CN108090360A
CN108090360A CN201810037514.2A CN201810037514A CN108090360A CN 108090360 A CN108090360 A CN 108090360A CN 201810037514 A CN201810037514 A CN 201810037514A CN 108090360 A CN108090360 A CN 108090360A
Authority
CN
China
Prior art keywords
android
malicious application
application
decompiling
class
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.)
Granted
Application number
CN201810037514.2A
Other languages
English (en)
Other versions
CN108090360B (zh
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.)
Dongguan Broadcasting & Television Station
South China Normal University
Original Assignee
Dongguan Broadcasting & Television Station
South China Normal University
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 Dongguan Broadcasting & Television Station, South China Normal University filed Critical Dongguan Broadcasting & Television Station
Priority to CN201810037514.2A priority Critical patent/CN108090360B/zh
Publication of CN108090360A publication Critical patent/CN108090360A/zh
Application granted granted Critical
Publication of CN108090360B publication Critical patent/CN108090360B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2411Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于行为特征的安卓恶意应用分类方法及系统,方法包括:对输入的安卓应用样本进行反编译,得到反编译后的源文件;对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征;根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。系统包括反编译模块、语法分析和特征提取模块以及分类模块。本发明引入了具有语义的行为特征,综合应用了静态分析法、语义分析法和支持向量机分类方法进行安卓恶意应用分类,不仅降低了安卓恶意应用分类的时间和效率,而且提升了安卓恶意应用分类的准确率。本发明可广泛应用于数据挖掘领域。

Description

一种基于行为特征的安卓恶意应用分类方法及系统
技术领域
本发明涉及数据挖掘领域,尤其是一种基于行为特征的安卓恶意应用分类方法及系统。
背景技术
近年来,随着移动端硬件设备和软件的快速发展,手机平台快速地在人们的生活中普及起来。移动互联网的快速发展导致了智能手机的数量急剧增加,移动手机的用户数量、Android应用层次、市场规模等均展现了爆发性的增长趋势。手机及ipad等移动网民规模的快速增长促进了市场发展。据国内权威第三方咨询平台艾瑞咨询统计,2012年中国整体网民的规模有5.6个亿,移动终端的网民规模有4.2亿,移动手机的网民渗透率接近74%。移动互联网的网民规模的飞速增长为移动互联网的发展奠定了坚实的用户基石。在受到Android平台上低端智能手机的推动后,很多人在去年将手机从低端的功能机换成了廉价的智能机。据中国互联网络信息中心的数据显示,截至去年12月底,国内智能终端的出货量达到了2.24亿。并且,去年中国移动互联网市场的市场规模接近549.7亿。
受到智能手机和移动互联网网民规模快速增长的推动,移动互联网仍然继续保持着较快的发展速度。但作为移动互联网业务基石的智能手机却面临着很多安全威胁,智能手机的隐私及安全问题也越来越明显,如垃圾消息订购、自动拨打扣费电话、未经允许连接恶意网站等造成手机用户的经济损失、手机木马应用控制用户的手机设备和盗取银行卡等等。随着移动终端快速融入人们的日常生活,人们的生活和移动终端变得紧密相连,这也导致Android平台的恶意应用日益猖獗。如何区分恶意和非恶意应用也变得非常重要,并且具有比较大的挑战性。如何结合大数据分析技术,应对当前大量Android平台应用和变化多样的攻击手段,构建出轻量级、高效的恶意应用分类器,具有非常重要的意义。
对Android平台的恶意检测,一般有2种思路:一种是静态分析,一种是动态分析。
静态分析是指,通过还原Android应用以对源代码进行语义分析。与Java程序的运行原理相似,Android使用Dalvik Virtual Machine虚拟机运行所有平台应用和系统应用,其架构如图1所示。静态分析的对象有三种,按照图1由上往下分别是Android平台的Java程序本身,Dalvik Virtual Machine自身的虚拟机指令Smali和Linux Kernel层与驱动相接的汇编层代码。对于这三种分析对象的选择,涉及两个要素:一个是代码的完整性,另一个是代码的语义是否丰富。最上层的Java程序虽然具有最丰富的语义,但是对于应用反编译成的Java源代码完整性较低。而最底层的汇编代码,虽然能得到比较完整的程序代码,但是由于汇编程序的语义缺失比较大,只能通过模式识别算法对程序块进行挖掘。
动态分析则通过对Linux kernel或者Android Runtime进行修改,在设备底层对恶意行为或者特征进行收集。随着设备的快速发展,动态分析代码规模的上升,程序覆盖率和时间消耗之间的矛盾会更加凸显。以阿努比斯Anubis为例,其能够粗粒度地确保程序覆盖率,但是时间消耗却非常严重。这对于大量以APP为目标的需求来说,可行性相对比较低。同时,随着恶意类型的增长,检查点的增加,同样会增加动态分析时间的消耗。
综上所述,如何在保证恶意应用分类正确率的同时最大限度地降低分类的时间就成了业内亟待解决的技术难题。
发明内容
为解决上述技术问题,本发明的目的在于:提供一种分类正确率高和分类时间低的,基于行为特征的安卓恶意应用分类方法。
本发明的另一目的在于:提供一种分类正确率高和分类时间低的,基于行为特征的安卓恶意应用分类系统。
本发明所采取的技术方案是:
一种基于行为特征的安卓恶意应用分类方法,包括以下步骤:
对输入的安卓应用样本进行反编译,得到反编译后的源文件;
对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征,所述安卓恶意应用的行为特征通过语法分析获取并反映了安卓恶意应用开发者的行为偏好;
根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
进一步,所述对输入的安卓应用样本进行反编译,得到反编译后的源文件这一步骤,具体包括:
输入给定的安卓恶意应用样本;
采用APKTOOL将安卓恶意应用样本的APK包反编译成Smali源代码,得到反编译后的源文件。
进一步,所述对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征这一步骤,具体包括:
采用静态分析法从反编译后的源文件中提取安卓恶意应用的静态特征;
采用语法分析器从反编译后的源文件中提取安卓恶意应用的行为特征;
根提取的静态特征和行为特征得到复合特征。
进一步,所述静态特征的类别包括Size类、Broadcast类和Permisson类,其中,Size类是指安卓应用的安装包大小,Broadcast类和Permisson类均为反编译后的源文件中安卓应用安装时向操作系统申请的权限,Broadcast类和Permisson类的特征值均为0或1;Broadcast类的描述包括BOOT_COMPLETED、SMS_RECEIEVED、CONNECTIVITY_CHANGE、DATA_SMS_RECEIVED和AIRPLANE_MODE,Permisson类的描述包括READ_PHONE_STATE、SEND_SMS、RECEIVE_SMS、INSTALL_SHORTCUT、READ_SMS、WRITE_SETTINGS、READ_CONTACTS、CHANGE_WIFI_STATE和CHANGE_NETWORK_STATE,BOOT_COMPLETED、SMS_RECEIEVED、CONNECTIVITY_CHANGE、DATA_SMS_RECEIVED和AIRPLANE_MODE分别为安卓应用在启动期间的操作、发送信息、联网状态更换、接收短信和转变为飞行模式时所需要的权限,READ_PHONE_STATE、SEND_SMS、RECEIVE_SMS、INSTALL_SHORTCUT、READ_SMS、WRITE_SETTINGS、READ_CONTACTS、CHANGE_WIFI_STATE和CHANGE_NETWORK_STATE分别为安卓应用在读取手机状态、发送短信、接收短信、创建快捷方式、读取短信、写文件系统、读取通讯录、WIFI联网状态和联网状态查询中所需的权限。
进一步,所述行为特征反映了安卓底层对权限的使用情况,所述行为特征的类别为加密应用程序接口类,所述加密应用程序接口类的描述包括AES、DES、BlowFish和RSA。
进一步,所述复合特征的类别包括AD lib类和Load Code Activity类,其中,ADlib类表征安卓广告库,AD lib类的描述包括AdMob广告插件、ChartBoost广告插件、AdColony广告插件和Mopub广告插件,Load Code Activity类反映了反编译后的源文件中DEX执行文件或者第三方库的加载情况,Load Code Activity类的描述包括加载DEX和加载第三方库,AD lib类和Load Code Activity类的特征值均为0或1。
进一步,所述采用语法分析器从反编译后的源文件中提取安卓恶意应用的行为特征这一步骤,具体包括:
初始化语法分析器和权限列表字典树,所述权限列表字典树用于存储安卓恶意应用向操作系统申请的权限并供语法分析器在进行语法分析时查询;
将反编译后的源文件输入语法分析器进行语法分析,得到安卓恶意应用每个权限的类、函数和函数的使用路径,并根据安卓恶意应用所有权限的类和函数定义继承关系数据库;
对安卓恶意应用每个权限的类和函数进行数据清洗,得到清洗完的类和函数的使用路径;
根据清洗完的类和函数的使用路径以及反编译后的源文件,采用Shikra算法分析安卓恶意应用每个权限在各路径上的使用情况,得到安卓恶意应用的行为特征。
进一步,所述根据清洗完的类和函数的使用路径以及反编译后的源文件,采用Shikra算法分析安卓恶意应用每个权限在各路径上的使用情况,得到安卓恶意应用的行为特征这一步骤,具体包括:
根据清洗完的类以及反编译后的源文件,得到安卓恶意应用对应权限在类和方法上的二元组(ClassUseCount,MethodUseCount),其中,ClassUseCount为类使用计数器,MethodUseCount为函数使用计数器;
根据当前变量的创建位置,判断当前变量的作用域是否为public类型的作用域:若是,则使类使用计数器自增1,并在记录当前存储权限类的寄存器编号后执行下一步骤;反之,则直接在记录当前存储权限类的寄存器编号后执行下一步骤,所述当前变量为安卓恶意应用当前权限的当前路径,当前存储权限类的寄存器用于存储安卓恶意应用当前权限的类别;
按设定的迭代算法遍历反编译后的源文件中虚拟机指令,所述设定的迭代算法在遍历过程中根据虚拟机指令的类型执行相应的操作:若虚拟机指令在调用函数的指令集合Qmethod中且该虚拟机指令的调用函数属于权限函数以及该虚拟机指令当前调用的寄存器编号等于当前存储权限类的寄存器编号,则使函数使用计数器自增1;若虚拟机指令在传递变量的指令集合Qmove中且该虚拟机指令的源寄存器编号等于当前存储权限类的寄存器编号,则更新当前存储权限类的寄存器编号为该虚拟机指令的目的寄存器编号;
所述调用函数的指令集合Qmethod的表达式为:
所述传递变量的指令集合Qmove的表达式为:
其中,invoke为smali语言中触发方法的语法指令集,virtual为触发虚拟方法的语法指令集,super为定义父类的指令集,direct为调用父类公有函数的指令集,static为静态成员定义的指令集,range为多寄存器访问指令集,iget和input分别为整型对寄存器的输入和输出,sget和sput分别为短整型对寄存器的输入输出,φ为空集,wide为长整型,object为对象表示,boolean为布尔类型,byte为字节类型,char为字符类型,short为短整型;
判断虚拟机指令是否遍历完,若是,则执行下一步骤,反之,则返回前一步骤;
输出二元组(ClassUseCount,MethodUseCount)。
进一步,所述根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用这一步骤,具体包括:
根据得到的静态特征和行为特征,采用支持向量机的方法训练和测试出安卓恶意应用分类器;
根据安卓恶意应用分类器将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
本发明所采取的另一技术方案是:
一种基于行为特征的安卓恶意应用分类系统,包括:
反编译模块,用于对输入的安卓应用样本进行反编译,得到反编译后的源文件;
语法分析和特征提取模块,用于对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征,所述安卓恶意应用的行为特征通过语法分析获取并反映了安卓恶意应用开发者的行为偏好;
分类模块,用于根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
本发明的方法的有益效果是:包括对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征以及根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类的步骤,引入了具有语义的行为特征,综合应用了静态分析法、语义分析法和支持向量机分类方法来进行安卓恶意应用分类,不仅通过静态分析法降低了安卓恶意应用分类的时间和效率,而且通过行为特征结合支持向量机分类器提升了安卓恶意应用分类的准确率。
本发明的系统的有益效果是:包括反编译模块、语法分析和特征提取模块以及分类模块,在语法分析和特征提取模块中引入了具有语义的行为特征,综合应用了静态分析法、语义分析法和支持向量机分类方法来进行安卓恶意应用分类,不仅通过静态分析法降低了安卓恶意应用分类的时间和效率,而且通过行为特征结合支持向量机分类器提升了安卓恶意应用分类的准确率。
附图说明
图1为现有的安卓平台框架图;
图2为本发明一种基于行为特征的安卓恶意应用分类方法的整体流程图;
图3为本发明实施例一的安卓恶意应用分类流程图;
图4为本发明实施例一的行为特征提取流程图。
具体实施方式
参照图2,一种基于行为特征的安卓恶意应用分类方法,包括以下步骤:
对输入的安卓应用样本进行反编译,得到反编译后的源文件;
对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征,所述安卓恶意应用的行为特征通过语法分析获取并反映了安卓恶意应用开发者的行为偏好;
根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
其中,支持向量机分类器属有监督学习,具有稳定性,能保证恶意应用分类的正确率。
进一步作为优选的实施方式,所述对输入的安卓应用样本进行反编译,得到反编译后的源文件这一步骤,具体包括:
输入给定的安卓恶意应用样本;
采用APKTOOL将安卓恶意应用样本的APK包反编译成Smali源代码,得到反编译后的源文件。
本发明选择了Smali语言来进行安卓恶意应用分析,融合了Java程序和汇编程序的优点,不仅具有较丰富的语义,并且能够保证较好的程序完整性。
进一步作为优选的实施方式,所述对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征这一步骤,具体包括:
采用静态分析法从反编译后的源文件中提取安卓恶意应用的静态特征;
采用语法分析器从反编译后的源文件中提取安卓恶意应用的行为特征;
根提取的静态特征和行为特征得到复合特征。
进一步作为优选的实施方式,所述静态特征的类别包括Size类、Broadcast类和Permisson类,其中,Size类是指安卓应用的安装包大小,Broadcast类和Permisson类均为反编译后的源文件中安卓应用安装时向操作系统申请的权限,Broadcast类和Permisson类的特征值均为0或1;Broadcast类的描述包括BOOT_COMPLETED、SMS_RECEIEVED、CONNECTIVITY_CHANGE、DATA_SMS_RECEIVED和AIRPLANE_MODE,Permisson类的描述包括READ_PHONE_STATE、SEND_SMS、RECEIVE_SMS、INSTALL_SHORTCUT、READ_SMS、WRITE_SETTINGS、READ_CONTACTS、CHANGE_WIFI_STATE和CHANGE_NETWORK_STATE,BOOT_COMPLETED、SMS_RECEIEVED、CONNECTIVITY_CHANGE、DATA_SMS_RECEIVED和AIRPLANE_MODE分别为安卓应用在启动期间的操作、发送信息、联网状态更换、接收短信和转变为飞行模式时所需要的权限,READ_PHONE_STATE、SEND_SMS、RECEIVE_SMS、INSTALL_SHORTCUT、READ_SMS、WRITE_SETTINGS、READ_CONTACTS、CHANGE_WIFI_STATE和CHANGE_NETWORK_STATE分别为安卓应用在读取手机状态、发送短信、接收短信、创建快捷方式、读取短信、写文件系统、读取通讯录、WIFI联网状态和联网状态查询中所需的权限。
进一步作为优选的实施方式,所述行为特征反映了安卓底层对权限的使用情况,所述行为特征的类别为加密应用程序接口类,所述加密应用程序接口类的描述包括AES、DES、BlowFish和RSA。
其中,AES、DES、BlowFish和RSA均为现有技术中常用的加密算法。
进一步作为优选的实施方式,所述复合特征的类别包括AD lib类和Load CodeActivity类,其中,AD lib类表征安卓广告库,AD lib类的描述包括AdMob广告插件、ChartBoost广告插件、AdColony广告插件和Mopub广告插件,Load Code Activity类反映了反编译后的源文件中DEX执行文件或者第三方库的加载情况,Load Code Activity类的描述包括加载DEX和加载第三方库,AD lib类和Load Code Activity类的特征值均为0或1。
进一步作为优选的实施方式,所述采用语法分析器从反编译后的源文件中提取安卓恶意应用的行为特征这一步骤,具体包括:
初始化语法分析器和权限列表字典树,所述权限列表字典树用于存储安卓恶意应用向操作系统申请的权限并供语法分析器在进行语法分析时查询;
将反编译后的源文件输入语法分析器进行语法分析,得到安卓恶意应用每个权限的类、函数和函数的使用路径,并根据安卓恶意应用所有权限的类和函数定义继承关系数据库;
对安卓恶意应用每个权限的类和函数进行数据清洗,得到清洗完的类和函数的使用路径;
根据清洗完的类和函数的使用路径以及反编译后的源文件,采用Shikra算法分析安卓恶意应用每个权限在各路径上的使用情况,得到安卓恶意应用的行为特征。
进一步作为优选的实施方式,所述根据清洗完的类和函数的使用路径以及反编译后的源文件,采用Shikra算法分析安卓恶意应用每个权限在各路径上的使用情况,得到安卓恶意应用的行为特征这一步骤,具体包括:
根据清洗完的类以及反编译后的源文件,得到安卓恶意应用对应权限在类和方法上的二元组(ClassUseCount,MethodUseCount),其中,ClassUseCount为类使用计数器,MethodUseCount为函数使用计数器;
根据当前变量的创建位置,判断当前变量的作用域是否为public类型的作用域:若是,则使类使用计数器自增1,并在记录当前存储权限类的寄存器编号后执行下一步骤;反之,则直接在记录当前存储权限类的寄存器编号后执行下一步骤,所述当前变量为安卓恶意应用当前权限的当前路径,当前存储权限类的寄存器用于存储安卓恶意应用当前权限的类别;
按设定的迭代算法遍历反编译后的源文件中虚拟机指令,所述设定的迭代算法在遍历过程中根据虚拟机指令的类型执行相应的操作:若虚拟机指令在调用函数的指令集合Qmethod中且该虚拟机指令的调用函数属于权限函数以及该虚拟机指令当前调用的寄存器编号等于当前存储权限类的寄存器编号,则使函数使用计数器自增1;若虚拟机指令在传递变量的指令集合Qmove中且该虚拟机指令的源寄存器编号等于当前存储权限类的寄存器编号,则更新当前存储权限类的寄存器编号为该虚拟机指令的目的寄存器编号;
所述调用函数的指令集合Qmethod的表达式为:
所述传递变量的指令集合Qmove的表达式为:
其中,invoke为smali语言中触发方法的语法指令集,virtual为触发虚拟方法的语法指令集,super为定义父类的指令集,direct为调用父类公有函数的指令集,static为静态成员定义的指令集,range为多寄存器访问指令集,iget和input分别为整型对寄存器的输入和输出,sget和sput分别为短整型对寄存器的输入输出,φ为空集,wide为长整型,object为对象表示,boolean为布尔类型,byte为字节类型,char为字符类型,short为短整型;
判断虚拟机指令是否遍历完,若是,则执行下一步骤,反之,则返回前一步骤;
输出二元组(ClassUseCount,MethodUseCount)。
进一步作为优选的实施方式,所述根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用这一步骤,具体包括:
根据得到的静态特征和行为特征,采用支持向量机的方法训练和测试出安卓恶意应用分类器;
根据安卓恶意应用分类器将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
与图2的方法相对应,本发明还提供了一种基于行为特征的安卓恶意应用分类系统,包括:
反编译模块,用于对输入的安卓应用样本进行反编译,得到反编译后的源文件;
语法分析和特征提取模块,用于对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征,所述安卓恶意应用的行为特征通过语法分析获取并反映了安卓恶意应用开发者的行为偏好;
分类模块,用于根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
下面结合说明书附图和具体实施例对本发明作进一步解释和说明。
实施例一
针对现有技术无法在保证恶意应用分类正确率的同时最大限度地降低分类的时间的问题,本发明提出了一种新的于行为特征的安卓恶意应用分类方法及系统,在保证了恶意分类正确率的情况下,大大降低了恶意应用检测的时间消耗。
下面从名词解释和具体实现过程这两方面对本发明整个Android恶意应用检测或分类过程进行详细说明。
(一)名称解释:
本发明涉及的专有名词如下:
SVM(Support Vector Machine):支持向量。在机器学习领域,支持向量机SVM是一个有监督的学习模型,通常用来进行模式识别、分类以及回归分析。
MKB(Multiple-Kernle Boost-SVM):与SVM类似,通过组合多个SVM构造出SVM池,并且计算它们的最优线性组合,最终得到一个强分类器。
MKL(Multiple-kernel learning):是多核学习算法的统称,广泛应用在图像识别等领域,针对异构数据的应用场景,主要解决传统基于核函数的学习算法中特征的解释性比较弱,并且训练时间较长等弱点。
反编译(decompile):指程序编译的逆向过程。通过执行文件得到原来的程序文件的分析过程,就是反编译。
待分类安卓应用集:指等待进行恶意检测或分类的Android手机应用集合。
语法分析:是指从程序文本语言到语法树之间转换的过程。通过把程序文本语言转换为语法树,能够通过树型遍历算法获取树中的程序信息。
Tire树:也叫字典树,是一种提供快速查询操作的树型数据结构。
(二)具体实现过程及实现原理
本发明整个Android恶意应用检测或分类过程如图3所示,其使用了静态分析技术和SVM分类器。
整个Android恶意应用检测或分类过程主要包含2个部分:数据分析和恶意检测部分。定义待分类安卓应用集S={s1,s2,.....,sm},本发明首先通过数据分析,得到每个待分类安卓应用si的特征向量θi;然后将θi输入到SVM分类器中,最终将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
本发明在进行数据分析时,需要先对输入的Android应用样本进行反编译,主要原因是,本发明需要在代码层面上对Android应用特征进行收集。当前能对APK包进行反编译的工具非常多,既可以反编译成Java源码,也可以反编译成Smali源代码。考虑到Java源码的反编译效果比Smali源代码差,容易出现代码丢失和语法缺失等问题,而且Java本身比Smali源代码更富有语义,更加难以分析。所以,本发明最终选择通过APKTOOL将APK包反编译成Smali源代码,然后通过Smali解析器对反编译的源码进行语法分析和特征收集。
区别于以往的静态分析法只选取普通的权限特征作为特征的方法,本发明还会收集Android应用的一些行为偏好的特征。对恶意应用样本进行统计,可以发现恶意应用开发者具有自己的行为偏好,如恶意应用开发者比较偏向使用固定的加密解密算法,以及在固定权限上有具有比较大的使用需求。这些行为特征独立于恶意应用样本,在当前恶意应用类型不断增长的环境下,相比于动态分析法,维护成本非常低且非常容易实现自动维护。
为了增加检测架构的鲁棒性,增加恶意应用的逃脱难度,本发明把特征主要分为基本特征和偏好特征两个部分,可从反编译的Smali源码和关键配置文件(简称反编译后的源文件,包括manifest.xml、string.xml文件等)中收集这些特征。同时,为了收集具有丰富语义的行为特征,如各个权限在实际Android应用中的使用情况等,本发明通过在底层构建一个Smali AST来提供可伸缩、高可用性的特征收集器。
基于以上理论基础,本发明收集的特征有行为特征Q、非行为特征W和复合特征E三类。
W类特征是指非行为特征,其属于Android应用的静态信息,故又可称为静态特征。W类特征基本上都记录在Android应用的配置文件上,W类特征可再细分Size类、Broadcast类和Permisson类。Size类指的是Android应用的安装包大小,单位是MB。Broadcast类和Permisson类均指的是Android反编译源码的Manifest配置文件中Android应用安装时向操作系统申请的权限。Permisson类和Broadcast类对应的特征值为0或者1;当发现Manifest配置文件中存在这个权限时,Permisson类或Broadcast类的特征值是1,否则为0。W类特征的特征表如表1所示。在Android的所有应用中,某些权限在恶意应用中的使用频率非常高,大部分的恶意操作都需要这些权限进行配合,这些权限可从表1的W类特征列表中获取。
表1 W类特征列表
特征类别 描述
W类:Size Android应用大小(单位MB)
W类:Broadcast BOOT_COMPLETED
W类:Broadcast SMS_RECEIEVED
W类:Broadcast CONNECTIVITY_CHANGE
W类:Broadcast DATA_SMS_RECEIVED
W类:Broadcast AIRPLANE_MODE
W类:Permisson READ_PHONE_STATE
W类:Permisson SEND_SMS
W类:Permisson RECEIVE_SMS
W类:Permisson INSTALL_SHORTCUT
W类:Permisson READ_SMS
W类:Permisson WRITE_SETTINGS
W类:Permisson READ_CONTACTS
W类:Permisson CHANGE_WIFI_STATE
W类:Permisson CHANGE_NETWORK_STATE
Q类特征是指行为类特征。W类特征对Permisson和Broadcast类别的权限申请进行了检查。而恶意应用为了逃脱恶意检测行为,会大量申请权限但不进行使用(大量申请权限是为了以后恶意操作有较高的灵活性)。所以Q类特征将对申请的权限在源代码中进行语法检测,以检查申请的权限是否有进行使用(一般检查的是对应底层Android调用函数和类的使用情况)。
而Android底层对权限的使用分成两类:一类是封装成类提供给用户使用,另外一类则是通过枚举变量表达当前的状态。例如Permisson类中SEND_SMS是发送短信的权限,其属于第一类,Android底层通过特定的类函数集合完成发送操作;而Permisson类中READ_CONTACTS是读取联系人信息的权限,联系人的信息都存储在对应的类枚举变量中,所以属于第二类。
对于第一类,本发明将侦听Smali源代码中对应类创建和函数使用的虚拟机指令,并且检查其类创建次数和函数调用次数作为SVM分类器的特征输入。
假设在Smali语法中,创建类对象的指令集集合为Qclass,调用函数的指令集集合为Qmethod,则有如下的定义:
Qclass={"const-class","new-instance","new_array"}
其中,const-class、new-instance和new_array分别为定义类、创建对象和创建新对象数组的指令集,
对于第二类,本发明通过侦听对应成员枚举变量的使用次数,作为SVM分类器的特征输入Qmove={"iget-λ","sget-λ","sput-λ","iput-λ"},其中,λ的定义如下:
λ∈{φ,"wide","object","boolean","byte","char","short"}。
Q类特征列表可如下表2所示:
表2Q类特征列表
特征类别 描述
Q类:Crypto API AES
Q类:Crypto API DES
Q类:Crypto API BlowFish
Q类:Crypto API RSA
表2中,Crypto API为WINDOWS系统的加密应用程序接口,AES、DES、BlowFish和RSA均为现有技术中常用的加密算法。
E类特征是同时具有非行为特征和行为特征的一类复合特征,其特征列表如表3所示。E类特征从APPBrain中获得当前全球最流行的广告插件,包括AdMob、Charoost、AdColony等,对于这些广告插件的检测分成了两部分,分别是Q类行为检测和W类非行为检测。W类非行为检测是在Manifest配置文件中,对相关加载权限的检测;Q类检测则是针对每个广告库对应的类和函数使用情况的检测。当且仅当Android应用拥有对应的权限,并且类和函数使用情况不为0时,对应的AD lib特征设置为1,其余情况设为0。而对于Load CodeActivity类的检测情况也类似,W类检测则是检测Android反编译包中是否包含加载的Dex执行文件或者第三方库,如果存在则检测代码集合C中是否有加载对应的Dex执行文件或者第三方lib的函数;当且仅当有加载的Dex执行文件和第三方库时,W类检测对应的检测项目作为1,否则都为0。
表3 E类特征列表
特征类别 描述
E类:AD lib AdMob广告插件
E类:AD lib ChartBoost广告插件
E类:AD lib AdColony广告插件
E类:AD lib Mopub广告插件
E类:Load Code Activity 加载DEX
E类:Load Code Activity 加载第三方lib
本发明针对静态特征的提取方式,可沿用传统静态分析法中的静态特征提取方法。
而本发明针对行为特征的提取方式,主要是针对恶意开发者在应用中的行为特征偏好来提取的,例如,恶意开发者会比较偏向使用哪种加密解密算法,或者比较偏向使用哪种权限,更进一步如何去使用这些权限。行为特征的信息主要集中在程序代码中。
在Android平台上,应用的运行环境和PC端的Java应用非常相似。Java应用通过编译器,编译成虚拟机指令集合在JVM虚拟机上运行。正常Java程序,只有这两个步骤,也就是说,经过java编译器,翻译成Java字节码即可在JVM上运行。但是Android平台上的DVM和PC平台的JVM最本质的区别在于JVM是通过栈式的结构运行,所以Java字节码本身是基于栈的结构来进行传递变量和赋值操作等;而Android平台上的DVM则基于寄存器进行赋值和变量传递操作。所以这两种虚拟机平台有着本质的区别。Android平台上的Java应用,在编译成Java字节码之后,需要通过Dex编译器将其编译DVM字节码;而本发明则更进一步,以DVM的字节码语言Smali作为语法分析对象,通过对Smali语言进行语法分析,获取其中的行为信息。
针对这些行为信息,本发明设计了专门的行为特征提取流程,如图4所示。其中,行为特征提取主要的目的是提取目标Android应用中特定类和函数的使用情况。
本发明行为特征提取的第一步,是初始化语法分析器,将输入的特征存储进字典树中。使用字典树主要目的是把查询的时间消耗控制在O(1)。
初始化之后,将APK个体反编译得到的Smali文件集输入到语法分析器中,然后,结合字典树进行语法分析,将每个权限在Smali代码中相关类和函数的使用路径挖掘出来。同时,本发明根据安卓恶意应用所有权限的类和函数定义继承关系数据库,以提供包含所有类及其函数的清单。
接着,进行数据清洗。数据清洗的主要的目的是为了防止目标应用中,可能会因存在相同类名或者函数名而造成最后的特征数据失真情况出现。假设对于权限ai,得到了Li个路径集,对于路径j有数据清洗时将迭代每一个权限调用路径j,并且根据Smali文件中的类信息检索权限列表,以检查对应的函数定义和成员变量是否存在同名的情况,如果同名,则将把对应的权限路径进行删除,不进行下一步的操作。
然后,本发明将对每个清洗完的类创建路径采用Shikra算法进行语法分析。假设Shikra算法的输入为权限ai的类使用路径j,则Shikra算法的输出为路径j上权限ai类和固定函数的使用次数,此时Shikra算法的源代码具体为:
上述源代码的具体描述为:
第一步:创建二元组(ClassUseCount,MethodUseCount),其中,ClassUseCount为类使用计数器,MethodUseCount为函数使用计数器。
第二步:通过创建变量的位置,判断当前变量的作用域(即根据Smali文件集中变量名定义地址确定作用域)。如果是public类型的作用域,则类使用计数器自增1,并且记录当前存储该类变量的寄存器编号。
第三步:按程序执行顺序,自上而下(即由4)到8))遍历全部的虚拟机指令:如果虚拟机指令在集合Qmethod中,并且该指令的调用函数属于权限函数以及当前调用的寄存器编号等于记录的当前存储该类变量的寄存器编号,则函数使用计数器自增1;如果虚拟机指令集在Qmove中,并且该指令使用的寄存器参数等于当前存储该类变量的寄存器编号,则更新记录的寄存器编号。
第五步:判断虚拟机指令是否遍历完,如果没有则跳转回第三步。
第六步:输出二元组(类使用计数器,函数使用计数器)。
在上述Shikra算法中,本发明将根据输入的指令集对权限ai在路径j上使用情况进行语法分析,首先将得到对应权限在类和方法上的二元组(ClassUseCount,MethodUseCount),接着将迭代遍历每一条指令,然后在每次迭代时检查指令在哪一个集合中(即检查指令的类型是调用函数的虚拟机指令集合,还是传递变量的指令集合):如果是传递变量的指令集并且指令的源寄存器等于当前存储权限类的寄存器Regrecord,Regrecord将会更新为该指令的目的寄存器。如果是调用函数的指令集,本发明将首先校验调用的函数是否为权限函数,其次,检查当前指令的源寄存器是否等于Regrecord;如果两者都满足,将会更新MethodUseCount。
为了验证本发明的恶意应用分类方法的检测性能,本发明在SVM分类器中分别使用了Single SVM、MKB和MKL这三种SVM分类器对安卓应用样本进行了分类测试和探究,最终发现本发明的分类检测正确率最高达到了99.0428%。
本发明提出的Android平台恶意应用分类方法,不仅使用普通的权限特征作为静态分析的特征,而且通过对程序分析引入了具有语义的行为特征,综合应用了静态分析法、语义分析法和支持向量机分类方法来进行安卓恶意应用分类,在保证了恶意分类正确率的情况下,相比动态分析法大大减少了恶意应用分类的时间消耗,更加适应了当前Android市场上应用规模的高增长、用户数量的高增长和恶意攻击类型的高增长的情况要求。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.一种基于行为特征的安卓恶意应用分类方法,其特征在于:包括以下步骤:
对输入的安卓应用样本进行反编译,得到反编译后的源文件;
对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征,所述安卓恶意应用的行为特征通过语法分析获取并反映了安卓恶意应用开发者的行为偏好;
根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
2.根据权利要求1所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述对输入的安卓应用样本进行反编译,得到反编译后的源文件这一步骤,具体包括:
输入给定的安卓恶意应用样本;
采用APKTOOL将安卓恶意应用样本的APK包反编译成Smali源代码,得到反编译后的源文件。
3.根据权利要求2所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征这一步骤,具体包括:
采用静态分析法从反编译后的源文件中提取安卓恶意应用的静态特征;
采用语法分析器从反编译后的源文件中提取安卓恶意应用的行为特征;
根提取的静态特征和行为特征得到复合特征。
4.根据权利要求3所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述静态特征的类别包括Size类、Broadcast类和Permisson类,其中,Size类是指安卓应用的安装包大小,Broadcast类和Permisson类均为反编译后的源文件中安卓应用安装时向操作系统申请的权限,Broadcast类和Permisson类的特征值均为0或1;Broadcast类的描述包括BOOT_COMPLETED、SMS_RECEIEVED、CONNECTIVITY_CHANGE、DATA_SMS_RECEIVED和AIRPLANE_MODE,Permisson类的描述包括READ_PHONE_STATE、SEND_SMS、RECEIVE_SMS、INSTALL_SHORTCUT、READ_SMS、WRITE_SETTINGS、READ_CONTACTS、CHANGE_WIFI_STATE和CHANGE_NETWORK_STATE,BOOT_COMPLETED、SMS_RECEIEVED、CONNECTIVITY_CHANGE、DATA_SMS_RECEIVED和AIRPLANE_MODE分别为安卓应用在启动期间的操作、发送信息、联网状态更换、接收短信和转变为飞行模式时所需要的权限,READ_PHONE_STATE、SEND_SMS、RECEIVE_SMS、INSTALL_SHORTCUT、READ_SMS、WRITE_SETTINGS、READ_CONTACTS、CHANGE_WIFI_STATE和CHANGE_NETWORK_STATE分别为安卓应用在读取手机状态、发送短信、接收短信、创建快捷方式、读取短信、写文件系统、读取通讯录、WIFI联网状态和联网状态查询中所需的权限。
5.根据权利要求4所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述行为特征反映了安卓底层对权限的使用情况,所述行为特征的类别为加密应用程序接口类,所述加密应用程序接口类的描述包括AES、DES、BlowFish和RSA。
6.根据权利要求5所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述复合特征的类别包括AD lib类和Load Code Activity类,其中,AD lib类表征安卓广告库,AD lib类的描述包括AdMob广告插件、ChartBoost广告插件、AdColony广告插件和Mopub广告插件,Load Code Activity类反映了反编译后的源文件中DEX执行文件或者第三方库的加载情况,Load Code Activity类的描述包括加载DEX和加载第三方库,AD lib类和LoadCodeActivity类的特征值均为0或1。
7.根据权利要求5所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述采用语法分析器从反编译后的源文件中提取安卓恶意应用的行为特征这一步骤,具体包括:
初始化语法分析器和权限列表字典树,所述权限列表字典树用于存储安卓恶意应用向操作系统申请的权限并供语法分析器在进行语法分析时查询;
将反编译后的源文件输入语法分析器进行语法分析,得到安卓恶意应用每个权限的类、函数和函数的使用路径,并根据安卓恶意应用所有权限的类和函数定义继承关系数据库;
对安卓恶意应用每个权限的类和函数进行数据清洗,得到清洗完的类和函数的使用路径;
根据清洗完的类和函数的使用路径以及反编译后的源文件,采用Shikra算法分析安卓恶意应用每个权限在各路径上的使用情况,得到安卓恶意应用的行为特征。
8.根据权利要求7所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述根据清洗完的类和函数的使用路径以及反编译后的源文件,采用Shikra算法分析安卓恶意应用每个权限在各路径上的使用情况,得到安卓恶意应用的行为特征这一步骤,具体包括:
根据清洗完的类以及反编译后的源文件,得到安卓恶意应用对应权限在类和方法上的二元组(ClassUseCount,MethodUseCount),其中,ClassUseCount为类使用计数器,MethodUseCount为函数使用计数器;
根据当前变量的创建位置,判断当前变量的作用域是否为public类型的作用域:若是,则使类使用计数器自增1,并在记录当前存储权限类的寄存器编号后执行下一步骤;反之,则直接在记录当前存储权限类的寄存器编号后执行下一步骤,所述当前变量为安卓恶意应用当前权限的当前路径,当前存储权限类的寄存器用于存储安卓恶意应用当前权限的类别;
按设定的迭代算法遍历反编译后的源文件中虚拟机指令,所述设定的迭代算法在遍历过程中根据虚拟机指令的类型执行相应的操作:若虚拟机指令在调用函数的指令集合Qmethod中且该虚拟机指令的调用函数属于权限函数以及该虚拟机指令当前调用的寄存器编号等于当前存储权限类的寄存器编号,则使函数使用计数器自增1;若虚拟机指令在传递变量的指令集合Qmove中且该虚拟机指令的源寄存器编号等于当前存储权限类的寄存器编号,则更新当前存储权限类的寄存器编号为该虚拟机指令的目的寄存器编号;
所述调用函数的指令集合Qmethod的表达式为:
所述传递变量的指令集合Qmove的表达式为:
其中,invoke为smali语言中触发方法的语法指令集,virtual为触发虚拟方法的语法指令集,super为定义父类的指令集,direct为调用父类公有函数的指令集,static为静态成员定义的指令集,range为多寄存器访问指令集,iget和input分别为整型对寄存器的输入和输出,sget和sput分别为短整型对寄存器的输入输出,φ为空集,wide为长整型,object为对象表示,boolean为布尔类型,byte为字节类型,char为字符类型,short为短整型;
判断虚拟机指令是否遍历完,若是,则执行下一步骤,反之,则返回前一步骤;
输出二元组(ClassUseCount,MethodUseCount)。
9.根据权利要求1-8任一项所述的一种基于行为特征的安卓恶意应用分类方法,其特征在于:所述根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用这一步骤,具体包括:
根据得到的静态特征和行为特征,采用支持向量机的方法训练和测试出安卓恶意应用分类器;
根据安卓恶意应用分类器将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
10.一种基于行为特征的安卓恶意应用分类系统,其特征在于:包括:
反编译模块,用于对输入的安卓应用样本进行反编译,得到反编译后的源文件;
语法分析和特征提取模块,用于对反编译后的源文件进行语法分析和特征提取,得到安卓恶意应用的静态特征和行为特征,所述安卓恶意应用的行为特征通过语法分析获取并反映了安卓恶意应用开发者的行为偏好;
分类模块,用于根据得到的静态特征和行为特征采用支持向量机分类器对待分类安卓应用进行分类,以将待分类安卓应用划分为安卓恶意应用或安卓非恶意应用。
CN201810037514.2A 2018-01-16 2018-01-16 一种基于行为特征的安卓恶意应用分类方法及系统 Active CN108090360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810037514.2A CN108090360B (zh) 2018-01-16 2018-01-16 一种基于行为特征的安卓恶意应用分类方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810037514.2A CN108090360B (zh) 2018-01-16 2018-01-16 一种基于行为特征的安卓恶意应用分类方法及系统

Publications (2)

Publication Number Publication Date
CN108090360A true CN108090360A (zh) 2018-05-29
CN108090360B CN108090360B (zh) 2021-04-13

Family

ID=62182213

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810037514.2A Active CN108090360B (zh) 2018-01-16 2018-01-16 一种基于行为特征的安卓恶意应用分类方法及系统

Country Status (1)

Country Link
CN (1) CN108090360B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670310A (zh) * 2019-01-28 2019-04-23 杭州师范大学 一种基于半监督K-Means聚类算法的Android恶意软件检测方法
CN109684837A (zh) * 2018-11-21 2019-04-26 全球能源互联网研究院有限公司 一种面向电力企业的移动应用恶意软件检测方法及系统
US20200104490A1 (en) * 2018-10-01 2020-04-02 Blackberry Limited Analyzing binary software code
CN111459822A (zh) * 2020-04-01 2020-07-28 北京字节跳动网络技术有限公司 系统组件数据的提取方法、装置、设备及可读介质
CN112328316A (zh) * 2019-08-02 2021-02-05 Tcl集团股份有限公司 一种app优化方法、移动终端及存储介质
CN113360910A (zh) * 2021-06-30 2021-09-07 中国农业银行股份有限公司 恶意应用的检测方法、装置、服务器和可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181677A1 (en) * 2003-03-14 2004-09-16 Daewoo Educational Foundation Method for detecting malicious scripts using static analysis
CN104834858A (zh) * 2015-04-24 2015-08-12 南京邮电大学 一种android应用中恶意代码的静态检测方法
CN105930267A (zh) * 2016-04-15 2016-09-07 中国工商银行股份有限公司 一种基于数据库字典的存储过程静态检测方法及系统
US9594904B1 (en) * 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040181677A1 (en) * 2003-03-14 2004-09-16 Daewoo Educational Foundation Method for detecting malicious scripts using static analysis
US9594904B1 (en) * 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
CN104834858A (zh) * 2015-04-24 2015-08-12 南京邮电大学 一种android应用中恶意代码的静态检测方法
CN105930267A (zh) * 2016-04-15 2016-09-07 中国工商银行股份有限公司 一种基于数据库字典的存储过程静态检测方法及系统
CN107180192A (zh) * 2017-05-09 2017-09-19 北京理工大学 基于多特征融合的安卓恶意应用程序检测方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
卜义云: ""基于机器学习的Android恶意软件静态检测系统的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200104490A1 (en) * 2018-10-01 2020-04-02 Blackberry Limited Analyzing binary software code
US11347850B2 (en) * 2018-10-01 2022-05-31 Blackberry Limited Analyzing binary software code
CN109684837A (zh) * 2018-11-21 2019-04-26 全球能源互联网研究院有限公司 一种面向电力企业的移动应用恶意软件检测方法及系统
CN109684837B (zh) * 2018-11-21 2024-03-19 全球能源互联网研究院有限公司 一种面向电力企业的移动应用恶意软件检测方法及系统
CN109670310A (zh) * 2019-01-28 2019-04-23 杭州师范大学 一种基于半监督K-Means聚类算法的Android恶意软件检测方法
CN112328316A (zh) * 2019-08-02 2021-02-05 Tcl集团股份有限公司 一种app优化方法、移动终端及存储介质
CN111459822A (zh) * 2020-04-01 2020-07-28 北京字节跳动网络技术有限公司 系统组件数据的提取方法、装置、设备及可读介质
CN111459822B (zh) * 2020-04-01 2023-10-03 抖音视界有限公司 系统组件数据的提取方法、装置、设备及可读介质
CN113360910A (zh) * 2021-06-30 2021-09-07 中国农业银行股份有限公司 恶意应用的检测方法、装置、服务器和可读存储介质

Also Published As

Publication number Publication date
CN108090360B (zh) 2021-04-13

Similar Documents

Publication Publication Date Title
CN108090360A (zh) 一种基于行为特征的安卓恶意应用分类方法及系统
Li et al. Understanding android app piggybacking: A systematic study of malicious code grafting
CN108304720A (zh) 一种基于机器学习的安卓恶意程序检测方法
KR101246623B1 (ko) 악성 애플리케이션 진단 장치 및 방법
Bakour et al. VisDroid: Android malware classification based on local and global image features, bag of visual words and machine learning techniques
CN108133139A (zh) 一种基于多运行环境行为比对的安卓恶意应用检测系统
Ceschin et al. The need for speed: An analysis of brazilian malware classifiers
CN107341401A (zh) 一种基于机器学习的恶意应用监测方法和设备
CN106951780A (zh) 重打包恶意应用的静态检测方法和装置
CN103473506A (zh) 用于识别恶意apk文件的方法和装置
RU91213U1 (ru) Система автоматического составления описания и кластеризации различных, в том числе и вредоносных, объектов
CN109614795B (zh) 一种事件感知的安卓恶意软件检测方法
CN104866764B (zh) 一种基于对象引用图的Android手机恶意软件检测方法
Wang et al. LSCDroid: Malware detection based on local sensitive API invocation sequences
CN113158251B (zh) 应用程序隐私泄露检测方法、系统、终端及介质
CN104680065A (zh) 病毒检测方法、装置及设备
CN112688966A (zh) webshell检测方法、装置、介质和设备
Pirch et al. Tagvet: Vetting malware tags using explainable machine learning
Namrud et al. Deep-layer clustering to identify permission usage patterns of android app categories
CN105631336A (zh) 检测移动装置上的恶意文件的系统及方法
Feichtner et al. Obfuscation-resilient code recognition in Android apps
CN109284590A (zh) 访问行为安全防护的方法、设备、存储介质及装置
CN112817877A (zh) 异常脚本检测方法、装置、计算机设备和存储介质
CN116932381A (zh) 小程序安全风险自动化评估方法及相关设备
CN111324893A (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
GR01 Patent grant
GR01 Patent grant