CN103136471B - 一种恶意Android应用程序检测方法和系统 - Google Patents

一种恶意Android应用程序检测方法和系统 Download PDF

Info

Publication number
CN103136471B
CN103136471B CN201110382248.5A CN201110382248A CN103136471B CN 103136471 B CN103136471 B CN 103136471B CN 201110382248 A CN201110382248 A CN 201110382248A CN 103136471 B CN103136471 B CN 103136471B
Authority
CN
China
Prior art keywords
api
behavior
button
application program
hardware simulator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110382248.5A
Other languages
English (en)
Other versions
CN103136471A (zh
Inventor
焦四辈
苏璞睿
应凌云
杨轶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN201110382248.5A priority Critical patent/CN103136471B/zh
Publication of CN103136471A publication Critical patent/CN103136471A/zh
Application granted granted Critical
Publication of CN103136471B publication Critical patent/CN103136471B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种恶意Android应用程序检测方法和系统,属于计算机软件技术领域。本方法为:1)将待测应用程序中的行为划分为若干类别;将待测应用程序每个按钮与一个或多个类别行为对应,得到应用程序按钮——行为模型;2)采集硬件模拟器执行按钮时的应用程序信息,识别出当前操作对应的按钮;根据应用程序按钮——行为模型得到该按钮要执行的操作行为;3)采集当前按钮触发的硬件模拟器底层API调用序列,根据API序列模型得到该按钮对应执行的操作行为;4)将步骤2)与步骤3)确定的操作行为进行对比,如果不一致则将该待测应用程序确定为恶意程序。本发明简化了分析复杂度,大大提高了分析检测的效率和准确性。

Description

