会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 专利权 / 申请 / 国际申请 / 请求书 / 声明 / 一种基于类别分析的Android恶意代码检测方法

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

阅读:1030发布:2020-12-25

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

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恶意代码检测方法,第十步中,所述判别规则如下表所示:

说明书全文

一种基于类别分析的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错误!未找到引用源。;使用动态污点跟踪方法监控隐私泄露行为,如TaintDroid。
[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.INTERNET
[0030] 2.READ_PHONE_STATE
[0031] 3.WRITE_EXTERNAL_STORAGE
[0032] 4.ACCESS_NETWORK_STATE
[0033] 5.ACCESS_FINE_LOCATION
[0034] 6.VIBRATE
[0035] 7.ACCESS_COARSE_LOCATION
[0036] 8.WAKE_LOCK
[0037] 9.READ_CONTACTS
[0038] 10.CAMERA
[0039] 11.CALL_PHONE
[0040] 12.WRITE_SETTINGS
[0041] 13.RECEIVE_BOOT_COMPLETED
[0042] 14.ACCESS_WIFI_STATE
[0043] 15.SEND_SMS
[0044] 16.RESTART_PACKAGES
[0045] 17.READ_SMS
[0046] 18.WRITE_CONTACTS
[0047] 19.READ_LOGS
[0048] 20.RECEIVE_SMS
[0049] 21.GET_TASKS
[0050] 22.WRITE_SMS
[0051] 23.MODIFY_PHONE_STATE
[0052] 24.MOUNT_UNMOUNT_FILESYSTEMS
[0053] 25.GET_ACCOUNTS
[0054] 26.CHANGE_WIFI_STATE
[0055] 27.PROCESS_OUTGOING_CALLS
[0056] 28.DISABLE_KEYGUARD
[0057] 29.RECORD_AUDIO
[0058] 30.CHANGE_NETWORK_STATE
[0059] 31.MODIFY_AUDIO_SETTINGS
[0060] 32.KILL_BACKGROUND_PROCESSES
[0061] 33.FLASHLIGHT
[0062] 34.BLUETOOTH
[0063] 35.SET_WALLPAPER
[0064] 36.ACCESS_MOCK_LOCATION
[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.INSTALL_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]
[0090]
[0091] 由此,本发明可以判断待测Android程序是否存在恶意行为,从而便于为Android第三方电子市场提供基本的自动审核功能,同时为个人用户提供基本的扫描和保护。
[0092] 以上利用具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用