CN106599688B - 一种基于应用类别的安卓恶意软件检测方法 - Google Patents
一种基于应用类别的安卓恶意软件检测方法 Download PDFInfo
- Publication number
- CN106599688B CN106599688B CN201611123792.7A CN201611123792A CN106599688B CN 106599688 B CN106599688 B CN 106599688B CN 201611123792 A CN201611123792 A CN 201611123792A CN 106599688 B CN106599688 B CN 106599688B
- Authority
- CN
- China
- Prior art keywords
- class
- application
- feature
- dangerous
- point
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于应用类别的安卓恶意软件检测方法,该方法包括以下步骤:特征提取阶段;危险权重赋予阶段;基于类别的危险值计算阶段;机器学习分类阶段;加入新特征新样本阶段。本发明采集所有静态特征和动态特征;基于特征的类别,计算每类的危险值;基于应用的类别,计算每类特征的危险值;应用kNN算法对应用进行分类,对该算法进行优化,提高准确率。
Description
技术领域
本发明属于通信技术领域,具体地说,涉及一种基于应用类别的安卓恶意软件检测方法。
背景技术
随着移动通信技术的发展,智能手机在当今社会流行起来,人们开始通过手机来进行社交和娱乐活动,然而安装在手机上的恶意软件数量激增,给用户带来了极大的威胁。据统计,在全球智能手机中安卓手机占83.6%,但是在移动平台中,有高达91.1%的恶意软件来自安卓系统。中国手机病毒增长超过400%,移动智能终端的安全威胁已经不亚于传统电脑。
安卓手机的安全问题日益突出。智能手机有丰富的功能,用户可以自行添加各种软件,安卓系统本身的开放性为恶意软件的生存提供了环境。由于移动应用商店没有准确的安全准则,大量的恶意应用程序可以轻松从应用商店下载。用户安装的软件很可能具有恶意行为而不被用户察觉。恶意软件以破坏系统,隐私窃取,恶意扣费,耗费流量为目的,主要分为木马,后门,蠕虫,僵尸网络,攻击性广告,间谍软件。目前恶意软件采用的技术为重新打包流行的应用程序;伪装成正常软件,哄骗用户下载安装;嵌入恶意代码;隐身技术等。
目前的静态检测恶意软件工具有Androguard,apktool,Dex2Jar等。目前的静态检测方法为基于权限,基于签名,基于组件和字节码分析。动态检测动态检测工具有Droidbox,TaintDroid等。静态检测在程序运行之前执行,动态检测在程序运行过程中执行。静态检测分析源代码,但是准确率较低。动态检测在沙盒中执行程序,只能根据软件运行时的行为来判断是否为恶意软件,不能分析源代码。
静态检测和动态检测各有优缺点,如果只采用静态或动态方法的一种,对应用的分析不够全面,还存在检测率低的缺陷。
发明内容
本发明的目的在于克服现有技术中存在的缺陷,提供一种基于应用类别的安卓恶意软件检测方法,将采用混合检测方法,包括静态检测和动态检测。混合方法包含了静态和动态的所有特征,经过分析能得到应用的恶意程度。现有的检测技术并没有将程序所属的类别纳入考虑范围内,这在很大程度上影响了检测的准确性,使检测粒度较粗。比如读取联系人和账户信息,对于壁纸类的应用是不正常的,而对于财经类的应用是正常的。基于应用类别能将正常应用和恶意应用更清晰的分开,从而降低了恶意软件检测的误判率。
其具体技术方案为:
一种基于应用类别的安卓恶意软件检测方法,包括以下步骤:
步骤1、特征提取阶段
在电脑中安装ubuntu系统,对应用进行反编译,从AndroidManifest.xml中提取权限,从META-INF中提取签名,使用dex2jar和JD-GUI把class.dex转换为应用的源代码,通过Droidbox和测试机分析程序运行时的行为;
步骤2、危险权重赋予阶段
根据每类行为特征不同的危险水平,赋予不同的危险权重;权重为0.5的是交互类,特别危险类,网络活动类和信息泄露类这几类行为特征;交互类特征被用来和其他手机或网页进行信息交换,如果应用不包含该类,那么其他类特征就不会构成威胁,所以交互类特征危险程度最高;动态特征中,网络活动包括打开连接和流量进出,信息泄露类可能泄露用户的隐私信息,给用户带来难以预估的危害;
权重为0.4的是控制类,系统类,源代码类和签名类这几类行为特征;控制类和系统类控制了手机系统的权限和活动,比花费类和隐私类更加危险;通过源代码,分析是否包含恶意的包和类;通过签名,可以判断应用是否来自某个恶意软件家族;
权重为0.3的是花费类,隐私类和文件类;权重为0.2的是新特征类,单特征类;
步骤3、基于类别的危险值计算阶段
对于每一个应用软件来说,用来实现其应用功能的行为特征是正常的,不是实现其功能的特征可能是恶意的;在第二步的基础上,根据应用的类别,把实现正常功能的特征赋予权重0.1;将不是实现正常功能的危险权限赋予权重值为1;计算每类特征的危险值总和,再计算整个应用的危险值总和;
步骤4、机器学习分类阶段
将一个应用的每类危险值放到数组中,作为测试集和样本集;在样本集中,将相似度特别大的点删除其中一个,采用各种危险值从小到大不同的大量样本,同时使样本分布均匀;使用k-means算法,使样本集产生聚类中心;对样本集进行优化有利于减少误判率;计算测试集中的数据和聚类中心的距离,找到最近的聚类中心;然后使用knn算法,计算测试集中数据与聚类中心周围的点的距离,找到最近的k个点;这k个点的标签中,如果标签是恶意软件的点比标签是正常软件的点多,那么测试集中的应用是恶意软件;如果标签是正常软件的点比标签是恶意软件的点多,那么测试集中的应用是正常软件;
步骤5、加入新特征新样本阶段
重复上述过程,将应用的新特征和应用的危险值,加入样本集数据库,为下次的应用软件检测作样本。
与现有技术相比,本发明的有益效果:
一、基于特征类别赋予权重,再基于应用类别计算危险值,可判断出应用的恶意程度。
二、使用静态检测和动态检测,包含权限,签名,行为,让恶意软件难以逃避检测。
三、使用k-means算法对样本进行聚类,使用k最近邻算法即kNN算法判断应用的类别,有利于提高检测的准确率。
附图说明
图1是Apk软件源代码静态特征提取和软件行为动态特征检测示意图;
图2是基于应用类别的Apk恶意软件动静态结合检测分析流程图。
具体实施方式
下面结合附图和具体实施方案对本发明的技术方案作进一步详细地说明。
一种基于应用类别的安卓恶意软件检测方法,包括以下步骤:
步骤1、特征提取阶段
在电脑中安装ubuntu系统,对应用进行反编译,从AndroidManifest.xml中提取权限,从META-INF中提取签名,使用dex2jar和JD-GUI把class.dex转换为应用的源代码,通过Droidbox和测试机分析程序运行时的行为;如图1所示。
步骤2、危险权重赋予阶段
根据每类行为特征不同的危险水平,赋予不同的危险权重;如表1所示。
权重为0.5的是交互类,特别危险类,网络活动类和信息泄露类这几类行为特征。交互类特征被用来和其他手机或网页进行信息交换,如果应用不包含该类,那么其他类特征就不会构成威胁,所以交互类特征危险程度最高。有一些特别危险的权限,比如重启和关机,还有一些权限总是出现在恶意软件中而很少出现在正常软件中,比如重打包,这些权限的危险程度也很高。动态特征中,网络活动包括打开连接和流量进出,信息泄露类可能泄露用户的隐私信息,给用户带来难以预估的危害。
权重为0.4的是控制类,系统类,源代码类和签名类这几类行为特征。控制类和系统类控制了手机系统的权限和活动,所以比花费类和隐私类更加危险。通过源代码,我们可以分析是否包含恶意的包和类。通过签名,可以判断应用是否来自某个恶意软件家族。
权重为0.3的是花费类,隐私类和文件类行为特征。权重为0.2的是新特征类,单特征类。
表1
步骤3、基于类别的危险值计算阶段
对于每一个应用软件来说,来实现应用功能的行为特征是正常的,不是实现其功能的特征可能是恶意的。在第二步的基础上,根据应用的类别,把实现正常功能的特征赋予权重0.1;将不是实现正常功能的危险权限赋予权重值为1。计算每类特征的危险值总和,再计算整个应用的危险值总和;
步骤4、机器学习分类阶段
将一个应用的每类危险值放到数组中,作为测试集和样本集。在样本集中,将相似度特别大的点删除其中一个,采用各种危险值从小到大不同的大量样本,同时使样本分布均匀。使用k-means算法,使样本集产生聚类中心。对样本集进行优化有利于减少误判率。计算测试集中的数据和聚类中心的距离,找到最近的聚类中心。然后使用k最近邻算法即kNN算法,计算测试集中数据与聚类中心周围的点的距离,找到最近的k个点。这k个点的标签中,如果标签是恶意软件的点比标签是正常软件的点多,那么测试集中的应用是恶意软件;如果标签是正常软件的点比标签是恶意软件的点多,那么测试集中的应用是正常软件。如图2所示。
步骤5、加入新特征新样本阶段
重复上述过程,将应用的新特征和应用的危险值,加入样本集数据库,为下次的应用软件检测作样本。
本发明实现过程为:采集所有静态特征和动态特征;基于特征的类别,计算每类的危险值;基于应用的类别,计算每类特征的危险值;应用kNN算法对应用进行分类,对该算法进行优化,提高准确率。
以上所述,仅为本发明较佳的具体实施方式,本发明的保护范围不限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化或等效替换均落入本发明的保护范围内。
Claims (1)
1.一种基于应用类别的安卓恶意软件检测方法,其特征在于,包括以下步骤:
步骤1、特征提取阶段
在电脑中安装ubuntu系统,对应用进行反编译,从AndroidManifest.xml中提取权限,从META-INF中提取签名,使用dex2jar和JD-GUI把class.dex转换为应用的源代码,通过Droidbox和测试机分析程序运行时的行为;
步骤2、危险权重赋予阶段
根据每类行为特征不同的危险水平,赋予不同的危险权重;权重为0.5的是交互类,特别危险类,网络活动类和信息泄露类这几类行为特征;交互类特征被用来和其他手机或网页进行信息交换,如果应用不包含该类,那么其他类特征就不会构成威胁,所以交互类特征危险程度最高;动态特征中,网络活动包括打开连接和流量进出,信息泄露类可能泄露用户的隐私信息,给用户带来难以预估的危害;特别危险类行为包括重启、关机和重打包;
权重为0.4的是控制类,系统类,源代码类和签名类这几类行为特征;控制类和系统类控制了手机系统的权限和活动,比花费类和隐私类更加危险;通过源代码,分析是否包含恶意的包和类;通过签名,可以判断应用是否来自某个恶意软件家族;
权重为0.3的是花费类,隐私类和文件类行为特征;权重为0.2的是新特征类,单特征类;
步骤3、基于类别的危险值计算阶段
对于每一个应用软件来说,来实现应用功能的行为特征是正常的,不是实现其功能的特征可能是恶意的;在第二步的基础上,根据应用的类别,把实现正常功能的特征赋予权重0.1;将不是实现正常功能的危险权限赋予权重值为1;计算每类特征的危险值总和,再计算整个应用的危险值总和;
步骤4、机器学习分类阶段
将一个应用的每类危险值放到数组中,作为测试集和样本集;在样本集中,将相似度特别大的点删除其中一个,采用各种危险值从小到大不同的大量样本,同时使样本分布均匀;使用k-means算法,使样本集产生聚类中心;对样本集进行优化有利于减少误判率;计算测试集中的数据和聚类中心的距离,找到最近的聚类中心;然后使用kNN算法,计算测试集中数据与聚类中心周围的点的距离,找到最近的k个点;这k个点的标签中,如果标签是恶意软件的点比标签是正常软件的点多,那么测试集中的应用是恶意软件;如果标签是正常软件的点比标签是恶意软件的点多,那么测试集中的应用是正常软件;
步骤5、加入新特征新样本阶段
重复上述过程,将应用的新特征和应用的危险值,加入样本集数据库,为下次的应用软件检测作样本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611123792.7A CN106599688B (zh) | 2016-12-08 | 2016-12-08 | 一种基于应用类别的安卓恶意软件检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611123792.7A CN106599688B (zh) | 2016-12-08 | 2016-12-08 | 一种基于应用类别的安卓恶意软件检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106599688A CN106599688A (zh) | 2017-04-26 |
CN106599688B true CN106599688B (zh) | 2019-07-12 |
Family
ID=58598679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611123792.7A Active CN106599688B (zh) | 2016-12-08 | 2016-12-08 | 一种基于应用类别的安卓恶意软件检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106599688B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168875B (zh) * | 2017-05-15 | 2020-07-03 | 南京大学 | 一种基于安卓应用多入口特性的Activity构件泄露检测方法 |
CN107608685A (zh) * | 2017-10-18 | 2018-01-19 | 湖南警察学院 | 安卓应用的自动执行方法 |
CN109711151B (zh) * | 2017-10-25 | 2021-08-20 | 武汉安天信息技术有限责任公司 | 一种应用程序不良行为的预测方法、系统及装置 |
CN107992884A (zh) * | 2017-11-24 | 2018-05-04 | 武汉科技大学 | 一种基于大数据的android应用权限聚类与群体特征分析方法 |
CN108197471B (zh) * | 2017-12-19 | 2020-07-10 | 北京神州绿盟信息安全科技股份有限公司 | 一种恶意软件检测方法及装置 |
CN109947495A (zh) * | 2017-12-20 | 2019-06-28 | 广东欧珀移动通信有限公司 | 应用程序预加载方法、装置、存储介质及移动终端 |
CN109492386A (zh) * | 2018-10-09 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种构建文件信誉库的系统和方法 |
CN110012013A (zh) * | 2019-04-04 | 2019-07-12 | 电子科技大学成都学院 | 一种基于knn的虚拟平台威胁行为分析方法及系统 |
CN112202950A (zh) * | 2020-09-29 | 2021-01-08 | 广州正心科技有限公司 | 一种手机软件自动测试装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200155A (zh) * | 2014-08-12 | 2014-12-10 | 中国科学院信息工程研究所 | 基于苹果手机操作系统iOS保护用户隐私的监测装置和方法 |
CN105205397A (zh) * | 2015-10-13 | 2015-12-30 | 北京奇虎科技有限公司 | 恶意程序样本分类方法及装置 |
CN105468977A (zh) * | 2015-12-14 | 2016-04-06 | 厦门安胜网络科技有限公司 | 一种基于朴素贝叶斯的Android恶意软件分类方法和装置 |
CN105653956A (zh) * | 2016-03-02 | 2016-06-08 | 中国科学院信息工程研究所 | 基于动态行为依赖图的Android恶意软件分类方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100192222A1 (en) * | 2009-01-23 | 2010-07-29 | Microsoft Corporation | Malware detection using multiple classifiers |
-
2016
- 2016-12-08 CN CN201611123792.7A patent/CN106599688B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104200155A (zh) * | 2014-08-12 | 2014-12-10 | 中国科学院信息工程研究所 | 基于苹果手机操作系统iOS保护用户隐私的监测装置和方法 |
CN105205397A (zh) * | 2015-10-13 | 2015-12-30 | 北京奇虎科技有限公司 | 恶意程序样本分类方法及装置 |
CN105468977A (zh) * | 2015-12-14 | 2016-04-06 | 厦门安胜网络科技有限公司 | 一种基于朴素贝叶斯的Android恶意软件分类方法和装置 |
CN105653956A (zh) * | 2016-03-02 | 2016-06-08 | 中国科学院信息工程研究所 | 基于动态行为依赖图的Android恶意软件分类方法 |
Non-Patent Citations (4)
Title |
---|
Attack Tree Based Android Malware Detection with Hybrid Analysis;Shuai Zhao et al.;《 2014 IEEE 13th International Conference on Trust, Security and Privacy in Computing and Communications》;20140926;第380-387页 |
基于Android恶意软件检测系统的设计与实现;左玲;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130115;正文第56页至第73页 |
基于权限以及应用类别的Android恶意程序检测;张叶慧;《中国优秀硕士学位论文全文数据库 信息科技辑》;20150315;正文第21页至43页 |
安卓恶意软件检测研究综述;林佳萍 等;《信息网络安全》;20161010;第80-88页 |
Also Published As
Publication number | Publication date |
---|---|
CN106599688A (zh) | 2017-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106599688B (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
Fan et al. | Dapasa: detecting android piggybacked apps through sensitive subgraph analysis | |
Arshad et al. | SAMADroid: a novel 3-level hybrid malware detection model for android operating system | |
Wu et al. | Droidmat: Android malware detection through manifest and api calls tracing | |
Li et al. | Attribution classification method of APT malware in IoT using machine learning techniques | |
Shabtai et al. | Applying behavioral detection on android-based devices | |
CN105893848A (zh) | 一种基于代码行为相似度匹配的Android恶意应用程序防范方法 | |
CN107659570A (zh) | 基于机器学习与动静态分析的Webshell检测方法及系统 | |
Li et al. | An Android malware detection method based on AndroidManifest file | |
CN105205397B (zh) | 恶意程序样本分类方法及装置 | |
Li et al. | Opcode sequence analysis of Android malware by a convolutional neural network | |
Chaba et al. | Malware detection approach for android systems using system call logs | |
CN106611122A (zh) | 基于虚拟执行的未知恶意程序离线检测系统 | |
CN102034050A (zh) | 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法 | |
CN102664875A (zh) | 基于云模式的恶意代码类别检测方法 | |
CN103500307A (zh) | 一种基于行为模型的移动互联网恶意应用软件检测方法 | |
Wang et al. | LSCDroid: Malware detection based on local sensitive API invocation sequences | |
CN104598825A (zh) | 一种基于改进贝叶斯算法的安卓恶意软件检测方法 | |
CN103617393A (zh) | 一种基于支持向量机的移动互联网恶意应用软件检测方法 | |
CN107180190A (zh) | 一种基于混合特征的Android恶意软件检测方法及系统 | |
CN107256357A (zh) | 基于深度学习的安卓恶意应用的检测和分析方法 | |
Sun et al. | Malware detection on Android smartphones using keywords vector and SVM | |
CN110069927A (zh) | 恶意apk检测方法、系统、数据存储设备和检测程序 | |
Ni et al. | Real-time detection of malicious behavior in android apps | |
CN103971055B (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 |