一种恶意Android应用程序检测方法和系统
技术领域
本发明主要涉及恶意Android应用程序检测技术,更确切的说是基于应用程序行为和底层API行为分析的恶意Android应用程序检测技术,属于计算机软件技术领域。
背景技术
随着移动网络的不断发展,手机已经成为人类现代生活的不可或缺的一部分。而Android手机操作系统,占据了智能手机的半壁江山,并且出货量以每天50万部的速度增长。由于智能手机功能的多样性和复杂性,人们通过手机进行的工作也越来越多,不再局限于发短信、打电话,还可以玩游戏、上网、看视频、听音乐、购物等等,手机应用程序的数量也随之爆炸性的增长,Android应用商店的程序数量已经突破20万个。手机应用程序增长的同时也带来了很多窃取用户信息的恶意软件。Juniper网络公司发布的最新移动安全报告显示,Android平台上的恶意软件数量激增了400%。Android应用程序商店已经成为恶意软件分布最多的移动智能平台。所以,对Android应用程序进行安全性分析是迫切需要的。但是由于软件数量众多,软件功能越来越复杂,且其恶意行为更加隐蔽,造成分析起来难度大、效率低。
应用程序检测分析的时候,通常有两种基本方法:一种是静态分析,即静态反汇编程序代码,通过人工或者自动分析反汇编代码来分析程序安全性。一种是动态分析,即在程序运行过程中,获取其运行数据,分析其安全性。第一种方法,人工分析准确性较高,但是需要很强的专业知识,花费的人力物力很大,不适合大规模快速的安全分析;而自动分析误报和漏洞率相当高。第二种方法需要在软件运行过程中能实时的获取其运行数据,根据获取的大量数据进行分析,进而得出应用程序安全分析结果。因此,如何实时获取软件运行的数据,以及如何对这些数据进行分析,从而准确的得到应用程序检测分析结果,成为动态分析方法的研究的难点和热点。
发明内容
针对上述问题,本发明的目的在于提供一种高效率且更加准确的恶意Android应用程序检测方法,利用该方法,通过简单设置,一个不具有专业分析知识的人也可以快速准确的对Android应用程序进行分析,确定是否为恶意程序。
根据以上目的,实现本发明的一个具体的方案,其系统结构示意图如图1所示:至少包括一个硬件模拟器,一个应用程序行为定义模块,一个应用程序行为分析模块,一个底层API(applicationprograminterface应用程序接口)获取模块,一个API序列分析模块,一个安全分析模块。硬件模拟器模拟Android运行环境,应用程序行为分析模块和API序列分析模块从硬件模拟器中采集信息,安全分析模块判断应用程序的安全性。在这个最简模式下,正常的Android应用程序处理过程包括如下步骤:
1)应用程序行为定义模块。首先,将Andorid中的行为分为6个类别:联网,短信,访问地址薄,访问sim卡信息,访问多媒体数据,执行程序。其次,把需要分析的应用程序,每个页面上的每个按钮,跟Android中的6类行为对应起来,一个按钮可以对应多个行为。最后,把对应关系建模,建立应用程序按钮----行为模型。按钮是待分析程序页面上原有的,每个按钮有独一无二的id,通过获取按钮的id即可得到相应的按钮。
2)应用程序行为分析模块采集硬件模拟器中的应用程序信息,应用程序信息包括:确定目前操作的是哪个页面中的哪个按钮,有些点击可能没有涉及按钮,就过滤掉;这部分采用了模式匹配技术。具体的方法如下:首先,在应用程序定义模块中,记录了应用程序每个按钮对应的行为。应用程序行为分析模块,采集硬件模拟器中的各种点击、滑动以及晃动操作,通过模式匹配,即模式识别技术,识别出目前操作对应的按钮,进而根据所建的应用程序按钮----行为模型得到即将进行的操作行为。
3)API获取模块,采集硬件模拟器底层的API序列,这部分采用了反汇编、API函数识别等技术。具体的方法如下:首先,实时监控硬件模拟器CPU运行,通过反汇编引擎反汇编硬件模拟器的CPU指令,然后根据反汇编的指令调用地址,在API表里查找对应的API,记录这些API调用。
4)API序列分析模块,这部分采用API序列识别技术。具体的方法如下:首先,建立API序列模型,该模型实现API序列和事件一一对应,建立模型的方法是:根据Android开发文档,得知API的作用,根据经验,对每个事件(即所划分的行为)进行API序列验证。例如,函数open/read可以用来打开驱动或者文件,进行读写,实现读取文件内容或者是读取驱动内容的功能,如果open的参数是无线通信模块,读取的内容被短信处理程序调用,可以得知进行的是接收短信操作。检测的方法是:检测到的API序列是open、read、copy,检查open的参数,确认其打开的是什么,接着检查read的参数,确认其返回值,然后检查copy的参数,确认read出来的数据复制到了哪个进程空间里,如果open打开的是无线通信模块,copy将read读取的内容复制到了短信进程空间中,可以判断这一系列操作是接收短信。其次,API序列分析模块对API获取模块采集硬件模拟器的所有API调用进行分析,根据API序列模型发现API序列所对应的事件,进而识别出硬件模拟器正在进行的操作。
5)安全分析模块,根据应用程序行为分析模块和API序列分析模块得出的结果,判断应用程序的安全性。具体的方法如下:应用程序行为分析模块得出应用程序即将进行的操作,安全分析模块得到该数据后,然后将其与API序列分析模块的结果对比,如果两者符合,则证明应用程序的底层操作符合其功能描述,如果不符合,则说明应用程序底层进行了不在其功能描述范围内的操作,确定为恶意程序;最后生成安全分析报告。
与现有技术相比,本发明的优点在于:
本发明使用硬件模拟器运行Android,可以完整的获取Android运行的所有数据,保证分析工作的完整性、准确性、可靠性和真实性。通过应用程序分析模块和底层API序列分析模块对比,直接检测应用程序是否进行了不符合功能描述的操作,进而发现恶意行为。对分析人员来说,简化了分析复杂度,大大提高了分析检测的效率和准确性。
附图说明
图1为最简化模式下恶意Android应用程序检测系统的结构示意图;
图2为最简化模式下恶意Android应用程序检测方法的流程图。
具体实施方式
如图2所示,为最简化模式下的恶意Android应用程序检测方法的实现。具体的实现方式如下:
1)应用程序行为定义,具体的数据使用如下格式:
其中page表示应用程序的一个操作界面,button表示操作界面上的一个按钮,function表示操作界面上button的功能,具体的功能如下几种:
#define1联网
#define2短信
#define3访问地址薄
#define4访问sim卡信息
#define5访问多媒体数据
#define6执行程序
这部分内容由用户辅助定义,即对一个应用程序内的所有按钮进行功能定义。
2)执行应用程序。
在受控制的Android操作系统中,运行待分析的应用程序,用户依次点击应用程序中的每个按钮,对其进行分析。
3)应用程序行为分析。
获取应用程序的运行数据,按照应用程序行为定义模块建立的模型进行模式匹配,得到当前的按钮即将进行的操作。实现代码如下:
//获取当前所在页面
page=getcurrentpage();
//获取点击的按钮
button=getcurrentbutton();
//匹配应用程序行为定义模块建立的模型
function=getfunction(page,button);
最后得到当前所在页面,点击的按钮对应的操作行为。
4)Android底层API获取。
实时的监控模拟CPU运行,用反汇编引擎解析CPU指令,根据反汇编的指令调用地址,找到对应的API,然后记录这些API调用。
创建hash表,存储API地址和API,方便查询。用以下代码实现。
5)API序列分析
建立API序列模型,使用以下格式:
根据模型,对获取的API序列进行匹配,分析API序列进行的操作。代码如下:
6)安全分析模块,根据应用程序分析模块和API序列分析模块得出的结果,判断应用程序的安全性。
某一页面上,触摸一个按钮后,应用程序分析模块和API序列分析模块得到分析结果,传递过来,判断代码如下

