基于安卓平台的病毒取证系统及其方法.pdf

上传人:Y948****062 文档编号:4705125 上传时间:2018-10-28 格式:PDF 页数:10 大小:795.29KB
返回 下载 相关 举报
摘要
申请专利号:

CN201410784009.6

申请日:

2014.12.16

公开号:

CN104392177A

公开日:

2015.03.04

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 21/56申请公布日:20150304|||实质审查的生效IPC(主分类):G06F 21/56申请日:20141216|||公开

IPC分类号:

G06F21/56(2013.01)I

主分类号:

G06F21/56

申请人:

武汉虹旭信息技术有限责任公司

发明人:

匡红; 叶猛; 保永武

地址:

430074湖北省武汉市洪山区邮科院路88号

优先权:

专利代理机构:

武汉宇晨专利事务所42001

代理人:

黄瑞棠

PDF下载: PDF下载
内容摘要

本发明公开了一种基于安卓平台的病毒取证系统及其方法,涉及信息安全领域。本系统是病毒检测模块与病毒取证模块交互,实现安卓平台上病毒的检测和取证功能;病毒取证模块与取证报告生成模块交互,对病毒恶意行为进行定位分析,详细的记录了现场数据,以便日后需要取证时重建某些网络事件。本方法是:①病毒检测模块采集APK程序的各种特征,采用一系列安全策略对其进行病毒检测;②病毒取证模块结合静态和动态分析方法,对病毒恶意行为进行取证;③取证报告生成模块对病毒的恶意行为进行详细记录。本发明具有下列优点和积极效果:①时效性;②可扩展;③可溯源,方便日后还原某些利用病毒进行犯罪的网络案件。

权利要求书

权利要求书
1.  一种基于基于安卓平台的病毒取证系统,其特征在于:
本系统包括病毒检测模块(100)、病毒取证模块(200)和取证报告生成模块(300);
其中病毒检测模块(100)由文件信息获取模块(110)、异常流量检测模块(120)、敏感行为检测模块(130)和安全策略模块(140)组成;
病毒取证模块(200)由静态逆向取证模块(210)和动态调试取证模块(220)组成;
其交互关系是:
病毒检测模块(100)与病毒取证模块(200)交互,实现安卓平台上病毒的检测和取证功能;
病毒取证模块(200)与取证报告生成模块(300)交互,对病毒恶意行为进行定位分析,详细的记录了现场数据,以便日后需要取证时重建某些网络事件;
文件信息获取模块(110)、异常流量检测模块(120)和敏感行为检测模块(130)三个模块分别与安全策略模块(140)交互,三种病毒检测方法获取的数据发送给安全策略模块(140)进行分析,最终确定应用程序是否为病毒;
静态逆向取证模块(210)与动态调试取证模块(220)交互,动态调试取证模块(220)根据静态逆向取证模块(210)提供的线索,有针对性的对程序代码进行调试,更高效定位恶意行为。

2.  基于权利要求1所述系统的基于安卓平台的病毒取证方法,其特征在于:
①病毒检测模块采集APK程序的各种特征,采用一系列安全策略对其进行病毒检测;
②病毒取证模块结合静态和动态分析方法,对病毒恶意行为进行取证;
③取证报告生成模块对病毒的恶意行为进行详细记录。

3.  按权利要求2所述基于安卓平台的病毒取证方法,其特征在于病毒检测模块(100)的工作流程包括下列步骤:
A、获取应用程序文件信息(21);
B、监控应用程序流量信息(22);
C、截获应用程序敏感行为(23);
D、根据已设定的安全策略,判断应用程序是否为病毒(24),是则结束,否则继续步骤A。

4.  按权利要求2所述基于安卓平台的病毒取证方法,其特征在于病毒取证模块(200)的工作流程包括下列步骤:
a、静态分析获取恶意行为代码(31);
b、动态分析获取程序动态特征(32);
c、动态插桩调试代码(33)。

5.  按权利要求2所述基于基于安卓平台的病毒取证方法,其特征在于取证报告生成模块(300)的工作流程包括下列步骤:
Ⅰ、收到并记录病毒恶意行为的代码段(41);
Ⅱ、收到并记录病毒动态特征(42);
Ⅲ、记录插桩测试代码,以及运行后的结果(43);
Ⅲ、生成病毒取证报告(44)。

说明书

