CN108304719A - Android恶意代码分析与检测算法 - Google Patents
Android恶意代码分析与检测算法 Download PDFInfo
- Publication number
- CN108304719A CN108304719A CN201810113041.XA CN201810113041A CN108304719A CN 108304719 A CN108304719 A CN 108304719A CN 201810113041 A CN201810113041 A CN 201810113041A CN 108304719 A CN108304719 A CN 108304719A
- Authority
- CN
- China
- Prior art keywords
- malicious code
- android
- input
- pretreated
- feature
- 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
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
- 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)
- 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)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种Android恶意代码分析与检测算法,首先进行恶意代码的特征抽提取与分析,然后进行恶意代码识别,最后进行恶意代码变种检测。本发明探索利用深度学习的思想解决恶意代码的特征提取,分析与检测问题。降低因Android恶意代码给用户带来的损害,准确的识别出安卓应用程序的恶意性。
Description
技术领域
本发明属于信息安全技术领域,涉及一种恶意代码分析与检测算法,具体涉及一种Android恶意代码分析与检测算法。
背景技术
随着互联网技术的飞速发展,恶意代码检测成为网络安全入侵检测的难点和重点。受经济利益驱动和反检测技术使用,恶意代码的数量呈指数级增长,同时各种恶意代码变种层出不穷,导致安全威胁事件呈现逐年上升的态势。2017年5月,一种名为WannaCry(永恒之蓝)的电脑勒索病毒正在全球蔓延,已超过100个国家受到病毒感染。最严重的地区集中在美国、欧洲、澳洲等地区,同时也由国外进入中国,而国内受影响最严重的主要集中在高校,并蔓延至机场、海关、公安网等大型公共服务区域。在移动终端领域,Android作为一个非常流行的移动计算平台,占据了大量的移动终端的市场份额。随着Android手机、平板电脑、智能终端的广泛使用,基于Android的恶意软件也发展迅速,如何对Android恶意代码进行检测就显得尤为关键。
目前现有的恶意代码分析与检测大多基于浅层的机器学习模型,这些浅层的机器学习方法在建模过程中函数简单,对复杂的函数和分类问题表达受限,泛化能力受到制约,鲁棒性差,准确度和精度不高。目前现有的恶意代码特征提取采用的方法(例如:基于签名、特征匹配、特征码)对于指数级增长的恶意代码,不能达到很好的特征分析与识别的效果;单纯依赖人工作业,制定规则,不能够全面的抽取并筛选出恶意代码的有效特征。
目前现有的恶意代码分析方法中,恶意代码静态分析方法不能检测到运行中释放的恶意代码。恶意代码动态分析无法处理的静态的应用程序,基于动态分析方法在程序运行时执行,全面监视恶意代码的执行过程,但是分析过程相当耗时,对实时性要求较高,必须确保在恶意程序对系统产生危害之前检测出威胁。并且,目前动态分析方法在系统应用层对系统函数进行监控,缺乏对内存和寄存器方面的检测,很难对内核级恶意代码进行检测,从而很难确保恶意代码分析的完整性。
发明内容
为了解决上述技术问题,本发明提供了一种新型的Android恶意代码分析与检测方法,探索利用深度学习的思想解决恶意代码的特征提取,分析与检测问题。降低因Android恶意代码给用户带来的损害,准确的识别出安卓应用程序的恶意性。
本发明所采用的技术方案是:一种Android恶意代码分析与检测算法,其特征在于,包括以下步骤:
步骤1:恶意代码的特征抽提取与分析;
步骤2:恶意代码识别;
步骤3:恶意代码变种检测。
相对于现有技术,本发明的有益效果是:
(1)恶意代码多特征融合分析;
采用恶意代码静态分析、动态特征同深度学习模型相结合的特征抽取方法。然后筛选出能够充分反映应用程序行为的特征,在此基础之上,将筛选后的特征进行有效的特征融合,并且该模型具有一定的扩展性,可以加入更多的特征进行检测,为准确、高效地进行恶意代码检测打下良好基础。
(2)基于深度学习的恶意代码检测;
将深度学习应用于恶意代码分析与检测,利用分类算法对提取的特征集进行训练,筛选出有效特征,通过特征融合,并构造出基于恶意代码的分类器;使用构造好的分类器对待测试恶意代码进行检测、分类。提升了恶意代码检测的自动化程度和准确率。
附图说明
图1为本发明实施例的恶意代码特征提取流程图;
图2为本发明实施例的基于栈式自编码深度神经网络的Android应用程序恶意代码识别流程图;
图3为本发明实施例的基于深度信念网络的移动终端应用程序恶意代码识别流程图;
图4为本发明实施例的恶意代码变种检测流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明提供的一种Android恶意代码分析与检测算法,包括以下步骤:
步骤1:恶意代码的特征抽提取与分析;
对已知恶意软件样本进行反编译得到源代码,通过对源代码进行人工深度分析,得到恶意代码对应的初步指令序列并记为备选特征,再进行筛选剔除非代表性特征,得到这一恶意软件的最终有效特征。特征的描述能力是决定基于特征的检测方法的检测能力和检测效率的主要因素,如何更有效地提取恶意代码的本质特征,降低混淆技术的干扰,从而对恶意代码及其变种进行准确、有效地识别,是目前恶意代码检测技术的研究基础。
请见图1,具体包括以下子步骤:
步骤1.1:对已知恶意软件样本进行反编译得到源代码,并进行恶意代码特征提取;
为实现恶意代码的有效检测,恶意代码特征选取非常重要,特征抽取的好坏直接决定分类的自动化程度以及准确率。基于深度学习的恶意代码特征抽取方法,可以通过深度神经网络训练出恶意应用程序的有效特征,并以此特征为依据进行分析,主要包括以下3个步骤:恶意代码特征提取、恶意代码特征描述、恶意代码特征提取筛选。
步骤1.2:对具有恶意特征的代码片段进行形式化描述,得到对应的字节文件、指令序列,并记为备选特征;
对具有恶意特征的代码片段进行形式化描述,得到对应的字节文件、指令序列等特征,并记为备选特征。本实施例选取了以下几个“黄金”备选特征:恶意代码纹理图像、OpCode n-gram指令频度、功能函数调用。
步骤1.3:对备选特征进行筛选剔除非代表性特征,得到这一恶意软件的最终有效特征;
对输入的备选特征逐级进行从底层到高层训练深度神经网络,进行特征筛选,最终形成适合模式分类的较理想特征。
本实施例采用以下几种深度学习模型进行恶意代码特征筛选:基于栈式自编码的恶意代码纹理图像特征筛选,基于深度信念网络的恶意代码指令频度筛选。
步骤2:恶意代码识别;
通过检测文件是否拥有已知恶意软件的特征代码来判断其是否为恶意代码,或者依靠监视程序的行为与已知的恶意行为模式进行匹配,以此判断目标文件是否为恶意代码。
本实施例采用以下几种深度学习模型对Android应用程序恶意代码进行识别:基于栈式自编码深度神经网络Android应用程序恶意代码识别,基于深度信念网络移动终端Android应用程序恶意代码识别。
请见图2,采用栈式自编码深度神经网络对Android应用程序恶意代码进行识别,具体实现包括以下子步骤:
步骤A1:对带标签的恶意代码进行预处理,获取其灰度图像信息;
步骤A2:特征提取,描述,筛选;
步骤A3:将预处理后的输入数据输入到SAE(栈式自编码)中;
步骤A3.1:将预处理后的输入数据输入到AE(自编码)中;
步骤A3.2:将预处理后的输入数据输入到AE(自编码)中;
步骤A3.3:将预处理后的输入数据输入到softmax中;
步骤A4:采用SAE对整个网络进行调整;
步骤A5:通过检测文件与实际恶意代码标签数据对比,判断其是否为恶意代码。
请见图3,采用深度信念网络对移动终端Android应用程序恶意代码进行识别,对于移动终端而言,2007年Google公司正式向外发布Android操作系统,在短短几年时间里,便得到迅速发展,使其成为市场份额第一的操作系统。但相对来说,Android系统仍然处在发展期阶段,虽然在继承Linux本身的安全机制基础上又増加了几个特有的安全框架来提升应用的安全性,如签名机制、权限机制、沙盒机制,但在手机病毒日益猎叛的情况下,仍然无法保障手机用户资源及数据的安全性。本项目拟在基于当前网络环境下,重点提取APK文件的特征,并且利用深度信念网络模型算法,对移动终端应用程序进行良恶性识别。
具体实现包括以下子步骤:
步骤B1:预处理的恶意代码输入;
步骤B2:特征提取,描述,筛选;
步骤B3:将预处理后的输入输入到DBN(深度信念网络)中;
步骤B3.1将预处理后的输入输入到RBM(受限玻尔兹曼机)中;
步骤B3.2将预处理后的输入输入到RBM(受限玻尔兹曼机)中;
步骤B3.3将预处理后的输入输入到BP(反向传播算法)中;
步骤B4:输出结果同标签数据对比,实现对恶意代码识别精度判断。
步骤3:恶意代码变种检测;
恶意代码为逃避分析,利用各种方法对自身的特征、功能等进行隐藏,经过了加密、寡态、多态、变形发展过程,在这个过程当中,产生了各式各样的恶意代码变种。基于内容指纹的恶意代码变种检测方法,从恶意代码二进制文件的块内容相似性(映射为纹理图后,可理解为视觉相似性)检测恶意代码的变种。通过栈式自编码深度神经网络结合深度信念网络模型对种类恶意代码样本进行实验测试,验证基于内容纹理指纹的恶意代码变种检测方法。请见图4,具体实现包括以下子步骤:
步骤3.1:带标签的恶意代码进行预处理;
a)对安卓应用(即APK)进行分析,利用Android SDK(Software Development Kit,软件开发工具)的自带的AAPT(Android Assert Packaging Tool,安卓资产打包工具)对每个安卓应用(即APK)进行解压缩,得到Android Manifest.xml文件、lib库等文件;
b)通过APK tool工具和shell脚本提取Android恶意程序样本的权限;
c)使用Android NDK(Native Development Kit,原生软件开发工具包)中的arm-linux-Androideabi-readelf.exe提取native代码编译链接后生成的ELF文件的函数调用序列。
d)预处理后的安卓恶意代码数据,得到其脚本信息(应用程序的名字、版本号、所需权限、注册的服务、链接的其他应用程序),函数调用序列(包名、链接库),权限特征、ELF文件的函数调用序列构建特征向量。
步骤3.2:将步骤3.1中预处理的数据作为输入,充分训练第一层SAE;
步骤3.3:固定第一层的SAE的权值和偏移量,使用其隐藏节点,作为第二层SAE的输入向量;
步骤3.4:训练第二层SAE后,将得到的结果数据作为输入,充分训练第三层RBM;
步骤3.5:将RBM训练的结果数据作为输入,充分训练第四层RBM;
步骤3.6:最后一层采用Softmax对整个网络进行调整;
步骤3.7:通过对网络输出的恶意代码分析结果,判断其类型,判别出是否是恶意代码变种。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通技术人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以做出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应以所附权利要求为准。
Claims (8)
1.一种Android恶意代码分析与检测算法,其特征在于,包括以下步骤:
步骤1:恶意代码的特征抽提取与分析;
步骤2:恶意代码识别;
步骤3:恶意代码变种检测。
2.根据权利要求1所述的Android恶意代码分析与检测算法,其特征在于,步骤1的具体实现包括以下子步骤:
步骤1.1:对已知恶意软件样本进行反编译得到源代码;
步骤1.2:对具有恶意特征的代码片段进行形式化描述,得到对应的字节文件、指令序列,并记为备选特征;
步骤1.3:对备选特征进行筛选剔除非代表性特征,得到这一恶意软件的最终有效特征。
3.根据权利要求2所述的Android恶意代码分析与检测算法,其特征在于:步骤1.3中,对备选特征进行筛选的方法包括基于栈式自编码的恶意代码纹理图像特征筛选、基于深度信念网络的恶意代码指令频度筛选。
4.根据权利要求2所述的Android恶意代码分析与检测算法,其特征在于:步骤1.3中,对输入的备选特征逐级进行从底层到高层训练深度神经网络,进行特征筛选,最终形成适合模式分类的有效特征。
5.根据权利要求1所述的Android恶意代码分析与检测算法,其特征在于:步骤2中,采用栈式自编码深度神经网络对Android应用程序恶意代码进行识别;具体实现包括以下子步骤:
步骤A1:对带标签的恶意代码进行预处理,获取其灰度图像信息;
步骤A2:特征提取,描述,筛选;
步骤A3:将预处理后的输出输入到SAE中;
步骤A3.1:将预处理后的输出输入到AE中;
步骤A3.2:将预处理后的输出输入到AE中;
步骤A3.3:将预处理后的输出输入到softmax中;
步骤A4:采用SAE对整个网络进行调整;
步骤A5:通过检测文件与实际恶意代码标签数据对比,判断其是否为恶意代码。
6.根据权利要求1所述的Android恶意代码分析与检测算法,其特征在于:步骤2中,采用深度信念网络对移动终端Android应用程序恶意代码进行识别;具体实现包括以下子步骤:
步骤B1:预处理的恶意代码输入;
步骤B2:特征提取,描述,筛选;
步骤B3:将预处理后的输出输入到DBN中;
步骤B3.1将预处理后的输出输入到RBM中;
步骤B3.2将预处理后的输出输入到RBM中;
步骤B3.3将预处理后的输出输入到BP中;
步骤B4:输出结果同标签数据对比,实现对恶意代码识别精度判断。
7.根据权利要求1-6任意一项所述的Android恶意代码分析与检测算法,其特征在于,步骤3的具体实现包括以下子步骤:
步骤3.1:带标签的恶意代码进行预处理;
步骤3.2:将步骤3.1中预处理的数据作为输入,充分训练第一层SAE;
步骤3.3:固定第一层的SAE的权值和偏移量,使用其隐藏节点,作为第二层SAE的输入向量;
步骤3.4:训练第二层SAE后,将得到的结果数据作为输入,充分训练第三层RBM;
步骤3.5:将RBM训练的结果数据作为输入,充分训练第四层RBM;
步骤3.6:最后一层采用Softmax对整个网络进行调整;
步骤3.7:通过对网络输出的恶意代码分析结果,判断其类型,判别出是否是恶意代码变种。
8.根据权利要求7所述的Android恶意代码分析与检测算法,其特征在于:步骤3.1中所述带标签的恶意代码进行预处理,具体实现包括以下步骤:
a)对Android应用进行分析,利用Android SDK自带的AAPT对每个Android应用进行解压缩;
b)通过APK tool工具和shell脚本提取Android恶意程序样本的权限;
c)使用Android NDK中的arm-linux-Androideabi-readelf.exe提取native代码编译链接后生成的ELF文件的函数调用序列;
d)预处理后的Android恶意代码数据,得到其脚本信息,函数调用序列,权限特征、ELF文件的函数调用序列构建特征向量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810113041.XA CN108304719B (zh) | 2018-02-05 | 2018-02-05 | Android恶意代码分析与检测算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810113041.XA CN108304719B (zh) | 2018-02-05 | 2018-02-05 | Android恶意代码分析与检测算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108304719A true CN108304719A (zh) | 2018-07-20 |
CN108304719B CN108304719B (zh) | 2022-02-01 |
Family
ID=62864282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810113041.XA Active CN108304719B (zh) | 2018-02-05 | 2018-02-05 | Android恶意代码分析与检测算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108304719B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学习的Android平台恶意应用检测方法及装置 |
CN106096415A (zh) * | 2016-06-24 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于深度学习的恶意代码检测方法及系统 |
CN106326899A (zh) * | 2016-08-18 | 2017-01-11 | 郑州大学 | 一种基于高光谱图像和深度学习算法的烟叶分级方法 |
CN106951782A (zh) * | 2017-03-22 | 2017-07-14 | 中南大学 | 一种面向安卓应用的恶意代码检测方法 |
CN107273746A (zh) * | 2017-05-18 | 2017-10-20 | 广东工业大学 | 一种基于apk字符串特征的变种恶意软件检测方法 |
CN107609399A (zh) * | 2017-09-09 | 2018-01-19 | 北京工业大学 | 基于nin神经网络的恶意代码变种检测方法 |
-
2018
- 2018-02-05 CN CN201810113041.XA patent/CN108304719B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学习的Android平台恶意应用检测方法及装置 |
CN106096415A (zh) * | 2016-06-24 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于深度学习的恶意代码检测方法及系统 |
CN106326899A (zh) * | 2016-08-18 | 2017-01-11 | 郑州大学 | 一种基于高光谱图像和深度学习算法的烟叶分级方法 |
CN106951782A (zh) * | 2017-03-22 | 2017-07-14 | 中南大学 | 一种面向安卓应用的恶意代码检测方法 |
CN107273746A (zh) * | 2017-05-18 | 2017-10-20 | 广东工业大学 | 一种基于apk字符串特征的变种恶意软件检测方法 |
CN107609399A (zh) * | 2017-09-09 | 2018-01-19 | 北京工业大学 | 基于nin神经网络的恶意代码变种检测方法 |
Non-Patent Citations (2)
Title |
---|
罗世奇 等: "栈式自编码的恶意代码分类算法研究", 《计算机应用研究》 * |
罗世奇 等: "深度信念网络的恶意代码分类策略研究", 《小型微型计算机系统》 * |
Also Published As
Publication number | Publication date |
---|---|
CN108304719B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | Malicious code detection based on image processing using deep learning | |
Martín et al. | MOCDroid: multi-objective evolutionary classifier for Android malware detection | |
CN108595955B (zh) | 一种安卓手机恶意应用检测系统及方法 | |
CN105653956B (zh) | 基于动态行为依赖图的Android恶意软件分类方法 | |
CN103853979B (zh) | 基于机器学习的程序识别方法及装置 | |
Ünver et al. | Android malware detection based on image-based features and machine learning techniques | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
CN109271788B (zh) | 一种基于深度学习的Android恶意软件检测方法 | |
CN102567661B (zh) | 基于机器学习的程序识别方法及装置 | |
CN106055981B (zh) | 威胁情报的生成方法及装置 | |
CN105184160B (zh) | 一种基于API对象调用关系图的Android手机平台应用程序恶意行为检测的方法 | |
Sabhadiya et al. | Android malware detection using deep learning | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
CN105205396A (zh) | 一种基于深度学习的安卓恶意代码检测系统及其方法 | |
CN107944274A (zh) | 一种基于宽度学习的Android平台恶意应用离线检测方法 | |
Wang et al. | LSCDroid: Malware detection based on local sensitive API invocation sequences | |
CN107944270B (zh) | 一种可验证的安卓恶意软件检测系统及方法 | |
Martín et al. | A new tool for static and dynamic Android malware analysis | |
CN109657461B (zh) | 基于梯度提升算法的rtl硬件木马检测方法 | |
CN107798242A (zh) | 一种静动态结合的恶意安卓应用自动检测系统 | |
De Andrade et al. | Malware automatic analysis | |
CN113468524B (zh) | 基于rasp的机器学习模型安全检测方法 | |
Sanz et al. | Instance-based anomaly method for Android malware detection | |
Srivastava et al. | Android malware detection amid COVID-19 | |
Bernardi et al. | A fuzzy-based process mining approach for dynamic malware detection |
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 |