Claims (9)

1.一种恶意Android应用程序检测方法,其步骤为:
1)将待测Andorid应用程序中的行为划分为若干类别;将待测Android应用程序中每个页面上的每个按钮与一个或多个类别行为对应,得到应用程序按钮----行为模型;
2)采集硬件模拟器执行按钮时的应用程序信息,识别出当前操作对应的按钮;根据所述应用程序按钮----行为模型得到该按钮要执行的操作行为;
3)采集当前按钮触发的硬件模拟器底层API调用序列,根据API序列模型得到该按钮对应执行的操作行为;所述API序列模型记录API序列与步骤1)所划分行为类别的对应关系;
4)将步骤2)确定的操作行为与步骤3)确定的操作行为进行对比,如果不一致则将该待测Android应用程序确定为恶意程序;
其中,采集所述API调用序列的方法为:首先实时监控硬件模拟器CPU运行,通过反汇编引擎反汇编硬件模拟器的CPU指令;然后根据反汇编的指令调用地址,在API表里查找对应的API,记录调用的API,得到所述API调用序列。
2.如权利要求1所述的方法,其特征在于所述类别包括:联网,短信,访问地址薄,访问sim卡信息,访问多媒体数据,执行程序。
3.如权利要求1所述的方法,其特征在于采用一hash表记录所述API调用序列的API地址和API。
4.如权利要求1或2所述的方法,其特征在于所述识别出当前操作对应的按钮的方法为:首先采集硬件模拟器中的各种点击、滑动以及晃动操作;然后通过模式匹配识别出目前操作为待测Android应用程序中哪个页面中的哪个按钮。
5.如权利要求1或2所述的方法,其特征在于建立所述API序列模型的方法为:根据Android应用程序的开发文档确定Android应用程序中每一API的作用;然后对每一所述行为进行API序列验证,得到每一所述行为的API序列。
6.一种恶意Android应用程序检测系统,其特征在于包括一硬件模拟器,一应用程序行为定义模块,一应用程序行为分析模块,一底层API获取模块,一API序列分析模块,一安全分析模块;其中:
所述硬件模拟器用于模拟Android应用程序运行环境;
所述应用程序行为定义模块用于将待测Andorid应用程序中的行为划分为若干类别,并将待测Android应用程序中每个页面上的每个按钮与一个或多个类别行为对应,建立应用程序按钮----行为模型;
所述应用程序行为分析模块用于从所述硬件模拟器中采集Android应用程序信息,识别出操作对应的按钮,并根据所述应用程序按钮----行为模型得到该按钮要执行的操作行为;
所述底层API获取模块用于从所述硬件模拟器中采集按钮触发的硬件模拟器底层API调用序列;
所述API序列分析模块用于根据获取的API调用序列,利用API序列模型得到该按钮对应执行的操作行为;所述API序列模型记录API序列与所述应用程序行为定义模块所划分行为类别的对应关系;
所述安全分析模块用于根据所述所述应用程序行为分析模块确定的操作行为与所述API序列分析模块确定的操作行为进行对比,如果不一致则确定待测Android应用程序为恶意程序;
其中,所述底层API获取模块获取所述API调用序列的方法为:首先实时监控硬件模拟器CPU运行,通过反汇编引擎反汇编硬件模拟器的CPU指令;然后根据反汇编的指令调用地址,在API表里查找对应的API,记录调用的API,得到所述API调用序列。
7.如权利要求6所述的系统,其特征在于所述类别包括:联网,短信,访问地址薄,访问sim卡信息,访问多媒体数据,执行程序。
8.如权利要求6或7所述的系统,其特征在于采用一hash表记录所述API调用序列的API地址和API。
9.如权利要求6或7所述的系统,其特征在于采集的所述Android应用程序信息包括所述操作是哪个页面中的哪个按钮。
CN201110382248.5A 2011-11-25 2011-11-25 一种恶意Android应用程序检测方法和系统 Active CN103136471B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110382248.5A CN103136471B (zh) 2011-11-25 2011-11-25 一种恶意Android应用程序检测方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110382248.5A CN103136471B (zh) 2011-11-25 2011-11-25 一种恶意Android应用程序检测方法和系统

