CN103473504A - 一种基于类别分析的Android恶意代码检测方法 - Google Patents

一种基于类别分析的Android恶意代码检测方法 Download PDF

Info

Publication number
CN103473504A
CN103473504A CN 201310443171 CN201310443171A CN103473504A CN 103473504 A CN103473504 A CN 103473504A CN 201310443171 CN201310443171 CN 201310443171 CN 201310443171 A CN201310443171 A CN 201310443171A CN 103473504 A CN103473504 A CN 103473504A
Authority
CN
China
Prior art keywords
android
authority
classification
program
malicious code
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
CN 201310443171
Other languages
English (en)
Other versions
CN103473504B (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong 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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201310443171.7A priority Critical patent/CN103473504B/zh
Publication of CN103473504A publication Critical patent/CN103473504A/zh
Application granted granted Critical
Publication of CN103473504B publication Critical patent/CN103473504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明提出一种Android恶意软件检测方法。采用基于权限信息的类别分类方法,从待检测的Android程序提取权限信息,输入到分类模型中进行分类,将分类结果与其声明的类别进行比较,根据判别规则判断该待检测Android程序的恶意威胁度。本发明适用于海量Android应用程序的自动化恶意代码检测,具有简单、高效、快速的特点。

Description

一种基于类别分析的Android恶意代码检测方法
技术领域
本发明涉及移动互联网技术领域,主要涉及一种检测Android系统上的恶意代码的方法。
背景技术
近年来,基于Android系统的智能手机发展十分迅速,IDC的最新统计报告显示,2012年第4季度,Android系统的智能手机出货量达到了1.598亿部,市场占有率达到70.1%,截止2013年5月,全球Android设备激活量则已经突破9亿。基于Android系统的应用程序数量也在不断增加,这些应用程序涉及日常生活,办公娱乐,电子商务等众多领域,Google宣称,截止2013年5月,Android官方电子市场Google Play应用程序下载量达到480亿。同时,除了Google Play,还存在Amazon、AppBrain、安智等众多第三方电子市场。
Android系统的普及也伴随着其上恶意代码井喷式的发展速度。F-Secure移动威胁报告显示2013年第一季度发现新的恶意代码家族和变种数目为136个,比上一季度增加41.67%。Android恶意代码以恶意吸费、窃取用户隐私为主要目的,严重威胁了广大用户的切身利益。因此,Android程序的自动化分析无论是对恶意代码分析者,还是普通Android系统用户,都有重要意义
目前,Android程序的分析主要有静态和动态两种方法:
1.常用静态方法包括:根据权限信息进行聚类,发现已知恶意代码家族的恶意样本,如DroidMat;以AndroidManifest以及反编译后的代码中提取相关信息,使用数据流和控制流方法,如SCanDroid;构建特定的特征向量,采用静态特征匹配的方法,如RiskRanker;
2.常用的动态方法包括:使用Android程序运行时的特征行为检测恶意代码,如DroidRanger;收集用户使用数据,采用聚类算法检测恶意代码,如Crowdroid错误!未找到引用源。;使用动态污点跟踪方法监控隐私泄露行为,如TaintDroid。
上述恶意代码检测方法一方面过于复杂,另一方面在实际应用中存在问题,或者只能检测已知恶意代码家族的样本。如RiskRanker需要提取大量的特征信息构建特征向量,同时只能检测已知恶意代码家族的样本;TaintDroid可以动态检测Android程序的隐私泄露问题,但是需要修改Android源码,实现复杂度较高,对于频繁升级更新的Android系统,需要针对不同Android系统版本进行源码修改。
发明内容
针对现有技术的不足,本发明的目的在于提供一种Android恶意代码检测的新思路,解决海量Android应用程序的自动化恶意代码检测问题。
本发明的目的是通过以下技术方案来实现的:
一种基于类别分析的Android恶意代码检测方法,包括以下步骤:
第一步,采集预定量M个Android程序,将其划分为6个类别:通信、拍照、地图、网络、系统、普通;
第二步,从上述6个类别的每个类别中随机抽取N个样本,对其权限进行统计分析,提取出权限使用率最高的前L个权限作为类别分析的属性集;
第三步,根据第二步提取的L个权限,对第一步中M个Android应用程序进行权限过滤和类别标定,L个权限中使用到的权限标为1,未使用的权限标为0,同时标定类别信息;
第四步,基于经过第三步处理的所述M个Android应用程序,使用分类工具和分类算法进行分类训练,生成相应的分类模型,该分类模型为每种权限组合下对应的类别信息;
第五步,获取待测Android程序的类别信息;
第六步,提取该待测Android程序的AndroidManifest.xml文件,该文件包含该程序所有权限的使用情况,对AndroidManifest文件进行解码;
第七步,根据第六步解码的AndroidManifest文件,解析该待测Android程序使用的权限信息,并将权限信息转换成arff格式的数据;
第八步,根据第四步生成的分类模型,以第七步生成的arff数据为输入,对该待测Android程序进行分类,生成分类矩阵;
第九步,对于各个分类模型产生的分类矩阵,采用融合方法进行融合,得到最终的分类结果;
第十步,根据判别规则,以第九步的分类结果和第五步获得的类别信息为输入,判断待测Android程序的恶意威胁度。
本发明具有简单、高效、快速的特点,便于为Android第三方电子市场提供基本的自动审核功能,同时为个人用户提供基本的扫描和保护。
附图说明
图1是本发明提出的Android恶意代码检测方法中解析代码权限信息的流程示意图;
图2是根据分类结果和类别信息,判断待测Android程序是否存在恶意行为的流程示意图。
具体实施方式
以下结合附图对本发明的技术方案进行详细说明。
本发明的整体思路是采用基于权限信息的类别分类方法,对待检测的Android程序提取权限信息,输入到分类模型中进行分类,将分类结果与其声明的类别进行比较,根据判别规则判断是否存在恶意行为。
参考图1、2,在一个具体实施例中,本发明包括下述步骤:
第一步,采集预定量M个Android程序,将其划分为6个类别:通信、拍照、地图、网络、系统、普通。本领域技术人员应当明了,其中预定量M的取值应足够大以满足样本分析的需要。在特定实施例中,Android程序可以从Google Play上采集获得,M的取值为10,210。
第二步,从上述6个类别的每个类别中随机抽取N个样本,对其权限进行统计分析,提取出权限使用率最高的前L个权限作为类别分析的属性集。同理,其中N的取值也应满足样本分析的需要。在一个特定实施例中,N取值为1000,此时L为51,这些选取的权限如下:
1.INTERNET
2.READ_PHONE_STATE
3.WRITE_EXTERNAL_STORAGE
4.ACCESS_NETWORK_STATE
5.ACCESS_FINE_LOCATION
6.VIBRATE
7.ACCESS_COARSE_LOCATION
8.WAKE_LOCK
9.READ_CONTACTS
10.CAMERA
11.CALL_PHONE
12.WRITE_SETTINGS
13.RECEIVE_BOOT_COMPLETED
14.ACCESS_WIFI_STATE
15.SEND_SMS
16.RESTART_PACKAGES
17.READ_SMS
18.WRITE_CONTACTS
19.READ_LOGS
20.RECEIVE_SMS
21.GET_TASKS
22.WRITE_SMS
23.MODIFY_PHONE_STATE
24.MOUNT_UNMOUNT_FILESYSTEMS
25.GET_ACCOUNTS
26.CHANGE_WIFI_STATE
27.PROCESS_OUTGOING_CALLS
28.DISABLE_KEYGUARD
29.RECORD_AUDIO
30.CHANGE_NETWORK_STATE
31.MODIFY_AUDIO_SETTINGS
32.KILL_BACKGROUND_PROCESSES
33.FLASHLIGHT
34.BLUETOOTH
35.SET_WALLPAPER
36.ACCESS_MOCK_LOCATION
37.ACCESS_LOCATION_EXTRA_COMMANDS
38.CALL_PRIVILEGED
39.RECEIVE_MMS
40.WRITE_SYNC_SETTINGS
41.BLUETOOTH_ADMIN
42.READ_SYNC_SETTINGS
43.WRITE_APN_SETTINGS
44.INSTALL_PACKAGES
45.GET_PACKAGE_SIZE
46.WRITE_SECURE_SETTINGS
47.ACCESS_GPS
48.WRITE_EXTERNAL_STORAGES
49.SET_ORIENTATION
50.USE_CREDENTIALS
51.MANAGE_ACCOUNTS
第三步,根据第二步提取的L个权限,对第一步中M个Android应用程序进行权限过滤和类别标定,L个权限中使用到的权限标为1,未使用的权限标为0,同时标定类别信息;
第四步,基于经过第三步处理的所述M个Android应用程序,使用分类工具和分类算法进行分类训练,生成相应的分类模型,该分类模型为每种权限组合下对应的类别信息。在特定实施例中,分类工具例如为Weka,分类算法例如为NaiveBayes、BayesNet、ID3、DecisonTable以及J48算法。
第五步,获取待测Android程序的类别信息(即该Android程序声明的类别的原始类别信息)。对于从Android第三方市场获取的Android程序,每个程序都有定义的对应类别信息,故可以较容易的获取其类别;对于类别信息未知的Android应用程序,则需要人工判别,将应用程序安装到Android系统设备上,根据其功能做人工标定。
第六步,提取该待测Android程序的AndroidManifest.xml文件,该文件包含该程序所有权限的使用情况,对AndroidManifest文件进行解码;
第七步,根据第六步解码的AndroidManifest文件,解析该待测Android程序使用的权限信息,并将权限信息转换成arff格式的数据;
第八步,根据第四步生成的分类模型,以第七步生成的arff数据为输入,对该待测Android程序进行分类,生成分类矩阵;
第九步,对于各个分类模型产生的分类矩阵,采用融合方法进行融合,得到最终的分类结果。在特定实施例中,所述融合方法可以是Bagging、Boosting、投票法等。
第十步,根据判别规则,以第九步的分类结果和第五步获得的类别信息为输入,判断待测Android程序的恶意威胁度。在特定实施例中,通过事先对现有Android程序样本库中大量具有已知实际类别和恶意威胁程度的Android程序样本进行统计分析,得到一个经验性的判别规则。其中,根据这些Android程序所声明的原始类别信息、实际类别及其恶意威胁程度(分为“高”、“中”、“低”),得到如表1所示的对应关系。
表1恶意代码判别规则
Figure BDA0000387569710000061
Figure BDA0000387569710000071
由此,本发明可以判断待测Android程序是否存在恶意行为,从而便于为Android第三方电子市场提供基本的自动审核功能,同时为个人用户提供基本的扫描和保护。
以上利用具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (5)

1.一种基于类别分析的Android恶意代码检测方法,包括以下步骤:
第一步,采集预定量M个Android程序,将其划分为6个类别:通信、拍照、地图、网络、系统、普通;
第二步,从上述6个类别的每个类别中随机抽取N个样本,对其权限进行统计分析,提取出权限使用率最高的前L个权限作为类别分析的属性集;
第三步,根据第二步提取的L个权限,对第一步中M个Android应用程序进行权限过滤和类别标定,L个权限中使用到的权限标为1,未使用的权限标为0,同时标定类别信息;
第四步,基于经过第三步处理的所述M个Android应用程序,使用分类工具和分类算法进行分类训练,生成相应的分类模型,该分类模型为每种权限组合下对应的类别信息;
第五步,获取待测Android程序的类别信息;
第六步,提取该待测Android程序的AndroidManifest.xml文件,该文件包含该程序所有权限的使用情况,对AndroidManifest文件进行解码;
第七步,根据第六步解码的AndroidManifest文件,解析该待测Android程序使用的权限信息,并将权限信息转换成arff格式的数据;
第八步,根据第四步生成的分类模型,以第七步生成的arff数据为输入,对该待测Android程序进行分类,生成分类矩阵;
第九步,对于各个分类模型产生的分类矩阵,采用融合方法进行融合,得到最终的分类结果;
第十步,根据判别规则,以第九步的分类结果和第五步获得的类别信息为输入,判断待测Android程序的恶意威胁度。
2.根据权利要求1所述的基于类别分析的Android恶意代码检测步骤,第四步中,所述分类工具为Weka,所述分类算法包括NaiveBayes、BayesNet、ID3、DecisonTable以及J48算法。
3.根据权利要求1所述的基于类别分析的Android恶意代码检测步骤,第五步中,对于从Android第三方电子市场获取的Android程序,每个程序都有对应的类别信息,对于类别信息未知的Android应用程序,则将应用程序安装到Android系统设备上,根据其功能做人工标定。
4.根据权利要求1所述的基于类别分析的Android恶意代码检测方法,第九步中,所述融合方法为Bagging、Boosting、投票法等。
5.根据权利要求1所述的基于类别分析的Android恶意代码检测方法,第十步中,所述判别规则如下表所示:
Figure FDA0000387569700000031
CN201310443171.7A 2013-09-25 2013-09-25 一种基于类别分析的Android恶意代码检测方法 Active CN103473504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310443171.7A CN103473504B (zh) 2013-09-25 2013-09-25 一种基于类别分析的Android恶意代码检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310443171.7A CN103473504B (zh) 2013-09-25 2013-09-25 一种基于类别分析的Android恶意代码检测方法

Publications (2)

Publication Number Publication Date
CN103473504A true CN103473504A (zh) 2013-12-25
CN103473504B CN103473504B (zh) 2016-05-25

Family

ID=49798350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310443171.7A Active CN103473504B (zh) 2013-09-25 2013-09-25 一种基于类别分析的Android恶意代码检测方法

Country Status (1)

Country Link
CN (1) CN103473504B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104091118A (zh) * 2014-07-09 2014-10-08 北京智谷睿拓技术服务有限公司 权限安全风险确定方法及确定装置
CN104091071A (zh) * 2014-07-09 2014-10-08 北京智谷睿拓技术服务有限公司 应用程序的风险确定方法及确定装置
CN104091117A (zh) * 2014-07-09 2014-10-08 北京智谷睿拓技术服务有限公司 基于安全风险的聚类方法及聚类装置
CN104156467A (zh) * 2014-08-22 2014-11-19 北京智谷睿拓技术服务有限公司 Api推荐方法及api推荐装置
CN104462971A (zh) * 2014-12-17 2015-03-25 北京奇虎科技有限公司 根据应用程序声明特征识别恶意应用程序的方法和装置
CN104766008A (zh) * 2014-01-07 2015-07-08 腾讯科技(深圳)有限公司 应用程序安装包的安全检测方法及服务器
CN104809395A (zh) * 2015-04-23 2015-07-29 天津大学 一种轻量级安卓恶意软件快速判断方法
CN104834857A (zh) * 2015-03-27 2015-08-12 清华大学深圳研究生院 批量安卓恶意软件检测方法及装置
CN104123500B (zh) * 2014-07-22 2017-07-28 北京知多星科技有限公司 一种基于深度学习的Android平台恶意应用检测方法及装置
CN104834857B (zh) * 2015-03-27 2018-02-09 清华大学深圳研究生院 批量安卓恶意软件检测方法及装置
CN109670310A (zh) * 2019-01-28 2019-04-23 杭州师范大学 一种基于半监督K-Means聚类算法的Android恶意软件检测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136471B (zh) * 2011-11-25 2015-12-16 中国科学院软件研究所 一种恶意Android应用程序检测方法和系统
CN103023871B (zh) * 2012-11-16 2015-05-20 华中科技大学 一种基于云平台的Android权限提升攻击检测系统和方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104766008A (zh) * 2014-01-07 2015-07-08 腾讯科技(深圳)有限公司 应用程序安装包的安全检测方法及服务器
CN104091118B (zh) * 2014-07-09 2017-07-04 北京智谷睿拓技术服务有限公司 权限安全风险确定方法及确定装置
CN104091071A (zh) * 2014-07-09 2014-10-08 北京智谷睿拓技术服务有限公司 应用程序的风险确定方法及确定装置
CN104091117A (zh) * 2014-07-09 2014-10-08 北京智谷睿拓技术服务有限公司 基于安全风险的聚类方法及聚类装置
CN104091118A (zh) * 2014-07-09 2014-10-08 北京智谷睿拓技术服务有限公司 权限安全风险确定方法及确定装置
CN104091117B (zh) * 2014-07-09 2018-09-04 北京智谷睿拓技术服务有限公司 基于安全风险的聚类方法及聚类装置
CN104091071B (zh) * 2014-07-09 2017-11-07 北京智谷睿拓技术服务有限公司 应用程序的风险确定方法及确定装置
CN104123500B (zh) * 2014-07-22 2017-07-28 北京知多星科技有限公司 一种基于深度学习的Android平台恶意应用检测方法及装置
CN104156467A (zh) * 2014-08-22 2014-11-19 北京智谷睿拓技术服务有限公司 Api推荐方法及api推荐装置
CN104156467B (zh) * 2014-08-22 2018-05-29 北京智谷睿拓技术服务有限公司 Api推荐方法及api推荐装置
CN104462971A (zh) * 2014-12-17 2015-03-25 北京奇虎科技有限公司 根据应用程序声明特征识别恶意应用程序的方法和装置
CN104834857A (zh) * 2015-03-27 2015-08-12 清华大学深圳研究生院 批量安卓恶意软件检测方法及装置
CN104834857B (zh) * 2015-03-27 2018-02-09 清华大学深圳研究生院 批量安卓恶意软件检测方法及装置
CN104809395A (zh) * 2015-04-23 2015-07-29 天津大学 一种轻量级安卓恶意软件快速判断方法
CN109670310A (zh) * 2019-01-28 2019-04-23 杭州师范大学 一种基于半监督K-Means聚类算法的Android恶意软件检测方法

Also Published As

Publication number Publication date
CN103473504B (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
CN103473504B (zh) 一种基于类别分析的Android恶意代码检测方法
Chan et al. Static detection of Android malware by using permissions and API calls
Li et al. An Android malware detection method based on AndroidManifest file
CN103440459B (zh) 一种基于函数调用的Android恶意代码检测方法
JP6228966B2 (ja) マルウェアを検出するコンピューティングデバイス
CN103309808B (zh) 基于标签的安卓用户隐私泄露黑盒检测方法及系统
US10216954B2 (en) Privacy detection of a mobile application program
US10986103B2 (en) Signal tokens indicative of malware
CN103077344A (zh) 终端和使用该终端提供应用的风险的方法
CN106599688B (zh) 一种基于应用类别的安卓恶意软件检测方法
Jang et al. Andro-profiler: anti-malware system based on behavior profiling of mobile malware
CN103839005A (zh) 移动操作系统的恶意软件检测方法和恶意软件检测系统
US20160094574A1 (en) Determining malware based on signal tokens
CN105357204B (zh) 生成终端识别信息的方法及装置
CN104809397A (zh) 一种基于动态监控的Android恶意软件的检测方法及系统
CN108090360B (zh) 一种基于行为特征的安卓恶意应用分类方法及系统
Li et al. Android malware detection based on static analysis of characteristic tree
CN108681671A (zh) 一种Android移动攻击溯源方法
CN108073813B (zh) 一种Android应用程序溢权漏洞检测和恶意行为识别方法
CN107273746A (zh) 一种基于apk字符串特征的变种恶意软件检测方法
CN104809395A (zh) 一种轻量级安卓恶意软件快速判断方法
CN105760761A (zh) 软件行为分析方法和装置
Sun et al. Malware detection on Android smartphones using keywords vector and SVM
CN104182681A (zh) 基于hook的iOS系统关键行为检测装置和方法
Liccardi et al. Improving mobile app selection through transparency and better permission analysis

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