一种通用的Android恶意行为检测方法技术

技术编号:10915315 阅读:119 留言:0更新日期:2015-01-14 20:59
本发明专利技术公开了一种通用的Android恶意行为检测方法。本方法为:1)在手机上设置一守护进程,并在该守护进程与内核Binder驱动之间建立通信连接;2)在该手机上安装并运行多个第三方应用程序,手机内核驱动将截获的每一通信消息发送给该守护进程;3)该守护进程根据通信消息生成日志文件,记录接收的通信消息;4)恶意行为检测平台将所述日志文件导入数据库,查找数据库中包含目标隐私数据的记录,对于查找得到的记录,进行恶意行为检测:如果通信一方不具有访问权限,或者存在A→S,S→B且发生时间间隔小于设定阈值,则存在恶意行为。本发明专利技术收集的信息全面、普适、可重用,可做多种面向具体安全需求的安全分析方法设计。

【技术实现步骤摘要】
一种通用的Android恶意行为检测方法
本专利技术属于移动终端安全领域,主要涉及Android恶意行为检测分析,更确切的是涉及一种基于对Android通信机制Binder消息流的采集和处理,检测和分析Android应用恶意行为的通用方法。
技术介绍
移动互联网时代的来临,使得大量的智能移动终端涌入市场。根据Gartner的最新报告显示,预计在2014年度传统个人PC、平板电脑以及智能手机的出货量将达到24亿台。在24亿台中,智能手机和平板电脑占据88%的份额,而这其中Android系统设备又占据绝大多数。Android是Google和开放手机联盟创建的开放的移动平台,其开放性使得开发人员可以很方便的进行各种系统和应用开发,从而催生了大量的第三方应用,但Android市场上的应用程序管理混乱,导致Android系统上的恶意应用频发。智能手机上存储了大量的用户隐私信息,包括通讯录、短信、通话记录、网银密码以及论坛账号等,这些信息的泄露都会给用户造成巨大的损失。自从2004年第一个手机恶意程序开始,手机上(尤其是Android平台)的恶意应用程序就迅猛发展,因此提出有效的方法对恶意应用进行检测分析是亟待解决的问题。目前对恶意行为的检测主要有静态和动态两种方法。静态方法主要使用反汇编反编译技术对应用的源码进行控制流或数据流的分析。Enck等人实现了Dalvik字节码反汇编工具ded,将字节码转换为源码,通过现有的Java源码分析工具,检测分析应用的恶意行为。动态方法是在运行中收集应用程序的行为信息,可以通过行为追踪的方式,动态捕获程序执行的操作,分析程序的行为。TaintDroid,作为一种动态污点分析工具,通过对敏感对象打标签实现实时监控与分析,检测是否有恶意应用向外发送敏感数据,以及辅助对程序行为的分析。AppInspector采用动态分析方法,为程序自动生成输入并记录程序运行过程中的日志,通过分析日志来检测应用中是否有泄露隐私的行为。上述的安全分析方法都是针对某类具体安全需求而设计的,如TaintDroid和AppInspector的目的都是隐私数据保护,虽然具有目的性强,信息量相对较小的优点,但收集的信息不具有通用性,新安全需求的出现会导致信息的重新收集或安全分析方法的完全重新设计。一种通用的分析方法是指收集的信息全面且通用,分析方法依据具体的安全需求,利用收集的通用信息完成。在现有的移动终端领域,还不存在一种通用的基于信息流的恶意行为动态检测方法。
技术实现思路
本专利技术致力于构建一种基于Binder通信消息流的Android恶意行为检测方法,以Android底层通信机制Binder为切入点,全面收集应用之间、应用与操作系统之间的交互信息,收集的Binder日志信息导入数据库中,这样面向具体安全需求的分析就转变为对数据库的查询、修改等操作,最终分析结果通过web页面展示出来。所述Binder通信是Android系统上最主要的一种通信方式,Android上层的通信方式如Intent以及匿名共享内存等,对应到底层都通过Binder方式实现。在实际的实现中,Binder是作为一个特殊的字符型设备而存在的,其实现遵循Linux设备驱动模型。本专利技术的恶意行为检测分析方法主要涉及以下三个环节:(1)采集通信信息并生成日志文件。用户空间设置守护进程,守护进程负责把内核Binder驱动传过来的Binder日志信息,写入到日志文件中。考虑到Binder通信日志的数量级很大,实现了日志文件的自动转储功能。(2)处理并分析日志文件。把日志文件导入数据库,对采集到的Binder通信信息进行分析,面向具体安全需求的分析就转变为对数据库的查询、修改等操作。(3)基本信息维护及分析结果展示。为用户提供可视化、可编辑的前台页面显示,对后台变化的数据进行动态显示,分析已有的Binder通信信息,可以绘出手机的状态图,状态图包含手机中的进程信息,进程间的通信关系。在上述采集信息并生成日志文件的环节中,守护进程设置在Android的应用程序框架层,通过信号量机制与内核层的Binder驱动通信,Binder驱动把截获的Binder通信消息传给守护进程,守护进程根据其接收到的消息字段,生成日志文件。考虑到Binder通信日志的数量级很大,过大的文件不适合分析,并且会占用过多的手机存储,因此实现了文件的自动转储功能。所述Binder通信消息包含的字段为:发送方应用的进程号、进程名、应用名、应用描述、接收方进程的进程号、进程名、应用名、应用描述、通信的数据包大小、数据包内容(以二进制形式存储)等。所述守护进程与内核Binder驱动通信的方法为,内核层的Binder驱动和守护进程都维护了一个结构体数组,数组大小为32,每个结构体代表一条Binder通信消息,结构体中的成员变量即为Binder通信消息包含的字段。Binder驱动每截获一条Binder通信消息,就把该条消息赋值到数组的一个结构体中,当数组的32个结构体都被重新赋值后,Binder驱动就通过信号量机制通知守护进程。守护进程利用设备控制接口函数ioctl访问Binder驱动,由Binder驱动把其维护的结构体数组的内容原样拷贝到守护进程维护的结构体数组中,数组中的信息然后被守护进程写入到日志文件中。Binder驱动维护的结构体数组是可以重复赋值的,当旧的值被拷贝到守护进程中后,Binder驱动会将新截获的Binder通信信息写入,覆盖之前的值。所述日志文件的自动转储功能为日志文件达到一定大小时,将文件转存到PC上并删除,然后继续生成新的日志文件。在上述处理并分析日志文件的环节中,由于生成的日志文件是二进制形式,不易阅读且操作复杂,因此把日志文件导入数据库,可直观看到通信双方的信息以及通信的数据包等内容。此时对Binder日志文件的分析就转变为对数据库的查询、修改等操作。所述日志文件导入数据库为在数据库中新建一个表,表中字段与日志文件中的字段一一对应,对日志文件中的记录逐字段分析,写到数据库相应的字段中。所述对Binder日志文件的分析为面向具体安全需求的分析,比如查找日志文件中是否包含某类隐私数据,就转变为对数据库中的字段进行匹配查找操作,在找到包含目标隐私数据的内容同时,能直接得到通信双方的信息,根据通信双方的信息再进行后续分析。具体分析有如下几种情况:1)通信双方都是Android自带的系统应用,则该条通信路径为可信路径。2)通信双方中的一方为第三方应用,则查看该第三方应用是否有相应的权限(应用安装时用户授予的权限)访问目标隐私数据,如果有,则该条路径为可信,否则说明存在恶意行为。3)通信双方都是第三方应用,则查看两者是否都有相应的权限访问目标隐私数据,如果两者都有,则该条路径为可信,否则说明存在恶意行为。上述是发现单个应用的恶意行为,根据所得到的查找结果,也可以分析应用间的恶意行为。如果找到的包含目标隐私数据的通信路径有如下两条:A->S,S->B。其中S为系统应用,A与B是第三方应用,每一条通信路径的信息在存入到Binder驱动维护的结构体数组时,会生成一个ID,ID是递增的。如果上面的两条通信路径的ID差值小于等于某个阈值(该阈值根据实际情况设定,暂定为5),本文档来自技高网
...
一种通用的Android恶意行为检测方法

