基于日志分析的Android系统恶意行为检测

2016-06-08 05:49谢丽霞赵彬彬
计算机应用与软件 2016年5期
关键词:日志应用程序数据库

谢丽霞 赵彬彬

(中国民航大学计算机科学与技术学院 天津 300300)



基于日志分析的Android系统恶意行为检测

谢丽霞赵彬彬

(中国民航大学计算机科学与技术学院天津 300300)

摘要针对Android平台恶意软件泛滥的问题,提出一种基于日志分析的Android系统的恶意行为检测模型。模型采用进程守护和广播监听的方式收集日志信息并通过Boyer-Moore算法匹配、识别恶意行为。以Android 4.0平台为测试环境进行软件行为检测,实验结果表明,该检测模型能够检测出90.0%的恶意行为,证明模型对Android系统恶意行为检测的有效性和可行性。

关键词进程守护恶意行为日志信息

0引言

Android是2007年11月份谷歌公司发布的一款基于Linux的开源的手机操作系统[1]。由于其开放性的特色使得Android的市场占有率持续增长。截止2014年1月份Android的市场占有率已达到78.9%,最新数据显示Android的网络流量首超IOS。中国智能手机的发展更是极大地推动了Android市场占有率的增长,当然也伴随着一系列的安全问题。

2012年第四季度的Android恶意软件的数量和变种类型大幅度增多。F-Secure的最新报告显示,最近一个季度Android平台下的恶意软件的威胁已从去年的79%增至91.3%[2]。Android平台下的恶意行为主要分为如下几种方式:加值服务滥用、插播广告、窃取用户资料和信息、非法下载软件和诈骗等[3],其最终目的是为了获取高额的利润。其中76.5%的恶意软件是借助网络、短信、电话等方式传递私密或扣费信息诈骗用户钱财,而非破坏手机系统[2]。

本文主要从Android系统的日志入手,采用进程守护机制常驻系统内存记录系统的日志信息,采用Boyer-Moore[4]算法匹配日志信息,分析识别软件的恶意行为。

1背景及相关工作

目前,Android平台下基于行为的恶意软件的检测方案主要是:静态行为检测、动态行为检测和混合检测的方式[5,6]。静态行为检测是在软件未安装以前分析软件源代码等方式来识别软件的恶意行为。动态行为检测是在软件运行时动态的拦截,识别软件的恶意行为。混合检测则是静态行为检测与动态行为检测相结合的方式。

静态行为检测需要利用工具识别软件的行为(如:通过反编译的方式分析软件源代码)[7],执行复杂且精度不高。动态行为检测通过监控软件的行为,进行特征行为的匹配,需要大量的样本数据。混合检测则过于繁琐,实现复杂。

2检测模型的设计

2.1模型设计

Android系统的主要恶意行为包括:非法拨打电话、发送扣费短信、访问远程服务器、安装、卸载、运行未知软件、删除、修改文件等。

恶意行为的通用判断标准如下:

1) 当运行有Android系统的手机(或平板等)处于锁屏状态时,此时一切软件的拨打电话、发送短信、访问远程服务器、访问隐私数据、操作未知软件等行为均被视为恶意行为。

2) 当手机(或平板等)处于解锁状态(用户前台正常使用)时,若此时执行拨打电话、发送短信、访问服务器等行为的应用程序不是前台应用程序,则认为该行为是恶意行为,将该行为上报用户。若前台应用程序执行该行为,则识别该程序是否是可信软件,若不是可信软件或可信性未知,则判定该行为是恶意行为。

检测模型由三个部分组成:日志信息收集部分、应用程序数据库和日志信息索引库部分以及行为特征匹配部分。日志信息收集部分通过广播监听的方式和进程守护机制长久地收集日志信息。广播监听是通过监听系统开机的广播开始收集系统的日志信息。进程守护机制是指有两条功能相同的记录系统日志的进程,同一时刻只有一条进程在运行,任何一条进程在被销毁的同时开启另一条进程继续记录系统的日志信息。应用程序数据库和日志信息索引库为Android系统产生的日志信息的恶意行为匹配提供数据。行为特征匹配部分的作用是通过Boyer-Moore算法匹配日志信息,识别恶意行为。

检测模型的检测思路是:日志信息收集部分收集系统产生的日志信息。行为特征匹配部分查询应用程序数据库和日志信息索引库,运用Boyer-Moore算法匹配日志信息进行行为特征的匹配,根据本文定义的恶意行为的判断标准识别恶意行为并上报用户。恶意行为检测模型架构如图1所示。

图1 恶意行为检测模型架构

2.2行为特征匹配算法

Boyer-Moore算法是一种高效、构思巧妙、应用广泛的字符匹配算法。该算法已在目前的文字处理软件中广泛使用。

基于Boyer-Moore算法,本文设计的Android软件行为特征匹配处理方法如下:

1) 设定一个目标串和查找串。以系统产生的日志信息作为目标串,以日志信息索引库中的行为特征字符串作为查找串进行操作类型的特征匹配,确定系统执行的操作类型。

