CN106951782A - 一种面向安卓应用的恶意代码检测方法 - Google Patents
一种面向安卓应用的恶意代码检测方法 Download PDFInfo
- Publication number
- CN106951782A CN106951782A CN201710172203.2A CN201710172203A CN106951782A CN 106951782 A CN106951782 A CN 106951782A CN 201710172203 A CN201710172203 A CN 201710172203A CN 106951782 A CN106951782 A CN 106951782A
- Authority
- CN
- China
- Prior art keywords
- application
- terminal
- code
- malicious code
- malicious
- 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.)
- Pending
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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种面向安卓应用的恶意代码检测方法,服务器端通过随机森林算法对预先提取的应用特征值进行分析,由此建立应用和恶意代码关系数据库,终端上传应用代码样本,从数据库服务器中拿到数据进行匹配,得到检测结果。利用随机森林分析的优势,结合应用和恶意代码分类的思想,在此方法上建立应用恶意代码检测的模型,可以快速的对已有应用的恶意代码进行分类检测,并可以对变种的新的恶意应用有一定的分析检测能力,能够应对安卓系统应用瞬息万变的需求,加快恶意应用和代码检测的速度,提高对未知恶意应用的应对能力。
Description
技术领域
本发明属于代码检测领域,特别涉及一种面向安卓应用的恶意代码检测方法。
背景技术
Android系统自发布以来就以迅猛的涨势在全球范围内扩张开来,据IDC的数据显示到2015年Android在手机操作系统的中市场份额就超过80%以上,全年出货数量超过10亿部,成为目前应用最广的智能手机操作系统。由此而发布的Android应用程序也越来越多。
Android应用由于操作系统的开放性也由此变得杂乱繁多,仍有很大一部分的用户认为移动终端的安全并不重要,市场上存在很多管理混乱的第三方移动市场,这些应用上传了下载缺少监管,给Android终端安全造成非常严重的威胁。
Android操作系统的开放性降低了其开发门槛,大量不安全的恶意应用涌入开发市场,将正常程序重新破解、加入恶意代码、添加广告再打包重新发布,一些会触发网络连接、隐私信息获取等行为的正常应用,会被某些恶意应用联合利用,恶意的应用程序不仅会导致程序越权操作,电池耗尽攻击等,还会进行恶意进程的交互,最终导致用户数据的泄漏,对用户隐私造成极大的危害。
尽管已经有专业的手机用用检测测试中心,但主要还是依赖人工的内容安全审核机制,并利用工具对隐藏的病毒和恶意插件进行全面扫描。基于人工和软件工具的审核机制,无论在检测效率和可靠性等方面均面临极大挑战。
现有的Android恶意代码检测技术主要分为静态检测和动态检测。静态检测方法在不运行应用本身的情况下,对APK源码进行反编译,获取应用程序组件、权限、API等信息,选择部分信息作为特征属性,与恶意样本库进行对比,由此判断被检测应用的安全性。动态检测方法在应用程序运行过程中通过拦截可疑的行为来监测Android本身的各种特征参数,再对比已知的恶意行为可能引起的特征参数的变化,由此判断被检测应用的安全。
综上所述,静态检测虽然无需运行程序、代码覆盖率高、检测时间短,但是无法准确全面的检测到恶意代码行为;动态检测虽然更加全面,但是花费时间高,对应用程序本身的运行有很大的影响;需要一种新的安卓应用恶意代码检测方法来准确快速的检测并分类出已有和新的恶意代码类型,满足具有开放性特征的日息万变的安卓系统应用的发展。
发明内容
本发明在已有的APP恶意代码库基础上,利用树形结构将不同应用不同版本进行分类,生成应用程序族,对已有恶意代码进行分类生成恶意代码族。选取合适的特征值进行提取,在本模型中使用恶意代码图像和OpCode n-gram作为特征值。利用随机森林的方法对提取的特征值进行分析训练,得到应用中的恶意代码,建立两个族群即应用-代码之间的对应关系分类数据库,对已有及变种的新恶意应用进行检测。利用随机森林分析的优势,结合应用和恶意代码分类的思想,满足安卓应用开放性的需求,建立一套完整的从应用到恶意代码的检测方法模型。
一种面向安卓应用恶意代码检测方法,服务器端通过分析模块建立应用和恶意代码之间的明确对应关系的数据库,终端通过网络服务模块,上传良性或恶意应用样本,服务调度中心根据请求利用数据服务器中的内容对其进行匹配,得到相应的分类检测结果。
所述方法包括终端和服务器端,终端主要是用来测试检测模型,包括一个网络服务模块,调用终端的检测数据库进行匹配,服务器端主要是分析模块,服务调度中心和数据服务器组成,用户终端和服务器端在网络中进行交互;
所述服务器端是整个检测方法的核心部分,在建立应用和代码族群之后,分析模块首先提取应用的特征值,然后利用算法对提取的特征值进行检测,生成分类检测结果,服务调度中心将其存入数据库服务器。服务调度中心主要用来相应终端的请求,并和数据库服务器进行交互。
所述终端主要是对服务器端建立的代码检测方法进行测试,核心是一个网络服务模块,包含一个应用接收接口,和匹配模块。在终端输入相应的应用之后,匹配模块根据相关信息和位于服务器端的数据库进行匹配,得出分析检测结果。
所述特征值的提取,是指利用在代码级别的代码应用上,利用已有的特征值提取的方法,选取特定的特征值,在本模型中使用恶意代码图像和OpCode n-gram。
所述分析模块得到应用和恶意代码之间对应关系的具体过程如下:
步骤1:根据提供应用的基本信息建立一个应用族,根据已有恶意代码分类建立代码族;
步骤2:提取应用特征值,以此作为分类算法的依据;
步骤3:使用随机森林算法对应用特征值进行分析,得到应用对应的恶意代码;
步骤4:根据应用族和所得的恶意代码分析结果,建立应用族和恶意代码族之间的关系。
所述终端向服务器端发送代码检测请求并得到检测结果的具体过程如下:
步骤A:分析模块得到应用-恶意代码关系之后,服务调度中心将其存储到数据库服务器中;
步骤B:终端通过网络服务模块中的应用接收接口上传应用样本,向服务器端发送检测请求;
步骤C:服务器端接收到终端的检测请求之后,服务调度中心会产生响应,根据终端的请求,向数据库服务器发出匹配请求,得到一条应用-恶意代码记录,并将其传送给终端;
步骤D:终端收到匹配结果之后,显示在终端系统上。
有益效果
本发明提出了一种面向安卓应用的恶意代码检测方法,根据应用和恶意代码的基本信息对其进行分类,得到应用族和恶意代码族。提取应用特征值,用随机森林算法对提取的特征值进行分析训练,得到应用中的恶意代码,建立两个族群即应用-代码之间的对应关系分类数据库。利用随机森林分析的优势,结合应用和恶意代码分类的思想,在此方法上建立应用恶意代码检测的模型,可以快速的对已有应用的恶意代码进行分类检测,并可以对变种的新的恶意应用有一定的分析检测能力,能够应对安卓系统应用瞬息万变的需求,加快恶意应用和代码检测的速度,提高对未知恶意应用的应对能力。
附图说明
图1是本实施例安卓应用恶意代码检测方法的模型架构图。
图2是本实施例安卓应用恶意代码检测方法的模型流程图。
具体实施方式
下面将结合附图和实施例对本发明做进一步的说明。
本发明实施例是基于终端、服务器端及网络组成的一种安卓应用恶意代码检测的模型。该方法的模型架构图如图1所示。、终端是一个BS架构的网页系统,可运行在传统PC、平板或者手机上,如Windows、Android等。终端核心是一个网络服务模块,由应用接收接口和匹配模块组成。服务器端包含一个服务调度中心,服务调度中心根据终端的服务请求调用相应的服务技术为其服务,具体是,应用接收接口上传一个应用样本并发送一个请求到服务器,服务调度中心将其与数据服务器进行比对,得到相应的匹配结果,传送给匹配模块。分类数据库中的数据是由分析模块进行分类分析和训练之后,由服务调度中心传送到数据库服务器的。
本发明提出的安卓应用恶意代码检测的方法是:服务器端通过分析模块建立应用和恶意代码之间的明确对应关系的数据库,终端通过网络服务模块,上传良性或恶意应用样本,服务调度中心根据请求利用数据服务器中的内容对其进行匹配,得到相应的分类检测结果。该方法的流程如图2所示,包括以下步骤:
步骤1:利用已有的应用恶意代码样本,建立应用族和恶意代码族,提取应用样本的特征值,采用随机森林算法对应用进行分析,最终得到应用和恶意代码分类之间的对应关系,转步骤2。
本步骤的具体实现方式包括以下步骤:
步骤1.1:根据提供应用的基本信息建立一个应用族,根据已有恶意代码分类建立代码族;
步骤1.2:提取应用特征值,以此作为分类算法的依据;
步骤1.3:使用随机森林算法利用应用特征值进行分析,得到应用对应的恶意代码。
步骤1.4:根据应用族和所得的恶意代码分析结果,建立应用族和恶意代码族之间的关系;转步骤2。
步骤2:分析模块得到应用-恶意代码关系之后,服务调度中心将其存储到数据库服务器中,转步骤3。
步骤3:终端通过网络服务模块中的应用接收接口上传应用样本,向服务器端发送检测请求,转步骤4。
步骤4:服务器端接收到终端的检测请求之后,服务调度中心会产生响应,根据终端的请求,向数据库服务器发出匹配请求,得到一条应用-恶意代码记录,并将其传送给终端,转步骤5。
步骤5:终端收到匹配结果之后,显示在终端系统上,转步骤6。
步骤6:检测结束。
本发明实施例中提到的一些技术方法如下:
1.特征值提取
本实例中使用应用程序图像和OpCode N-gram作为特征值。应用程序图像可以由应用程序的.asm文件来生成,并取其中的像素值作为特征。n-gram是自然语言处理领域的概念,但是它也经常用来处理恶意代码的分析。OpCode N-gram就是对指令操作码字段提取N-gram特征,n可以取值为2,3,4等。
2.分类算法
本实施例中使用到的分类算法是随机森林,并使用一款免费的,非商业化基于JAVA环境下开源的机器学习以及数据挖掘软件Weka来进行分析。Weka存储数据的格式是ARFF文件,是一种ASCII文本文件。本实施例就是将特征数据生成ARFF格式的文件,利用Weka自带的分类算法进行数据训练与模型测试。
机器学习中分为有监督学习与无监督学习。有监督学习就是根据训练集,用学习算法学习出一个模型,然后可以用测试集对模型进行评估准确度和性能。分类算法属于有监督学习,需要先建立模型。
3.数据服务器
数据服务器中存储分析检测得出的应用程序和恶意代码类别的对应关系列表。每条记录包含应用程序的基本信息和恶意程序分类基本信息。服务调度中心要响应终端的请求,则必须在数据服务器中存储相应的应用程序和恶意代码列表,包含各项可以标识该应用程序和恶意代码的特征值和属性的基本信息。便于终端获取应用和对应恶意代码以及服务调度中心检索及获得相关检测信息。
服务器的数据库搭建如下:
3.1选择合适的数据库服务器并安装。
3.2执行以下创建数据库脚本内容,创建应用程序数据库和数据表。
3.3将应用程序信息及部署信息插入到app数据表中,完成数据库的创建。
Claims (7)
1.一种安卓应用的恶意代码检测方法,其特征在于,服务器端通过分析模块建立应用和恶意代码之间的明确对应关系的数据库,终端通过网络服务模块,上传良性或恶意应用样本,服务调度中心根据请求利用数据服务器中的内容对其进行匹配,得到相应的分类检测结果。
2.根据权利要求1所述的方法,其特征在于,所述方法包括终端和服务器端,终端主要是用来测试检测模型,包括一个网络服务模块,调用终端的检测数据库进行匹配,服务器端主要是分析模块,服务调度中心和数据服务器组成,用户终端和服务器端在网络中进行交互。
3.根据权利要求1所述的方法,其特征在于,所述服务器端是整个检测方法的核心部分,在建立应用和代码族群之后,分析模块首先提取应用的特征值,然后利用算法对提取的特征值进行检测,生成分类检测结果,服务调度中心将其存入数据库服务器。服务调度中心主要用来相应终端的请求,并和数据库服务器进行交互。
4.根据权利要求1所述的方法,其特征在于,所述终端主要是对服务器端建立的代码检测方法进行测试,核心是一个网络服务模块,包含一个应用接收接口,和匹配模块。在终端输入相应的应用之后,匹配模块根据相关信息和位于服务器端的数据库进行匹配,得出分析检测结果。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述特征值的提取,是指利用在代码级别的代码应用上,利用已有的特征值提取的方法,选取特定的特征值,在本模型中使用恶意代码图像和OpCoden-gram。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述分析模块得到应用和恶意代码之间对应关系的具体过程如下:
步骤1:根据提供应用的基本信息建立一个应用族,根据已有恶意代码分类建立代码族;
步骤2:提取应用特征值,以此作为分类算法的依据;
步骤3:使用随机森林算法对应用特征值进行分析,得到应用对应的恶意代码;
步骤4:根据应用族和所得的恶意代码分析结果,建立应用族和恶意代码族之间的关系。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述终端向服务器端发送代码检测请求并得到检测结果的具体过程如下:
步骤A:分析模块得到应用-恶意代码关系之后,服务调度中心将其存储到数据库服务器中;
步骤B:终端通过网络服务模块中的应用接收接口上传应用样本,向服务器端发送检测请求;
步骤C:服务器端接收到终端的检测请求之后,服务调度中心会产生响应,根据终端的请求,向数据库服务器发出匹配请求,得到一条应用-恶意代码记录,并将其传送给终端;
步骤D:终端收到匹配结果之后,显示在终端系统上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710172203.2A CN106951782A (zh) | 2017-03-22 | 2017-03-22 | 一种面向安卓应用的恶意代码检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710172203.2A CN106951782A (zh) | 2017-03-22 | 2017-03-22 | 一种面向安卓应用的恶意代码检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951782A true CN106951782A (zh) | 2017-07-14 |
Family
ID=59473265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710172203.2A Pending CN106951782A (zh) | 2017-03-22 | 2017-03-22 | 一种面向安卓应用的恶意代码检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951782A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688744A (zh) * | 2017-08-31 | 2018-02-13 | 杭州安恒信息技术有限公司 | 基于图像特征匹配的恶意文件分类方法及装置 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN108304719A (zh) * | 2018-02-05 | 2018-07-20 | 新疆大学 | Android恶意代码分析与检测算法 |
CN108460277A (zh) * | 2018-02-10 | 2018-08-28 | 北京工业大学 | 一种自动化恶意代码变种检测方法 |
CN109120593A (zh) * | 2018-07-12 | 2019-01-01 | 南方电网科学研究院有限责任公司 | 一种移动应用安全防护系统 |
CN111625823A (zh) * | 2020-04-13 | 2020-09-04 | 北京邮电大学 | Andriod平台VPN应用的安全性检测方法及装置 |
CN112861135A (zh) * | 2021-04-12 | 2021-05-28 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
EP3918500B1 (en) * | 2019-03-05 | 2024-04-24 | Siemens Industry Software Inc. | Machine learning-based anomaly detections for embedded software applications |
-
2017
- 2017-03-22 CN CN201710172203.2A patent/CN106951782A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688744A (zh) * | 2017-08-31 | 2018-02-13 | 杭州安恒信息技术有限公司 | 基于图像特征匹配的恶意文件分类方法及装置 |
CN107688744B (zh) * | 2017-08-31 | 2020-03-13 | 杭州安恒信息技术股份有限公司 | 基于图像特征匹配的恶意文件分类方法及装置 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN108304719A (zh) * | 2018-02-05 | 2018-07-20 | 新疆大学 | Android恶意代码分析与检测算法 |
CN108304719B (zh) * | 2018-02-05 | 2022-02-01 | 新疆大学 | Android恶意代码分析与检测算法 |
CN108460277A (zh) * | 2018-02-10 | 2018-08-28 | 北京工业大学 | 一种自动化恶意代码变种检测方法 |
CN109120593A (zh) * | 2018-07-12 | 2019-01-01 | 南方电网科学研究院有限责任公司 | 一种移动应用安全防护系统 |
EP3918500B1 (en) * | 2019-03-05 | 2024-04-24 | Siemens Industry Software Inc. | Machine learning-based anomaly detections for embedded software applications |
CN111625823A (zh) * | 2020-04-13 | 2020-09-04 | 北京邮电大学 | Andriod平台VPN应用的安全性检测方法及装置 |
CN112861135A (zh) * | 2021-04-12 | 2021-05-28 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
CN112861135B (zh) * | 2021-04-12 | 2024-05-31 | 中南大学 | 基于注意力机制的恶意代码检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951782A (zh) | 一种面向安卓应用的恶意代码检测方法 | |
CN105069355B (zh) | webshell变形的静态检测方法和装置 | |
CN103106365B (zh) | 一种移动终端上的恶意应用软件的检测方法 | |
CN106572117B (zh) | 一种WebShell文件的检测方法和装置 | |
CN105956180B (zh) | 一种敏感词过滤方法 | |
US20120159625A1 (en) | Malicious code detection and classification system using string comparison and method thereof | |
WO2015120752A1 (zh) | 网络威胁处理方法及设备 | |
CN103297394B (zh) | 网站安全检测方法和装置 | |
CN110460612B (zh) | 安全测试方法、设备、存储介质及装置 | |
CN105530265B (zh) | 一种基于频繁项集描述的移动互联网恶意应用检测方法 | |
CN110795732A (zh) | 基于SVM的Android移动网络终端恶意代码的动静结合检测方法 | |
CN105141647A (zh) | 一种检测Web应用的方法和系统 | |
CN109922065B (zh) | 恶意网站快速识别方法 | |
CN109271788A (zh) | 一种基于深度学习的Android恶意软件检测方法 | |
CN112733146B (zh) | 基于机器学习的渗透测试方法、装置、设备及存储介质 | |
CN111460446A (zh) | 基于模型的恶意文件检测方法及装置 | |
CN106599688A (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
CN108280348A (zh) | 基于rgb图像映射的安卓恶意软件识别方法 | |
CN109462575A (zh) | 一种webshell检测方法及装置 | |
CN104184728A (zh) | 一种Web应用系统的安全检测方法及安全检测装置 | |
CN103914657A (zh) | 一种基于函数特征的恶意程序检测方法 | |
CN102063484B (zh) | 第三方web应用程序发现的方法和装置 | |
CN105631325B (zh) | 一种恶意应用程序检测方法和装置 | |
CN109740347A (zh) | 一种针对智能设备固件的脆弱哈希函数的识别与破解方法 | |
CN107239697A (zh) | 一种基于移动流量的服务器端扫描方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170714 |