CN111353143A - 敏感权限检测方法、装置及存储介质 - Google Patents
敏感权限检测方法、装置及存储介质 Download PDFInfo
- Publication number
- CN111353143A CN111353143A CN202010125340.2A CN202010125340A CN111353143A CN 111353143 A CN111353143 A CN 111353143A CN 202010125340 A CN202010125340 A CN 202010125340A CN 111353143 A CN111353143 A CN 111353143A
- Authority
- CN
- China
- Prior art keywords
- application
- detected
- sensitive
- permission
- detection result
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 91
- 238000009434 installation Methods 0.000 claims abstract description 58
- 238000000034 method Methods 0.000 claims abstract description 41
- 230000035945 sensitivity Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种敏感权限检测方法、装置及存储介质,属于互联网技术领域。在本申请实施例中,通过对第一应用安装包中的第一可执行文件进行反编译得到待检测应用的应用代码,进而根据该应用代码和第一信息描述文件来确定待检测应用所申请的每个敏感权限的检测结果,整个过程无需人工参与,且不必依赖于应用的源代码,省时省力且可以更好的保证检测结果的准确度。
Description
技术领域
本申请涉及互联网技术领域,特别涉及一种敏感权限检测方法、装置及存储介质。
背景技术
当前,终端中可以安装有各种应用。应用在运行时,可能会获取终端中与用户隐私有关的信息,或者是调用终端中与用户隐私和个人信息相关的一些功能。在这种情况下,应用需要向用户申请获取信息或者是调用功能的权限。例如,应用可能会读取通讯录,此时,则需要向用户申请读取通讯录的权限。其中,可以将上述与用户隐私和个人信息相关的权限称为敏感权限。为了避免应用滥用敏感权限,在应用上线前,可以检测该应用对敏感权限的申请是否合理。
相关技术中,在应用上线之前,应用的开发人员可以根据应用的源代码确定应用所要申请的敏感权限,之后,开发人员可以在源代码中查找每个敏感权限对应的系统API(Application Programming Interface,应用程序接口),如果在源代码中查找到敏感权限对应的API,则认为该敏感权限的申请合理。
由此可见,相关技术中需要依赖应用的源代码,由开发人员人工来筛查敏感权限的申请是否合理,耗时耗力,且难以保证准确度。
发明内容
本申请实施例提供了一种敏感权限检测方法、装置及存储介质,可以更为省时省力的检测敏感权限的申请是否合理,且可以保证检测的准确度。所述技术方案如下:
一方面,提供了一种敏感权限检测方法,所述方法包括:
获取待检测应用的第一应用安装包,所述第一应用安装包为第一操作系统对应的所述待检测应用的安装包,所述第一应用安装包包括第一可执行文件和第一信息描述文件;
对所述第一可执行文件进行反编译,得到所述待检测应用的应用代码;
根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的每个敏感权限的检测结果,所述检测结果用于指示所述敏感权限的申请是否合理。
另一方面,提供了一种敏感权限检测装置,所述装置包括:
获取模块,用于获取待检测应用的第一应用安装包,所述第一应用安装包为第一操作系统对应的所述待检测应用的安装包,所述第一应用安装包包括第一可执行文件和第一信息描述文件;
反编译模块,用于对所述第一可执行文件进行反编译,得到所述待检测应用的应用代码;
确定模块,用于根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的每个敏感权限的检测结果,所述检测结果用于指示所述敏感权限的申请是否合理。
另一方面,提供了一种敏感权限检测装置,所述装置包括处理器、通信接口、存储器和通信总线;
其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器用于存放计算机程序;
所述处理器用于执行所述存储器上所存放的程序,以实现前述的敏感权限检测方法的步骤。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现上述的敏感权限检测方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,通过对第一应用安装包中的第一可执行文件进行反编译得到待检测应用的应用代码,进而根据该应用代码和第一信息描述文件来确定待检测应用所申请的每个敏感权限的检测结果,整个过程无需人工参与,且不必依赖于应用的源代码,省时省力且可以更好的保证检测结果的准确度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络系统的系统架构图;
图2是本申请实施例提供的一种敏感权限检测方法的流程图;
图3是本申请实施例提供的另一种敏感权限检测方法的流程图;
图4是本申请实施例提供的另一种敏感权限检测方法的流程图;
图5是本申请实施例提供的一种敏感权限检测装置的结构示意图;
图6是本申请实施例提供的一种用于敏感权限检测的服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例涉及的应用场景进行介绍。
当前,终端中可以安装有各种应用,应用在运行时,可能会获取终端中用户隐私有关的信息,或者是调用终端中与用户隐私和个人信息相关的一些功能。在这种情况下,应用可以向用户申请获取信息或者是调用功能的权限,例如,应用可能需要读取通讯录,此时,则需要向用户申请读取通讯录的权限。或者,应用可能需要读取短信息,此时,则需要向用户申请读取短信息的权限。再例如,应用可能需要调用摄像头,此时,则可以向用户申请调用摄像头的权限。
然而,目前为了防止应用过度采集用户信息,滥用用户信息,应用在上线之前,服务器会检测应用所申请的权限是否合理,以满足采集信息最小必要原则。而本申请实施例提供的敏感权限检测方法即可以用于上述场景中,用于检测应用的敏感权限的申请是否合理。
接下来对本申请实施例所涉及的系统结构进行介绍。
图1是本申请实施例提供的一种网络系统的示意图。如图1所示,该网络系统可以包括网络服务模块101、脚本服务模块102和用户设备103。其中,用户设备103可以与网络服务模块101通信,网络服务模块101可以与脚本服务模块102通信。
其中,用户设备103可以将应用安装包上传至网络服务模块101。网络服务模块101在接收到该应用安装包之后,可以将该应用安装包发送至脚本服务模块102进行解析,并由该脚本服务模块102对该应用安装包中的可执行文件进行反编译,得到应用代码。
之后,脚本服务模块102可以将得到的应用代码发送至网络服务模块101。之后,网络服务模块101可以根据该应用代码,采用本申请实施例提供的方法来检测应用所申请的敏感权限是否合理。
需要说明的是,网络服务模块101和脚本服务模块102可以均为单独的服务器。或者,网络服务模块101和脚本服务模块102可以为一台服务器中的两个功能模块。再或者,网络服务模块101和脚本服务模块102各为一个服务器集群,本申请实施例对此不做限定。
接下来对本申请实施例提供的敏感权限检测方法进行介绍。
图2是本申请实施例提供的一种敏感权限检测方法。该方法可以应用于服务器中,该服务器可以是指集成了上述网络服务模块和脚本服务模块的服务器。如图2所示,该方法包括以下步骤:
步骤201:获取待检测应用的第一应用安装包,第一应用安装包包括第一可执行文件和第一信息描述文件。
在本申请实施例中,用户设备可以将待检测应用的安装包上传至服务器。其中,不同的操作系统对应有不同的安装包。服务器可以接收用户设备上传的待检测应用在各个操作系统下的应用安装包。之后,对于每个应用安装包,服务器均可以采用本申请实施例提供的方法来检测在相应操作系统下该待检测应用所申请的敏感权限是否合理。
接下来,本申请实施例以服务器获取第一应用安装包,以检测在第一操作系统下该待检测应用所申请的敏感权限是否合理为例来对本申请实施例提供的方法进行解释说明。其中,第一应用安装包是指第一操作系统对应的待检测应用的安装包。第一操作系统可以为安卓操作系统,也可以为IOS操作系统。本申请实施例对此不作限定。
需要说明的是,服务器可以对第一应用安装包进行解析,从而得到第一应用安装包中包括的第一可执行文件和第一信息描述文件。其中,第一可执行文件是指包含有应用的源代码的文件,终端设备可以通过运行该可执行文件来安装该应用。示例性地,在安卓操作系统下,第一可执行文件可以为dex文件。
另外,第一信息描述文件是指包含有应用程序的描述信息的文件。其中,第一信息描述文件声明了应用程序需要访问受限API所需的敏感权限以及应用的其他参数等。示例性地,在安卓操作系统下,第一信息描述文件可以为AndroidManifest.xml文件,在IOS操作系统下,第一信息描述文件可以为Info.plist文件。
步骤202:对第一可执行文件进行反编译,得到待检测应用的应用代码。
在对第一应用安装包进行解析,得到第一可执行文件之后,服务器可以对第一可执行文件进行反编译,从而得到待检测应用的应用代码。
由于第一可执行文件中包含有应用的源代码,因此,通过反编译,可以得到该待检测应用的应用代码。其中,该应用代码不同于源代码,包含的信息少于源代码,但是,该应用代码中包含有应用调用系统API的信息。
步骤203:根据待检测应用的应用代码和第一信息描述文件,确定待检测应用所申请的每个敏感权限的检测结果。
在得到待检测应用的应用代码之后,服务器可以根据待检测应用的应用代码和第一信息描述文件,来确定待检测应用所申请的每个敏感权限的检测结果。
其中,服务器可以首先获取第一操作系统下的参考权限列表,该参考权限列表包括多个参考敏感权限;根据第一操作系统的参考权限列表和第一信息描述文件,确定待检测应用在第一操作系统下所申请的多个第一敏感权限;从待检测应用的应用代码中查找每个第一敏感权限对应的系统API,不同的敏感权限对应的系统API不同;根据查找结果确定每个第一敏感权限的检测结果。
需要说明的是,第一操作系统下的参考权限列表中可以包括第一操作系统下的所有敏感权限。示例性地,当前,对于安卓操作系统而言,该参考权限列表中可以包括26项敏感权限,对于IOS操作系统而言,该参考权限列表中可以包括16项敏感权限。
在获取到第一操作系统下的参考权限列表之后,服务器可以解析第一信息描述文件。之后,对于参考权限列表中每个敏感权限,服务器可以从第一信息描述文件中检测是否存在与该敏感权限相匹配的关键字,如果存在,则说明第一信息描述文件声明了该敏感权限,也即,说明该应用中申请了该敏感权限。如果第一信息描述文件中不存在与该敏感权限相匹配的关键字,则说明第一信息描述文件中并未声明该敏感权限,也即,可以确定该应用中并未申请该敏感权限。
通过将参考权限列表中的敏感权限与第一信息描述文件进行一一比对,可以确定得到该应用所申请的所有敏感权限。
在确定出待检测应用在第一操作系统下申请的所有敏感权限之后,服务器可以根据对第一可执行文件进行反编译得到的应用代码,一一检测每个敏感权限的申请是否合理。
其中,服务器中可以存储有敏感权限与API之间的对应关系。在该对应关系中,每个敏感权限对应不同的系统API。待检测应用在运行过程中,如果需要使用一个敏感权限,则可以通过调用该敏感权限对应的系统API来使用该敏感权限,也即,每个敏感权限对应的系统API实际上是用于使用相应敏感权限的功能的接口。
基于此,在本申请实施例中,服务器可以从存储的敏感权限与API之间的对应关系中获取待检测应用所申请的每个敏感权限对应的系统API。之后,对于该待检测应用所申请的每个敏感权限,服务器可以根据获取的敏感权限的系统API,从反编译得到的应用代码中查找是否存在该敏感权限所对应的系统API,进而根据查找结果来确定该敏感权限的申请是否合理。
示例性地,在一种可能的实现方式中,如果服务器根据获取到的敏感权限的系统API,在反编译得到的应用代码中查找到了相同的系统API,则可以说明该待检测应用通过调用系统API使用了该敏感权限,也即,该敏感权限的申请是合理的。此时,服务器可以将该敏感权限的检测结果确定为第二检测结果。该第二检测结果即用于指示该敏感权限的申请合理。
可选地,如果服务器根据获取到的敏感权限的系统API,在反编译得到的应用代码中未能查找到相同的系统API,则可以说明该待检测应用虽然申请了该敏感权限,但是并未使用,也即,该敏感权限的申请并不合理。此时,服务器可以将该敏感权限的检测结果确定为第一检测结果。该第一检测结果即用于指示该敏感权限的申请不合理。
需要说明的是,对于待检测应用所申请的每个敏感权限,服务器均可以通过上述方法来检测相应地敏感权限的系统API是否存在于应用代码中,进而以此来判定相应地敏感权限的申请是否合理。
可选地,在另一种可能的实现方式中,在从应用代码中查找待检测应用所申请的每个敏感权限对应的系统API得到查找结果之后,对于查找到对应的系统API的敏感权限,服务器还可以进一步检测该待检测应用在其他操作系统的安装包中是否也申请了相应的敏感权限,以此来判断这部分敏感权限的申请是否合理。
示例性地,服务器可以获取待检测应用的第二应用安装包,第二应用安装包为第二操作系统对应的待检测应用的应用安装包,第二操作系统与第一操作系统不同,第二应用安装包包括第二信息描述文件;根据第二信息描述文件确定待检测应用在第二操作系统下所申请的多个第二敏感权限;对于查找到对应的系统API的第一目标敏感权限,如果多个第二敏感权限中不存在与第一目标敏感权限相对应的第二敏感权限,则确定第一目标敏感权限的检测结果为第一检测结果,第一检测结果用于指示相应敏感权限的申请不合理。
需要说明的是,第二操作系统与第一操作系统不同,例如,第一操作系统可以为安卓操作系统,第二操作系统则可以为IOS操作系统。或者,第一操作系统为IOS操作系统,则第二操作系统可以为安卓操作系统。第二应用安装包中同样包括可执行文件和信息描述文件。
在本申请实施例中,服务器可以获取第二操作系统下的参考权限列表,之后,参考前述根据第一操作系统下的参考权限列表确定第一操作系统下待检测应用所申请的敏感权限的方法,根据第二操作系统下的参考权限列表和第二信息描述文件,来确定第二操作系统下该待检测应用所申请的多个第二敏感权限。
需要说明的是,服务器中可以存储有不同的操作系统下用于实现同种功能的敏感权限的对应关系。示例性地,参见表1,其中,对于调用摄像头,在安卓操作系统中,用于表征该敏感权限的关键字可以为“CAMERA”,而在IOS操作系统中,用于表征该敏感权限的关键字可以为“NSCameraUsageDescription”。对于读取日历,在安卓操作系统中,用于表征该敏感权限的关键字可以为“READ_CALENDAR”,而在IOS操作系统中,则可以为“NSCalendarsUsageDescription”。值得注意的是,表1中仅是示例性的给出了几种敏感权限的对应的关系,并不构成对本申请的限定。
表1不同操作系统下的敏感权限的对应关系表
安卓操作系统 | IOS操作系统 |
CAMERA | NSCameraUsageDescription |
READ_CALENDAR | NSCalendarsUsageDescription |
RECORD_AUDIO | Microphon |
······ | ······ |
基于此,对于前述检测到的待检测应用在第一操作系统下所申请并使用到的各个第一目标敏感权限,服务器可以首先从如表1所示的对应关系中获取第一目标敏感权限的关键字在第二操作系统下对应的关键字,之后,服务器可以从第二信息描述文件中查找是否包含有获取的第一目标敏感权限的关键字所对应的关键字。如果第二信息描述文件中不包含有第一目标敏感权限的关键字所对应的关键字,则说明在第二操作系统下,该待检测应用并未申请该敏感权限。由于对于一个应用来说,通常在不同操作系统下所必需的敏感权限往往也是一样的。因此,对于待检测应用而言,如果第一目标敏感权限在一种操作系统下进行了申请,而在另一种操作系统下不进行申请,则说明该第一目标敏感权限对于该待检测应用并不是必需的。此时,则可以确定该第一目标敏感权限的申请不合理。也即,确定该第一目标敏感权限的检测结果为第一检测结果。
可选地,如果第二信息描述文件中包含有第一目标敏感权限的关键字所对应的关键字,则说明在第二操作系统下,该待检测应用也申请了该敏感权限,此时,服务器可以确定该第一目标敏感权限的申请是合理的。也即,可以确定该第一目标敏感权限的检测结果为第二检测结果。
需要说明的是,在一些可能的实现方式中,服务器在确定出第一操作系统下该待检测应用所申请的多个第一敏感权限之后,可以直接从多个第二敏感权限中查找是否存在与各个第一敏感权限对应的第二敏感权限,之后,将查找到对应的第二敏感权限的第一敏感权限确定为申请合理的敏感权限,将未查找到对应的第二敏感权限的第一敏感权限确定为申请不合理的敏感权限。也即,本申请实施例中可以直接通过比对两个应用安装包中申请的敏感权限是否一致来判断敏感权限的申请是否合理。
可选地,在一种可能的实现方式中,由于应用的API等级过低的情况下,会存在权限管理不可控或者是其他安全方面的漏洞,因此,在本申请实施例中,在执行步骤203之前,服务器还可以首先对待检测应用的第一信息描述文件进行解析,从而从该第一信息描述文件中获取API等级。之后,服务器可以检测该待检测应用的API等级是否小于参考等级,如果不小于参考等级,则服务器可以执行本步骤。否则,则可以直接判定该待检测应用的API等级不符合要求,向用户设备返回提示信息,以提示该待检测应用无法上线。
其中,对于安卓操作系统,服务器可以从第一信息描述文件中获取targetSDKversion这一关键字对应的参数值,该参数值即为API等级。此时,参考等级可以为26。
在本申请实施例中,服务器可以通过对第一应用安装包中的第一可执行文件进行反编译得到待检测应用的应用代码,进而根据该应用代码和第一信息描述文件来确定待检测应用所申请的每个敏感权限是否均被使用,以此来判定各个敏感权限的申请是否合理,整个过程无需人工参与,省时省力,且可以更好的保证检测结果的准确度。并且,由于本申请是通过对可执行文件进行反编译得到的应用代码来进行的检测,因此,不必依赖于应用的源代码,解决了应用的源代码难以获取的问题,简化了检测过程。
接下来以安卓操作系统为例来对上述的敏感权限检测方法进行说明。
参见图3,该方法可以包括以下步骤:301、服务器可以接收用户设备上传的安卓应用程序包(Android Application Package,APK)。302、服务器可以对该安卓应用程序包中的可执行文件(也即dex文件)进行反编译,得到应用代码。303、服务器可以解析安卓应用程序包中的信息描述文件(也即AndroidManifest.xml文件)。304、获取该AndroidManifest.xml文件中的targetSDKversion对应的参数值,也即,API等级。305、判断targetSDKversion对应的参数值是否大于或等于26。306、如果大于或等于26,则服务器可以获取第一操作系统下的敏感权限列表。307、遍历敏感权限列表中的各个敏感权限是否为待检测应用所申请的敏感权限。308、如果是,则继续判断应用代码中是否存在该敏感权限对应的系统API。309、如果存在,则判定该敏感权限申请合理。310、如果应用代码中不存在对应的系统API,则说明敏感权限的申请不合理。
图4是本申请实施例提供的另一种检测敏感权限是否合理的方法的流程图。参见图4,该方法可以包括以下步骤:401、服务器可以同时获取待检测应用在安卓操作系统下的安卓应用程序包和在IOS操作系统下的苹果应用程序包(也即ipa安装包)。402、服务器可以分别解析两个安装包。403、解析两个安装包下的信息描述文件,也即,分别解析AndroidManifest.xml文件和Info.plist文件。404、获取待检测应用在第一操作系统下所申请的多个第一敏感权限和在第二操作系统下所申请的多个第二敏感权限。405、服务器可以将第一敏感权限和多个第二敏感权限一一比对。406、如果存在与第一敏感权限一致的第二敏感权限,则确定第一敏感权限申请合理。407、否则,则认为第一敏感权限的申请不合理。
接下来,对本申请实施例提供的敏感权限检测装置进行介绍。
参见图5,本申请实施例提供了一种敏感权限检测装置500,该装置500包括:
获取模块501,用于获取待检测应用的第一应用安装包,第一应用安装包为第一操作系统对应的待检测应用的安装包,第一应用安装包包括第一可执行文件和第一信息描述文件;
反编译模块502,用于对第一可执行文件进行反编译,得到待检测应用的应用代码;
确定模块503,用于根据待检测应用的应用代码和第一信息描述文件,确定待检测应用所申请的每个敏感权限的检测结果,检测结果用于指示敏感权限的申请是否合理。
可选地,该装置500还用于:
从第一信息描述文件中获取待检测应用的应用程序接口API等级;
如果待检测应用的API等级不小于参考等级,则触发确定模块根据待检测应用的应用代码和第一信息描述文件,确定待检测应用所申请的每个敏感权限的检测结果。
可选地,确定模块503包括:
获取子模块,用于获取第一操作系统的参考权限列表,参考权限列表包括多个参考敏感权限;
第一确定子模块,用于根据第一操作系统的参考权限列表和第一信息描述文件,确定待检测应用在第一操作系统下所申请的多个第一敏感权限;
查找子模块,用于从待检测应用的应用代码中查找每个第一敏感权限对应的系统API,不同的敏感权限对应的系统API不同;
第二确定子模块,用于根据查找结果确定每个第一敏感权限的检测结果。
可选地,第二确定子模块具体用于:
将未查找到对应的系统API的第一敏感权限的检测结果确定为第一检测结果,第一检测结果用于指示相应敏感权限的申请不合理。
可选地,第二确定子模块具体用于:
将查找到对应的系统API的第一敏感权限的检测结果确定为第二检测结果,第二检测结果用于指示相应敏感权限的申请合理。
可选地,第二确定子模块具体用于:
获取待检测应用的第二应用安装包,第二应用安装包为第二操作系统对应的待检测应用的应用安装包,第二操作系统与第一操作系统不同,第二应用安装包包括第二信息描述文件;
根据第二信息描述文件确定待检测应用在第二操作系统下所申请的多个第二敏感权限;
对于查找到对应的系统API的第一目标敏感权限,如果多个第二敏感权限中不存在与第一目标敏感权限相对应的第二敏感权限,则确定第一目标敏感权限的检测结果为第一检测结果,第一检测结果用于指示相应敏感权限的申请不合理。
可选地,第二确定子模块具体用于:
如果多个第二敏感权限中存在与第一目标敏感权限相对应的第二敏感权限,则确定第一目标敏感权限的检测结果为第二检测结果,第二检测结果用于指示相应敏感权限的申请合理。
综上所述,在本申请实施例中,服务器可以通过对第一应用安装包中的第一可执行文件进行反编译得到待检测应用的应用代码,进而根据该应用代码和第一信息描述文件来确定待检测应用所申请的每个敏感权限是否均被使用,以此来判定各个敏感权限的申请是否合理,整个过程无需人工参与,省时省力,且可以更好的保证检测结果的准确度。并且,由于本申请是通过对可执行文件进行反编译得到的应用代码来进行的检测,因此,不必依赖于应用的源代码,解决了应用的源代码难以获取的问题,简化了检测过程。
需要说明的是:上述实施例提供的敏感权限检测装置在检测敏感权限是否合理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的敏感权限检测装置与敏感权限检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是根据一示例性实施例示出的一种用于检测敏感权限的服务器600结构示意图。上述图2-4所示的实施例中的服务器的功能即可以通过图6中所示的服务器来实现。该服务器可以是后台服务器集群中的服务器。具体来讲:
服务器600包括CPU(Central Processing Unit,中央处理单元)601、包括RAM(Random Access Memory,随机存取存储器)602和ROM(Read-Only Memory,只读存储器)603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。服务器600还包括帮助计算机内的各个器件之间传输信息的I/O(Input/Output,基本输入/输出)系统606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
基本输入/输出系统606包括有用于显示信息的显示器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。大容量存储设备607及其相关联的计算机可读介质为服务器600提供非易失性存储。也就是说,大容量存储设备607可以包括诸如硬盘或者CD-ROM(CompactDisc Read-Only Memory)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,数字通用光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
根据本申请的各种实施例,服务器600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器600可以通过连接在系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,被配置由CPU执行。所述一个或者一个以上程序包含用于进行本申请实施例提供的敏感权限检测方法的指令。
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述图2-4所示实施例提供的敏感权限检测方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述图2-4所示实施例提供的敏感权限检测方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种敏感权限检测方法,其特征在于,所述方法包括:
获取待检测应用的第一应用安装包,所述第一应用安装包为第一操作系统对应的所述待检测应用的安装包,所述第一应用安装包包括第一可执行文件和第一信息描述文件;
对所述第一可执行文件进行反编译,得到所述待检测应用的应用代码;
根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的敏感权限的检测结果,所述检测结果用于指示所述敏感权限的申请是否合理。
2.根据权利要求1所述的方法,其特征在于,所述根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的敏感权限的检测结果之前,还包括:
从所述第一信息描述文件中获取所述待检测应用的应用程序接口API等级;
响应于所述待检测应用的应用程序接口API等级不小于参考等级,执行根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的敏感权限的检测结果的步骤。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的敏感权限的检测结果,包括:
获取所述第一操作系统的参考权限列表,所述参考权限列表包括参考敏感权限;
根据所述第一操作系统的参考权限列表和所述第一信息描述文件,确定所述待检测应用在所述第一操作系统下所申请的第一敏感权限;
从所述待检测应用的应用代码中查找所述第一敏感权限对应的系统应用程序接口API,不同的敏感权限对应的系统应用程序接口API不同;
根据查找结果确定所述第一敏感权限的检测结果。
4.根据权利要求3所述的方法,其特征在于,所述根据查找结果确定所述第一敏感权限的检测结果,包括:
将未查找到对应的系统应用程序接口API的第一敏感权限的检测结果确定为第一检测结果,所述第一检测结果用于指示相应敏感权限的申请不合理。
5.根据权利要求3所述的方法,其特征在于,所述根据查找结果确定所述第一敏感权限的检测结果,包括:
将查找到对应的系统应用程序接口API的第一敏感权限的检测结果确定为第二检测结果,所述第二检测结果用于指示相应敏感权限的申请合理。
6.根据权利要求3所述的方法,其特征在于,所述根据查找结果确定所述第一敏感权限的检测结果,包括:
获取所述待检测应用的第二应用安装包,所述第二应用安装包为第二操作系统对应的所述待检测应用的应用安装包,所述第二操作系统与所述第一操作系统不同,所述第二应用安装包包括第二信息描述文件;
根据所述第二信息描述文件确定所述待检测应用在所述第二操作系统下所申请的多个第二敏感权限;
对于查找到对应的系统应用程序接口API的第一目标敏感权限,如果所述多个第二敏感权限中不存在与所述第一目标敏感权限相对应的第二敏感权限,则确定所述第一目标敏感权限的检测结果为第一检测结果,所述第一检测结果用于指示相应敏感权限的申请不合理。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于所述多个第二敏感权限中存在与所述第一目标敏感权限相对应的第二敏感权限,则确定所述第一目标敏感权限的检测结果为第二检测结果,所述第二检测结果用于指示相应敏感权限的申请合理。
8.一种敏感权限检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测应用的第一应用安装包,所述第一应用安装包为第一操作系统对应的所述待检测应用的安装包,所述第一应用安装包包括第一可执行文件和第一信息描述文件;
反编译模块,用于对所述第一可执行文件进行反编译,得到所述待检测应用的应用代码;
确定模块,用于根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的敏感权限的检测结果,所述检测结果用于指示所述敏感权限的申请是否合理。
9.根据权利要求8所述的装置,其特征在于,所述装置还用于:
从所述第一信息描述文件中获取所述待检测应用的应用程序接口API等级;
响应于所述待检测应用的应用程序接口API等级不小于参考等级,触发所述确定模块根据所述待检测应用的应用代码和所述第一信息描述文件,确定所述待检测应用所申请的敏感权限的检测结果。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1至7任一所述的敏感权限检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010125340.2A CN111353143A (zh) | 2020-02-27 | 2020-02-27 | 敏感权限检测方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010125340.2A CN111353143A (zh) | 2020-02-27 | 2020-02-27 | 敏感权限检测方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111353143A true CN111353143A (zh) | 2020-06-30 |
Family
ID=71192367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010125340.2A Pending CN111353143A (zh) | 2020-02-27 | 2020-02-27 | 敏感权限检测方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111353143A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035845A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 一种数据安全检测方法及其相关设备 |
CN112613035A (zh) * | 2020-12-18 | 2021-04-06 | 深圳市安络科技有限公司 | 一种基于ios系统的app安全检测方法、装置及设备 |
CN112817603A (zh) * | 2021-01-26 | 2021-05-18 | 京东数字科技控股股份有限公司 | 应用程序处理方法、装置、电子设备、系统和存储介质 |
CN112836209A (zh) * | 2021-01-12 | 2021-05-25 | 京东数字科技控股股份有限公司 | 应用安装包处理方法、装置、电子设备、系统和存储介质 |
-
2020
- 2020-02-27 CN CN202010125340.2A patent/CN111353143A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035845A (zh) * | 2020-09-01 | 2020-12-04 | 中国银行股份有限公司 | 一种数据安全检测方法及其相关设备 |
CN112613035A (zh) * | 2020-12-18 | 2021-04-06 | 深圳市安络科技有限公司 | 一种基于ios系统的app安全检测方法、装置及设备 |
CN112836209A (zh) * | 2021-01-12 | 2021-05-25 | 京东数字科技控股股份有限公司 | 应用安装包处理方法、装置、电子设备、系统和存储介质 |
CN112817603A (zh) * | 2021-01-26 | 2021-05-18 | 京东数字科技控股股份有限公司 | 应用程序处理方法、装置、电子设备、系统和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897691B (zh) | 基于接口模拟服务的数据处理方法、装置、服务器和介质 | |
CN111353143A (zh) | 敏感权限检测方法、装置及存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN110569035A (zh) | 软件开发项目的代码编译方法、装置、设备和存储介质 | |
US20160283357A1 (en) | Call stack relationship acquiring method and apparatus | |
CN113032215B (zh) | 线程快照解析方法、装置、设备和存储介质 | |
CN113835713B (zh) | 源码包下载方法、装置、计算机设备和存储介质 | |
CN108898012B (zh) | 检测非法程序的方法和装置 | |
CN112667426A (zh) | 日志分析方法及装置 | |
CN111460448B (zh) | 一种恶意软件家族检测方法及装置 | |
CN111694724A (zh) | 分布式表格系统的测试方法、装置、电子设备及存储介质 | |
CN113918373A (zh) | 一种内存泄露监控方法、内存泄露检测方法及相应装置 | |
CN114579446A (zh) | 数据处理方法、装置、计算机设备及计算机可读存储介质 | |
CN114422175A (zh) | 网络安全监督检查行为审计方法及装置 | |
CN109165127B (zh) | 问题接口的定位方法、装置及电子设备 | |
CN108845932B (zh) | 一种网络库的单元测试方法、装置、存储介质及终端 | |
CN112699369A (zh) | 一种通过栈回溯检测异常登录的方法及装置 | |
CN112988353A (zh) | 一种应用程序的运行控制方法及装置 | |
CN110888643A (zh) | 页面处理方法及装置 | |
WO2019242112A1 (zh) | 审计字段信息获取方法、装置、计算机设备和存储介质 | |
CN116881880B (zh) | 时空数据管理系统及时空数据服务化资源协同调度方法 | |
CN112165406B (zh) | 接口报文测试方法、装置、计算机设备和存储介质 | |
CN110851750B (zh) | 一种数据获取方法及装置 | |
CN108111611B (zh) | 一种客户端检测方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40023546 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |