CN104036194B - 一种应用程序中泄露隐私数据的漏洞检测方法及装置 - Google Patents
一种应用程序中泄露隐私数据的漏洞检测方法及装置 Download PDFInfo
- Publication number
- CN104036194B CN104036194B CN201410210311.0A CN201410210311A CN104036194B CN 104036194 B CN104036194 B CN 104036194B CN 201410210311 A CN201410210311 A CN 201410210311A CN 104036194 B CN104036194 B CN 104036194B
- Authority
- CN
- China
- Prior art keywords
- application program
- detected
- file
- shared
- private data
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种应用程序中泄露隐私数据的漏洞检测方法,包括:获取待检测应用程序中Content provider组件的共享标志位和安全级别;若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件;获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。本发明实施例还公开了一种应用程序中泄露隐私数据的漏洞检测装置。采用本发明实施例,可自动检测待检测应用程序是否存在泄露隐私数据的漏洞。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种应用程序中泄露隐私数据的漏洞检测方法及装置。
背景技术
通常,应用程序的私有文件是不允许除应用程序本身外的其它任何文件或其它任何应用程序进行访问的,因此,当应用程序需要将某个私有文件共享给其它应用程序时,常采用的方法是给应用程序的文件添加Content provider组件,然后通过配置Contentprovider组件的共享标志位和安全级别,给其它应用程序或文件设置不同的访问权限。
例如,若Content provider组件配置成共享数据的情况,则安全级别为“signatureOrSystem”时,说明只有系统应用程序和与本应用程序具有相同的数字签名的应用程序才可以访问该共享文件;若安全级别为“signature”,说明只有与本应用程序具有相同的数字签名的应用程序才可以访问该共享文件;若安全级别为“dangerous”,说明系统将要求用户输入相关信息后,才会授予访问该共享文件的权限;若安全级别为“normal”,说明其它任何应用程序都可以访问该共享文件。
然而,越来越多的应用程序在使用Content provider组件时存在问题,这些问题会泄漏用户的非共享数据,即非共享数据也可以被其它应用程序所访问,从而导致用户的隐私数据被泄露。因此,检测设置有Content provider组件的应用程序中是否存在泄露隐私数据的漏洞显得尤为重要。目前,常采用的解决方法是对待检测应用程序的安装文件进行反编译,然后在反编译后的原文件中逐个分析待检测应用程序的共享数据是否设置了权限,以及确认所设置的访问权限是否恰当。然而,该方法没有检测待检测应用程序中是否因设置了共享数据而存在泄露隐私数据的漏洞。
发明内容
本发明实施例提供一种应用程序中泄露隐私数据的漏洞检测方法及装置,可自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
本发明实施例提供一种应用程序中泄露隐私数据的漏洞检测方法,包括:
获取待检测应用程序中Content provider组件的共享标志位和安全级别;
若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件;
获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
相应地,本发明实施例还提供了一种应用程序中泄露隐私数据的漏洞检测装置,包括:
获取模块,用于获取待检测应用程序中Content provider组件的共享标志位和安全级别;
指示模块,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件;
第一确定模块,用于获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
实施本发明实施例,具有如下有益效果:
通过获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测方法的流程示意图;
图2是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测方法的另一流程示意图;
图3是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测方法的又一流程示意图;
图4是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测装置的结构示意图;
图5是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测装置的另一结构示意图;
图6是图5中提供的其中一种指示模块的结构示意图;
图7是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测装置的又一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中,待检测应用程序可以是基于Android、塞班或苹果IOS等手机操作系统的应用程序,也可以是基于计算机操作系统的应用程序,本发明实施例对此不作限制。为方便说明,本发明实施例以基于Android手机操作系统的应用程序为例。
请参见图1,图1是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测方法的流程示意图,在本发明实施例中,该方法包括以下步骤。
S101:获取待检测应用程序中Content provider组件的共享标志位和安全级别。
在本发明实施例中,检测待检测应用程序是否存在泄露隐私数据的漏洞,需借助一个代理应用程序来完成,其中,代理应用程序是预先编写好的一个应用程序,该代理应用程序可以通过访问待检测应用程序共享给它的共享文件后,根据该共享文件来获取待检测应用程序中的非共享数据的保存路径,并自动去访问这些非共享数据,若访问成功,将访问记录保存在log日志信息中。
Content provider组件为存储和查询数据提供统一的接口,实现应用程序间的数据共享。Android系统内一些常见的数据,如音乐、视频、图像等都内置了一系列的Contentprovider。每一个Content provider为其管理的多个数据集分配一个URI(UniformResource Identifier,通用资源标识符),这个URI对外提供了一个能够唯一标识自己数据集的字符串。这样别的应用程序就可以通过这个URI来访问这个数据集。开发者在所开发的应用程序中声明Content provider组件时,可以通过配置Content provider组件中的export参数值来设定该组件所对应的数据是不是要进行共享。一般情况下,声明Contentprovider组件时,Content provider组件中的export参数值默认设置为True,即默认情况下声明Content provider组件时说明该组件所对应的数据要进行共享,若不想共享该数据,可以将export参数值修改为False。可以理解的,在实际操作过程中,可以用1表示共享,用0表示不共享,为方便说明,本发明实施例以export参数值用True和False来分别表示共享和不共享为例。若export参数值为True,说明要共享数据,因此,开发者会进一步配置Content provider组件的安全级别(Protection Level)来设置访问权限,该安全级别可以设置为“signatureOrSystem”、“signature”、“dangerous”和“normal”中的其中一个属性。若安全级别配置为“signatureOrSystem”,说明只有系统应用程序和与本应用程序具有相同的数字签名的应用程序才可以访问该共享文件;若安全级别配置为“signature”,说明只有与本应用程序具有相同的数字签名的应用程序才可以访问该共享文件;若安全级别配置为“dangerous”,说明系统将要求用户输入相关信息后,才会授予访问该共享文件的权限;若安全级别配置为“normal”,说明其它任何应用程序都可以访问该共享文件,其中,“signatureOrSystem”和“signature”的安全级别高。默认情况下,Content provider组件会自动配置该安全级别为“normal”,即其它任何应用程序都可以访问该共享文件。因此,开发者会根据实际需要来对该安全级别进行重新设置,合理保护应用程序的隐私数据。可以理解的,在本发明实施例中,所述共享标志位即为Content provider组件中的export参数值,用于标记Content provider组件所对应的数据是否进行共享。
作为一种优选的实施方式,在计算机中安装手机模拟器,其中,手机模拟器基于手机的操作系统可以分为基于Android系统的手机模拟器、基于塞班系统的手机模拟器和基于苹果系统的手机模拟器等,在本发明实施例中,手机模拟器的具体安装类型应根据待检测应用程序的类别来选择,本发明实施例对此不作任何限制。例如:若待检测应用程序的安装包为apk文件,则在计算机中安装基于Android系统的手机模拟器。将待检测应用程序和代理应用程序的安装包文件导入装有手机模拟器的计算机中,同时,在手机模拟器中安装待检测应用程序和代理应用程序,这样,对检测待检测应用程序是否存在泄露隐私数据的漏洞的准备工作已做好。
具体的,对待检测应用程序的安装包进行解包处理,其中,解包即压包的反过程,将压包文件还原成原来的初始文件,扫描待检测应用程序包括的所有文件,获取待检测应用程序的配置文件,其中,所述配置文件中记录有待检测应用程序的Content provider组件,进一步的,获取待检测应用程序中Content provider组件的共享标志位和安全级别。
S102:若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件。
为方便说明,本发明实施例以export参数值用True和False来分别表示共享和不共享为例,因此设置预设值为True,同时,设置预设的安全级别为“dangerous”和“normal”,因为“dangerous”和“normal”的安全级别低,其它任何应用程序都有可能访问到待检测应用程序的共享数据。
具体的,若获取到的共享标志位为预设值,且获取到的安全级别为预设的安全级别,即共享标志位为True,安全级别为“dangerous”或“normal”的情况,则说明待检测应用程序可能存在泄露隐私数据的风险。因此,根据Content provider组件构造第一通用资源标识符URI,该第一通用资源标识符指向待检测应用程序共享给代理应用程序的共享文件,通过adb调试工具给代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的操作指令,指示代理应用程序访问第一通用资源标识符所指向的共享文件。与此同时,代理应用程序接收到访问所述第一通用资源标识符所指向的共享文件的操作指令后,代理应用程序根据所述第一通用资源标识符构造第二通用资源标识符,其中,第二通用资源标识符指向待检测应用程序未进行共享的文件,并自动去访问第二通用资源标识符URI所指向的非共享文件。
相应的,若获取到的共享标志位为预设值,且获取到的安全级别不是预设的安全级别,即共享标志位为True,安全级别为“signatureOrSystem”或“signature”的情况,则可直接确定待检测应用程序不存在泄露隐私数据的漏洞。同样的,若获取到的共享标志位不是预设值,即共享标志位为False,说明虽然声明了Content provider组件但并不对待检测应用程序的数据进行共享,因此,也可直接确定待检测应用程序不存在泄露隐私数据的漏洞。
S103:获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
由于代理应用程序在访问文件时,若访问成功会打印log日志信息,因此,根据该日志信息获取代理应用程序访问非共享文件的访问结果,若访问成功,则说明该代理应用程序可以访问待检测应用程序未进行共享的隐私数据,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
在本发明实施例所描述的应用程序中泄露隐私数据的漏洞检测方法中,获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
请参见图2,图2是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测方法的另一流程示意图,在本发明实施例中,该方法包括以下步骤。
S201:将待检测应用程序的安装包文件导入装有手机模拟器的计算机中。
S202:在所述手机模拟器中安装所述待检测应用程序和代理应用程序。
S203:获取待检测应用程序中Content provider组件的共享标志位和安全级别。
若获取到的共享标志位为预设值,且获取到的安全级别不是预设的安全级别,或获取到的共享标志位不是预设值,则直接确定待检测应用程序不存在泄露隐私数据的漏洞。若获取到的共享标志位为预设值,且获取到的安全级别为预设的安全级别,执行S204。
S204:检测所述待检测应用程序是否具有访问文件的功能。
具体的,对所述待检测应用程序进行解包处理,从解包处理后的原始文件中获取所述待检测应用程序的配置文件,所述配置文件中记录有所述待检测应用程序是否具有访问文件的功能。若是,执行S206;若否,执行S205。
S205:确定所述待检测应用程序不存在泄露隐私数据的漏洞。
S206:指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件。
具体的,根据Content provider组件构造第一通用资源标识符URI,该第一通用资源标识符指向待检测应用程序共享给代理应用程序的共享文件。通过adb调试工具给代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的adb命令,指示代理应用程序访问第一通用资源标识符所指向的共享文件。与此同时,代理应用程序接收到访问所述第一通用资源标识符所指向的共享文件的操作指令后,代理应用程序根据所述第一通用资源标识符构造第二通用资源标识符,其中,第二通用资源标识符指向待检测应用程序未进行共享的文件,并自动去访问第二通用资源标识符URI所指向的非共享文件,若访问成功,将访问记录保存在log日志信息中。
S207:获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
具体的,获取代理应用程序记录访问文件的日志信息,根据该日志信息获取代理应用程序访问非共享文件的访问结果,若访问成功,则说明该代理应用程序可以访问待检测应用程序未进行共享的隐私数据,则确定所述待检测应用程序存在泄露隐私数据的漏洞;若日志信息中没有记录访问非共享文件的相关数据,则访问失败,确定所述待检测应用程序不存在泄露隐私数据的漏洞。
S208:输出所述待检测应用程序的检测信息,所述检测信息包括检测结果和检测时间。
具体的,待确定完待检测应用程序是否存在泄露隐私数据的漏洞后,将检测信息进行输出,所述检测信息包括检测结果和检测时间。例如:假设检测时间为2000年1月1日13:27,若待检测应用程序不存在泄露隐私数据的漏洞,可输出:该应用程序不存在泄露隐私数据的漏洞,检测时间为2000年1月1日13:27;若待检测应用程序存在泄露隐私数据的漏洞,可输出:该应用程序存在泄露隐私数据的漏洞,检测时间为2000年1月1日13:27。
优选的,待确定完待检测应用程序是否存在泄露隐私数据的漏洞后,保存该待检测应用程序的检测信息,并标记该待检测应用程序已检测,方便下次检测时直接根据已保存的信息获取该应用程序的检测信息,减少重复操作。具体的,在系统中给待检测应用程序创建一个标记文件,其中,用“1”标识所述待检测应用程序已完成泄露隐私数据的漏洞的检测,用“0”标识所述待检测应用程序未进行泄露隐私数据的漏洞的检测,将该状态标志位默认置为“0”,当确定完待检测应用程序是否存在泄露隐私数据的漏洞后,再将该状态标志位置为“1”,并将检测结果保存在指定的保存路径中。当下一次对该待检测应用程序进行泄露隐私数据的漏洞的检测时,首先去获取系统中是否有该待检测应用程序的标记文件,若有,查看状态标志位是否为1,若状态标志位为“1”,直接去指定的存储单元中获取该待检测应用程序的检测结果;若系统中没有该待检测应用程序的标记文件,为该待检测应用程序创建一个标记文件,将状态标志位默认置为“0”,执行S201,待确定完待检测应用程序是否存在泄露隐私数据的漏洞后,将状态标志位更新为1并保存检测结果;若系统中有该待检测应用程序的标记文件,但状态标志位为“0”,执行S201,待确定完待检测应用程序是否存在泄露隐私数据的漏洞后,将状态标志位更新为1并保存检测结果。
在本发明实施例所描述的应用程序中泄露隐私数据的漏洞检测方法中,获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
请参见图3,图3是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测方法的又一流程示意图,在本发明实施例中,该方法包括以下步骤。
S301:获取待检测应用程序中Content provider组件的共享标志位和安全级别。
S302:若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件。
S303:获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
S304:记录所述待检测应用程序的特征信息,并将所述特征信息和所述检测结果上传至服务器。
优选的,所述特征信息为待检测应用程序的包名和/或MD5值。
具体的,终端在使用该待检测应用程序的过程中,通过具体的检测软件获取到该应用程序存在泄露隐私数据的漏洞,该终端可以获取该应用程序的特征信息,例如:应用程序的包名和/或MD5值,将特征信息和检测结果上传至服务器,以使服务器获知该特征信息所指定的应用程序存在泄露隐私数据的漏洞后,提示开发人员针对该漏洞对应用程序进行修改。开发人员对该应用程序的泄露隐私数据的漏洞进行修复后,可重新发布升级包文件,服务器可基于消息推送的机制使终端下载该升级包文件,将下载过来的升级包文件替换掉应用程序中对应的原始文件,从而使终端对存在泄露隐私数据的漏洞的应用程序进行升级,修复该漏洞。
S305:提示用户所述待检测应用程序存在所述泄露隐私数据的漏洞。
S306:修复所述待检测应用程序中存在的泄露隐私数据的漏洞。
优选的,若接收到修复该泄露隐私数据的漏洞的确认请求,所在终端可以下载修复所述待检测应用程序中的泄露隐私数据的漏洞的升级包文件,将所述升级包文件替换掉所述待检测应用程序中对应的原始文件,完成漏洞修复。
在本发明实施例所描述的应用程序中泄露隐私数据的漏洞检测方法中,获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
请参见图4,图4是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测装置的结构示意图,在本发明实施例中,该装置包括:获取模块401、指示模块402和第一确定模块403。
获取模块401,用于获取待检测应用程序中Content provider组件的共享标志位和安全级别。
指示模块402,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件。
第一确定模块403,用于获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
在本发明实施例所描述的应用程序中泄露隐私数据的漏洞检测装置中,获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
请参见图5,图5是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测装置的另一结构示意图,在本发明实施例中,该装置包括:获取模块501、指示模块502、第一确定模块503、程序导入模块504、程序安装模块505、第二确定模块506和输出模块507。
获取模块501,用于获取待检测应用程序中Content provider组件的共享标志位和安全级别。
指示模块502,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件。
第一确定模块503,用于获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
程序导入模块504,用于将所述待检测应用程序的安装包文件导入装有手机模拟器的计算机中。
程序安装模块505,用于在所述手机模拟器中安装所述待检测应用程序和所述代理应用程序。
第二确定模块506,用于若所述共享标志位为所述预设值,且所述安全级别不是所述预设的安全级别,或所述共享标志位不是所述预设值,则确定所述待检测应用程序不存在泄露隐私数据的漏洞。
输出模块507,用于输出所述待检测应用程序的检测信息,所述检测信息包括检测结果和检测时间。
作为一种优选的实施方式,指示模块502包括:检测单元5021、执行单元5022、确定单元5023、构造单元5024和发送单元5025。如图6所示,图6是图5中提供的其中一种指示模块的结构示意图。
检测单元5021,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,检测所述待检测应用程序是否具有访问文件的功能。
执行单元5022,用于若是,执行所述指示代理应用程序访问第一通用资源标识符所指向的共享文件的步骤。
确定单元5023,用于若否,则确定所述待检测应用程序不存在泄露隐私数据的漏洞。
构造单元5024,用于根据Content provider组件构造第一通用资源标识符URI,所述第一通用资源标识符URI指向所述待检测应用程序共享给所述代理应用程序的文件。
发送单元5025,用于向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的操作指令。
作为另一种优选的实施方式,检测单元5021还用于对所述待检测应用程序进行解包处理,获取所述待检测应用程序的配置文件,所述配置文件记录有所述待检测应用程序是否具有访问文件的功能。发送单元5025还用于通过adb调试工具向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的adb命令。
在本发明实施例所描述的应用程序中泄露隐私数据的漏洞检测装置中,获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
请参见图7,图7是本发明实施例提供的一种应用程序中泄露隐私数据的漏洞检测装置的又一结构示意图,在本发明实施例中,该装置包括:获取模块701、指示模块702、第一确定模块703、上传模块704、提示模块705和修复模块706。
获取模块701,用于获取待检测应用程序中Content provider组件的共享标志位和安全级别。
指示模块702,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件。
第一确定模块703,用于获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
上传模块704,用于记录所述待检测应用程序的特征信息,并将所述特征信息和所述检测结果上传至服务器。
优选的,所述特征信息为待检测应用程序的包名和/或MD5值。
提示模块705,用于提示用户所述待检测应用程序存在所述泄露隐私数据的漏洞。
修复模块706,用于修复所述待检测应用程序中存在的泄露隐私数据的漏洞。优选的,修复模块706还用于下载所述待检测应用程序的升级包文件,将所述升级包文件替换掉所述待检测应用程序中对应的原始文件。
在本发明实施例所描述的应用程序中泄露隐私数据的漏洞检测装置中,获取待检测应用程序中Content provider组件的共享标志位和安全级别,若共享标志位为预设值,且安全级别为预设的安全级别,构造第一通用资源标识符,并指示代理应用程序访问第一通用资源标识符所指向的共享文件,同时,代理应用程序根据第一通用资源标识符构造第二通用资源标识符,并去访问第二通用资源标识符所指向的非共享文件,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。采用本发明实施例,可以自动检测待检测应用程序是否存在泄露隐私数据的漏洞,给开发者提供指导作用。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例装置中的模块或单元可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (26)
1.一种应用程序中泄露隐私数据的漏洞检测方法,其特征在于,包括:
获取待检测应用程序中Content provider组件的共享标志位和安全级别;
若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件;
获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
2.如权利要求1所述的方法,其特征在于,所述获取待检测应用程序中Contentprovider组件的共享标志位和安全级别之前,所述方法还包括:
将所述待检测应用程序的安装包文件导入装有手机模拟器的计算机中;
在所述手机模拟器中安装所述待检测应用程序和所述代理应用程序。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
若所述共享标志位为所述预设值,且所述安全级别不是所述预设的安全级别,或所述共享标志位不是所述预设值,则确定所述待检测应用程序不存在泄露隐私数据的漏洞。
4.如权利要求3所述的方法,其特征在于,所述若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,包括:
若所述共享标志位为预设值,且所述安全级别为预设的安全级别,检测所述待检测应用程序是否具有访问文件的功能;
若是,执行所述指示代理应用程序访问第一通用资源标识符所指向的共享文件的步骤;
若否,则确定所述待检测应用程序不存在泄露隐私数据的漏洞。
5.如权利要求4所述的方法,其特征在于,所述检测所述待检测应用程序是否具有访问文件的功能,包括:
对所述待检测应用程序进行解包处理,获取所述待检测应用程序的配置文件,所述配置文件记录有所述待检测应用程序是否具有访问文件的功能。
6.如权利要求1-5任一项所述的方法,其特征在于,所述指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,包括:
根据Content provider组件构造第一通用资源标识符URI,所述第一通用资源标识符URI指向所述待检测应用程序共享给所述代理应用程序的文件;
向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的操作指令。
7.如权利要求6所述的方法,其特征在于,所述向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的操作指令,包括:
通过adb调试工具向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的adb命令。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
输出所述待检测应用程序的检测信息,所述检测信息包括检测结果和检测时间。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
记录所述待检测应用程序的特征信息,并将所述特征信息和所述检测结果上传至服务器。
10.如权利要求9所述的方法,其特征在于,所述特征信息为所述待检测应用程序的包名和/或MD5值。
11.如权利要求1所述的方法,其特征在于,所述方法还包括:
提示用户所述待检测应用程序存在所述泄露隐私数据的漏洞。
12.如权利要求1或11所述的方法,其特征在于,所述方法还包括:
修复所述待检测应用程序中存在的泄露隐私数据的漏洞。
13.如权利要求12所述的方法,其特征在于,所述修复所述待检测应用程序中存在的泄露隐私数据的漏洞,包括:
下载所述待检测应用程序的升级包文件,将所述升级包文件替换掉所述待检测应用程序中对应的原始文件。
14.一种应用程序中泄露隐私数据的漏洞检测装置,其特征在于,包括:
获取模块,用于获取待检测应用程序中Content provider组件的共享标志位和安全级别;
指示模块,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,指示代理应用程序访问第一通用资源标识符URI所指向的共享文件,所述共享文件是指所述待检测应用程序共享给所述代理应用程序的文件,以使所述代理应用程序访问第二通用资源标识符URI所指向的非共享文件,所述非共享文件是指所述待检测应用程序未进行共享的文件;
第一确定模块,用于获取所述代理应用程序访问所述非共享文件的访问结果,若访问成功,则确定所述待检测应用程序存在泄露隐私数据的漏洞。
15.如权利要求14所述的装置,其特征在于,所述装置还包括:
程序导入模块,用于将所述待检测应用程序的安装包文件导入装有手机模拟器的计算机中;
程序安装模块,用于在所述手机模拟器中安装所述待检测应用程序和所述代理应用程序。
16.如权利要求15所述的装置,其特征在于,所述装置还包括:
第二确定模块,用于若所述共享标志位为所述预设值,且所述安全级别不是所述预设的安全级别,或所述共享标志位不是所述预设值,则确定所述待检测应用程序不存在泄露隐私数据的漏洞。
17.如权利要求16所述的装置,其特征在于,所述指示模块包括:
检测单元,用于若所述共享标志位为预设值,且所述安全级别为预设的安全级别,检测所述待检测应用程序是否具有访问文件的功能;
执行单元,用于若是,执行所述指示代理应用程序访问第一通用资源标识符所指向的共享文件的步骤;
确定单元,用于若否,则确定所述待检测应用程序不存在泄露隐私数据的漏洞。
18.如权利要求17所述的装置,其特征在于,所述检测单元还用于
对所述待检测应用程序进行解包处理,获取所述待检测应用程序的配置文件,所述配置文件记录有所述待检测应用程序是否具有访问文件的功能。
19.如权利要求14-18任一项所述的装置,其特征在于,所述指示模块还包括:
构造单元,用于根据Content provider组件构造第一通用资源标识符URI,所述第一通用资源标识符URI指向所述待检测应用程序共享给所述代理应用程序的文件;
发送单元,用于向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的操作指令。
20.如权利要求19所述的装置,其特征在于,所述发送单元还用于
通过adb调试工具向所述代理应用程序发送包括访问所述第一通用资源标识符所指向的共享文件的adb命令。
21.如权利要求20所述的装置,其特征在于,所述装置还包括:
输出模块,用于输出所述待检测应用程序的检测信息,所述检测信息包括检测结果和检测时间。
22.如权利要求14所述的装置,其特征在于,所述装置还包括:
上传模块,用于记录所述待检测应用程序的特征信息,并将所述特征信息和所述检测结果上传至服务器。
23.如权利要求22所述的装置,其特征在于,所述特征信息为所述待检测应用程序的包名和/或MD5值。
24.如权利要求14所述的装置,其特征在于,所述装置还包括:
提示模块,用于提示用户所述待检测应用程序存在所述泄露隐私数据的漏洞。
25.如权利要求14或24所述的装置,其特征在于,所述装置还包括:
修复模块,用于修复所述待检测应用程序中存在的泄露隐私数据的漏洞。
26.如权利要求25所述的装置,其特征在于,所述修复模块还用于下载所述待检测应用程序的升级包文件,将所述升级包文件替换掉所述待检测应用程序中对应的原始文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410210311.0A CN104036194B (zh) | 2014-05-16 | 2014-05-16 | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410210311.0A CN104036194B (zh) | 2014-05-16 | 2014-05-16 | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104036194A CN104036194A (zh) | 2014-09-10 |
CN104036194B true CN104036194B (zh) | 2017-02-15 |
Family
ID=51466962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410210311.0A Active CN104036194B (zh) | 2014-05-16 | 2014-05-16 | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104036194B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743730B (zh) * | 2014-12-12 | 2019-01-29 | 阿里巴巴集团控股有限公司 | 为移动终端的网页服务提供实时监控的方法及其系统 |
CN104484608A (zh) * | 2014-12-16 | 2015-04-01 | 北京奇虎科技有限公司 | 一种应用程序的消息处理方法和装置 |
CN107944272A (zh) * | 2017-12-12 | 2018-04-20 | 福建中金在线信息科技有限公司 | Apk安全测试的方法、装置、电子设备及可读存储介质 |
CN109558707B (zh) * | 2018-11-16 | 2021-05-07 | 北京梆梆安全科技有限公司 | 一种加密函数安全等级的检测方法及装置、移动设备 |
WO2020210989A1 (zh) * | 2019-04-16 | 2020-10-22 | 深圳市欢太科技有限公司 | 隐私合规检测方法及相关产品 |
CN113132760B (zh) | 2019-12-31 | 2022-12-16 | 中移(苏州)软件技术有限公司 | 视频数据的获取方法、装置、电子设备及存储介质 |
CN111859371B (zh) * | 2020-07-22 | 2022-11-08 | 广州大学 | 一种应用程序的隐私风险评估方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411690A (zh) * | 2011-12-31 | 2012-04-11 | 中国信息安全测评中心 | 一种Android平台下应用软件的安全漏洞挖掘方法和装置 |
CN102737190A (zh) * | 2012-07-04 | 2012-10-17 | 复旦大学 | 基于静态分析的Android应用日志中信息泄漏隐患的检测方法 |
CN102779257A (zh) * | 2012-06-28 | 2012-11-14 | 奇智软件(北京)有限公司 | 一种Android应用程序的安全检测方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347386B2 (en) * | 2008-10-21 | 2013-01-01 | Lookout, Inc. | System and method for server-coupled malware prevention |
-
2014
- 2014-05-16 CN CN201410210311.0A patent/CN104036194B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102411690A (zh) * | 2011-12-31 | 2012-04-11 | 中国信息安全测评中心 | 一种Android平台下应用软件的安全漏洞挖掘方法和装置 |
CN102779257A (zh) * | 2012-06-28 | 2012-11-14 | 奇智软件(北京)有限公司 | 一种Android应用程序的安全检测方法及系统 |
CN102737190A (zh) * | 2012-07-04 | 2012-10-17 | 复旦大学 | 基于静态分析的Android应用日志中信息泄漏隐患的检测方法 |
Non-Patent Citations (1)
Title |
---|
《Detecting Passive Content Leaks and Pollution in Android Applications》;Yajin zhou 等;《In Proceedings of the 20th Network and Distributed System Security Symposium》;20130228;第1-16页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104036194A (zh) | 2014-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104036194B (zh) | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 | |
US8566937B2 (en) | Information processing apparatus and method for preventing unauthorized cooperation of applications | |
KR101558715B1 (ko) | 서버 결합된 멀웨어 방지를 위한 시스템 및 방법 | |
Barrera et al. | Secure software installation on smartphones | |
EP2973147B1 (en) | Policy-based secure web boot | |
US11086983B2 (en) | System and method for authenticating safe software | |
JP2015092374A5 (zh) | ||
CN103761472A (zh) | 基于智能终端设备的应用程序访问方法与装置 | |
CN104683409A (zh) | 终端间应用共享的方法和终端 | |
EP2993603B1 (en) | Permission determining method and device for application program | |
CN103839000A (zh) | 基于智能终端设备安装应用程序的方法与装置 | |
CN106462429A (zh) | 出于安全的原因对各种软件模块的多个功能等效的变型的动态修补 | |
CN103870306A (zh) | 基于智能终端设备安装应用程序的方法与装置 | |
CN104517054A (zh) | 一种检测恶意apk的方法、装置、客户端和服务器 | |
Calciati et al. | Automatically granted permissions in Android apps: An empirical study on their prevalence and on the potential threats for privacy | |
JP2008146479A (ja) | ソフトウェア部品、ソフトウェア部品管理方法、及びソフトウェア部品管理システム | |
CN104751049A (zh) | 一种应用程序安装方法及移动终端 | |
CN104036193B (zh) | 一种应用程序的本地跨域漏洞检测方法及装置 | |
JP2018509692A (ja) | 選択的なブロックベースの完全性保護技法 | |
JP2012008732A (ja) | インストール制御装置およびプログラム | |
CN106709281B (zh) | 补丁发放和获取方法、装置 | |
CN109818972B (zh) | 一种工业控制系统信息安全管理方法、装置及电子设备 | |
CN103365672B (zh) | 一种处理应用程序的描述信息的方法和系统 | |
Jeter et al. | Identifying and quantifying the android device users' security risk exposure | |
CN117055501A (zh) | 可信dcs上位机系统的部署方法、系统、设备及存储介质 |
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 |