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

文档序号:6513163阅读:281来源:国知局
一种基于类别分析的Android恶意代码检测方法
【专利摘要】本发明提出一种Android恶意软件检测方法。采用基于权限信息的类别分类方法,从待检测的Android程序提取权限信息,输入到分类模型中进行分类,将分类结果与其声明的类别进行比较,根据判别规则判断该待检测Android程序的恶意威胁度。本发明适用于海量Android应用程序的自动化恶意代码检测,具有简单、高效、快速的特点。
【专利说明】—种基于类别分析的Android恶意代码检测方法
【技术领域】
[0001]本发明涉及移动互联网【技术领域】,主要涉及一种检测Android系统上的恶意代码的方法。
【背景技术】
[0002]近年来,基于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、安智等众多第三方电子市场。
[0003]Android系统的普及也伴随着其上恶意代码井喷式的发展速度。F-Secure移动威胁报告显示2013年第一季度发现新的恶意代码家族和变种数目为136个,比上一季度增加41.67 % ο Android恶意代码以恶意吸费、切取用户隐私为王要目的,严重威胁了广大用户的切身利益。因此,Android程序的自动化分析无论是对恶意代码分析者,还是普通Android系统用户,都有重要意义
[0004]目前,Android程序的分析主要有静态和动态两种方法:
[0005]1.常用静态方法包括:根据权限信息进行聚类,发现已知恶意代码家族的恶意样本,如DroidMat ;以AndroidManifest以及反编译后的代码中提取相关信息,使用数据流和控制流方法,如SCanDroid ;构建特定的特征向量,采用静态特征匹配的方法,如RiskRanker ;
[0006]2.常用的动态方法包括:使用Android程序运行时的特征行为检测恶意代码,如DroidRanger ;收集用户使用数据,采用聚类算法检测恶意代码,如Crowdroid错误!未找到引用源。;使用动态污点跟踪方法监控隐私泄露行为,如TaintDiOicL
[0007]上述恶意代码检测方法一方面过于复杂,另一方面在实际应用中存在问题,或者只能检测已知恶意代码家族的样本。如RiskRanker需要提取大量的特征信息构建特征向量,同时只能检测已知恶意代码家族的样本;TaintDroid可以动态检测Android程序的隐私泄露问题,但是需要修改Android源码,实现复杂度较高,对于频繁升级更新的Android系统,需要针对不同Android系统版本进行源码修改。

【发明内容】

[0008]针对现有技术的不足,本发明的目的在于提供一种Android恶意代码检测的新思路,解决海量Android应用程序的自动化恶意代码检测问题。
[0009]本发明的目的是通过以下技术方案来实现的:
[0010]一种基于类别分析的Android恶意代码检测方法,包括以下步骤:[0011]第一步,采集预定量M个Android程序,将其划分为6个类别:通信、拍照、地图、网络、系统、普通;
[0012]第二步,从上述6个类别的每个类别中随机抽取N个样本,对其权限进行统计分析,提取出权限使用率最高的前L个权限作为类别分析的属性集;
[0013]第三步,根据第二步提取的L个权限,对第一步中M个Android应用程序进行权限过滤和类别标定,L个权限中使用到的权限标为1,未使用的权限标为0,同时标定类别信息;
[0014]第四步,基于经过第三步处理的所述M个Android应用程序,使用分类工具和分类算法进行分类训练,生成相应的分类模型,该分类模型为每种权限组合下对应的类别信息;
[0015]第五步,获取待测Android程序的类别信息;
[0016]第六步,提取该待测Android程序的AndroidManifest.xml文件,该文件包含该程序所有权限的使用情况,对AndroidManifest文件进行解码;
[0017]第七步,根据第六步解码的AndroidManifest文件,解析该待测Android程序使用的权限信息,并将权限信息转换成arff格式的数据;
[0018]第八步,根据第四步生成的分类模型,以第七步生成的arff数据为输入,对该待测Android程序进行分类,生成分类矩阵;
[0019]第九步,对于各个分类模型产生的分类矩阵,采用融合方法进行融合,得到最终的分类结果;
[0020]第十步,根据判别规则,以第九步的分类结果和第五步获得的类别信息为输入,判断待测Android程序的恶意威胁度。
[0021]本发明具有简单、高效、快速的特点,便于为Android第三方电子市场提供基本的自动审核功能,同时为个人用户提供基本的扫描和保护。
【专利附图】