Publications (2)

Publication Number Publication Date
CN103136471A CN103136471A (zh) 2013-06-05
CN103136471B true CN103136471B (zh) 2015-12-16

Family

ID=48496288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110382248.5A Active CN103136471B (zh) 2011-11-25 2011-11-25 一种恶意Android应用程序检测方法和系统

Country Status (1)

Country Link
CN (1) CN103136471B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239791A (zh) * 2013-06-18 2014-12-24 李卷孺 Android系统的反病毒系统、方法及运行有该系统的设备
CN104252594B (zh) * 2013-06-27 2019-04-02 贝壳网际(北京)安全技术有限公司 病毒检测方法和装置
CN103366115B (zh) * 2013-07-03 2016-03-23 中国联合网络通信集团有限公司 安全性检测方法和装置
US9607146B2 (en) * 2013-09-18 2017-03-28 Qualcomm Incorporated Data flow based behavioral analysis on mobile devices
CN103440459B (zh) * 2013-09-25 2016-04-06 西安交通大学 一种基于函数调用的Android恶意代码检测方法
CN103473504B (zh) * 2013-09-25 2016-05-25 西安交通大学 一种基于类别分析的Android恶意代码检测方法
CN104598287B (zh) * 2013-10-30 2019-02-12 北京猎豹移动科技有限公司 恶意程序的检测方法、装置和客户端
CN103729595B (zh) * 2014-01-02 2016-08-17 东南大学 一种Android应用程序隐私数据泄露离线检测方法
CN104217164B (zh) * 2014-09-11 2018-02-02 工业和信息化部电子第五研究所 智能移动终端恶意软件的检测方法与装置
CN104751059B (zh) * 2015-04-22 2017-06-30 北京工业大学 基于函数模板的软件行为分析方法
CN106326732A (zh) * 2015-07-03 2017-01-11 阿里巴巴集团控股有限公司 一种api保护方法和装置
CN105491221B (zh) * 2015-11-18 2019-03-08 努比亚技术有限公司 一种功能模块划分及集中显示的处理方法及终端
CN105446741B (zh) * 2015-12-10 2018-09-28 北京邮电大学 一种基于api比对的移动应用程序辨识方法
CN105956474B (zh) * 2016-05-17 2018-12-25 武汉虹旭信息技术有限责任公司 Android平台软件异常行为检测系统
CN106503546A (zh) * 2016-09-22 2017-03-15 山东浪潮商用系统有限公司 一种安卓应用程序的检测筛选方法
CN106815058B (zh) * 2016-12-08 2020-11-03 同盾控股有限公司 一种模拟器的识别方法和系统
CN109214178B (zh) * 2017-06-30 2021-03-16 中国电信股份有限公司 App应用恶意行为检测方法及装置
CN109711151B (zh) * 2017-10-25 2021-08-20 武汉安天信息技术有限责任公司 一种应用程序不良行为的预测方法、系统及装置
CN108256329B (zh) * 2018-02-09 2022-06-17 杭州义盾信息技术有限公司 基于动态行为的细粒度rat程序检测方法、系统及相应的apt攻击检测方法
CN110944332B (zh) * 2018-09-21 2023-05-02 武汉安天信息技术有限责任公司 短信拦截马检测方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818823A (zh) * 2005-02-07 2006-08-16 福建东方微点信息安全有限责任公司 基于程序行为分析的计算机防护方法
CN101013461A (zh) * 2007-02-14 2007-08-08 白杰 基于程序行为分析的计算机防护方法
CN101281571A (zh) * 2008-04-22 2008-10-08 白杰 防御未知病毒程序的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818823A (zh) * 2005-02-07 2006-08-16 福建东方微点信息安全有限责任公司 基于程序行为分析的计算机防护方法
CN101013461A (zh) * 2007-02-14 2007-08-08 白杰 基于程序行为分析的计算机防护方法
CN101281571A (zh) * 2008-04-22 2008-10-08 白杰 防御未知病毒程序的方法

