CN106778266A - 一种基于机器学习的安卓恶意软件动态检测方法 - Google Patents
一种基于机器学习的安卓恶意软件动态检测方法 Download PDFInfo
- Publication number
- CN106778266A CN106778266A CN201611056138.9A CN201611056138A CN106778266A CN 106778266 A CN106778266 A CN 106778266A CN 201611056138 A CN201611056138 A CN 201611056138A CN 106778266 A CN106778266 A CN 106778266A
- Authority
- CN
- China
- Prior art keywords
- application
- strace
- measured
- malware
- sample
- 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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Virology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于机器学习的安卓恶意软件动态检测方法,步骤一,从不同来源收集两个样本库,分别组成恶意软件样本库和良性软件样本库;步骤二,将两个样本库中所有的基于安卓平台的应用软件依次安装到沙盒虚拟机环境中,作为待测应用,步骤三,依次运行待测应用,使用动态监测工具记录相应的strace日志;步骤四,对上述strace日志进行特征匹配提取;步骤五,训练好分类模型;步骤六,生成各个待测应用的对应的strace动态特征向量;步骤七,以strace动态特征向量作为分类模型的输入,对待测应用进行分类,做出恶意软件的判断。与现有技术相比,本发明的通用性强、适用范围广,并且取得了良好的准确率。
Description
技术领域
本发明涉及恶意软件动态检测技术、信息安全技术、机器学习等多种领域,特别是一种基于机器学习的安卓恶意软件动态检测方案。
背景技术
Android的快速发展和急剧扩张,成就了其市场份额上的霸主地位,也使其成为了恶意软件首要攻击的目标平台。同时由于Android的开放性,使得恶意软件的开发成本和难度降低,厂家定制的ROM和第三方市场的大量存在也使得恶意软件的生态更加复杂。共同作用下,Android恶意软件的数量呈现爆炸性增长的态势。互联网协会总结了恶意软件的特征并给出定义,“恶意软件是指在未明确提示用户或未经用户许可的情况下,在用户计算机或其他终端上安装运行,侵害用户合法权益的软件”。恶意软件危害很多,轻则无法删除占用空间,更甚者窃取宿主隐私、消耗用户系统资源造成卡顿等,有些甚至可以直接造成用户的经济损失、破坏宿主的硬件。Android系统的运行底层是Linux内核,所有的Android应用对系统资源的使用,最终都反映在内核的系统调用上。
Android平台的恶意软件检测,按照检测方法和检测目标划分,可以分为动态检测、静态检测以及基于云计算的检测等。所谓静态检测是指在不运行软件的情况下,将打包好的app安装文件(.apk)进行解包获取相应的文件,进而反编译得到原代码,检测恶意代码片段来确定恶意性。动态检测,就是在待测应用在沙盒系统运行中时去收集相关信息,利用相关监控工具监控其是否有联网、获取隐私等行为,进而判别软件是否有恶意性。基于云计算的检测是针对移动设备在电量和计算能力方面的局限性,把检测方案部署到具备海量存储和大量计算能力的云端服务器上,在被检测设备上只保留代理软件来采集基本信息,检测结果通过网络发回,从而提高检测表现。
发明内容
基于现有技术,本发明提出了一种基于机器学习的安卓恶意软件动态检测方法,利用沙盒虚拟机环境,搜集基于安卓平台的待测应用的动态执行日志并进行机器学习,根据机器学习得到的分类模型,实现恶意软件检测。
本发明的一种基于机器学习的安卓恶意软件动态检测方法,该方法包括以下步骤:
步骤一,从不同来源收集两个样本库,分别组成恶意软件样本库和良性软件样本库;
步骤二,将两个样本库中所有的基于安卓平台的应用软件依次安装到沙盒虚拟机环境中,这些基于安卓平台的应用软件作为待测应用;
步骤三,使用自动化脚本依次运行安装在沙盒虚拟机环境中的待测应用,并模拟常规操作,同时使用动态监测工具记录相应的strace日志;
步骤四,对上述strace日志进行特征匹配提取,统计342种system call每个出现的次数,这样每个待测应用生成一个与之对应的342维的统计特征向量,再标定良性或恶意的类别;
步骤五,使用机器学习算法,在上述342维的特征向量的特征集合上进行训练,得到可以对未知应用进行分类判别的分类模型;
步骤六,生成各个待测应用的对应的strace动态特征向量,这里是一个由自然数组成的分别代表对应系统调用出现次数的342维的特征向量;
步骤七,以strace动态特征向量作为分类模型的输入数据,将此输入数据作为训练数据,对每组训练数据定义一个明确的标识及对应的分类结果,将分类结果与分类模型标准比较,进而判断出待测样本是否是恶意软件的判断。
与现有技术相比,本发明的一种基于机器学习的安卓恶意软件动态检测方法具有以下积极的技术效果:
(1)通用性强、适用范围广的特点,没有如静态检测技术中面对混淆和加密防护时无法完成反编译提取源文件和代码的问题,只要是可以运行的应用,均可以是用该方法实行检测;
(2)可以取得良好的准确率,适于作为各个安卓应用市场的应用审核工具和云端检测方案的实时云端检测中枢。
附图说明
图1为恶意软件检测流程实施例示意图
图2为本发明的一种基于机器学习的安卓恶意软件动态检测方法整体流程图。
具体实施方式
下面结合附图对本发明作进一步详细描述。
本发明的整体思路是采用基于机器学习的动态检测方法,首先通过大量样本进行训练,得出较好的分类模型,然后在沙盒中运行待检测的程序,提取起其strace动态特征,输入分类模型后得出检测结果。
如图1所示,通过以下的具体实施例将本发明流程详细描述如下:
步骤1,从VirusShare论坛中获取已经标定的恶意程序集M,从安卓官方市场Google Play采集正常程序集B,从中各选取300个样本,组成本发明的样本库;
步骤2,开启运行在Linux系统环境下的Android虚拟机,使用adb connect命令连接adb调试工具,遍历步骤一中收集到的样本库的安装包文件夹,依次使用adb install*.apk指令,将待测应用安装于沙盒虚拟机上;
步骤3,使用脚本工具依次运行步骤二安装好的待测应用,这里使用的是python脚本和shell script脚本。对每个待测应用,调用Monkey自动运行工具,对其进行模仿人类的日常操作,同时调用strace工具,对该应用启动的所有运行于Linux内核中的进程进行监控,获取相应的strace运行日志,记录应用对系统函数(system call)的调用情况,对于一个应用开启多个进程的情况,将运行日志合并;
步骤4,对样本库中所有的程序对应的strace日志进行特征匹配提取,统计342种system call每种出现的次数,这样每个样本生成一个与之对应的342维的统计特征向量,再标定类别。这些系统调用的类型包括但不限于表1:
表1、系统调用变量实例
系统调用号 | 函数名 | 入口点 |
0 | read | sys_read |
1 | write | sys_write |
2 | open | sys_open |
3 | close | sys_close |
4 | stat | sys_newstat |
5 | fstat | sys_newfstat |
6 | lstat | sys_newlstat |
7 | poll | sys_poll |
8 | lseek | sys_lseek |
9 | mmap | sys_mmap |
10 | mprotect | sys_mprotect |
11 | munmap | sys_munmap |
12 | brk | sys_brk |
13 | rt_sigaction | sys_rt_sigaction |
15 | rt_sigreturn | stub_rt_sigreturn |
16 | ioctl | sys_ioctl |
17 | pread64 | sys_pread64 |
18 | pwrite64 | sys_pwrite64 |
19 | readv | sys_readv |
20 | writev | sys_writev |
… | … | … |
步骤5,基于上述步骤获得的样本特征向量集,使用相关的机器学习分类算法进行训练,得到最佳的分类模型。在实施中,分别采用临近算法(kNN)、支持向量机(SVM)、朴素贝叶斯(Bayes)等算法,比较结果最终选取SVM为最佳算法;
步骤6,对于待测软件,采用步骤2、步骤3和步骤4对其进行strace动态特征提取,生成其特征向量;
步骤7,将待测软件的特征向量,作为步骤5生成训练模型的输入,得到最终的分类结果,即对该软件是否为恶意软件做出判断。
Claims (1)
1.一种基于机器学习的安卓恶意软件动态检测方法,该方法包括以下步骤
步骤一,从不同来源收集两个样本库,分别组成恶意软件样本库和良性软件样本库;
步骤二,将两个样本库中所有的基于安卓平台的应用软件依次安装到沙盒虚拟机环境中,这些基于安卓平台的应用软件作为待测应用;
步骤三,使用自动化脚本依次运行安装在沙盒虚拟机环境中的待测应用,并模拟常规操作,同时使用动态监测工具记录相应的strace日志;
步骤四,对上述strace日志进行特征匹配提取,统计342种system call每个出现的次数,这样每个待测应用生成一个与之对应的342维的统计特征向量,再标定良性或恶意的类别;
步骤五,使用机器学习算法,在上述342维的特征向量的特征集合上进行训练,得到可以对未知应用进行分类判别的分类模型;
步骤六,生成各个待测应用的对应的strace动态特征向量,这里是一个由自然数组成的分别代表对应系统调用出现次数的342维的特征向量;
步骤七,以strace动态特征向量作为分类模型的输入数据,将此输入数据作为训练数据,对每组训练数据定义一个明确的标识及对应的分类结果,将分类结果与分类模型标准比较,进而判断出待测样本是否是恶意软件的判断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056138.9A CN106778266A (zh) | 2016-11-24 | 2016-11-24 | 一种基于机器学习的安卓恶意软件动态检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611056138.9A CN106778266A (zh) | 2016-11-24 | 2016-11-24 | 一种基于机器学习的安卓恶意软件动态检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106778266A true CN106778266A (zh) | 2017-05-31 |
Family
ID=58910906
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611056138.9A Pending CN106778266A (zh) | 2016-11-24 | 2016-11-24 | 一种基于机器学习的安卓恶意软件动态检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106778266A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742079A (zh) * | 2017-10-18 | 2018-02-27 | 杭州安恒信息技术有限公司 | 恶意软件识别方法及系统 |
CN108021810A (zh) * | 2017-12-06 | 2018-05-11 | 北京理工大学 | 一种海量恶意代码高效检测方法 |
CN108038374A (zh) * | 2017-12-26 | 2018-05-15 | 郑州云海信息技术有限公司 | 一种检测实时威胁的方法 |
CN108446572A (zh) * | 2018-03-26 | 2018-08-24 | 南京邮电大学 | 一种基于服务粒度的隐私权限管理方法 |
CN108563950A (zh) * | 2018-03-20 | 2018-09-21 | 南京邮电大学 | 基于SVM的Android恶意软件检测方法 |
CN108563951A (zh) * | 2018-04-13 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 病毒检测方法及装置 |
CN108595953A (zh) * | 2018-04-04 | 2018-09-28 | 厦门雷德蒙软件开发有限公司 | 对手机应用进行风险评估的方法 |
CN109271780A (zh) * | 2017-07-17 | 2019-01-25 | 卡巴斯基实验室股份制公司 | 机器学习恶意软件检测模型的方法、系统和计算机可读介质 |
CN109359439A (zh) * | 2018-10-26 | 2019-02-19 | 北京天融信网络安全技术有限公司 | 软件检测方法、装置、设备及存储介质 |
CN110008698A (zh) * | 2018-01-04 | 2019-07-12 | 深圳市腾讯计算机系统有限公司 | 病毒检测方法及装置 |
CN110210215A (zh) * | 2018-03-21 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种病毒检测的方法以及相关装置 |
CN110263538A (zh) * | 2019-05-13 | 2019-09-20 | 重庆大学 | 一种基于系统行为序列的恶意代码检测方法 |
CN110543426A (zh) * | 2019-09-06 | 2019-12-06 | 中国工商银行股份有限公司 | 一种软件性能风险检测方法及装置 |
CN111712817A (zh) * | 2017-12-18 | 2020-09-25 | 贝宝公司 | 用于基于系统调用的进程监视的空间和时间卷积网络 |
WO2021030593A1 (en) * | 2019-08-14 | 2021-02-18 | Mcafee, Llc | Methods and apparatus for malware detection using jar file decompilation |
WO2021142720A1 (zh) * | 2020-01-16 | 2021-07-22 | 上海卓悠网络科技有限公司 | 一种在Android系统中提供沙盒环境保护用户隐私的方法 |
CN113591082A (zh) * | 2021-07-06 | 2021-11-02 | 之江实验室 | 一种基于文本分类的Android混合特征恶意代码分类方法 |
WO2021258968A1 (zh) * | 2020-06-23 | 2021-12-30 | 腾讯科技(深圳)有限公司 | 小程序分类方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学习的Android平台恶意应用检测方法及装置 |
CN104598824A (zh) * | 2015-01-28 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种恶意程序检测方法及其装置 |
CN106095667A (zh) * | 2016-06-03 | 2016-11-09 | 西北大学 | 一种快速定位Android敏感功能对应的驱动文件位置的方法 |
WO2017071148A1 (zh) * | 2015-10-30 | 2017-05-04 | 四川九洲电器集团有限责任公司 | 基于云计算平台的智能防御系统 |
-
2016
- 2016-11-24 CN CN201611056138.9A patent/CN106778266A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123500A (zh) * | 2014-07-22 | 2014-10-29 | 卢永强 | 一种基于深度学习的Android平台恶意应用检测方法及装置 |
CN104598824A (zh) * | 2015-01-28 | 2015-05-06 | 国家计算机网络与信息安全管理中心 | 一种恶意程序检测方法及其装置 |
WO2017071148A1 (zh) * | 2015-10-30 | 2017-05-04 | 四川九洲电器集团有限责任公司 | 基于云计算平台的智能防御系统 |
CN106095667A (zh) * | 2016-06-03 | 2016-11-09 | 西北大学 | 一种快速定位Android敏感功能对应的驱动文件位置的方法 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271780A (zh) * | 2017-07-17 | 2019-01-25 | 卡巴斯基实验室股份制公司 | 机器学习恶意软件检测模型的方法、系统和计算机可读介质 |
CN109271780B (zh) * | 2017-07-17 | 2022-05-24 | 卡巴斯基实验室股份制公司 | 机器学习恶意软件检测模型的方法、系统和计算机可读介质 |
CN107742079A (zh) * | 2017-10-18 | 2018-02-27 | 杭州安恒信息技术有限公司 | 恶意软件识别方法及系统 |
CN107742079B (zh) * | 2017-10-18 | 2020-02-21 | 杭州安恒信息技术股份有限公司 | 恶意软件识别方法及系统 |
CN108021810A (zh) * | 2017-12-06 | 2018-05-11 | 北京理工大学 | 一种海量恶意代码高效检测方法 |
CN108021810B (zh) * | 2017-12-06 | 2019-12-17 | 北京理工大学 | 一种海量恶意代码高效检测方法 |
CN111712817B (zh) * | 2017-12-18 | 2024-01-23 | 贝宝公司 | 用于基于系统调用的进程监视的空间和时间卷积网络 |
EP3729314A4 (en) * | 2017-12-18 | 2021-09-08 | PayPal, Inc. | SPATIAL AND TEMPORARY FOLDING NETWORKS FOR SYSTEM CALLS BASED ON PROCESS MONITORING |
CN111712817A (zh) * | 2017-12-18 | 2020-09-25 | 贝宝公司 | 用于基于系统调用的进程监视的空间和时间卷积网络 |
CN108038374A (zh) * | 2017-12-26 | 2018-05-15 | 郑州云海信息技术有限公司 | 一种检测实时威胁的方法 |
CN110008698A (zh) * | 2018-01-04 | 2019-07-12 | 深圳市腾讯计算机系统有限公司 | 病毒检测方法及装置 |
CN108563950A (zh) * | 2018-03-20 | 2018-09-21 | 南京邮电大学 | 基于SVM的Android恶意软件检测方法 |
CN108563950B (zh) * | 2018-03-20 | 2022-03-15 | 南京邮电大学 | 基于SVM的Android恶意软件检测方法 |
CN110210215A (zh) * | 2018-03-21 | 2019-09-06 | 腾讯科技(深圳)有限公司 | 一种病毒检测的方法以及相关装置 |
CN108446572A (zh) * | 2018-03-26 | 2018-08-24 | 南京邮电大学 | 一种基于服务粒度的隐私权限管理方法 |
CN108595953A (zh) * | 2018-04-04 | 2018-09-28 | 厦门雷德蒙软件开发有限公司 | 对手机应用进行风险评估的方法 |
CN108563951A (zh) * | 2018-04-13 | 2018-09-21 | 腾讯科技(深圳)有限公司 | 病毒检测方法及装置 |
CN109359439B (zh) * | 2018-10-26 | 2019-12-13 | 北京天融信网络安全技术有限公司 | 软件检测方法、装置、设备及存储介质 |
CN109359439A (zh) * | 2018-10-26 | 2019-02-19 | 北京天融信网络安全技术有限公司 | 软件检测方法、装置、设备及存储介质 |
CN110263538B (zh) * | 2019-05-13 | 2021-07-09 | 重庆大学 | 一种基于系统行为序列的恶意代码检测方法 |
CN110263538A (zh) * | 2019-05-13 | 2019-09-20 | 重庆大学 | 一种基于系统行为序列的恶意代码检测方法 |
WO2021030593A1 (en) * | 2019-08-14 | 2021-02-18 | Mcafee, Llc | Methods and apparatus for malware detection using jar file decompilation |
US11435990B2 (en) | 2019-08-14 | 2022-09-06 | Mcafee, Llc | Methods and apparatus for malware detection using jar file decompilation |
CN110543426A (zh) * | 2019-09-06 | 2019-12-06 | 中国工商银行股份有限公司 | 一种软件性能风险检测方法及装置 |
WO2021142720A1 (zh) * | 2020-01-16 | 2021-07-22 | 上海卓悠网络科技有限公司 | 一种在Android系统中提供沙盒环境保护用户隐私的方法 |
WO2021258968A1 (zh) * | 2020-06-23 | 2021-12-30 | 腾讯科技(深圳)有限公司 | 小程序分类方法、装置、设备及计算机可读存储介质 |
CN113591082A (zh) * | 2021-07-06 | 2021-11-02 | 之江实验室 | 一种基于文本分类的Android混合特征恶意代码分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106778266A (zh) | 一种基于机器学习的安卓恶意软件动态检测方法 | |
Arshad et al. | SAMADroid: a novel 3-level hybrid malware detection model for android operating system | |
Hadiprakoso et al. | Hybrid-based malware analysis for effective and efficiency android malware detection | |
Hussain et al. | IMIAD: intelligent malware identification for android platform | |
Canfora et al. | Detecting android malware using sequences of system calls | |
Onwuzurike et al. | A family of droids-android malware detection via behavioral modeling: Static vs dynamic analysis | |
Islam et al. | Classification of malware based on integrated static and dynamic features | |
US8762948B1 (en) | System and method for establishing rules for filtering insignificant events for analysis of software program | |
CN102034050A (zh) | 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法 | |
Mercaldo et al. | Mobile malware detection in the real world | |
CN111639337B (zh) | 一种面向海量Windows软件的未知恶意代码检测方法及系统 | |
KR20200039912A (ko) | Ai 기반 안드로이드 악성코드 자동화 분석 시스템 및 방법 | |
CN108734012A (zh) | 恶意软件识别方法、装置及电子设备 | |
Abderrahmane et al. | Android malware detection based on system calls analysis and CNN classification | |
CN106599688A (zh) | 一种基于应用类别的安卓恶意软件检测方法 | |
Huang et al. | Android malware development on public malware scanning platforms: A large-scale data-driven study | |
Chen et al. | Android malware classification using XGBoost based on images patterns | |
Salehi et al. | Android malware detection using Markov Chain model of application behaviors in requesting system services | |
Sihag et al. | Opcode n-gram based malware classification in android | |
Yang et al. | Android malware detection using hybrid analysis and machine learning technique | |
Zuo | Defense of Computer Network Viruses Based on Data Mining Technology. | |
Tian et al. | MDCD: A malware detection approach in cloud using deep learning | |
Surendran et al. | Detection of malware applications from centrality measures of syscall graph | |
Guerra-Manzanares et al. | Time-frame analysis of system calls behavior in machine learning-based mobile malware detection | |
Onwuzurike et al. | A family of droids: Analyzing behavioral model based Android malware detection via static and dynamic analysis |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170531 |