2) 以日志信息作为目标串,以应用程序的包名作为查找串进行包名匹配,定位执行操作的应用程序的包名。通过应用程序数据库中的信息确定对应的应用程序的名称,至此识别出系统执行的行为信息。

3) 匹配日志信息的最近的记录以同样的方式定位出执行该行为的软件或从系统的任务栈中获取。根据本文定义的恶意行为的判断标准最终确定该行为是否是恶意行为。

Boyer-Moore算法的匹配流程如图2所示。

图2 Boyer-Moore算法匹配流程图

3检测模型的实现

3.1检测模型处理流程

检测模型的具体实现是由三个模块组成:日志信息记录模块、应用程序信息及日志信息索引模块和日志信息分析模块。

日志信息记录模块采用广播监听和进程守护的方式常驻在系统的内存,记录系统产生的日志信息,并根据系统日志信息的数据量周期性地清理记录日志信息的文件。

应用程序信息及日志信息索引模块的作用是将Android系统下已安装的系统应用程序和用户应用程序的相关信息存储到应用程序数据库中。同时将系统的行为所对应的日志信息字符串存储到日志信息索引库中为日志信息分析模块分析系统日志提供数据。

最后由日志信息分析模块查询应用程序数据库和日志信息索引库借助Boyer-Moore算法匹配日志信息,识别软件的行为,并根据模型定义的判断标准将识别出的恶意行为上报用户。

本文提出的基于日志的Android系统的恶意行为的检测模型的整体流程如图3所示。

图3 检测模型整体处理流程

3.2日志信息记录模块

日志信息记录模块是该检测模型的重要模块。当日志信息记录模块监听到系统的开机广播时开启记录日志信息的服务A,在服务A中开启一条线程循环执行logcat -d指令,获取Android系统下产生的日志信息并以JSON的形式存储在txt文件中。重写服务A的onDestroy()方法,在服务A销毁的同时开启服务B,服务B执行与服务A相同的记录日志信息的操作,服务B销毁的同时开启服务A。通过这种广播监听和进程守护的方式避免了人为或恶意软件销毁进程结束记录日志的服务,使该服务可以常驻系统的内存。

Android系统下每执行一次操作会产生相应的日志信息。为了节约对系统资源的使用,记录日志信息的文件中只保留了前500条记录,获取到的日志信息将由日志信息分析模块进行处理。日志信息记录模块的处理流程如图4所示。

图4 日志信息记录模块处理流程图

3.3应用程序信息及日志信息索引模块

Android系统下已安装的应用程序,会以文件夹的形式存储在“/data/data/”目录下,遍历这些文件夹即可获取已安装的应用程序的包名等信息。但若系统未root[8],则无法访问这些与系统相关的文件。通过Android系统提供的PackageManager类获取系统应用程序的相关信息(包括:应用程序的包名、应用程序的名称和是否是系统应用等)。借助Android系统的SQLite引擎将应用程序的相关信息以及与软件安装、运行、卸载等类的信息存储到数据库文件中构成应用程序数据库。该数据库中的软件信息同时会根据用户的操作和服务器端的数据进行更新。

Android系统下每执行一步操作会生成相应的日志信息。每条日志信息均由五部分组成:Time、Type、Pid、Tag、Message[9]。

(1) Time:记录了日志产生的时间。

(2) Type:指示了该日志信息的类型。分为五种:V(所有信息);D(调试信息);I(一般信息);W(警告信息);E(错误信息)。

(3) Pid:Android系统为每个应用程序分配了一个进程ID。

(4) Tag:启动的应用程序的Activity的名称或类名。

(5) Message:Android系统下程序运行的相关的详细信息。

以Android系统下拨打电话的日志信息为例,部分日志信息如下:

START{act=android.intent.action.MAIN flg=0x10840000 cmp=com.android.phone/.InCallScreen}

由日志信息的内容可以分析出日志信息中包含两个敏感的字符串:START和com.android.phone。START对应的是执行的操作即运行;com.android.phone是被运行的应用程序的包名。其他的操作对应的字符串还包括DELETE、Display、Clear等,将这些敏感字符串、信息的类型、时间、标签等信息存到数据库中构成日志信息索引库。

当该模块首次启动时创建应用程序数据库和日志信息索引库并修改配置文件中相关的参数,防止模块启动时重复执行。

应用程序信息及日志信息索引模块的创建流程如图5所示。

图5 应用程序数据库和日志信息索引库创建流程

3.4日志信息分析模块

日志信息分析模块是检测模型的核心模块。在该模块中,恶意行为识别流程如图6所示。

图6 恶意行为识别流程

日志信息分析模块的主要处理流程为:

1) 接收移动设备的锁屏、解锁广播,并将移动设备当前屏幕状态存储到配置文件中。

2) 查询应用程序数据库和日志信息索引库,采用Boyer-Moore算法对日志信息进行匹配,确定软件行为。

3) 根据配置文件,识别当前手机的锁屏状态。

