基于Android平台的恶意软件检测和软件加固技术研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:js_123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着智能手机技术的发展,人们越来越多地把工作和生活的计算平台从传统的PC平台转移到移动平台。智能手机储存了大量的用户隐私,例如通信记录、位置信息等,因而成为攻击者的攻击目标。作为主流移动平台之一的Android系统,其安全形式尤为严峻。为了维护Android平台的生态环境,学术界和工业界提出了多种系统增强和恶意软件检测的方法。由于系统增强的方法往往涉及到修改Android系统和应用程序框架层,而Android系统存在严重的碎片化问题,所以这类方法往往不具有广泛的可部署性。另一方面,考虑到智能手机的有限的电量和计算能力,不宜在手机端执行复杂的检测方法。因此,在应用市场的入口处,对应用进行严格的检查和审计,是提高Android系统安全性的一个有效举措。从恶意软件检测技术的发展历史来看,基于程序语义的特征签名技术能更好的刻画恶意行为,并具有更好的抗混淆性。传统的基于程序语义的特征签名一般利用控制流图、数据流图和系统调用等实现。而Android应用软件是基于事件驱动开发的,存在多入口点和大量的回调函数,而且其利用程序框架层提供的API访问系统资源,并不直接使用系统调用与底层系统交互。因此传统的基于程序语义的方法并不天然适用于Android应用软件的分析。本文提出了一种新的Android恶意软件签名技术——基于组件间调用图的特征签名。因为Android应用软件基于组件开发,组件可以像其他类一样被扩展并实现特定功能,组件间基于组件间通信机制进行调用和访问。因此,组件和类之间的调用关系形成了 Android应用软件的功能轮廓。本文以组件和类为顶点,组件和类之间的调用关系为边,可以构建组件间的调用图。然后抽取每个组件和类内部的API集合作为顶点的属性。因为Android应用软件利用API与系统交互,API集合反映了应用软件的行为。得到组件间调用图和API集合后,利用子图同构匹配算法和API集合相似度来确定待检测的应用软件是否属于恶意软件。另一方面,由于当前Android平台绝大多数的恶意软件属于重打包类型,因此,如何防止Android应用软件被攻击者逆向也是提高Android安全性的一个重要方法。因此,本文还提出了一种基于函数调用关系隐藏的软件加固技术,通过将Java方法的调用关系和执行序列隐藏到更难逆向的原生代码中,从而提高逆向Android应用软件的整体的复杂度。实验结果显示本文的检测方法具有较好的检测率并可以将误报率维持在可以接受的范围内。对于Android应用软件加固,本文提出的方法增加了逆向攻击的复杂度且不会对应用软件的启动时间造成较大影响。
其他文献
随着网络时代的快速发展,具有生动直观、可理解性强和内容丰富等优点的数字图像成为这个时代信息传输的重要媒介。但正由于这些优点,网络中拥有越来越多的图像数据,也会出现
随着数控加工技术的发展,数控设备在制造业中的应用越来越广泛,数控设备的统一调度与管理成为急需解决的问题。DNC是实现车间制造自动化的行之有效的途径,它是由DNC主控机、
视频中的异常检测是一项极具意义和挑战性的工作,不仅在日常的监控系统中有很大的应用价值,在计算机视觉中也是研究的重点,而现实生活中的监控场景大都是拥挤场景,例如车站,