论文部分内容阅读
随着智能移动平台的飞速发展,智能手机开始成为人们日常生活中不可或缺的一部分。因此,越来越多的用户隐私软件和信息(如手机银行、移动支付等)开始在手机端富集。然而,移动端的安全性却不容乐观。恶意软件随着智能手机的普及迅速发展并在数量上以惊人的速度增长。在智能机时代,恶意软件无论是从质量上还是数量上均全面超越了功能机时代,成为了智能移动终端发展的最大隐患。目前移动操作系统多使用基于应用的权限授予机制。未被授权的应用将不能访问被保护的安全组件以及用户数据。然而,基于应用的权限授予拥有天然的安全问题。首先,静态权限缺乏详细的解释,普通用户很难理解权限的确切含义;其次,可能由于多个正常或恶意应用互相串通产生权限扩大攻击(Permission Escalation Attack).最后,重打包应用和间谍软件同时具有正常和恶意功能,用户难以辨识。这些问题的核心是权限授予的主体描述能力不足,用户难以静态判断是否应授予权限。对于恶意应用,现有恶意代码往往不是单独出现的,更多的情况是恶意代码感染了正常程序,从而形成恶意重打包应用。重打包应用同时具有正常程序的功能和恶意行为。与此类似,灰件和间谍软件的泛滥模糊了恶意应用的边界。这些应用表面上具有正常的功能,然而会在后台收集用户的隐私数据和操作。因此,仅仅基于现有的安全体系架构,用户完全无法分辨新安装软件是否应被授予所申请的权限。因为应用一旦获得权限,所有的组件和代码(正常和恶意)均可以使用该权限。针对上述移动安全问题,本文提出了一种新的基于事件流的移动平台恶意行为检测技术。相比于传统的基于应用恶意评判粒度,本文使用程序行为作为权限授予与恶意判断的单位。程序行为是指应用中由某一事件触发的一系列事件处理函数的执行过程。由于移动平台事件驱动的特性,所有的应用程序代码都将由事件触发。除此之外,程序行为上下文是应用程序行为的综述,可以让用户清楚地查看该行为详细内容。它包括了本次行为的起因(由什么事件触发)、经过(调用了哪些函数、访问了什么隐私数据)以及结果(最终处理的数据流向)。通过阅读“行为上下文”,用户可以清楚地知道此次应用行为的详情,并据此对应用的这次行为进行判定。基于上述概念和理论,本文在Android系统上实现了动态恶意检测系统EventChain。它能够追踪应用程序行为构建事件流,并跨线程、进程传播事件流上下文。当应用违反了预先设定好的安全策略时,EventChain会向用户报警,并提供当时的事件流上下文供用户评判。作为动态恶意检测系统,EventChain在计算密集型测试用例中引入了小于10%的性能开销,具有较好的可用性。