说明书基于安卓平台的病毒取证系统及其方法
技术领域
本发明涉及信息安全领域,尤其涉及一种基于安卓平台的病毒取证系统及其方法。
背景技术
2014年,谷歌开发的安卓操作系统在全球市场份额已超过了80%,全世界采用安卓手机设备数量达10亿多台;由于安卓系统的开放自由性,得到广大用户和开发者的青睐;但随之而来的病毒入侵事件也使得各个机构、单位以及个人受到了不同程度的侵害,造成了极坏的社会影响和重大的经济损失。综合腾讯移动安全实验室、奇虎360和金山手机毒霸客户端统计,整个8月份共截获到的病毒包数量高达20万个,其中安卓病毒占比高达96%,并且绝大多数病毒会造成用户资费损失以及个人信息泄露。知名互联网公司携程爆出“泄密门”;咖啡厅蹭wifi,支付宝被刷;《舌尖上的中国》网络视频暗藏病毒,窃取用户隐私;日前,美国最大折扣 Kmark的网站收到病毒的攻击,在此网站支付的顾客都面临着银行卡数据被盗的危险。由安卓手机病毒引发的恶意事件层出不穷,利用病毒进行网络犯罪的事件也呈现增长趋势,面对日趋严重的网络安全威胁事件,一方面表明安卓病毒的检测工作面临严峻的挑战,另一方面亟待找到一种提高安卓病毒分析取证能力的方法,加强对恶意攻击者的打击力度。面对五花八门的病毒,如何准确定位恶意行为,已经成为电子取证亟待解决的问题。
发明内容
目前,国内针对安卓平台的病毒检测手段还处于摸索阶段,绝大多数病毒检测系统对病毒库过于依赖,存在滞后性,资源消耗大,响应慢以及对未知病毒的识别能力较弱等问题;国外针对安卓平台的病毒大多采用动态调试方法,缺乏对病毒攻击方法、破坏程度以及病毒的类型进行详细的分析、归类和取证的能力。本发明的目的就在于克服现有技术存在的缺点和不足,提供一种基于安卓平台的病毒取证系统及其方法,为安卓平台病毒的电子取证提供技术支持。
实现本发明目的技术方案是:
本发明通过以下3种方式实现安卓平台下病毒的检测:
1、获取dex文件基本信息,头文件的12字节可以检测已知病毒;
2、监控应用程序运行时的流量情况,如果出现上行流量远远大于下行流量的异常情况,初步怀疑是病毒程序,待安全策略模块进一步分析;
3、对应用程序的某些敏感行为进行监控,敏感行为如读取篡改短信,联系人信息以及通讯记录;
安全策略模块建立和维护一个病毒黑名单,用于识别已知病毒;该模块还会存放软件的异常流量和各种敏感行为特征的加权值,根据以上三种病毒检测方式获取的基本信息,计算出应用程序的加权值,与正常软件的危险阈值进行对比,一旦超过了安全阈值,则被识别为病毒程序,本发明采用动静结合的方式对病毒恶意行为进行取证,对于简单加密混淆的程序采取先静后动的方法,分析源代码的基础上找到敏感行为的权限服务代码块,通过针对性插桩测试,取证恶意行为;对于加壳或者高强度加密混淆的程序采取先动后静的方法,通过观察病毒运行时的环境,状态以及提示信息,找到突破口,再进行静态分析,取证恶意行为。
一、基于安卓平台的病毒取证系统(简称系统)
本系统包括病毒检测模块、病毒取证模块和取证报告生成模块;
其中病毒检测模块由文件信息获取模块,异常流量检测模块,敏感行为检测模块和安全策略模块组成;
病毒取证模块由静态逆向取证模块和动态调试取证模块组成;
其交互关系是:
病毒检测模块与病毒取证模块交互,实现安卓平台上病毒的检测和取证功能;
病毒取证模块与取证报告生成模块交互,对病毒恶意行为进行定位分析,详细的记录了现场数据,以便日后需要取证时重建某些网络事件;
文件信息获取模块、异常流量检测模块和敏感行为检测模块三个模块分别与安全策略模块交互,三种病毒检测方法获取的数据发送给安全策略模块进行分析,最终确定应用程序是否为病毒;
静态逆向取证模块与动态调试取证模块交互,动态调试取证模块根据静态逆向取证模块提供的线索,有针对性的对程序代码进行调试,更高效定位恶意行为。
二、基于安卓平台的病毒取证方法(简称方法)
本方法的研究思路是在制定了一系列安全策略的基础上,通过文件信息,流量信息以及敏感行为信息来检测安卓手机病毒,结合静态逆向分析源代码和动态插桩调试方法对病毒的恶意行为进行取证。
本方法包括下列步骤:
①病毒检测模块采集APK程序的各种特征,采用一系列安全策略对其进行病毒检测;
安卓系统加载应用程序APK的dex文件时,一方面文件信息获取模块得到该文件的基本信息(文件最后修改的时间,文件类型字段,效验码字段以及签名信息字段等),另一方面异常流量检测模块和敏感行为检测模块在应用程序运行过程中获取流量信息以及敏感的行为特征,以上信息均传送给安全策略模块进行分析比对,它根据黑名单以及一系列详尽的安全策略,检测出病毒;
②病毒取证模块结合静态和动态分析方法,对病毒恶意行为进行取证;
病毒取证模块通过反编译工具对病毒APK文件进行逆向源码分析,采用静态分析方法定位病毒恶意行为的特征;动态调试取证模块在静态逆向分析模块提供线索的基础上对应用程序进行针对性的插桩调试,能够更加高效的还原病毒实施恶意行为的过程;
③取证报告生成模块对病毒的恶意行为进行详细记录;
取证报告生成模块将形成病毒恶意行为的详细报告,包括何时何地何种病毒进行了何种恶意行为,方便日后取证还原某些网络事件。
本发明具有下列优点和积极效果:
    ①时效性:该系统检测范围比传统检测范围要小,检测规则也相对简单,降低了系统资源的开销;
    ②可扩展:在不对系统的结构进行修改的前提下,对检测手段进行调整,以此来保证可以检测新的攻击;
    ③可溯源:本发明记录了何时何地何种病毒进行了何种恶意行为,并且产生了何种程度的破坏,对此生成详尽的取证报告,方便日后还原某些利用病毒进行犯罪的网络案件。
附图说明
图1是本系统的结构方框图;
其中: 
100—病毒检测模块;
     110—文件信息获取模块;
     120—异常流量检测模块;
     130—敏感行为检测模块;
         140—安全策略模块;
200—病毒取证模块;
     210—静态逆向取证模块;
     220—动态调试取证模块;
300—取证报告生成模块。
图2是病毒检测模块100采集APK特征的流程图;
图3是病毒取证模块200获取恶意代码的流程图;
图4是取证报告生成模块300生成记录的流程图;
图5是该系统在安卓平台上的应用框图。
英译汉
1、APK:android package,安卓安装包。
具体实施方式
下面结合附图和实施例详细说明:
一、系统
1、总体
如图1,本系统包括病毒检测模块100、病毒取证模块200和取证报告生成模块300;
其中病毒检测模块100由文件信息获取模块110,异常流量检测模块120,敏感行为检测模块130和安全策略模块140组成;
病毒取证模块200由静态逆向取证模块210和动态调试取证模块220组成;
其交互关系是:
病毒检测模块100与病毒取证模块200交互,实现安卓平台上病毒的检测和取证功能;
病毒取证模块200与取证报告生成模块300交互,对病毒恶意行为进行定位分析,详细的记录了现场数据,以便日后需要取证时重建某些网络事件;
文件信息获取模块110、异常流量检测模块120和敏感行为检测模块130三个模块分别与安全策略模块140交互,三种病毒检测方法获取的数据发送给安全策略模块140进行分析,最终确定应用程序是否为病毒;
静态逆向取证模块210与动态调试取证模块220交互,动态调试取证模块220根据静态逆向取证模块210提供的线索,有针对性的对程序代码进行调试,更高效定位恶意行为。
    2、功能模块