Also Published As

Publication number Publication date
CN103136471A (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
CN103136471B (zh) 一种恶意Android应用程序检测方法和系统
CN110442511B (zh) 可视化埋点测试方法及装置
CN109309630A (zh) 一种网络流量分类方法、系统及电子设备
CN109933984B (zh) 一种最佳聚类结果筛选方法、装置和电子设备
CN107025165A (zh) 游戏自动化测试方法及相关装置
CN109871326A (zh) 一种脚本录制的方法和装置
CN107169351A (zh) 结合动态行为特征的Android未知恶意软件检测方法
CN107145445A (zh) 软件自动化测试的报错日志的自动分析方法和系统
CN104951515B (zh) 一种提取并分析Android手机行踪轨迹信息的方法
CN106843941B (zh) 信息处理方法、装置和计算机设备
CN108062477A (zh) 基于侧信道分析的硬件木马检测方法
CN106484915B (zh) 一种海量数据的清洗方法和系统
CN105022694A (zh) 用于移动终端测试的测试用例生成方法及系统
CN105138916A (zh) 基于数据挖掘的多轨迹恶意程序特征检测方法
CN110399377A (zh) Sql的优化方法、装置、电子设备及计算机可读存储介质
CN104462985A (zh) bat漏洞的检测方法以及装置
CN107958154A (zh) 一种恶意软件检测装置及方法
CN104320793B (zh) 一种手机短信自动化测试方法及系统
CN103177022A (zh) 一种恶意文件搜索方法及装置
CN104866764A (zh) 一种基于对象引用图的Android手机恶意软件检测方法
CN104537012B (zh) 数据处理方法和装置
CN109522692A (zh) 网页机器行为检测方法及系统
CN114329455B (zh) 基于异构图嵌入的用户异常行为检测方法及装置
CN106301979A (zh) 检测异常渠道的方法和系统
CN101930401B (zh) 一种基于检测对象的软件漏洞模型检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant