论文部分内容阅读
摘要:随着Android操作系统的不断进化发展,Android智能终端已经成为新型智能终端最为重要的操作系统之一。2016年第三季度,国内新型智能终端市场搭载Android操作系统的设备出货量占比已经达到88%。但是伴随着Android智能终端市场占有率的提高,Android智能终端受到恶意软件攻击、被“种植”木马的情况也越来越严重。该文提出一种以Android开源项目AOSP为基础,通过改造Android系统源代码构造基于行为特征的恶意软件识别分析系统。
关键词:AOSP;Android恶意软件;行为特征识别;行为特征库;Android虚拟机
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)36-0111-02
Design of Android Malware Behavior Analysis System Based on AOSP
XIONG Xiong
(Third Institute of the Ministry of Public Security, Shanghai 201204, China)
Abstract: With the continuous evolution of the Android operating system, Android intelligent terminal has become one of the most important operating system of the new intelligent terminal. In the third quarter of 2016, the domestic new smart terminal market equipped with Android operating system equipment shipments accounted for has reached 88%. But with the increase of Android smart terminal market share, Android intelligent terminal by malicious software attacks, being planted trojan is also becoming more and more serious. This paper proposes a Android based open source project AOSP as the foundation, through the transformation of the Android system source code structure based on behavior characteristics of malicious software identification analysis system.
Key words: AOSP; Android malware; Behavior feature recognition; Behavioral feature database; Android virtual machine
随着Android操作系统的不断进化发展,Android智能终端已经成为新型智能终端最为重要的操作系统之一。2016年第三季度,国内新型智能终端市场搭载Android操作系统的设备出货量占比已经达到88%。但是伴随着Android智能终端市场占有率的提高,Android智能终端受到恶意软件攻击、被“种植”木马的情况也越来越严重。
在涉及Android恶意软件取证分析的案件中,主要采取的技术手段是通过逆向等技术对涉案APK进行反编译,对反编译的java或者smali代码进行分析,从代码中找到恶意软件拦截短信、发送数据等行为的源代码证据。但是随着APK的源代码混淆技术、加密技术的增强,对恶意软件的反汇编将会越来越困难[1]。
AOSP是Android 开放源代码项目"Android Open-Source Project"的缩写,Android是一个开源的,用于移动设备的系统。 Android开放源代码项目(AOSP),由谷歌发起,致力于Android的维护和更进一步的发展。
本文提出一种新的Android恶意软件识别分析方案,本方案基于Android开源项目AOSP,通过对AOSP的源代码进行改造,在项目中新增日志层。之后基于改造的AOSP源代码生成镜像,构造Android虚拟运行环境。将涉案APK安装到虚拟运行环境进行执行。最终对执行过程中产生的日志数据进行分析,即可从中找到APK恶意行为的证据信息。
1 系统设计目的
本系统的设计目的是基于AOSP项目,定制化开发一套Android虚拟运行环境。在此运行环境中,可以安装Apk程序,并且能够对安装在此环境中的Apk动态运行时的所作所为做出详细记录并执行自动化分析。分析时可以与外部的知识库相结合以便做出更准确的定性、定量分析。最终能够自动化地给出Apk的动态运行时分析报告,指明此Apk是否具备恶意行为。
2 设计方案
总体上,Android恶意软件行为分析系统包括Android虚拟运行环境、统计分析子系统、行为分析子系统以及知识库等四个部分。系统的模块之间关联关系如图1所示:
系统模块中手动测试是指取证分析人员在安装好Apk之后,手动启动Apk并按照预先设计的运行脚本模拟用户真实操作行为,触发恶意Apk运行。
自动化测试是指依据预先写好的自動化测试脚本(例如基于Android操作系统自带的Monkey)调度恶意Apk运行。自动化测试脚本在编写时候需要考虑到涉及Android操作系统Broadcast、跨进程通信等手工测试时难以覆盖到的功能,以及需要大量重复运行并验证取证分析思路的场景。 Android虚拟运行环境是本系统的核心功能模块,主要提供了APK的仿真运行环境。Android虚拟运行环境基于AOSP进行了大量的改造,将重要的API接口均添加上了日志记录功能。
日志统计:Android虚拟运行环境的所有运行日志输出均通过统一的输出接口输出到统计分析模块中。统计分析模块采用时间线排序的方法,将各种类型的日志进行重排,并支持对任意时间段内的日志进行查询,支持按照日志类型进行数据查询,支持基于关键词的日志查询。
行为分析:行为分析是Android恶意软件行为分析系统的核心模块。主要基于统计日志的输出,采用序列匹配、关键API调度以及其他知识库中记录的敏感知识进行统计分析。行为分析依据频率、特征等多种算法进行分析,并支持扩展。行为分析的输出可以驱动自动化测试模块进行分析结果验证,并支持分析报告生成功能。
知识库:知识库记录了大量的恶意行为识别方案。数据主要从调度序列、敏感API调用、特殊路径数据读写、特殊数据内容写入读取等几个方面进行记载。便于行为分析模块进行查询匹配。
报告生成:行为分析模块的分析结果传输到报告生成模块之后,由报告生成模块生成html、doc等各种格式的报告。
2.1 Android虚拟运行环境架构
Android虚拟运行环境是系统中最重要的模块。基于AOSP项目,在Android系统层、Linux内核层的重要模块均加上调用控制代码。控制代码主要提供日志记录、堆栈信息以及调用结果控制。
Android虚拟运行环境架构如图2所示:
应用层是Android操作系统支撑APK运行的层,在本系统的开发过程中并不需要进行改造。为了防止待分析的APK识别到时在特定的模拟环境中运行,需要保证这一层的接口与AOSP项目完全一致。
Android框架层是本系统最主要的修改层。APK在运行时,一部分代码是通过Dalvik虚拟机运行,另外一部分则通过ART直接调用底层的so库来执行。但是,绝大部分的代码均通过Dalvik虚拟机调度Android框架层的API进行。Android框架层主要修改的模块涉及Apk安装、授权管理、短信/电话类API、webview调用、系统服务注册、Broadcast Receiver调用、Content Provider调用、intent调用、文件读写以及涉及sqlite读写的API等核心系统功能。此外,还针对http请求的创建等API增加了监控日志[2-3]。
Linux内核层是Android操作系统的最底层,由于这一层是系统的最底层,大量的系统调度最终都会汇聚到这里。因此本层主要关注的数据包括进程通信类API、网络系统类API、文件系统类API以及权限管理类API。
对AOSP项目源代码的改造过程中,需要对修改过的接口API增加日志记录功能。日志记录功能记录了API调用时候的关键信息,主要包括“调度时间”、“调用堆栈”、“调用参数”以及“调用结果”等数据。并且,基于APK实际分析的需求,可以通过外部配置代码对API的调用返回结果进行控制。
接口API的调用记录日志按照json格式进行记录保存,并实时写入到虚拟运行环境的特定文件中,例如 /var/analysis/log.dat。
2.2 行为分析子系统
行为分析子系统是本系统的另外一个核心功能模塊,主要提供了自动化的日志数据分析功能。数据分析的方法主要有如下几种形式:
1)基于敏感API调用的识别分析:例如识别到未提供Root权限的情况下,App通过ART方式获取到了Root权限并调用了需要Root权限才能够调用的API。
2)基于敏感路径下文件读写的识别分析:例如识别到App尝试对/system或者/data/data目录下其他app的数据进行读写。
3)基于特定关键词的数据匹配分析:例如识别到调用参数中包含预先内置的关键词,如“验证码”、“银行”等。在短信劫持类App的分析中,基于关键词识别将十分有效。
4)基于特定网络通信地址的识别分析:依据日志分析App与外部某些ip地址或者特定端口进行了数据通信,如果ip地址和端口是知识库中记录的敏感地址,则可以十分准确的识别[4]。
5)基于API调度序列的识别分析:对API的调度序列进行识别,可以发现App运行的潜在规律。例如每10分钟会读取一次短信的收件箱。
6)基于频率的API调用识别分析
通过对日志数据的统计分析,可以对APK的运行做出较为准确的判断和分析。对于难以通过逆向等方式进行APK恶意行为分析的场景下,将会发挥较大的作用。
3 结束语
本文提出了一种基于运行时日志统计分析的方式对恶意APK进行行为特征分析的思路,并提出基于AOSP项目进行恶意行为分析系统的改造及建设方案设计。本文所提出的系统能够对难以通过逆向方式进行分析的APK发挥较大的作用,并且能够极大地缩短分析恶意APK所需的时间,提升取证分析效率。
参考文献:
[1] 童振飞. Android恶意软件静态检测方案的研究[D]. 南京: 南京邮电大学, 2012.
[2] 赵洋, 胡龙, 熊虎, 等. 基于沙盒的Android恶意软件动态分析方案[J]. 信息网络安全, 2014(12): 21-26.
[3] 陈丹伟, 唐平, 周书桃. 基于沙盒技术的恶意程序检测模型[J].计算机科学, 2012, 39(B06): 12-14.
[4] 王伟, 彭勤科. 主机日志分析及其在入侵检测中的应用[J]. 计算机工程与应用, 2002, 38(13): 35-37
关键词:AOSP;Android恶意软件;行为特征识别;行为特征库;Android虚拟机
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)36-0111-02
Design of Android Malware Behavior Analysis System Based on AOSP
XIONG Xiong
(Third Institute of the Ministry of Public Security, Shanghai 201204, China)
Abstract: With the continuous evolution of the Android operating system, Android intelligent terminal has become one of the most important operating system of the new intelligent terminal. In the third quarter of 2016, the domestic new smart terminal market equipped with Android operating system equipment shipments accounted for has reached 88%. But with the increase of Android smart terminal market share, Android intelligent terminal by malicious software attacks, being planted trojan is also becoming more and more serious. This paper proposes a Android based open source project AOSP as the foundation, through the transformation of the Android system source code structure based on behavior characteristics of malicious software identification analysis system.
Key words: AOSP; Android malware; Behavior feature recognition; Behavioral feature database; Android virtual machine
随着Android操作系统的不断进化发展,Android智能终端已经成为新型智能终端最为重要的操作系统之一。2016年第三季度,国内新型智能终端市场搭载Android操作系统的设备出货量占比已经达到88%。但是伴随着Android智能终端市场占有率的提高,Android智能终端受到恶意软件攻击、被“种植”木马的情况也越来越严重。
在涉及Android恶意软件取证分析的案件中,主要采取的技术手段是通过逆向等技术对涉案APK进行反编译,对反编译的java或者smali代码进行分析,从代码中找到恶意软件拦截短信、发送数据等行为的源代码证据。但是随着APK的源代码混淆技术、加密技术的增强,对恶意软件的反汇编将会越来越困难[1]。
AOSP是Android 开放源代码项目"Android Open-Source Project"的缩写,Android是一个开源的,用于移动设备的系统。 Android开放源代码项目(AOSP),由谷歌发起,致力于Android的维护和更进一步的发展。
本文提出一种新的Android恶意软件识别分析方案,本方案基于Android开源项目AOSP,通过对AOSP的源代码进行改造,在项目中新增日志层。之后基于改造的AOSP源代码生成镜像,构造Android虚拟运行环境。将涉案APK安装到虚拟运行环境进行执行。最终对执行过程中产生的日志数据进行分析,即可从中找到APK恶意行为的证据信息。
1 系统设计目的
本系统的设计目的是基于AOSP项目,定制化开发一套Android虚拟运行环境。在此运行环境中,可以安装Apk程序,并且能够对安装在此环境中的Apk动态运行时的所作所为做出详细记录并执行自动化分析。分析时可以与外部的知识库相结合以便做出更准确的定性、定量分析。最终能够自动化地给出Apk的动态运行时分析报告,指明此Apk是否具备恶意行为。
2 设计方案
总体上,Android恶意软件行为分析系统包括Android虚拟运行环境、统计分析子系统、行为分析子系统以及知识库等四个部分。系统的模块之间关联关系如图1所示:
系统模块中手动测试是指取证分析人员在安装好Apk之后,手动启动Apk并按照预先设计的运行脚本模拟用户真实操作行为,触发恶意Apk运行。
自动化测试是指依据预先写好的自動化测试脚本(例如基于Android操作系统自带的Monkey)调度恶意Apk运行。自动化测试脚本在编写时候需要考虑到涉及Android操作系统Broadcast、跨进程通信等手工测试时难以覆盖到的功能,以及需要大量重复运行并验证取证分析思路的场景。 Android虚拟运行环境是本系统的核心功能模块,主要提供了APK的仿真运行环境。Android虚拟运行环境基于AOSP进行了大量的改造,将重要的API接口均添加上了日志记录功能。
日志统计:Android虚拟运行环境的所有运行日志输出均通过统一的输出接口输出到统计分析模块中。统计分析模块采用时间线排序的方法,将各种类型的日志进行重排,并支持对任意时间段内的日志进行查询,支持按照日志类型进行数据查询,支持基于关键词的日志查询。
行为分析:行为分析是Android恶意软件行为分析系统的核心模块。主要基于统计日志的输出,采用序列匹配、关键API调度以及其他知识库中记录的敏感知识进行统计分析。行为分析依据频率、特征等多种算法进行分析,并支持扩展。行为分析的输出可以驱动自动化测试模块进行分析结果验证,并支持分析报告生成功能。
知识库:知识库记录了大量的恶意行为识别方案。数据主要从调度序列、敏感API调用、特殊路径数据读写、特殊数据内容写入读取等几个方面进行记载。便于行为分析模块进行查询匹配。
报告生成:行为分析模块的分析结果传输到报告生成模块之后,由报告生成模块生成html、doc等各种格式的报告。
2.1 Android虚拟运行环境架构
Android虚拟运行环境是系统中最重要的模块。基于AOSP项目,在Android系统层、Linux内核层的重要模块均加上调用控制代码。控制代码主要提供日志记录、堆栈信息以及调用结果控制。
Android虚拟运行环境架构如图2所示:
应用层是Android操作系统支撑APK运行的层,在本系统的开发过程中并不需要进行改造。为了防止待分析的APK识别到时在特定的模拟环境中运行,需要保证这一层的接口与AOSP项目完全一致。
Android框架层是本系统最主要的修改层。APK在运行时,一部分代码是通过Dalvik虚拟机运行,另外一部分则通过ART直接调用底层的so库来执行。但是,绝大部分的代码均通过Dalvik虚拟机调度Android框架层的API进行。Android框架层主要修改的模块涉及Apk安装、授权管理、短信/电话类API、webview调用、系统服务注册、Broadcast Receiver调用、Content Provider调用、intent调用、文件读写以及涉及sqlite读写的API等核心系统功能。此外,还针对http请求的创建等API增加了监控日志[2-3]。
Linux内核层是Android操作系统的最底层,由于这一层是系统的最底层,大量的系统调度最终都会汇聚到这里。因此本层主要关注的数据包括进程通信类API、网络系统类API、文件系统类API以及权限管理类API。
对AOSP项目源代码的改造过程中,需要对修改过的接口API增加日志记录功能。日志记录功能记录了API调用时候的关键信息,主要包括“调度时间”、“调用堆栈”、“调用参数”以及“调用结果”等数据。并且,基于APK实际分析的需求,可以通过外部配置代码对API的调用返回结果进行控制。
接口API的调用记录日志按照json格式进行记录保存,并实时写入到虚拟运行环境的特定文件中,例如 /var/analysis/log.dat。
2.2 行为分析子系统
行为分析子系统是本系统的另外一个核心功能模塊,主要提供了自动化的日志数据分析功能。数据分析的方法主要有如下几种形式:
1)基于敏感API调用的识别分析:例如识别到未提供Root权限的情况下,App通过ART方式获取到了Root权限并调用了需要Root权限才能够调用的API。
2)基于敏感路径下文件读写的识别分析:例如识别到App尝试对/system或者/data/data目录下其他app的数据进行读写。
3)基于特定关键词的数据匹配分析:例如识别到调用参数中包含预先内置的关键词,如“验证码”、“银行”等。在短信劫持类App的分析中,基于关键词识别将十分有效。
4)基于特定网络通信地址的识别分析:依据日志分析App与外部某些ip地址或者特定端口进行了数据通信,如果ip地址和端口是知识库中记录的敏感地址,则可以十分准确的识别[4]。
5)基于API调度序列的识别分析:对API的调度序列进行识别,可以发现App运行的潜在规律。例如每10分钟会读取一次短信的收件箱。
6)基于频率的API调用识别分析
通过对日志数据的统计分析,可以对APK的运行做出较为准确的判断和分析。对于难以通过逆向等方式进行APK恶意行为分析的场景下,将会发挥较大的作用。
3 结束语
本文提出了一种基于运行时日志统计分析的方式对恶意APK进行行为特征分析的思路,并提出基于AOSP项目进行恶意行为分析系统的改造及建设方案设计。本文所提出的系统能够对难以通过逆向方式进行分析的APK发挥较大的作用,并且能够极大地缩短分析恶意APK所需的时间,提升取证分析效率。
参考文献:
[1] 童振飞. Android恶意软件静态检测方案的研究[D]. 南京: 南京邮电大学, 2012.
[2] 赵洋, 胡龙, 熊虎, 等. 基于沙盒的Android恶意软件动态分析方案[J]. 信息网络安全, 2014(12): 21-26.
[3] 陈丹伟, 唐平, 周书桃. 基于沙盒技术的恶意程序检测模型[J].计算机科学, 2012, 39(B06): 12-14.
[4] 王伟, 彭勤科. 主机日志分析及其在入侵检测中的应用[J]. 计算机工程与应用, 2002, 38(13): 35-37