①病毒检测模块100
病毒检测模块100是一种对应用程序的文件属性、流量属性以及敏感行为属性进行综合评估的病毒检测方法。
A、文件信息获取模块110
文件信息获取模块110是一种采用黑名单机制实现已知病毒的检测方法;
安全策略模块140中存放病毒的黑名单,即病毒程序dex文件头12字节的集合,文件信息获取模块110得到应用程序dex文件头12字节,与黑名单进行对比,匹配成功,则识别为病毒程序。
B、异常流量检测模块120
异常流量检测模块120是一种监控应用程序运行过程中异常流量的方法;
采用流量统计中的TrafficStats类,对系统文件/proc/net/dev进行解析,该文件中记录了整个安卓系统总流量以及各个应用软件消耗的上下行流量,并将实时流量信息发送给安全策略模块140做进一步分析。
C、敏感行为检测模块130
敏感行为检测模块130是一种在安卓系统Binder机制基础上实现对敏感行为检测的方法;
本模块中定义读取并修改用户隐私数据,消耗用户资费的行为为敏感行为,并且该行为在时间上存在重复和连续性,最后将行为详细信息发送给安全策略模块140做进一步分析。
D、安全策略模块140
安全策略模块140是一种设置和存储应用程序安全阈值的模块;
采用黑名单机制以及正常软件的危险阈值作为评估应用程序是否为病毒的依据,当某种应用程序识别为病毒后,将相关数据发送给病毒取证模块200,作为分析取证的线索。
②病毒取证模块200
病毒取证模块200是一种结合静态和动态分析技术实现病毒取证的方法,该模块由静态逆向取证模块210和动态调试取证模块220组成。
a、静态分析取证模块210
静态分析取证模块是一种采用静态反汇编技术实现对病毒恶意行为分析与取证的方法;
静态逆向分析技术是在不执行应用程序的前提下,通过对其代码的语法和语义的理解来获取病毒实施恶意行为的技术,被广泛应用于病毒、木马以及恶意程序分析取证工作中。
B、动态调试取证模块220
动态调试取证模块220是指在运行应用程序的基础上,依靠打印调试或者插桩技术采集程序的动态运行信息,实现对病毒感染和攻击过程的取证,可以准确的获取程序运行的动态特征,包括指令信息,控制信息以及运行环境等;
单纯动态调试应用程序,是一个庞大的工程,本发明采用静态逆向取证模块210提供的病毒恶意行为的相关线索,进行有针对性的调试部分代码,从而更加高效的收集攻击者利用病毒进行网络犯罪的证据。
③取证报告生成模块300
取证报告生成模块300是一种文件管理模块,存储何时何地何种病毒在何时进行何种恶意行为,造成了何种程度上的破坏等信息,形成详尽的取证报告。
3、本系统的工作机理:
本系统研究了一种基于安卓平台的病毒检测和取证方法,病毒检测模块在病毒黑名单的基础上,添加了异常流量检测和敏感行为检测方法。一方面病毒黑名单存放已知病毒dex文件的头12字节,一旦应用程序dex文件头匹配成功,则被识别为病毒;另一方面根据安全策略模块中设置的一系列安全评估策略,对应用程序的异常流量以及敏感行为进行分析,计算加权值,一旦加权值大于正常软件的安全阈值,则被识别为病毒。其中敏感行为检测是基于安卓平台的binder机制,即任何一个应用程序要实现某种功能,都必须向系统进程发起服务,并且该应用程序有此服务涉及的所有权限,用户才能够通过该应用程序实现某种功能,本系统的行为监控就是基于此进程间通信,一旦出现篡改通讯录记录,联系人信息以及短信信息的行为,则被识别为敏感行为,发送给安全策略模块做进一步安全评估。接着对病毒的恶意行为进行记录和取证,本系统在静态逆向分析的基础上采用动态插桩调试的方法,分析出何时何地何种病毒在何种情况下对安卓手机进行了何种恶意行为,最终形成详尽的取证报告,供日后还原现场。
二、方法
1、病毒检测模块100的工作流程包括下列步骤:
A、获取应用程序文件信息21;
文件信息获取模块实现已经病毒的检测,任何一个安卓手机应用程序都可以解压得到classes.dex,该文件是应用程序源码编译后的java字节码,可以通过dex2jar工具反编译为java程序,是APK应用程序的核心,dex的文件头第1-4字节标示dex文件版本,第5-8字节为验证dex文件完整性效验码,第9-12字节是文件签名,以上12字节可以唯一识别dex文件;安全策略模块据此设置病毒黑名单,该黑名单中存放已知病毒程序dex的12字节,病毒库会在日积月累的病毒检测中得到添加和完善;本系统通过黑名单机制来匹配应用程序的dex文件,一旦匹配成功则被是被为病毒;
B、监控应用程序流量信息22;
异常流量检测模块的设计思路是基于盗取用户隐私信息类病毒的运行过程,病毒在目标手机里大多静默运行,附着成功后会给远端服务器发送状态信息,接着病毒接收到远端服务器的指令进行一系列的恶意行为,如:调取用户通讯录,短信和微信QQ聊天信息,这些数据最终会通过网络传输给远端服务器,达到窃取用户隐私,消耗用户资费的目的,而传输用户数据会导致上行流量增长迅速,所以流量指标也是区分正常软件和病毒的依据之一;
C、截获应用程序敏感行为23;
把读取与修改用户隐私数据、消耗用户资费的行为定义为敏感行为,虽然正常软件也会有这些敏感行为,但无论是种类还是时间关联程度都与病毒有较大不同;窃取用户隐私,消耗用户资源等敏感行为不是一次性就可以传输给远端服务器,攻击者为了最大限度的获取收益,这类敏感行为每隔一段时间会重复发生,因此,这种时间上的重复性也是区分病毒的依据之一;
敏感行为的获取基于安卓平台的进程间通信Binder机制。它采用C/S通信方式,普通的应用进程作为客户端,而系统进程作为服务器,比如用户的短信收发,拨打电话,获取地理位置等服务,都是普通应用程序向系统进程发起服务请求才可以调用。以打电话为例,某种聊天类应用程序需要调用打电话服务,首先向ServiceManager发出getService请求打电话服务的binder引用,向电话管理服务器发出请求,电话管理服务器会检测应用程序是否有对应的权限,如果是合法的请求,电话管理服务器就会响应该请求,并且向发起请求的应用返回操作执行结果。敏感行为检测模块通过获取程序的敏感行为以及其时间规律,发送给安全策略模块进行进一步分析;
D、根据已设定的安全策略,判断应用程序是否为病毒24,是则结束,否则继续步骤A;
安全策略模块建立和维护一个病毒黑名单,用于识别已知病毒;该模块首先会构建一个正常的用户行为,然后对比监控的用户实际行为,根据异常流量检测模块和敏感行为检测模块获取到的应用程序基本信息,计算出该程序的加权值,一旦加权值超过定义的阈值,那么就认为该应用程序为病毒,发送给病毒取证模块做进一步分析。一般来说正常的应用程序不会修改或者传输通话记录和短信,而病毒运行过程中出现的频率却极高,于是这类操作指令加权值高,而驻留内存的功能不仅病毒会有,正常的应用程序也会使用,于是加权值低。安全策略模块需要对用户正常态有较强的敏感性,才能减少误报的可能性。
2、病毒取证模块200的工作流程包括下列步骤:
a、静态分析获取恶意行为代码31;
静态逆向取证模块采用阅读应用程序源代码的方式实现病毒恶意行为的取证,静态分析不需要执行病毒程序,一方面能够对代码进行详尽的颗粒度分析,另一方面正是由于此特点,一旦关键数据隐藏过深致使代码量急剧上升,导致了该技术难以实施;动态分析方法只能粗略的获取程序运行的动态特征,也不能精确定位恶意行为。本发明综合静态和动态分析方法,静态分析为动态分析提供线索,动态分析针对线索进行插桩或者打印,可以高效的定位病毒的感染过程和恶意行为;
每一个安装到安卓平台的应用软件都会被编译打包为一个扩展名为APK的文件,解压后生成程序全局配置文件AndroidManifest.xml,Dalvik虚拟机的可执行文件classes.dex和二进制资源文件resources.arsc,其中AndroidManifest.xml文件中存放应用程序的名称,版本号,权限以及引用的库文件等,是分析取证的入口;classes.dex是安卓系统Dalvik虚拟机的可执行文件,反编译后是应用程序的源代码,根据AndroidManifest.xml文件提供的权限信息,通过语法语义的理解定位与该权限有关的服务,对源代码进行细颗粒度的分析,最终把获取到的病毒恶意行为的关键代码块,发送到动态调试取证模块;
b、动态分析获取程序动态特征32;
动态调试方式是直接运行应用程序来跟踪软件执行的动态特征,以及获取程序运行的中间结果;
c、动态插桩调试代码33;
本发明在静态分析提供的线索基础上,采用动态插桩调试方式取证病毒的恶意行为。利用注入日志打印或者桩函数的方式实现动态调试,在反汇编的程序中添加log调用的代码,重新打包成APK程序运行,通过日志命令可以打印输出结果,从而理解病毒的感染和攻击过程。
3、取证报告生成模块300的工作流程包括下列步骤:
Ⅰ、收到并记录病毒恶意行为的代码段41;
Ⅱ、收到并记录病毒动态特征42;
Ⅲ、记录插桩测试代码,以及运行后的结果43;
Ⅲ、生成病毒取证报告44。
三、应用
如图5,本系统C嵌入安卓手机B中,实现安卓手机B病毒检测和取证功能,生成的结果导入到台式计算机A中,方便用户查看调取病毒取证报告。其中台式计算机A与本系统C采用服务器/客户端模式进行通信,台式计算机A下发指令给系统C,比如:提取安卓手机B中某种应用程序的文件信息,流量信息或者敏感行为特征信息,作为客户端的本系统C则响应该指令,把结果发送到台式计算机A中,形成详细的记录,以便日后查证。

