基于函数调用图的Android恶意代码检测方法研究
- 格式:pdf
- 大小:1.44 MB
- 文档页数:5
本栏目责任编辑:谢媛媛软件设计开发Android 恶意软件检测方法研究刘梦戎,胡勇(四川大学电子信息学院,四川成都610065)摘要:Android 已成为当今最热门的移动终端平台,其开放性的特点使得针对它的恶意软件层出不穷。
该文针对恶意软件的行为进行动态分析,提出了一种基于监控敏感API 调用的恶意软件检测算法。
该算法用卡方检验筛选出权值高、作用不重叠的敏感API ,最后使用K-means 算法做机器学习,识别出与样本库相似的恶意软件,该方法能够有效识别恶意软件,标注出其恶意行为。
关键词:Android ;恶意软件;敏感API 中图分类号:TP311文献标识码:A 文章编号:1009-3044(2016)03-0086-02近几年来,Android 平台日益严重的安全问题,使得恶意软件研究成为当务之急。
Android 恶意代码分析研究目前主要有两种方法,即静态分析和动态检测。
静态分析是指通过分析程序代码来判断程序行为[1]。
动态分析是指在严格控制的环境下执行应用程序,尽可能的触发软件的全部行为并记录,以检测应用程序是否包含恶意行为[2]。
本文提出的全面检测软件运行时信息的Android 恶意软件检测方案就是基于动态分析的基础上,利用敏感API 的触发来判断应用程序的行为。
据此开发了一个恶意程序检测系统,对系统的检测效果进行评估和验证。
1敏感API通常,恶意软件在运行时需要调用特定的API 来完成,如隐私窃取型恶意软件需要访问通讯录API ,恶意计费型恶意软件需要调用发送短信API ,这些API 是敏感API [3]。
在恶意软件动态分析中,需要用到程序运行时的API 调用日志,而Android 系统的日志仅提供了有限信息。
因此通过dalvik 注入的方式在Android 源码中hook 这些敏感API ,使得恶意软件调用这些敏感API 时能及时得到调用日志。
敏感API 来源于对已知恶意软件分析的经验,以及对已知恶意软件和已知正常软件API 统计的差异[4]。
第41卷第6期 2017年12月南京理工大学学报Journal of Nanjing University of Science a n d T echnologyVol.41 N o.6Dec.2017基于系统调用的安卓恶意应用检测方法陈昊\姜海涛\郭静\周超\姚楠\徐建2(1.国网江苏省电力公司电力科学研究院,江苏南京211103;2.南京理工大学计算机科学与工程学院,江苏南京210094)摘要:针对恶意应用静态检测方法精度低的问题,以安卓(Android)应用运行时产生的系统调 用为研究对象,提出1种恶意应用动态检测方法。
将Android移动应用在沙盒环境下通过事件 仿真获得的系统调用序列进行特征化,设计了基于系统调用次数和基于系统调用依赖图的2种 特征表示方法。
采用集成学习方法构建分类器,区分恶意应用和正常应用。
采用来自于第三方 应用市场的3 000个样本进行了实验验证。
结果表明,基于系统调用依赖图的特征表示方法优 于基于系统调用次数的特征表示方法,采用集成分类器具有较好的检测精度,达95. 84%。
关键词:安卓;恶意应用检测'静态检测;动态检测;特征化;系统调用次数'系统调用依赖图中图分类号:TP309. 2 文章编号:1005-9830 (2017)06-0720-05D O I:10.14177/ki.32-1397n.2017.41.06.009Android malware detection mettiod based on system callsChen Hao1,Jiang Haitao1,Guo Jing1,Zhou Chao1,Yao Nan1,Xu Jian2(1. State Grid Jiangsu Electric Power Company Research Institute,Nanjing211103,China;2.School of Computer Science and Engineering,Nanjing University of Science and Technology,Nanjing210094,China)Abstract:A dynamic Android malware detection approach i s proposed aiming a t t l i e s t a t i c malware detection approaches by researching the system call s of Android appli ca ll s achieved by stimulated events of Android applies from the sandbox are characterized,and twofeature representation methods are designed based on system call frequency and system c a l ldependency respectively.Malware and goodware are distinguished byaclassifier constructed by ensemble method.The two methods are tested on 3 000 Android applications from market.The experimental r esults show that,the feature representation method based on system c a l ldependency i s better than that based on system ca ll frequency,and the ensea good detection accuracy of95. 84%.收稿日期:2017-03-27修回日期:2017-06-07基金项目:国网江苏省电力公司科技项目(J2016022)作者简介:陈昊(1980-),女,高级工程师,主要研究方向:移动安全、数据挖掘,E-m a i l:c h_j e p r i@163. c o m。
Android恶意软件检测方法研究打开文本图片集摘要:Android已成为当今最热门的移动终端平台,其开放性的特点使得针对它的恶意软件层出不穷。
该文针对恶意软件的行为进行动态分析,提出了一种基于监控敏感API调用的恶意软件检测算法。
该算法用卡方检验筛选出权值高、作用不重叠的敏感API,最后使用K-means算法做机器学习,识别出与样本库相似的恶意软件,该方法能够有效识别恶意软件,标注出其恶意行为。
关键词:Android;恶意软件;敏感API近几年来,Android平台日益严重的安全问题,使得恶意软件研究成为当务之急。
Android恶意代码分析研究目前主要有两种方法,即静态分析和动态检测。
静态分析是指通过分析程序代码来判断程序行为[1]。
动态分析是指在严格控制的环境下执行应用程序,尽可能的触发软件的全部行为并记录,以检测应用程序是否包含恶意行为[2]。
本文提出的全面检测软件运行时信息的Android恶意软件检测方案就是基于动态分析的基础上,利用敏感API的触发来判断应用程序的行为。
据此开发了一个恶意程序检测系统,对系统的检测效果进行评估和验证。
1敏感API通常,恶意软件在运行时需要调用特定的API来完成,如隐私窃取型恶意软件需要访问通讯录API,恶意计费型恶意软件需要调用发送短信API,这些API是敏感API[3]。
在恶意软件动态分析中,需要用到程序运行时的API调用日志,而Android系统的日志仅提供了有限信息。
因此通过dalvik注入的方式在Android源码中hook这些敏感API,使得恶意软件调用这些敏感API时能及时得到调用日志。
2检测方法的设计与实现恶意软件检测系统功能包括:1)综合信息采集;2)数据预处理;3)数据分析。
综合信息采集的目标是获取敏感API调用信息及全面获取程序的其它静、动态信息,以便于人工分析经过数据处理后仍然可疑的应用程序。
数据预处理指的是用卡方检验算法对敏感API调用序列做滤波处理,以得到一个更加独立的敏感API调用特征值集合。
基于深度学习的Android恶意程序检测算法研究随着移动互联网的快速普及,Android系统成为最主流的移动操作系统之一。
然而,越来越多的Android设备上出现了恶意程序,它们会偷取用户的私人信息,利用设备的计算能力进行挖矿等非法行为,对手机用户的安全与隐私造成很大威胁。
因此,如何检测和拦截Android恶意程序,保障用户的安全与隐私成为了一个重要的研究课题。
目前,恶意程序检测算法主要包括基于特征的静态分析和基于行为的动态分析。
基于特征的静态分析将恶意程序看作是一个具有独特特征的文件,通过比对这些特征,判定是否是恶意程序。
这种方法的优点在于检测速度快,但是容易被恶意程序绕过。
基于行为的动态分析是通过监测恶意程序的行为,判断是否是恶意程序,相较于前者更加准确,但是也更加复杂。
为了提高恶意程序检测的精度和效率,越来越多的研究采用了深度学习算法。
深度学习是一种人工神经网络的变体,网络层次结构更加深入,可以通过大量的数据进行训练,自动提取数据的特征,对于分类和回归等任务有很好的表现。
在Android恶意程序检测中,深度学习算法将自动提取恶意程序的特征,使检测更加准确、普适性和实时性更强。
近年来,基于深度学习的Android恶意程序检测算法也取得了很大的进展。
深度学习算法在Android恶意程序检测中主要采用卷积神经网络(CNN)和循环神经网络(RNN),并结合其他算法进行综合评估。
CNN是一种前馈神经网络,具有卷积操作和下采样操作,可以有效地处理图像等数据,而RNN是一种递归神经网络,对于序列数据的处理效果更好。
这两种算法在恶意程序检测中可以自动识别特征,同时结合使用可以提高检测的准确性。
除了CNN和RNN,还有一些其他的深度学习算法,如自编码器、支持向量机等,也被应用于恶意程序检测。
自编码器是一种无监督学习的神经网络,可以对输入数据进行压缩和优化,从而提取出数据的特征。
支持向量机是一种常见的机器学习算法,可以将数据映射到高维空间,通过分类超平面对数据进行分类。
基于系统调用的Android恶意软件检测分析摘要:文章提出一种基于系统调用功能的Android恶意软件检测方法。
通过构建Android系统应用程序数据文件保护机制,针对手机病毒、恶意软件损害及木马入侵等安全隐患,设计了一种专用的基于系统调用的Android恶意软件检测架构。
结合系统调用频数特征,描述应用程序执行时的非法行为,并以kNN算法为基础,结合实例对某Android系统手机恶意软件进行检测分析。
关键词:系统调用;Android系统;恶意软件;检测Abstract:ThispaperpresentsanAndroidmalwaredetectionmethodbasedonsystemcal lfunction.ThroughtheconstructionofAndroidsystemapplicationdatafi leprotectionmechanism,aimingatmobilephonevirus,malicioussoftwaredamageandTrojaninvasionandothersecurityrisks.As pecialAndroidmalwaredetectionarchitecturebasedonsystemcallisdesi gned.Accordingtothecharacteristicsofsystemcallfrequency,thispaperdescribestheillegalbehaviorwhentheapplicationprogramise xecuted,andbasedonthekNNalgorithm,analyzesthemalwareofamobilephoneinaAndroidsystemwithexamples.Keywords:systemcall;Androidsystem;malware;detection1问题的提出通常在对手机恶意软件进行分析时,主要采用“静态”与“动态”分析两种方法,结合恶意攻击行为进行判断,结合系统安全检测记录分析恶意未知代码。
基于敏感权限及其函数调用图的Android恶意代码检测祝小兰;王俊峰;杜垚;白金荣
【期刊名称】《四川大学学报(自然科学版)》
【年(卷),期】2016(053)003
【摘要】为了有效地检测Android平台上的恶意软件,提出了一种基于敏感权限及其函数调用流程图的静态综合检测方法.通过对恶意软件进行逆向工程分析,构建了包含恶意代码敏感权限与函数调用图的特征库.并采用Munkres匈牙利算法计算待测样本与特征库在相同敏感权限下两个函数调用图之间的编辑距离,得到两个函数调用图之间的相似性,进而得到两个应用程序之间的相似性,据此对恶意软件进行检测识别.实验结果表明,该检测方法具有较高的准确性与有效性,检测效果明显优于工具Androguard.
【总页数】8页(P526-533)
【作者】祝小兰;王俊峰;杜垚;白金荣
【作者单位】四川大学计算机学院,成都 610065;四川大学计算机学院,成都610065;四川大学计算机学院,成都 610065;四川大学计算机学院,成都 610065【正文语种】中文
【中图分类】TP309.5
【相关文献】
1.基于SVM的敏感权限Android恶意软件检测方法 [J], 陈平;李敬明;沈桂芳;张平华;
2.基于SVM的敏感权限Android恶意软件检测方法 [J], 陈平;李敬明;沈桂芳;张平华
3.基于函数调用图的Android恶意代码检测方法研究 [J], 李自清
4.Android平台下的基于应用分类和敏感权限挖掘的恶意应用检测方法研究 [J], 刘倩;韩斌
5.基于敏感权限和API的Android恶意软件家族分类方法 [J], 于媛尔;张琳琳;赵楷;方文波;胡英杰;宋鑫;王晨跃
因版权原因,仅展示原文概要,查看原文内容请购买。
Android恶意软件检测技术研究恶意软件(Malware)是指在用户不知情的情况下,通过欺骗、伪装、利用漏洞等方式,获取用户数据、进行远程控制、破坏系统等危害行为的软件程序。
随着Android手机的普及,恶意软件也日益增多,给用户的信息安全和设备性能带来了威胁。
因此,Android恶意软件检测技术的研究变得尤为重要。
一、引言随着移动设备的快速发展,Android操作系统成为了最受欢迎的移动操作系统之一。
然而,Android平台上也层出不穷的恶意软件,给用户的手机和隐私安全带来了威胁。
因此,研究Android恶意软件检测技术,成为了当前的热点问题。
二、Android恶意软件的特征1. 代码特征:恶意软件通常会包含一些破坏性的代码片段,例如隐藏特权提升代码、远程控制代码等。
2. 行为特征:恶意软件常常以异常行为为特征,比如窃取用户隐私信息、发送短信、窃取账号密码等。
3. 权限特征:恶意软件通常会申请一些不必要的权限,例如读取通讯录、开机启动等权限。
4. 文件特征:恶意软件通常会包含一些特殊的文件,例如恶意链接、恶意图片等。
三、Android恶意软件检测技术1. 静态分析技术:静态分析技术通过对源代码、APK文件等进行分析,寻找其中的恶意行为和特征。
静态分析技术主要采用代码特征和权限特征来进行恶意软件的检测。
2. 动态分析技术:动态分析技术在安全环境中执行恶意软件,观察其行为特征。
动态分析技术主要采用行为特征和文件特征来进行恶意软件的检测。
3. 机器学习技术:机器学习技术通过对大量的样本进行训练,建立恶意软件的检测模型。
机器学习技术可以有效地识别恶意软件的行为特征和代码特征。
四、 Android恶意软件检测工具综述1. 系统级检测工具:系统级检测工具通过监控系统调用、进程行为等来检测恶意软件。
例如,YARA、Cuckoo等工具。
2. 应用级检测工具:应用级检测工具通过分析APK文件、运行应用行为等来检测恶意软件。