4) 根据当前的手机锁屏状态,按照恶意行为判断标准,识别当前行为是否是恶意行为。

4测试与分析

基于本文提出的检测模型,采用J2SE技术,设计并实现了检测软件。以Android 4.0平台为测试环境进行软件行为检测。

测试软件样本来自主流的Android应用软件交流平台。软件样本的类型涉及生活休闲、新闻阅读、影音视听、通讯社交、休闲游戏等,样本软件构成如下:

良性软件100个,含有恶意行为的软件400个。应用程序数据库中的部分数据如图7所示。

图7 应用程序数据库中的样本数据

当Android系统执行恶意行为软件时,检测到的恶意行为软件的平均时间延迟及系统内存使用情况如表1所示。

表1 检测延迟及内存消耗

表1的数据表明,本文提出的检测方法可以在用户容许的时间内检测到恶意行为,但对系统的内存消耗较大。

软件访问远程服务器的恶意行为的检测结果界面如图8所示。

图8 发现访问远程服务器的恶意行为

通过检测软件对收集的500个样本软件进行检验测试,发现360个样本软件中含有如下恶意行为:运行未知软件、访问远程服务器、发送短信等。检测实验结果如表2所示。

表2 检测结果

表2的测试数据和测试结果证明了本文提出的检测模型能够有效发现Android系统的恶意行为,验证了该检测模型对恶意行为检测的有效性与可行性。

5结语

基于日志的Android系统恶意行为检测模型采用进程守护和广播监听的方式保证记录日志的服务常驻系统内存,以Android系统的日志信息作为软件行为的分析依据,借助Boyer-Moore算法匹配日志信息中的敏感字符串识别软件的恶意行为。该模型能够有效识别出软件的恶意行为,但仍有不足之处:如对系统的资源消耗较大,构建日志信息索引库困难,恶意行为的识别精度不高等。

未来基于日志的Android系统的恶意行为的检测模型将以日志信息为主,综合评估各方面的数据。提高监控的准确度和效率并降低对系统资源的消耗。

参考文献

[1] Foutse Khomh,Hao Yuan,Ying Zou.Adapting Linux for Mobile Platforms:An Empirical Study of Android[C]//The 28th IEEE International Conference on Software Maintenance (ICSM),2012:629-632.

[2] F-Secure Labs Mobile Threat Report Q1 2014[EB/OL].[2014-7-16].http://www.f-secure.com/en/web/labs_global/whitepaper/reports.

[3] Suleiman Y Yerima,Sakir Sezer,Gavin McWilliams.Analysis of Bayesian classification based approaches for Android malware detection[J].2014,8(1):25-36.

[4] Miloslav Besta,Frank Stomp.Mechanization of a Proof of String-Preprocessing in Boyer-Moore’s Pattern matching algorithm[C] //Proceedings of the Eightth IEEE international Conference on Engineering of Complex Computer Systems (ICECCS),2002:68-77.

[5] Zarni Aung,Win Zaw.Permission-Based Android Malware Detection[J].Internation Journal of Scientific & Technology,2013,2(3):228.

[6] Michael Spreitzenbarth,Thomas Schreck,Florian Echtler,et al.Mobile-Sandbox:combining static and dynamic analysis with machine-learning techniques[J].International Joarnal of Information Sacurity,2015,14(2):141-153.

[7] 陈丹伟,唐平,周书桃.基于沙盒技术的恶意程序检测模型[J].计算机科学,2012,39(6):12-13.

[8] 邢晓燕,金洪颖,田敏.Android系统root权限获取与检测[J].软件,2013,34(12):208-210.

[9] Android命令行工具logcat详细用法[EB/OL].[2012-2-25].http://www.miui.com/article-272-1.html.

LOG ANALYSIS-BASED MALICIOUS BEHAVIOUR DETECTION FOR ANDROID SYSTEM

Xie LixiaZhao Binbin

(SchoolofComputerScienceandTechnology,CivilAviationUniversityofChina,Tianjin300300,China)

AbstractThis paper proposes a log analysis-based malicious behaviour detection model for Android system targeted at the rampant Android platform malware problem. The model uses the way of process guardianship and broadcast interception to collect log information, and matches and identifies malicious behaviours with Boyer-Moore algorithm. Android 4.0 platform is used as the testing environment for software behaviours detection, experimental results shows that this detection model is able to detect 90.0% malicious behaviours, and this proves the effectiveness and feasibility of the model on detecting malicious behaviours in Android system.

KeywordsGuardianship of the processMalicious behaviourLog information

收稿日期:2014-11-17。国家自然科学基金项目(60776807,6117 9045);国家科技重大专项(2012ZX03002002);天津市科技计划重点项目(09JCZDJC16800)。谢丽霞,副教授,主研领域:网络与信息安全。赵彬彬,硕士生。

中图分类号TP393.08

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.05.072

猜你喜欢
日志应用程序数据库
一名老党员的工作日志
扶贫日志
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
游学日志
数据库
数据库
数据库
数据库
一种基于粗集和SVM的Web日志挖掘模型