基于安卓平台的病毒取证系统及其方法.pdf_第1页
第1页 / 共10页
基于安卓平台的病毒取证系统及其方法.pdf_第2页
第2页 / 共10页
基于安卓平台的病毒取证系统及其方法.pdf_第3页
第3页 / 共10页
点击查看更多>>
资源描述

《基于安卓平台的病毒取证系统及其方法.pdf》由会员分享,可在线阅读,更多相关《基于安卓平台的病毒取证系统及其方法.pdf(10页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 (43)申请公布日 (21)申请号 201410784009.6 (22)申请日 2014.12.16 G06F 21/56(2013.01) (71)申请人 武汉虹旭信息技术有限责任公司 地址 430074 湖北省武汉市洪山区邮科院路 88 号 (72)发明人 匡红 叶猛 保永武 (74)专利代理机构 武汉宇晨专利事务所 42001 代理人 黄瑞棠 (54) 发明名称 基于安卓平台的病毒取证系统及其方法 (57) 摘要 本发明公开了一种基于安卓平台的病毒取证 系统及其方法, 涉及信息安全领域。 本系统是病毒 检测模块与病毒取证模块交互, 实现安卓平台上 病毒的检测和取证功。

2、能 ; 病毒取证模块与取证报 告生成模块交互, 对病毒恶意行为进行定位分析, 详细的记录了现场数据, 以便日后需要取证时重 建某些网络事件。本方法是 : 病毒检测模块采 集 APK 程序的各种特征, 采用一系列安全策略对 其进行病毒检测 ; 病毒取证模块结合静态和动 态分析方法, 对病毒恶意行为进行取证 ; 取证 报告生成模块对病毒的恶意行为进行详细记录。 本发明具有下列优点和积极效果 : 时效性 ; 可扩展 ; 可溯源, 方便日后还原某些利用病毒 进行犯罪的网络案件。 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书1页 说明书7页 附图1页 (。

3、10)申请公布号 CN 104392177 A (43)申请公布日 2015.03.04 CN 104392177 A 1/1 页 2 1. 一种基于基于安卓平台的病毒取证系统, 其特征在于 : 本系统包括病毒检测模块 (100) 、 病毒取证模块 (200) 和取证报告生成模块 (300) ; 其中病毒检测模块 (100) 由文件信息获取模块 (110) 、 异常流量检测模块 (120) 、 敏感 行为检测模块 (130) 和安全策略模块 (140) 组成 ; 病毒取证模块 (200) 由静态逆向取证模块 (210) 和动态调试取证模块 (220) 组成 ; 其交互关系是 : 病毒检测模块 。

4、(100) 与病毒取证模块 (200) 交互, 实现安卓平台上病毒的检测和取证 功能 ; 病毒取证模块 (200) 与取证报告生成模块 (300) 交互, 对病毒恶意行为进行定位分析, 详细的记录了现场数据, 以便日后需要取证时重建某些网络事件 ; 文件信息获取模块 (110) 、 异常流量检测模块 (120) 和敏感行为检测模块 (130) 三个 模块分别与安全策略模块 (140) 交互, 三种病毒检测方法获取的数据发送给安全策略模块 (140) 进行分析, 最终确定应用程序是否为病毒 ; 静态逆向取证模块 (210) 与动态调试取证模块 (220) 交互, 动态调试取证模块 (220) 根。

5、 据静态逆向取证模块 (210) 提供的线索, 有针对性的对程序代码进行调试, 更高效定位恶意 行为。 2. 基于权利要求 1 所述系统的基于安卓平台的病毒取证方法, 其特征在于 : 病毒检测模块采集 APK 程序的各种特征, 采用一系列安全策略对其进行病毒检测 ; 病毒取证模块结合静态和动态分析方法, 对病毒恶意行为进行取证 ; 取证报告生成模块对病毒的恶意行为进行详细记录。 3. 按权利要求 2 所述基于安卓平台的病毒取证方法, 其特征在于病毒检测模块 (100) 的工作流程包括下列步骤 : A、 获取应用程序文件信息 (21) ; B、 监控应用程序流量信息 (22) ; C、 截获应用。

6、程序敏感行为 (23) ; D、 根据已设定的安全策略, 判断应用程序是否为病毒 (24) , 是则结束, 否则继续步骤 A。 4. 按权利要求 2 所述基于安卓平台的病毒取证方法, 其特征在于病毒取证模块 (200) 的工作流程包括下列步骤 : a、 静态分析获取恶意行为代码 (31) ; b、 动态分析获取程序动态特征 (32) ; c、 动态插桩调试代码 (33) 。 5. 按权利要求 2 所述基于基于安卓平台的病毒取证方法, 其特征在于取证报告生成模 块 (300) 的工作流程包括下列步骤 : 、 收到并记录病毒恶意行为的代码段 (41) ; 、 收到并记录病毒动态特征 (42) ; 。

7、、 记录插桩测试代码, 以及运行后的结果 (43) ; 、 生成病毒取证报告 (44) 。 权 利 要 求 书 CN 104392177 A 2 1/7 页 3 基于安卓平台的病毒取证系统及其方法 技术领域 0001 本发明涉及信息安全领域, 尤其涉及一种基于安卓平台的病毒取证系统及其方 法。 背景技术 0002 2014 年, 谷歌开发的安卓操作系统在全球市场份额已超过了 80%, 全世界采用安 卓手机设备数量达 10 亿多台 ; 由于安卓系统的开放自由性, 得到广大用户和开发者的青 睐 ; 但随之而来的病毒入侵事件也使得各个机构、 单位以及个人受到了不同程度的侵害, 造 成了极坏的社会影响。

8、和重大的经济损失。综合腾讯移动安全实验室、 奇虎 360 和金山手机 毒霸客户端统计, 整个 8 月份共截获到的病毒包数量高达 20 万个, 其中安卓病毒占比高达 96%, 并且绝大多数病毒会造成用户资费损失以及个人信息泄露。 知名互联网公司携程爆出 “泄密门” ; 咖啡厅蹭 wifi , 支付宝被刷 ;舌尖上的中国 网络视频暗藏病毒, 窃取用户隐私 ; 日前, 美国最大折扣 Kmark 的网站收到病毒的攻击, 在此网站支付的顾客都面临着银行卡 数据被盗的危险。由安卓手机病毒引发的恶意事件层出不穷, 利用病毒进行网络犯罪的事 件也呈现增长趋势, 面对日趋严重的网络安全威胁事件, 一方面表明安卓。

9、病毒的检测工作 面临严峻的挑战, 另一方面亟待找到一种提高安卓病毒分析取证能力的方法, 加强对恶意 攻击者的打击力度。 面对五花八门的病毒, 如何准确定位恶意行为, 已经成为电子取证亟待 解决的问题。 发明内容 0003 目前, 国内针对安卓平台的病毒检测手段还处于摸索阶段, 绝大多数病毒检测系 统对病毒库过于依赖, 存在滞后性, 资源消耗大, 响应慢以及对未知病毒的识别能力较弱等 问题 ; 国外针对安卓平台的病毒大多采用动态调试方法, 缺乏对病毒攻击方法、 破坏程度以 及病毒的类型进行详细的分析、 归类和取证的能力。本发明的目的就在于克服现有技术存 在的缺点和不足, 提供一种基于安卓平台的病。

10、毒取证系统及其方法, 为安卓平台病毒的电 子取证提供技术支持。 0004 实现本发明目的技术方案是 : 本发明通过以下 3 种方式实现安卓平台下病毒的检测 : 1、 获取 dex 文件基本信息, 头文件的 12 字节可以检测已知病毒 ; 2、 监控应用程序运行时的流量情况, 如果出现上行流量远远大于下行流量的异常情 况, 初步怀疑是病毒程序, 待安全策略模块进一步分析 ; 3、 对应用程序的某些敏感行为进行监控, 敏感行为如读取篡改短信, 联系人信息以及 通讯记录 ; 安全策略模块建立和维护一个病毒黑名单, 用于识别已知病毒 ; 该模块还会存放软件 的异常流量和各种敏感行为特征的加权值, 根据。

11、以上三种病毒检测方式获取的基本信息, 计算出应用程序的加权值, 与正常软件的危险阈值进行对比, 一旦超过了安全阈值, 则被识 说 明 书 CN 104392177 A 3 2/7 页 4 别为病毒程序, 本发明采用动静结合的方式对病毒恶意行为进行取证, 对于简单加密混淆 的程序采取先静后动的方法, 分析源代码的基础上找到敏感行为的权限服务代码块, 通过 针对性插桩测试, 取证恶意行为 ; 对于加壳或者高强度加密混淆的程序采取先动后静的方 法, 通过观察病毒运行时的环境, 状态以及提示信息, 找到突破口, 再进行静态分析, 取证恶 意行为。 0005 一、 基于安卓平台的病毒取证系统 ( 简称系。

12、统 ) 本系统包括病毒检测模块、 病毒取证模块和取证报告生成模块 ; 其中病毒检测模块由文件信息获取模块, 异常流量检测模块, 敏感行为检测模块和安 全策略模块组成 ; 病毒取证模块由静态逆向取证模块和动态调试取证模块组成 ; 其交互关系是 : 病毒检测模块与病毒取证模块交互, 实现安卓平台上病毒的检测和取证功能 ; 病毒取证模块与取证报告生成模块交互, 对病毒恶意行为进行定位分析, 详细的记录 了现场数据, 以便日后需要取证时重建某些网络事件 ; 文件信息获取模块、 异常流量检测模块和敏感行为检测模块三个模块分别与安全策略 模块交互, 三种病毒检测方法获取的数据发送给安全策略模块进行分析, 。

13、最终确定应用程 序是否为病毒 ; 静态逆向取证模块与动态调试取证模块交互, 动态调试取证模块根据静态逆向取证模 块提供的线索, 有针对性的对程序代码进行调试, 更高效定位恶意行为。 0006 二、 基于安卓平台的病毒取证方法 ( 简称方法 ) 本方法的研究思路是在制定了一系列安全策略的基础上, 通过文件信息, 流量信息以 及敏感行为信息来检测安卓手机病毒, 结合静态逆向分析源代码和动态插桩调试方法对病 毒的恶意行为进行取证。 0007 本方法包括下列步骤 : 病毒检测模块采集 APK 程序的各种特征, 采用一系列安全策略对其进行病毒检测 ; 安卓系统加载应用程序 APK 的 dex 文件时, 。

14、一方面文件信息获取模块得到该文件的基 本信息 (文件最后修改的时间, 文件类型字段, 效验码字段以及签名信息字段等) , 另一方面 异常流量检测模块和敏感行为检测模块在应用程序运行过程中获取流量信息以及敏感的 行为特征, 以上信息均传送给安全策略模块进行分析比对, 它根据黑名单以及一系列详尽 的安全策略, 检测出病毒 ; 病毒取证模块结合静态和动态分析方法, 对病毒恶意行为进行取证 ; 病毒取证模块通过反编译工具对病毒 APK 文件进行逆向源码分析, 采用静态分析方法 定位病毒恶意行为的特征 ; 动态调试取证模块在静态逆向分析模块提供线索的基础上对应 用程序进行针对性的插桩调试, 能够更加高效。

15、的还原病毒实施恶意行为的过程 ; 取证报告生成模块对病毒的恶意行为进行详细记录 ; 取证报告生成模块将形成病毒恶意行为的详细报告, 包括何时何地何种病毒进行了何 种恶意行为, 方便日后取证还原某些网络事件。 0008 本发明具有下列优点和积极效果 : 时效性 : 该系统检测范围比传统检测范围要小, 检测规则也相对简单, 降低了系统资 说 明 书 CN 104392177 A 4 3/7 页 5 源的开销 ; 可扩展 : 在不对系统的结构进行修改的前提下, 对检测手段进行调整, 以此来保证可 以检测新的攻击 ; 可溯源 : 本发明记录了何时何地何种病毒进行了何种恶意行为, 并且产生了何种程 度的。

16、破坏, 对此生成详尽的取证报告, 方便日后还原某些利用病毒进行犯罪的网络案件。 附图说明 0009 图 1 是本系统的结构方框图 ; 其中 : 100病毒检测模块 ; 110文件信息获取模块 ; 120异常流量检测模块 ; 130敏感行为检测模块 ; 140安全策略模块 ; 200病毒取证模块 ; 210静态逆向取证模块 ; 220动态调试取证模块 ; 300取证报告生成模块。 0010 图 2 是病毒检测模块 100 采集 APK 特征的流程图 ; 图 3 是病毒取证模块 200 获取恶意代码的流程图 ; 图 4 是取证报告生成模块 300 生成记录的流程图 ; 图 5 是该系统在安卓平台上。

17、的应用框图。 0011 英译汉 1、 APK : android package, 安卓安装包。 具体实施方式 0012 下面结合附图和实施例详细说明 : 一、 系统 1、 总体 如图 1, 本系统包括病毒检测模块 100、 病毒取证模块 200 和取证报告生成模块 300 ; 其中病毒检测模块 100 由文件信息获取模块 110, 异常流量检测模块 120, 敏感行为检 测模块 130 和安全策略模块 140 组成 ; 病毒取证模块 200 由静态逆向取证模块 210 和动态调试取证模块 220 组成 ; 其交互关系是 : 病毒检测模块 100 与病毒取证模块 200 交互, 实现安卓平台上。

18、病毒的检测和取证功 能 ; 病毒取证模块200与取证报告生成模块300交互, 对病毒恶意行为进行定位分析, 详细 的记录了现场数据, 以便日后需要取证时重建某些网络事件 ; 文件信息获取模块110、 异常流量检测模块120和敏感行为检测模块130三个模块分别 说 明 书 CN 104392177 A 5 4/7 页 6 与安全策略模块 140 交互, 三种病毒检测方法获取的数据发送给安全策略模块 140 进行分 析, 最终确定应用程序是否为病毒 ; 静态逆向取证模块 210 与动态调试取证模块 220 交互, 动态调试取证模块 220 根据静 态逆向取证模块 210 提供的线索, 有针对性的对。

19、程序代码进行调试, 更高效定位恶意行为。 0013 2、 功能模块 病毒检测模块 100 病毒检测模块 100 是一种对应用程序的文件属性、 流量属性以及敏感行为属性进行综 合评估的病毒检测方法。 0014 A、 文件信息获取模块 110 文件信息获取模块 110 是一种采用黑名单机制实现已知病毒的检测方法 ; 安全策略模块 140 中存放病毒的黑名单, 即病毒程序 dex 文件头 12 字节的集合, 文件 信息获取模块 110 得到应用程序 dex 文件头 12 字节, 与黑名单进行对比, 匹配成功, 则识别 为病毒程序。 0015 B、 异常流量检测模块 120 异常流量检测模块 120 。

20、是一种监控应用程序运行过程中异常流量的方法 ; 采用流量统计中的 Traffi cStats 类, 对系统文件 /proc/net/dev 进行解析, 该文件中 记录了整个安卓系统总流量以及各个应用软件消耗的上下行流量, 并将实时流量信息发送 给安全策略模块 140 做进一步分析。 0016 C、 敏感行为检测模块 130 敏感行为检测模块 130 是一种在安卓系统 Binder 机制基础上实现对敏感行为检测的 方法 ; 本模块中定义读取并修改用户隐私数据, 消耗用户资费的行为为敏感行为, 并且该行 为在时间上存在重复和连续性, 最后将行为详细信息发送给安全策略模块 140 做进一步分 析。 。

21、0017 D、 安全策略模块 140 安全策略模块 140 是一种设置和存储应用程序安全阈值的模块 ; 采用黑名单机制以及正常软件的危险阈值作为评估应用程序是否为病毒的依据, 当某 种应用程序识别为病毒后, 将相关数据发送给病毒取证模块 200, 作为分析取证的线索。 0018 病毒取证模块 200 病毒取证模块 200 是一种结合静态和动态分析技术实现病毒取证的方法, 该模块由静 态逆向取证模块 210 和动态调试取证模块 220 组成。 0019 a、 静态分析取证模块 210 静态分析取证模块是一种采用静态反汇编技术实现对病毒恶意行为分析与取证的方 法 ; 静态逆向分析技术是在不执行应用。

22、程序的前提下, 通过对其代码的语法和语义的理解 来获取病毒实施恶意行为的技术, 被广泛应用于病毒、 木马以及恶意程序分析取证工作中。 0020 B、 动态调试取证模块 220 动态调试取证模块 220 是指在运行应用程序的基础上, 依靠打印调试或者插桩技术采 集程序的动态运行信息, 实现对病毒感染和攻击过程的取证, 可以准确的获取程序运行的 说 明 书 CN 104392177 A 6 5/7 页 7 动态特征, 包括指令信息, 控制信息以及运行环境等 ; 单纯动态调试应用程序, 是一个庞大的工程, 本发明采用静态逆向取证模块 210 提供 的病毒恶意行为的相关线索, 进行有针对性的调试部分代。

23、码, 从而更加高效的收集攻击者 利用病毒进行网络犯罪的证据。 0021 取证报告生成模块 300 取证报告生成模块 300 是一种文件管理模块, 存储何时何地何种病毒在何时进行何种 恶意行为, 造成了何种程度上的破坏等信息, 形成详尽的取证报告。 0022 3、 本系统的工作机理 : 本系统研究了一种基于安卓平台的病毒检测和取证方法, 病毒检测模块在病毒黑名单 的基础上, 添加了异常流量检测和敏感行为检测方法。 一方面病毒黑名单存放已知病毒dex 文件的头12字节, 一旦应用程序dex文件头匹配成功, 则被识别为病毒 ; 另一方面根据安全 策略模块中设置的一系列安全评估策略, 对应用程序的异常。

24、流量以及敏感行为进行分析, 计算加权值, 一旦加权值大于正常软件的安全阈值, 则被识别为病毒。 其中敏感行为检测是 基于安卓平台的 binder 机制, 即任何一个应用程序要实现某种功能, 都必须向系统进程发 起服务, 并且该应用程序有此服务涉及的所有权限, 用户才能够通过该应用程序实现某种 功能, 本系统的行为监控就是基于此进程间通信, 一旦出现篡改通讯录记录, 联系人信息以 及短信信息的行为, 则被识别为敏感行为, 发送给安全策略模块做进一步安全评估。 接着对 病毒的恶意行为进行记录和取证, 本系统在静态逆向分析的基础上采用动态插桩调试的方 法, 分析出何时何地何种病毒在何种情况下对安卓手。

25、机进行了何种恶意行为, 最终形成详 尽的取证报告, 供日后还原现场。 0023 二、 方法 1、 病毒检测模块 100 的工作流程包括下列步骤 : A、 获取应用程序文件信息 21 ; 文件信息获取模块实现已经病毒的检测, 任何一个安卓手机应用程序都可以解压得到 classes.dex,该文件是应用程序源码编译后的java字节码, 可以通过dex2jar工具反编译 为java程序, 是APK应用程序的核心, dex的文件头第1-4字节标示dex文件版本, 第5-8字 节为验证 dex 文件完整性效验码, 第 9-12 字节是文件签名, 以上 12 字节可以唯一识别 dex 文件 ; 安全策略模。

26、块据此设置病毒黑名单, 该黑名单中存放已知病毒程序dex的12字节, 病 毒库会在日积月累的病毒检测中得到添加和完善 ; 本系统通过黑名单机制来匹配应用程序 的 dex 文件, 一旦匹配成功则被是被为病毒 ; B、 监控应用程序流量信息 22 ; 异常流量检测模块的设计思路是基于盗取用户隐私信息类病毒的运行过程, 病毒在目 标手机里大多静默运行, 附着成功后会给远端服务器发送状态信息, 接着病毒接收到远端 服务器的指令进行一系列的恶意行为, 如 : 调取用户通讯录, 短信和微信 QQ 聊天信息, 这些 数据最终会通过网络传输给远端服务器, 达到窃取用户隐私, 消耗用户资费的目的, 而传输 用户。

27、数据会导致上行流量增长迅速, 所以流量指标也是区分正常软件和病毒的依据之一 ; C、 截获应用程序敏感行为 23 ; 把读取与修改用户隐私数据、 消耗用户资费的行为定义为敏感行为, 虽然正常软件也 会有这些敏感行为, 但无论是种类还是时间关联程度都与病毒有较大不同 ; 窃取用户隐私, 说 明 书 CN 104392177 A 7 6/7 页 8 消耗用户资源等敏感行为不是一次性就可以传输给远端服务器, 攻击者为了最大限度的获 取收益, 这类敏感行为每隔一段时间会重复发生, 因此, 这种时间上的重复性也是区分病毒 的依据之一 ; 敏感行为的获取基于安卓平台的进程间通信 Binder 机制。它采用。

28、 C/S 通信方式, 普通 的应用进程作为客户端, 而系统进程作为服务器, 比如用户的短信收发, 拨打电话, 获取地 理位置等服务, 都是普通应用程序向系统进程发起服务请求才可以调用。 以打电话为例, 某 种聊天类应用程序需要调用打电话服务, 首先向 ServiceManager 发出 getService 请求打 电话服务的 binder 引用, 向电话管理服务器发出请求, 电话管理服务器会检测应用程序是 否有对应的权限, 如果是合法的请求, 电话管理服务器就会响应该请求, 并且向发起请求的 应用返回操作执行结果。敏感行为检测模块通过获取程序的敏感行为以及其时间规律, 发 送给安全策略模块进。

29、行进一步分析 ; D、 根据已设定的安全策略, 判断应用程序是否为病毒 24, 是则结束, 否则继续步骤 A ; 安全策略模块建立和维护一个病毒黑名单, 用于识别已知病毒 ; 该模块首先会构建一 个正常的用户行为, 然后对比监控的用户实际行为, 根据异常流量检测模块和敏感行为检 测模块获取到的应用程序基本信息, 计算出该程序的加权值, 一旦加权值超过定义的阈值, 那么就认为该应用程序为病毒, 发送给病毒取证模块做进一步分析。一般来说正常的应用 程序不会修改或者传输通话记录和短信, 而病毒运行过程中出现的频率却极高, 于是这类 操作指令加权值高, 而驻留内存的功能不仅病毒会有, 正常的应用程序也。

30、会使用, 于是加权 值低。安全策略模块需要对用户正常态有较强的敏感性, 才能减少误报的可能性。 0024 2、 病毒取证模块 200 的工作流程包括下列步骤 : a、 静态分析获取恶意行为代码 31 ; 静态逆向取证模块采用阅读应用程序源代码的方式实现病毒恶意行为的取证, 静态分 析不需要执行病毒程序, 一方面能够对代码进行详尽的颗粒度分析, 另一方面正是由于此 特点, 一旦关键数据隐藏过深致使代码量急剧上升, 导致了该技术难以实施 ; 动态分析方法 只能粗略的获取程序运行的动态特征, 也不能精确定位恶意行为。本发明综合静态和动态 分析方法, 静态分析为动态分析提供线索, 动态分析针对线索进行。

31、插桩或者打印, 可以高效 的定位病毒的感染过程和恶意行为 ; 每一个安装到安卓平台的应用软件都会被编译打包为一个扩展名为 APK 的文件, 解压 后生成程序全局配置文件 AndroidManifest.xml, Dalvik 虚拟机的可执行文件 classes. dex 和二进制资源文件 resources.arsc, 其中 AndroidManifest.xml 文件中存放应用程序 的名称, 版本号, 权限以及引用的库文件等, 是分析取证的入口 ; classes.dex 是安卓系统 Dalvik 虚拟机的可执行文件, 反编译后是应用程序的源代码, 根据 AndroidManifest.xm。

32、l 文件提供的权限信息, 通过语法语义的理解定位与该权限有关的服务, 对源代码进行细颗 粒度的分析, 最终把获取到的病毒恶意行为的关键代码块, 发送到动态调试取证模块 ; b、 动态分析获取程序动态特征 32 ; 动态调试方式是直接运行应用程序来跟踪软件执行的动态特征, 以及获取程序运行的 中间结果 ; c、 动态插桩调试代码 33 ; 本发明在静态分析提供的线索基础上, 采用动态插桩调试方式取证病毒的恶意行为。 说 明 书 CN 104392177 A 8 7/7 页 9 利用注入日志打印或者桩函数的方式实现动态调试, 在反汇编的程序中添加 log 调用的代 码, 重新打包成 APK 程序运。

33、行, 通过日志命令可以打印输出结果, 从而理解病毒的感染和攻 击过程。 0025 3、 取证报告生成模块 300 的工作流程包括下列步骤 : 、 收到并记录病毒恶意行为的代码段 41 ; 、 收到并记录病毒动态特征 42 ; 、 记录插桩测试代码, 以及运行后的结果 43 ; 、 生成病毒取证报告 44。 0026 三、 应用 如图 5, 本系统 C 嵌入安卓手机 B 中, 实现安卓手机 B 病毒检测和取证功能, 生成的结 果导入到台式计算机 A 中, 方便用户查看调取病毒取证报告。其中台式计算机 A 与本系统 C采用服务器/客户端模式进行通信, 台式计算机A下发指令给系统C, 比如 : 提取安卓手机 B 中某种应用程序的文件信息, 流量信息或者敏感行为特征信息, 作为客户端的本系统 C 则 响应该指令, 把结果发送到台式计算机 A 中, 形成详细的记录, 以便日后查证。 说 明 书 CN 104392177 A 9 1/1 页 10 图 1 图 2 图 3 图 4 图 5 说 明 书 附 图 CN 104392177 A 10 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1