【附图说明】
[0022]图1是本发明提出的Android恶意代码检测方法中解析代码权限信息的流程示意图;
[0023]图2是根据分类结果和类别信息,判断待测Android程序是否存在恶意行为的流程不意图。
【具体实施方式】
[0024]以下结合附图对本发明的技术方案进行详细说明。
[0025]本发明的整体思路是采用基于权限信息的类别分类方法,对待检测的Android程序提取权限信息,输入到分类模型中进行分类,将分类结果与其声明的类别进行比较,根据判别规则判断是否存在恶意行为。
[0026]参考图1、2,在一个具体实施例中,本发明包括下述步骤:
[0027]第一步,采集预定量M个Android程序,将其划分为6个类别:通信、拍照、地图、网络、系统、普通。本领域技术人员应当明了,其中预定量M的取值应足够大以满足样本分析的需要。在特定实施例中,Android程序可以从Google Play上采集获得,M的取值为10,210。
[0028]第二步,从上述6个类别的每个类别中随机抽取N个样本,对其权限进行统计分析,提取出权限使用率最高的前L个权限作为类别分析的属性集。同理,其中N的取值也应满足样本分析的需要。在一个特定实施例中,N取值为1000,此时L为51,这些选取的权限如下:
[0029]1.1NTERNET
[0030]2.READ_PHONE_STATE
[0031]3.WRITE_EXTERNAL_STORAGE
[0032]4.ACCESS_NETWORK_STATE
[0033]5.ACCESS_FINE_L0CAT10N
[0034]6.VIBRATE
[0035]7.ACCESS_C0ARSE_L0CATION
[0036]8.WAKE_L0CK
[0037]9.READ_C0NTACTS
[0038]10.CAMERA
[0039]11.CALL_PH0NE
[0040]12.WRITE_SETTINGS
[0041]13.RECEIVE_B00T_C0MPLETED
[0042]14.ACCESS_WIFI_STATE
[0043]15.SEND_SMS
[0044]16.RESTART_PACKAGES
[0045]17.READ_SMS
[0046]18.WRITE_CONTACTS
[0047]19.READ_L0GS
[0048]20.RECEIVE_SMS
[0049]21.GET_TASKS
[0050]22.WRITE_SMS
[0051]23.M0DIFY_PH0NE_STATE
[0052]24.MOUNT_UNMOUNT_FILESYSTEMS
[0053]25.GET_ACC0UNTS
[0054]26.CHANGE_WIFI_STATE
[0055]27.PR0CESS_0UTG0ING_CALLS
[0056]28.DISABLE_KEYGUARD
[0057]29.REC0RD_AUD10
[0058]30.CHANGE_NETWORK_STATE
[0059]31.M0DIFY_AUD10_SETTINGS
[0060]32.KILL_BACKGROUND_PROCESSES
[0061]33.FLASHLIGHT
[0062]34.BLUETOOTH[0063]35.SET_WALLPAPER
[0064]36.ACCESS_M0CK_L0CATION
[0065]37.ACCESS_LOCATION_EXTRA_COMMANDS
[0066]38.CALL_PRIVILEGED
[0067]39.RECEIVE_MMS
[0068]40.WRITE_SYNC_SETTINGS
[0069]41.BLUETOOTH_ADMIN
[0070]42.READ_SYNC_SETTINGS
[0071]43.WRITE_APN_SETTINGS
[0072]44.1NSTALL_PACKAGES
[0073]45.GET_PACKAGE_SIZE
[0074]46.WRITE_SECURE_SETTINGS
[0075]47.ACCESS_GPS
[0076]48.WRITE_EXTERNAL_STORAGES
[0077]49.SET_ORIENTATION
[0078]50.USE_CREDENTIALS
[0079]51.MANAGE_ACCOUNTS
[0080]第三步,根据第二步提取的L个权限,对第一步中M个Android应用程序进行权限过滤和类别标定,L个权限中使用到的权限标为1,未使用的权限标为0,同时标定类别信息;
[0081]第四步,基于经过第三步处理的所述M个Android应用程序,使用分类工具和分类算法进行分类训练,生成相应的分类模型,该分类模型为每种权限组合下对应的类别信息。在特定实施例中,分类工具例如为Weka,分类算法例如为NaiveBayes、BayesNet、ID3、DecisonTable 以及 J48 算法。
[0082]第五步,获取待测Android程序的类别信息(即该Android程序声明的类别的原始类别信息)。对于从Android第三方市场获取的Android程序,每个程序都有定义的对应类别信息,故可以较容易的获取其类别;对于类别信息未知的Android应用程序,则需要人工判别,将应用程序安装到Android系统设备上,根据其功能做人工标定。
[0083]第六步,提取该待测Android程序的AndroidManifest.xml文件,该文件包含该程序所有权限的使用情况,对AndroidManifest文件进行解码;
[0084]第七步,根据第六步解码的AndroidManifest文件,解析该待测Android程序使用的权限信息,并将权限信息转换成arff格式的数据;
[0085]第八步,根据第四步生成的分类模型,以第七步生成的arff数据为输入,对该待测Android程序进行分类,生成分类矩阵;
[0086]第九步,对于各个分类模型产生的分类矩阵,采用融合方法进行融合,得到最终的分类结果。在特定实施例中,所述融合方法可以是Bagging、Boosting、投票法等。
[0087]第十步,根据判别规则,以第九步的分类结果和第五步获得的类别信息为输入,判断待测Android程序的恶意威胁度。在特定实施例中,通过事先对现有Android程序样本库中大量具有已知实际类别和恶意威胁程度的Android程序样本进行统计分析,得到一个经验性的判别规则。其中,根据这些Android程序所声明的原始类别信息、实际类别及其恶意威胁程度(分为“高”、“中”、“低”),得到如表1所示的对应关系。
[0088]表1恶意代码判别规则
[0089]
【权利要求】
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恶意代码检测方法,第十步中,所述判别规则如下表所示:
【文档编号】G06F21/55GK103473504SQ201310443171
【公开日】2013年12月25日 申请日期:2013年9月25日 优先权日:2013年9月25日
【发明者】陶敬, 胡文君, 周文瑜, 赵双, 马小博 申请人:西安交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1