【技术保护点】
一种通用的Android恶意行为检测方法,其步骤为:1)在Android手机上设置一守护进程,并在该守护进程与内核Binder驱动之间建立通信连接;2)在该手机上安装并运行多个第三方应用程序,手机内核Binder驱动将截获的每一通信消息发送给该守护进程;3)该守护进程根据手机内核Binder驱动传过来的通信消息生成日志文件,记录接收的通信消息;4)Android恶意行为检测平台将所述日志文件导入数据库,查找数据库中包含目标隐私数据的记录,对于查找得到的记录,进行恶意行为检测:a)如果该条记录通信双方中的一方为第三方应用,则查看该第三方应用是否有相应的权限访问目标隐私数据,如果有,则该条路径为可信,否则存在恶意行为;b)如果通信双方都是第三方应用,则查看两者是否都有相应的权限访问目标隐私数据,如果两者都有,则该条路径为可信,否则说明存在恶意行为;c)如果找到的包含目标隐私数据的通信路径有如下两条:A‑>S,S‑>B;其中S为系统应用,A与B是第三方应用,如果两条路径的发生时间间隔小于设定阈值,则第三方应用A与B之间存在恶意行为。

【技术特征摘要】
1.一种通用的Android恶意行为检测方法,其步骤为:1)在Android手机上设置一守护进程,并在该守护进程与内核Binder驱动之间建立通信连接;2)在该手机上安装并运行多个第三方应用程序,手机内核Binder驱动将截获的每一通信消息发送给该守护进程;3)该守护进程根据手机内核Binder驱动传过来的通信消息生成日志文件,记录接收的通信消息;4)Android恶意行为检测平台将所述日志文件导入数据库,查找数据库中包含目标隐私数据的记录,对于查找得到的记录,进行恶意行为检测:a)如果该条记录通信双方中的一方为第三方应用,则查看该第三方应用是否有相应的权限访问目标隐私数据,如果有,则该条记录通信双方对应的通信路径为可信,否则存在恶意行为;b)如果通信双方都是第三方应用,则查看两者是否都有相应的权限访问目标隐私数据,如果两者都有,则该条记录通信双方对应的通信路径为可信,否则说明存在恶意行为;c)如果找到的包含目标隐私数据的通信路径有如下两条:A->S,S->B;其中S为系统应用,A与B是第三方应用,如果两条路径的发生时间间隔小于设定阈值,则第三方应用A与B之间存在恶意行为。2.如权利要求1所述的方法,其特征在于客户端对所述日志文件进行自动转存,即当日志文件达到设定大小时,所述客户端将其转存到指定...

【专利技术属性】
技术研发人员:周启惠于爱民徐震汪丹
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1