CN102867143B - 一种恶意应用程序的快速过滤方法 - Google Patents
一种恶意应用程序的快速过滤方法 Download PDFInfo
- Publication number
- CN102867143B CN102867143B CN201210301154.5A CN201210301154A CN102867143B CN 102867143 B CN102867143 B CN 102867143B CN 201210301154 A CN201210301154 A CN 201210301154A CN 102867143 B CN102867143 B CN 102867143B
- Authority
- CN
- China
- Prior art keywords
- authority
- respective function
- application program
- application
- storehouse
- 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.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种恶意应用程序的快速过滤方法,包括:首先,获取应用程序申请的权限信息;之后,将所述权限信息与预定的危险权限库中记载的权限信息进行匹配,当匹配成功时,则对匹配成功的权限信息进行应用程序是否应用过匹配成功的权限信息对应的函数的恶意行为筛查操作。本发明实施例可以从大量的应用程序中快速的提取出可能存在恶意行为的应用程序,从而过滤掉明显没有恶意行为的应用程序,以减少后续进一步筛查分析的工作量,大大提高恶意应用程序的筛查效率。
Description
技术领域
本发明涉及应用程序检测技术,尤其涉及一种恶意应用程序的快速过滤方法。
背景技术
Android(安卓)系统作为一种应用广泛的开源的智能手机操作系统,其吸引了大量应用程序开发者基于Android系统进行应用程序的开发。
由于智能手机中通常存在大量的用户隐私信息,导致大量的恶意应用程序争相涌入。Android系统中的恶意应用程序通常会在未明确提示用户或未经用户许可的情况下,获取用户手机上的隐私信息,侵犯用户合法权益。相应的恶意应用程序的主要恶意行为包括:恶意扣费、隐私窃取、远程控制、恶意传播、资费消耗、系统破坏、诱骗欺诈、流氓行为等。
针对上述恶意行为若不采用相应的检测手段加以限制,则将导致Android应用程序的使用者蒙受损失。
目前,针对恶意应用程序的分析方式主要包括:动态分析与静态分析两种。下面将分别对两种分析方式进行说明,其中:
动态分析方法主要通过修改Android模拟器内核对安装的应用程序进行实时检测或者使用符号执行的方法使应用程序按照指定的路径运行,从而得到应用程序的恶意行为。
静态分析方法主要是通过分析APK(Android应用程序包)中的有关文件,将有关文件进行反汇编处理以获得应用程序的字节码信息,再将其与预定的恶意应用程序文件特征信息进行比对,若符合,则确定为恶意程序。
可见,上述现有的恶意程序分析方法均需要对每个应用程序进行复杂的分析操作,因此,相应的分析方法在面对海量的Android应用程序的情况下,其根本无法达到快速高效过滤掉明显没有恶意行为的应用程序的目的,从而减少后期分析可能存在恶意行为应用程序的代价。
发明内容
本发明的目的是提供一种恶意应用程序的快速过滤方法,从而可以快速高效地过滤出明显没有恶意行为的应用,筛选出可能存在恶意行为的应用程序。
本发明的目的是通过以下技术方案实现的:
一种恶意应用程序的快速过滤方法,包括:
获取应用程序申请的权限信息;
将所述权限信息与预定的危险权限库中记载的权限信息进行匹配;
当匹配成功时,则对匹配成功的权限信息进行应用程序是否应用过匹配成功的权限信息对应的函数的恶意行为筛查操作。
所述恶意行为筛查操作包括:
根据所述匹配成功的权限信息构建危险权限对应函数;
将所述危险权限对应函数与应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库进行匹配;
当所述危险权限对应函数与所述应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库中信息分别均匹配成功时,确定该应用程序存在恶意行为或者存在执行恶意行为的风险。
所述应用程序包括:基于Android系统创建的Android应用程序。
所述获取应用程序申请的权限信息的操作具体包括:
解压Android系统的应用程序文件,从中获取全局变量描述AndroidManifest.xml文件,并进行解密,获取非加密的原始AndroiManifest.xml文件;
扫描AndroidManifest.xml中的权限描述部分,获取应用程序所申请的权限列表,获得所述应用程序申请的权限信息。
所述构建危险权限对应函数包括:
根据所述匹配成功的权限信息,从获取的危险权限对应函数库中,确定所述匹配成功的权限信息对应的函数,构建与该匹配成功的权限信息对应的危险权限对应函数。
获取所述危险权限对应函数库的步骤具体包括:
扫描Android应用程序开发文档,确定每个权限信息在系统中对应的函数,根据确定每个权限信息在系统中对应的函数生成所述危险权限对应函数库;其中,该危险权限对应函数库包括:隐私数据权限对应函数库和与外界交互权限对应函数库。
该方法还包括获取应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库的过程,且该过程包括:
从Android应用程序包APK文件中获取文件名后缀为DEX的文件,在该后缀为DEX的文件中包含了应用程序的字节码信息;
对获取的后缀为DEX的文件进行反汇编,获取应用程序调用的系统函数列表;
根据应用程序调用的系统函数列表生成所述应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库。
由上述本发明提供的技术方案可以看出,本发明实施例提供的快速过滤方法,可以从大量的应用程序中快速的提取出可能存在恶意行为的应用程序,从而过滤掉明显没有恶意行为的应用程序,以减少后续进一步筛查分析的工作量,大大提高恶意应用程序的筛查效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1为本发明实施例提供的方法的处理过程示意图;
图2为本发明实施例提供的具体应用实施例的处理过程示意图一;
图3为本发明实施例提供的具体应用实施例的处理过程示意图二。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明实施例提供了一种恶意应用程序的快速过滤方法,如图1所示,其具体可以包括以下步骤:
步骤11,获取应用程序申请的权限信息,该权限信息通常以表形式存在,故也可以称之为权限列表;
步骤12,将相应的应用程序申请的权限信息与预定的危险权限库中记载的权限信息进行匹配;
相应的预定的危险权限库中记载着可能存在恶意风险的权限,如获取用户隐私信息的权限、与其他手机通信的权限及与其他网络通信的权限等等,具体可以根据目前可能存在恶意风险的操作权限确定该危险权限库,且该危险权限库可以根据需要进行更新,以满足针对不断变化的恶意应用的过滤需求;
步骤13,当匹配成功时,则对匹配成功的权限信息进行应用程序是否应用过匹配成功的权限信息对应的函数的恶意行为筛查操作;
即当匹配成功时,则表明该应用程序可能存在恶意风险,因此需要做进一步的过滤处理,该进一步的过滤处理主要是检查该应用程序是否使用过该有风险的权限,例如,若用户申请了获取用户隐私信息的权限,则需要进一步检查应用程序是否执行过获取用户隐私信息的操作,以及是否将获取的用户隐私信息发送给外界用户,以确定该应用程序是否存在恶意行为。
进一步地,上述恶意行为筛查操作可以但不限于包括:
(1)根据匹配成功的权限信息构建危险权限对应函数;
(2)将危险权限对应函数与应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库进行匹配;
通过该步骤(2)便可以检查危险权限对应的函数是否被应用程序调用过,以便于确定应用程序是否执行了危险权限对应的操作行为;
(3)当危险权限对应函数与应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库中信息分别均匹配成功时,则表明应用程序执行了危险权限对应的操作行为,进而可以确定该应用程序存在恶意行为或者存在执行恶意行为的风险。
为便于理解,下面将结合附图及具体的应用实施例对本发明实施例的实现过程作进一步地详细描述。
具体地,以本发明实施例应用于Android系统中为例,即以相应的应用程序为基于Android系统创建的Android应用程序为例,对相应的快速过滤方法进行详细描述。
相应的基于Android系统的恶意应用程序的快速过滤方法中,主要可以通过从全局变量描述AndroidManifest.xml文件中读取应用程序权限库(即应用程序申请的权限信息),并结合与相应权限相关的系统函数,对应用程序进行快速过滤。该过滤方法的具体实现流程如图2所示,包括:
步骤21,获取AndroidManifest.xml;
具体地,解压应用程序的APK文件,从中获取AndroidManifest.xml文件,再对AndroidManifest.xml文件进行解密,便可以获取非加密的原始AndroiManifest.xml文件;其中,APK文件主要的来源可以是应用程序开发者上传到应用商店的应用程序;也可以是应用程序使用者,对安装的应用程序安全性存在质疑,将需要进行安全性确认的应用程序;或者,也可以是其他渠道获得的应用程序;当需要对这些应用程序进行快速过滤时,则可以但不限于通过手机端将应用程序上传并输入至应用该快速过滤方法的系统中,以进行相应的安全检测。
步骤22,获取应用程序申请的权限列表,即获取应用程序申请的权限信息;
具体可以通过扫描AndroidManifest.xml中的权限描述部分,获取应用程序所申请的权限列表,以获得所述应用程序申请的权限信息。
步骤23,检测危险权限;
即检测应用程序申请的权限信息是否存在危险,具体可以将已获取应用程序申请的权限列表与危险权限库中记载的权限信息进行匹配,若匹配成功,则确定可能存在潜在的危险,需要执行步骤24对应用程序做进一步地筛查处理,若匹配不成功,则确定应用程序不存在恶意行为,即该应用程序是安全的;
其中,相应的危险权限库可以通过分析Android应用程序开发文档获取,危险权限库中的权限可能是获取用户隐私数据,抑或是可以与其他手机或者网络通讯的权限等等,例如,该危险权限库主要可以但不限于包含以下权限:
android.permission.SEND_SMS,允许发送短消息;
android.permission.INTERNET,允许接入互联网;
android.permission.READ_SMS,允许读短消息;
android.permission.WRITE_SMS,允许写短消息;
android.permission.READ_CONTACTS,允许读通讯录;
android.permission.WRITE_CONTACTS,允许写通讯录;
android.permission.CALL_PHONE,允许拨打电话;
android.permission.WRITE_SYNC_SETTINGS,允许写系统设置;
android.permission.ACCESS_COARSE_LOCATION,允许应用访问不精确的地理位置;
android.permission.ACCESS_FINE_LOCATION,允许应用访问精确的地理位置,等等。
步骤24,构建应用程序的危险权限对应的系统函数列表,简称:危险权限对应函数列表;
具体地,可以根据上述匹配成功的权限信息(即检测出的危险权限列表),从获取的危险权限对应函数库中,确定匹配成功的权限信息对应的函数,以构建与该匹配成功的权限信息对应的危险权限对应函数,由于该危险权限对应函数通常以列表的形式存在,故也称为危险权限对应函数列表;
其中,相应的危险权限对应函数库可以通过扫描Android应用程序开发文档获取,确定每个权限信息在系统中对应的函数,根据确定每个权限信息在系统中对应的函数生成所述危险权限对应函数库,在该危险权限对应函数库中主要可以包括每个权限在系统中对应的函数,例如,若发送短信的权限为android.permission.SEND_SMS,则其对应的函数为SmsManager.sendTextMessage、SmsManager.sendDataMessage、SmsManager.sendMultipartTextMessage等;
进一步地,该危险权限对应函数库可以包括:隐私数据权限对应函数库和与外界交互权限对应函数库等,其中:
相应的隐私数据权限对应函数库可以但不限于包括以下函数:
ContentResolver.query(内容管理)、LocationManager.getLastKnownLocation(已经位置管理)、Location.getLongitude(经度位置)、Location.getLatitude(纬度位置)等;
相应的与外界交互权限对应函数库可以但不限于包括以下函数:
SmsManager.sendTextMessag(发送文本消息)、SmsManager.sendDataMessage(发送数据消息)、HttpClient.execute(网络发送)等。
步骤25,获取DEX文件;即从输入的APK文件中获取文件名后缀为DEX的文件,该文件主要包含应用程序的字节码信息;
步骤26,获取应用程序调用的系统函数列表,即获取应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库中的函数;
具体地,可以通过对获取的后缀为DEX文件进行反汇编,获取应用程序调用的系统函数列表。
步骤27,检测相应危险权限的系统函数;
具体地,如图3所示,将应用程序的危险权限对应函数列表与上述步骤26获得隐私数据权限对应函数库及与外界交互权限对应函数库进行比较,如果匹配结果是在危险权限对应函数列表中存在一个子集在隐私数据权限对应函数库中,并同时存在一个子集在与外界交互权限对应函数库中,则认为该应用程序可能存在恶意行为;否则,可以确定该应用程序是不存在恶意行为,即为安全的应用程序;
需要说明的是,在上述处理过程中,相应的步骤24和步骤25的执行顺序先后没有特别限定;另外,在上述步骤27中,与隐私数据权限对应函数库及与外界交互权限对应函数库进行比较过程中,两种比较处理也不存在先后顺序的限定。
通过上述处理过程,可以快速从大量的应用程序中迅速检测出可能存在恶意行为的应用程序。而且,在该实施例中除了依据应用程序所申请权限进行过滤,同时还考虑了权限对应函数的应用情况,因而还可以保证较高的检测精确度。
另外,本发明实施例提供的方案不需要运行应用程序,而可以直接在计算机上进行检测。由于Android系统所依赖的硬件设备电源、计算、存储等资源有限,若直接在Android系统上进行恶意软件检测势必会带来较大的时间开销,而本发明由于不需要运行应用程序,便可以在Windows、Linux等多种计算机系统上运行,因而使得检测过程操作简便,并可以充分利用计算机的运算能力,以实现批量化、并发式的恶意应用程序检测,大大提高了检测效率。
本发明的具体实施方式的举例
为使本发明的目的、技术方案及优点更加清楚明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。下面的实施例描述过程中将仍以基于Android系统实现本发明提供的恶意应用程序快速过滤方案为例进行说明。
实施例一
该实施例一提供的基于Android系统的恶意应用程序的快速过滤方法主要包括:
(1)获取AndroidManifest.xml
具体可以使用WinRAR软件从APK文件中解压出加密的AndroidManifest.xml文件,或者,也可以使用其他任何支持APK文件格式解包的软件,如WinZip、7Zip等等;
进一步地,该步骤中可以使用AXMLPrinter2.jar对加密的AndroidManifest.xml文件进行解密,获取非加密的原始AndroiManifest.xml文件,或者,也可以使用其他解密软件,如APKTool.jar等进行相应的解密操作。
(2)获取应用程序申请的权限列表
具体地,可以使用Java中的xml文件解析包,解析AndroidManifest.xml中的权限描述部分,以获取应用程序所申请的权限列表;
当然,也可以使用其他XML解析器,或者使用其他编程语言比如C/C++,python等开发xml解析工具,对AndroidManifest.xml文件进行解析,以获得相应的应用程序所申请的权限列表。
(3)检测危险权限
该步骤中,具体是对已获取的应用程序申请的权限列表,与危险权限库进行匹配,若匹配成功,则表明应用程序申请了危险权限,需要执行后续的步骤(4),以进行进一步的过滤处理,否则,表明应用程序没有申请这样的危险权限,即可以确定该应用程序是安全的;
相应的危险权限库可以通过分析Android应用程序开发文档获取,其中的危险权限库中的权限可能是获取用户隐私数据,抑或可以是与其他手机或者网络通讯的权限,等等;相应的危险权限库可以根据实际需求实时进行更新,以保证过滤的效果。
(4)构建应用程序危险权限对应的系统函数列表
具体是基于步骤(3)检测到的与危险权限库中的危险权限匹配的应用程序申请的权限,根据危险权限对应函数库构建相应的危险权限对应函数列表,即以在危险权限库中匹配成功的应用程序申请的权限为索引,在危险权限对应函数库中查找对应的函数,匹配成功的多个权限对应的函数构成相应的危险权限对应函数列表;
相应的危险权限对应函数库可以通过扫描Android应用程序开发文档获取的,分为获取隐私数据权限对应函数库和与外界交互权限对应函数库,库中主要包含每个权限在系统中对应的函数,例如发送短信的权限android.permission.SEND SMS,对应SmsManager类中的函数sendTextMessage、sendDataMessage、sendMultipartTextMessage等;读取通讯录的权限android.permission.READ CONTACTS,对应ContentResolver类中的函数query等;获取地理位置信息的权限android.permission.ACCESS FINE LOCATION,对应LocationManager类中的函数getLastKnownLocation等以及Location类中的函数getLongi tude、getLat i tude等。
(5)获取DEX文件
例如,可以使用WinRAR从APK包中获取文件名后缀为DEX的文件,该文件主要包含应用程序的字节码信息,或者,也可以使用其他任何支持APK文件格式解包的软件进行后缀为DEX的文件的获取,如WinZip、7Zip等。
(6)获取应用程序调用的系统函数列表
具体可以使用IDAPro对步骤(5)中获取的后缀为DEX的文件进行反汇编,获取应用程序调用的系统函数列表,以获得应用程序调用的隐私数据权限对应函数库和应用程序调用的与外界交互权限对应函数库;
进一步地,该步骤也可以但不限于使用其他任何支持DEX文件格式反汇编的软件,如smali.jar,ddx1.11.jar等进行后缀为DEX的文件的反汇编处理。
(7)检测相应危险权限的系统函数
具体地,该步骤中是将步骤(4)获得“危险权限对应函数列表”与步骤(6)获得的“隐私数据权限对应函数库”进行比较,再将其与“与外界交互权限对应函数库”进行比较(这两种比较没有先后顺序的限定),如果匹配结果是“危险权限对应的函数列表”中存在一个子集在“隐私数据权限对应函数库”中,并同时存在一个子集在“与外界交互权限对应函数库”中,则认为该应用程序可能存在恶意行为;否则可以确定该应用程序是不存在恶意行为,从而是安全的应用程序。
实施例二
本实施例二中,是以对愤怒的小鸟太空版的应用程序(Angry Birds Space,ngryBirdsSpacev1.1.0.APK)进行分析为例,并最终得出的结论是该应用程序是安全的。具体的分析步骤包括:
(1)获取AndroidManifest.xml
即可以使用WinRAR软件从AngryBirdsSpacev1.1.0.APK文件中解压出加密的AndroidManifest.xml文件;
使用AXMLPrinter2.jar工作对加密的AndroidManifest.xml文件进行解密,获取非加密的原始AndroiManifest.xml文件。
(2)获取权限列表
即可以使用Java中的xml文件解析包,解析AndroidManifest.xml中的权限描述部分,获取应用程序所申请的权限列表;
得到的权限列表中包含一个权限为:android.permission.INTERNET。
(3)检测危险权限
对步骤(2)已获取的权限列表,与危险权限库进行匹配,得出访问网络的权限android.permission.INTERNET是一个危险权限,并执行步骤(4)。
(4)构建应用程序危险权限对应函数列表
具体构建的危险权限对应函数列表包括:
HttpURLConnection.getURL、
HttpClient.execute、
HttpURLConnection.getResponseMessage、
NetworkInfo$State.ordinal等。
(5)获取DEX文件
可以使用WinRAR从APK包中获取classes.dex文件,该文件主要包含应用程序的字节码信息。
(6)获取应用程序调用的系统函数列表
可以使用IDAPro对步骤(5)中获取的DEX文件进行反汇编,获取应用程序调用的系统函数列表(包括隐私数据权限对应函数库和与外界交互权限对应函数库),总共有超过3000条的记录,主要包括:
在隐私数据权限对应函数库中的函数:
无。
在与外界交互权限对应函数库中的函数:
HttpClient.execute、Socket.getOutputStream。
不存在于上述两个库中的函数:
Parcel.obtain、
Parcel.readException、
Binder.onTransact、
Parcel.enforceInterface等。
(7)检测相应危险权限的系统函数
将步骤(4)获得的应用程序的“危险权限对应函数列表”与步骤(6)获得的“隐私数据权限对应函数库”进行匹配,不存在函数在该库中,所以匹配失败;与“与外界交互权限对应函数库”进行匹配,存在函数HttpClient.execute在该库中,所以匹配成功。因为两个库中前者匹配失败,所以可以确定该应用程序是不存在恶意行为,从而确定该应用程序是安全的应用程序。
实施例三
本实施例三是对应用程序Walk and Text(WalkandTextv1.3.7.APK)进行分析,最终得出的结论是该应用可能是不安全的。具体步骤包括:
(1)获取AndroidManifest.xml
使用WinRAR软件从WalkandTextv1.3.7.APK文件中解压出加密的AndroidManifest.xml文件;
使用AXMLPrinter2.jar工作对加密的AndroidManifest.xml文件进行解密,获取非加密的原始AndroiManifest.xml文件。
(2)获取权限列表
使用Java中的xml文件解析包,解析AndroidManifest.xml中的权限描述部分,获取应用程序所申请的权限列表,包括:
android.permission.CAMERA、
com.android.vending.CHECK_LICENSE、
android.permission.ACCESS_FINE_LOCATION、
android.permission.ACCESS_COARSE_LOCATION、
android.permission.ACCESS_NETWORK_STATE、
android.permission.SEND_SMS、
android.permission.INTERNET、
android.permission.READ_CONTACTS、
android.permission.VIBRATE、
android.permission.READ_PHONE_STATE、
android.permission.READ_LOGS、
android.permission.MODIFY_PHONE_STATE、
android.permission.CALL_PHONE。
(3)检测危险权限
对步骤(2)已获取的权限列表,与危险权限库进行匹配,得出以下权限危险权限:
android.permission.ACCESS_FINE_LOCATION、
android.permission.ACCESS_COARSE_LOCATION、
android.permission.ACCESS_NETWORK_STATE、
android.permission.SEND_SMS、
android.permission.INTERNET、
android.permission.READ_CONTACTS、
android.permission.READ_PHONE_STATE、
android.permission.READ_LOGS、
android.permission.MODIFY_PHONE_STATE、
android.permission.CALL_PHONE。
故,需要执行步骤(4)。
(4)构建应用程序危险权限对应函数列表
具体构建的“危险权限对应函数列表”的内容包括:
Location.getLatitude、
Location.getLongitude、
HttpClient.execute、
SmsManager.sendTextMessage等。
(5)获取DEX文件
可以使用WinRAR从APK包中获取classes.dex文件,该文件主要包含应用程序的字节码信息。
(6)获取应用程序调用的系统函数列表
使用IDAPro对步骤(5)中获取的后缀为DEX的文件进行反汇编,获取应用程序调用系统函数列表(包括隐私数据权限对应函数库和与外界交互权限对应函数库),总共有101条的记录,主要包括:
在隐私数据权限对应函数库中的函数:
Location.getLatitude、
Location.getLongitude等。
在与外界交互权限对应函数库中的函数:
HttpCl ient.execute等。
不存在于上述两个库中的函数:
ListActivity.onCreate、
ListActivity.onDestroy、
ListView.setAdapter等。
(7)检测相应危险权限的系统函数
将步骤(4)获得的应用程序的“危险权限对应函数列表”与步骤(6)获得的“隐私数据权限对应函数库”进行匹配,存在函数Location.getLatitude在该库中,所以匹配成功;与步骤(6)获得的“与外界交互权限对应函数库”进行匹配,存在函数HttpClient.execute在该库中,所以匹配成功。因为两个库中都匹配成功,所以该应用程序可能存在恶意行为,从而可能是不安全的应用程序。
通过上述三个实施例的应用可以看出,本发明提供的技术方案可以方便快捷地过滤出可能存在恶意的应用程序,实现本发明的目的,满足针对系统中的恶意程序通过快速过滤出来的要求。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (6)
1.一种恶意应用程序的快速过滤方法,其特征在于,包括:
获取应用程序申请的权限信息;
将所述权限信息与预定的危险权限库中记载的权限信息进行匹配;
当匹配成功时,则对匹配成功的权限信息进行应用程序是否应用过匹配成功的权限信息对应的函数的恶意行为筛查操作;
其中,所述恶意行为筛查操作包括:
根据所述匹配成功的权限信息构建危险权限对应函数;
将所述危险权限对应函数与应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库进行匹配;
当所述危险权限对应函数与所述应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库中信息分别均匹配成功时,确定该应用程序存在恶意行为或者存在执行恶意行为的风险。
2.根据权利要求1所述的方法,其特征在于,所述应用程序包括:基于Android系统创建的Android应用程序。
3.根据权利要求2所述的方法,其特征在于,所述获取应用程序申请的权限信息的操作具体包括:
解压Android系统的应用程序文件,从中获取全局变量描述AndroidManifest.xml文件,并进行解密,获取非加密的原始AndroiManifest.xml文件;
扫描AndroidManifest.xml中的权限描述部分,获取应用程序所申请的权限列表,获得所述应用程序申请的权限信息。
4.根据权利要求2所述的方法,其特征在于,所述构建危险权限对应函数包括:
根据所述匹配成功的权限信息,从获取的危险权限对应函数库中,确定所述匹配成功的权限信息对应的函数,构建与该匹配成功的权限信息对应的危险权限对应函数。
5.根据权利要求4所述的方法,其特征在于,获取所述危险权限对应函数库的步骤具体包括:
扫描Android应用程序开发文档,确定每个权限信息在系统中对应的函数,根据确定每个权限信息在系统中对应的函数生成所述危险权限对应函数库;其中,该危险权限对应函数库包括:隐私数据权限对应函数库和与外界交互权限对应函数库。
6.根据权利要求2所述的方法,其特征在于,该方法还包括获取应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库的过程,且该过程包括:
从Android应用程序包APK文件中获取文件名后缀为DEX的文件,在该后缀为DEX的文件中包含了应用程序的字节码信息;
对获取的后缀为DEX的文件进行反汇编,获取应用程序调用的系统函数列表;
根据应用程序调用的系统函数列表生成所述应用程序调用的隐私数据权限对应函数库及与外界交互权限对应函数库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210301154.5A CN102867143B (zh) | 2012-08-22 | 2012-08-22 | 一种恶意应用程序的快速过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210301154.5A CN102867143B (zh) | 2012-08-22 | 2012-08-22 | 一种恶意应用程序的快速过滤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102867143A CN102867143A (zh) | 2013-01-09 |
CN102867143B true CN102867143B (zh) | 2015-10-21 |
Family
ID=47446010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210301154.5A Expired - Fee Related CN102867143B (zh) | 2012-08-22 | 2012-08-22 | 一种恶意应用程序的快速过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102867143B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103310153B (zh) * | 2013-04-28 | 2015-12-09 | 中国人民解放军理工大学 | 一种基于Android平台的细粒度权限控制方法 |
CN104346566A (zh) * | 2013-07-31 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 检测隐私权限风险的方法、装置、终端、服务器及系统 |
CN103530561A (zh) * | 2013-10-21 | 2014-01-22 | 北京奇虎科技有限公司 | 防止木马程序基于社会工程学攻击方法和装置 |
JP6437892B2 (ja) * | 2015-07-13 | 2018-12-12 | 日本電信電話株式会社 | ソフトウェア解析システム、ソフトウェア解析方法およびソフトウェア解析プログラム |
CN108062472A (zh) * | 2016-11-07 | 2018-05-22 | 武汉安天信息技术有限责任公司 | 一种安卓平台下勒索应用的检测方法及系统 |
CN108182362B (zh) * | 2016-12-08 | 2022-01-07 | 武汉安天信息技术有限责任公司 | 一种多dex文件分析方法及系统 |
CN107563196A (zh) * | 2017-08-16 | 2018-01-09 | 深圳天珑无线科技有限公司 | 恶意应用程序的过滤方法、设备及可读存储介质 |
CN109639884A (zh) * | 2018-11-21 | 2019-04-16 | 惠州Tcl移动通信有限公司 | 一种基于安卓监控敏感权限的方法、存储介质及终端设备 |
CN110889115A (zh) * | 2019-11-07 | 2020-03-17 | 国家计算机网络与信息安全管理中心 | 恶意推送行为检测方法及装置 |
CN111143831A (zh) * | 2019-12-24 | 2020-05-12 | 平安普惠企业管理有限公司 | 安装包隐私权限扫描方法、装置及计算机设备 |
CN111222122A (zh) * | 2019-12-31 | 2020-06-02 | 航天信息股份有限公司 | 应用权限管理方法、装置及嵌入式设备 |
CN112612479A (zh) * | 2020-12-28 | 2021-04-06 | 厦门市美亚柏科信息股份有限公司 | 一种基于安卓设备的apk静态分析方法和设备 |
CN113127367B (zh) * | 2021-04-29 | 2024-01-12 | 东北大学 | Android动态权限申请的缺陷检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102638617B (zh) * | 2012-03-30 | 2013-12-18 | 中国科学技术大学苏州研究院 | 用于安卓手机的基于入侵检测的主动响应系统 |
-
2012
- 2012-08-22 CN CN201210301154.5A patent/CN102867143B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN102867143A (zh) | 2013-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102867143B (zh) | 一种恶意应用程序的快速过滤方法 | |
US10915659B2 (en) | Privacy detection of a mobile application program | |
US9787681B2 (en) | Systems and methods for enforcing access control policies on privileged accesses for mobile devices | |
CN112685737A (zh) | 一种app的检测方法、装置、设备及存储介质 | |
Zhongyang et al. | DroidAlarm: an all-sided static analysis tool for Android privilege-escalation malware | |
US20140245448A1 (en) | Apparatus and method for analyzing permission of application for mobile devices and detecting risk | |
JP2015508540A (ja) | モバイルコンピューティングにおけるセキュリティを強化するためのシステムおよび方法 | |
CN104834862A (zh) | 一种安卓权限提升攻击的全面静态分析系统 | |
CN102340398A (zh) | 安全策略设置、确定方法、应用程序执行操作方法及装置 | |
CN105528553A (zh) | 一种数据安全共享的方法、装置和终端 | |
Jeong et al. | A kernel-based monitoring approach for analyzing malicious behavior on android | |
Tang et al. | {iOS}, your {OS}, everybody's {OS}: Vetting and analyzing network services of {iOS} applications | |
CN104036194A (zh) | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 | |
Lim et al. | Structural analysis of packing schemes for extracting hidden codes in mobile malware | |
CN109818972B (zh) | 一种工业控制系统信息安全管理方法、装置及电子设备 | |
CN113282628A (zh) | 大数据平台访问方法、装置及大数据平台、电子设备 | |
Jogsan | A survey on permission based malware detection in android applications | |
CN111159712B (zh) | 检测方法、设备及存储介质 | |
CN107766061A (zh) | 一种安卓应用程序的安装方法和安装系统 | |
CN109933990B (zh) | 基于多模式匹配的安全漏洞发现方法、装置及电子设备 | |
CN109714371B (zh) | 一种工控网络安全检测系统 | |
CN116249980A (zh) | 通过异构加密的软件访问 | |
Marengereke et al. | Cloud based security solution for android smartphones | |
CN110737911A (zh) | 数据处理方法、装置和计算机可读存储介质 | |
Jung et al. | A study of android malware detection techniques in virtual environment |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151021 Termination date: 20210822 |