CN113282906A - 权限检测方法、装置、终端及存储介质 - Google Patents
权限检测方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN113282906A CN113282906A CN202010105063.9A CN202010105063A CN113282906A CN 113282906 A CN113282906 A CN 113282906A CN 202010105063 A CN202010105063 A CN 202010105063A CN 113282906 A CN113282906 A CN 113282906A
- Authority
- CN
- China
- Prior art keywords
- file
- target
- sdk
- permission
- information
- 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.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000006870 function Effects 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 13
- 238000011161 development Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 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/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Abstract
本申请实施例提供了一种权限检测方法、装置、终端及存储介质。该方法包括:获取目标SDK所包括的指定文件,指定文件为预设类型的文件;对指定文件进行解析处理,得到目标SDK的权限信息;将目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息。本申请实施例提供了一种用于对SDK从宿主应用程序中借用的权限进行检测的方案,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
Description
技术领域
本申请实施例涉及权限管理技术领域,特别涉及一种权限检测方法、装置、终端及存储介质。
背景技术
目前,在应用程序的开发过程中,通常会在应用程序中集成部分第三方软件工具开发包(Software Development Kit,SDK)。
为了使应用程序能在终端中顺利运行,终端通常会授予应用程序一定权限,例如存储权限、定位权限等等。集成在应用程序中的三方SDK可以借用该应用程序所具有的权限,进而获取用户的信息。
发明内容
本申请实施例提供一种权限检测方法、装置、终端及存储介质。所述技术方案如下:
第一方面,本申请实施例提供了一种权限检测方法,所述方法包括:
获取目标SDK所包括的指定文件,所述指定文件为预设类型的文件;
对所述指定文件进行解析处理,得到所述目标SDK的权限信息,所述目标SDK的权限信息用于指示所述目标SDK具有的权限;
将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息,所述目标应用程序是所述目标SDK的宿主应用程序,所述权限借用信息用于指示所述目标SDK从所述目标应用程序处借用的权限。
第二方面,本申请实施例提供了一种权限检测装置,所述装置包括:
文件获取模块,用于获取目标SDK所包括的指定文件,所述指定文件为预设类型的文件;
文件解析模块,用于对所述指定文件进行解析处理,得到所述目标SDK的权限信息,所述目标SDK的权限信息用于指示所述目标SDK具有的权限;
权限检测模块,用于将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息,所述目标应用程序是所述目标SDK的宿主应用程序,所述权限借用信息用于指示所述目标SDK从所述目标应用程序处借用的权限。
第三方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器存储有至少一条指令,所述指令由所述处理器加载并执行以实现如第一方面所述的权限检测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如第一方面所述的权限检测方法。
本申请实施例提供的技术方案可以带来的有益效果至少包括:
通过提供一种针对第三方SDK从宿主应用程序中借用权限的检测方案,对第三方SDK所包括的指定文件解析得到第三方SDK的权限信息,并将第三方SDK的权限信息与其宿主应用程序的权限信息进行比对,从而确定第三方SDK从宿主应用程序处借用的权限,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
附图说明
图1是本申请一个示例性实施例示出的权限检测方法的流程图;
图2是本申请一个示例性实施例示出的文件解析过程的流程图;
图3是本申请另一个示例性实施例示出的文件解析过程的流程图;
图4是本申请一个示例性实施例示出的权限检测流程的示意图;
图5是本申请另一个示例性实施例示出的权限检测方法的流程图;
图6是本申请一个示例性实施例示出的权限检测装置的结构框图;
图7是本申请一个示例性实施例示出的终端的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面先对本申请实施例涉及的相关名词进行介绍。
SDK:软件工具开发包,辅助开发某类软件的相关文档、范例和工具的集合,其通常寄生在应用程序上,以供应用程序实现该SDK提供的第三方功能,可以降低应用程序的开发成本。
Java归档(Java Archive,JAR)文件:一种归档文件,以ZIP格式构建,以“.jar”为文件拓展名,通常用于聚合大量的Java类文件、相关的元数据和资源文件到一个文件,以便开发Java平台应用程序或库。
安卓归档(Android Archive,AAR)文件:一个安卓库项目的二进制归档文件,以“.aar”为拓展名,通常用于聚合Manifest.xml文件、class文件、res文件、R.txt文件等到一个文件。可选地,AAR文件中还可以聚合有asset文件、lib文件等等。
相关技术中,第三方SDK借助其宿主应用程序所具有的权限获取用户的信息,该过程不易察觉,用户的信息安全无法保证。
基于此,本申请实施例提供了一种针对第三方SDK从宿主应用程序中借用权限的检测方案,通过对第三方SDK所包括的指定文件解析得到第三方SDK的权限信息,并将第三方SDK的权限信息与其宿主应用程序的权限信息进行比对,从而确定第三方SDK从宿主应用程序处借用的权限,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,可以尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
请参考图1,其示出了本申请一个实施例示出的权限检测方法的流程图。该方法可以包括如下步骤:
步骤101,获取目标SDK所包括的指定文件。
目标SDK可以是目标应用程序中集成的任意一个SDK。目标应用程序可以是终端中的系统应用程序,也可以是第三方应用程序,本申请实施例对此不作限定。另外,由于目标SDK是集成在目标应用程序中的,该目标应用程序也可以称之为目标SDK的宿主应用程序。
指定文件为预设类型的文件。在本申请实施例中,预设类型的文件根据目标SDK所包括的文件的类型实际确定。在一种可能的实现方式中,预设类型的文件包括AAR文件,AAR文件是一个安卓库项目的二进制归档文件,以“.aar”为拓展名,通常用于聚合Manifest.xml、class文件、res文件、R.txt等到一个文件。可选地,AAR文件中还可以聚合有asset文件、lib文件等等。在另一种可能的实现方式中,预设类型的文件包括JAR文件。JAR文件是一种归档文件,以ZIP格式构建,以“.jar”为文件拓展名,通常用于聚合大量的Java类文件、相关的元数据和资源文件到一个文件,以便开发Java平台应用程序或库。在其他可能的实现方式中,预设类型的文件包括JAR文件和AAR文件。
可选地,终端在安装目标SDK的宿主应用程序时获取目标SDK所包括的指定文件,以进行后续的权限检测流程。可选地,终端在第一次运行目标SDK时获取目标SDK所包括的指定文件,以进行后续的权限检测流程。本申请实施例对目标SDK的权限检测时机不作限定。
步骤102,对指定文件进行解析处理,得到目标SDK的权限信息。
目标SDK的权限信息用于指示目标SDK具有的权限。由于目标SDK的指定文件中聚合有目标SDK的代码文件、配置文件、资源文件等等,因此终端对其进行解析处理,其可以获取到指定文件中所聚合的文件中的信息,进而得到目标SDK的权限信息。
步骤103,将目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息。
目标应用程序是目标SDK的宿主应用程序。权限借用信息用于指示目标SDK从目标应用程序中借用的权限。第三方SDK的宿主应用程序具有某一权限时,即使第三方SDK不具备该权限,也可以通过该权限获取用户的相关信息,该情况称之为权限借用。
在本申请实施例中,终端通过将目标SDK的权限信息与目标应用程序的权限信息进行比对,进而得到目标SDK从目标应用程序中借用的权限。可选地,终端将同时存在于目标SDK的权限信息和目标应用程序的权限信息中的权限,确定为目标SDK从目标应用程序中借用的权限。具体地,终端可以将目标SDK的权限信息设为集合A,将目标应用程序的权限信息设为集合B,集合A和集合B的交集C所包括的权限也即是目标SDK从目标应用程序中借用的权限。
可选地,终端通过将目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限非借用信息。权限非借用信息用于指示目标SDK未从目标应用程序处借用的权限。可选地,终端将存在于目标SDK的权限信息,且不存在于目标应用程序的权限信息中的权限,确定为目标SDK未从目标应用程序中借用的权限。具体地,终端可以将目标SDK的权限信息设为集合A,将目标应用程序的权限信息设为集合B,集合A和集合B的交集为C,集合A和集合B的全集为D,交集C在全集D中的补集E所包括的权限也即是目标SDK未从目标应用程序中借用的权限。
可选地,终端基于目标SDK的权限信息确定目标SDK的敏感权限信息。目标SDK的敏感权限信息用于指示目标SDK具有的敏感权限。可选地,终端中存储有敏感权限列表,终端将目标SDK具有的,且存在于敏感权限列表的权限确定为目标SDK具有的敏感权限。具体地,目标SDK的权限信息设为集合A,集合A的子集F包括目标SDK具有的敏感权限。
结合参考表-1,其示出了本申请一个实施例示出的部分敏感权限组以及部分敏感权限。
表-1
综上所述,本申请实施例提供的技术方案,通过提供一种针对第三方SDK从宿主应用程序中借用权限的检测方案,对第三方SDK所包括的指定文件解析得到第三方SDK的权限信息,并将第三方SDK的权限信息与其宿主应用程序的权限信息进行比对,从而确定第三方SDK从宿主应用程序处借用的权限,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
在一种可能的实现方式中,指定文件为第一类型的文件。可选地,第一类型的文件为AAR文件。
在该种实现方式中,对指定文件进行解析处理,得到目标SDK的权限信息可以包括如下步骤:
步骤201,对指定文件进行解压处理,得到第一文件和第二文件。
终端将指定文件的后缀名由“.aar”修改为“.zip”,之后采用解压缩应用程序对修改后缀名后的指定文件进行解压缩处理,得到第一文件和第二文件。在本申请实施例中,第一文件为Manifest.xml文件,第二文件为JAR文件。
Manifest.xml文件为一种软件,在安卓系统的第三方SDK中提出了重要的信息,可以运行任何第三方SDK的代码。Manifest文件通常可以包括如下内容:第三方SDK的唯一标识符、第三方SDK的组件的活动、服务、广播接收机、内容提供商、哪些进程将运行第三方SDK的组件等等。在本申请实施例中,Manifest文件声明有第三方SDK的部分权限。
步骤202,对第一文件进行分析处理,得到目标SDK的第一权限信息,以及,对第二文件进行解析处理,得到目标SDK的第二权限信息。
目标SDK的第一权限信息与目标SDK的第二权限信息组合得到目标SDK的权限信息。目标SDK的第一权限信息与目标SDK的第二权限信息可以部分重合,也可以完全不重合。
目标SDK的第一权限信息包括Manifest.xml文件中声明的目标SDK所具有的权限。
其中,对第二文件进行解析处理,得到目标SDK的第二权限信息可以包括如下步骤:
步骤202a,将第二文件转换为第一可执行文件。
在本申请实施例中,第一可执行文件是指后缀名为“.dex”的文件。可选地,终端通过特定的转换工具将第二文件转换为第一可执行文件,上述特定的转换工具可以是dx工具。
步骤202b,确定第一可执行文件中的至少两个函数之间的第一调用关系。
第一可执行文件中包括目标SDK的代码,终端读取上述代码,即可得到目标SDK所包括的函数之间的调用关系,终端根据上述调用关系可以构建目标SDK的控制流图(control-flow graph,CFG)。
步骤202c,采用污点分析方式对第一调用关系进行检测,得到目标SDK的第二权限信息。
污点分析技术是信息流分析技术的一种实践方法,其将系统或应用程序中的数据标记为污点或非污点,当污点数据根据信息流传播策略影响到非污点数据时,则将该非污点数据的标记修改为污点。
目标SDK的第二权限信息包括目标SDK在运行过程中动态申请的权限。目标SDK在运行过程中动态申请的权限可以通过以下方式进行标识:权限检查、权限申请、应用程序编程接口(Application Programming Interface,API)检测。其中,权限检查被标示在checkSelfPermission,用于检查权限是否授予目标SDK,权限申请被标示在requestPermissions,用于检查目标SDK是否新增申请权限,API检测被标示在账号信息、短信、联系人等API,用于检测目标SDK是否调用上述API。
在本申请实施例中,终端采用污点分析方式对目标SDK的各个函数之间的调用关系进行分析,进而确定出目标SDK的代码中是否包括用于动态申请权限的代码,进而确定目标SDK在运行过程中动态申请的权限。
步骤203,根据目标SDK的第一权限信息和目标SDK的第二权限信息,得到目标SDK的权限信息。
在本申请实施例中,终端将第一权限信息和第二权限信息的合集确定为目标SDK的权限信息。
在一个具体的例子中,结合参考图2,其示出了本申请一个实施例示出的解析AAR文件的流程图。
步骤21,获取AAR文件。
步骤22,对AAR文件进行解压处理,得到classes.jar文件和Manifest.xml文件。
步骤23,将classes.jar文件转换为classes.dex文件。
步骤24,根据classes.dex文件构建目标SDK的程序流图。
步骤25,采用污点分析方式对目标SDK的程序流图进行处理,得到目标SDK动态申请的权限。
步骤26,对Manifest.xml文件进行分析,得到声明的目标SDK具有的权限。
步骤27,基于目标SDK动态申请的权限以及声明的目标SDK的权限信息确定目标SDK的权限信息。
综上所述,本申请实施例提供的技术方案,通过对AAR文件进行解析,得到第三方SDK的权限信息,后续可以将第三方SDK的权限信息与其宿主应用程序的权限信息进行比对,以确定第三方SDK从宿主应用程序处借用的权限,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
在另一种可能的实现方式中,指定文件为第二类型的文件。可选地,第二类型的文件为JAR文件。
在该种实现方式中,对指定文件进行解析处理,得到目标SDK的权限信息可以包括如下步骤:
步骤301,将指定文件转换为第二可执行文件。
步骤302,确定第二可执行文件中的至少两个函数之间的第二调用关系。
步骤303,采用污点分析方式对第二调用关系进行检测,得到目标SDK的权限信息。
步骤301至步骤303的解释说明可以参考步骤202a-202c,此处不作赘述。
在一个具体的例子中,结合参考图3,其示出了本申请一个实施例示出的解析JAR文件的流程图。
步骤31,获取JAR文件。
步骤32,将JAR文件转换为DEX文件。
步骤33,根据DEX文件构建目标SDK的程序流图。
步骤34,采用污点分析方式对目标SDK的程序流图进行处理,得到目标SDK动态申请的权限。
步骤35,基于目标SDK动态申请的权限确定目标SDK的权限信息。
综上所述,本申请实施例提供的技术方案,通过对JAR文件进行解析,得到第三方SDK的权限信息,后续可以将第三方SDK的权限信息与其宿主应用程序的权限信息进行比对,以确定第三方SDK从宿主应用程序处借用的权限,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
在一个具体的例子中,结合参考图4,其示出了本申请一个实施例示出的权限检测的示意图。目标SDK包括JAR文件2和AAR文件,终端对AAR文件进行解压缩处理,得到JAR文件1和Manifest文件,终端对JAR文件1进行解析,得到目标SDK动态申请的权限1,对Manifest文件进行解析,得到声明的目标SDK具有的权限,对JAR文件2进行解析,得到目标SDK动态申请的权限2,之后将上述三类权限与目标应用程序的权限信息进行比对,得到目标SDK的权限借用信息以及权限非借用信息。此外,终端还可以从上述三类权限中筛选出目标SDK的敏感权限信息。
请参考图5,其示出了本申请另一实施例提供的权限检测方法的流程图。该方法可以包括如下步骤:
步骤501,检测目标应用程序是否具有敏感权限。
可选地,终端保存有每个应用程序所具有的权限列表,终端可以检测上述权限列表中是否具有敏感权限,进而执行后续的权限检测流程。若目标应用程序具有敏感权限,则执行后续步骤,若目标应用程序不具有敏感权限,则结束流程。
由于目标应用程序不具有敏感权限时,即使目标SDK借用目标应用程序的权限,也不会造成信息泄露,在该情况下,无需进行后续的权限检测,以避免任何情况下均进行权限检测,节省终端的处理资源。
步骤502,获取目标软件工具开发包SDK所包括的指定文件。
指定文件为预设类型的文件。
步骤503,对指定文件进行解析处理,得到目标SDK的权限信息。
目标SDK的权限信息用于指示目标SDK具有的权限。
步骤504,将目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息。
目标应用程序是目标SDK的宿主应用程序,权限借用信息用于指示目标SDK从目标应用程序处借用的权限。
综上所述,本申请实施例提供的技术方案,通过在目标应用程序具有敏感权限的情况下进行后续的权限检测,可以避免任何情况下均进行权限检测,节省终端的处理资源。
以下为本申请装置实施例,对于装置实施例中未详细阐述的部分,可以参考上述方法实施例中公开的技术细节。
请参考图6,其示出了本申请一个示例性实施例提供的权限检测装置的框图。该权限检测装置可以通过软件、硬件或者两者的组合实现成为终端的全部或一部分。该权限检测装置包括:
文件获取模块601,用于获取目标SDK所包括的指定文件,所述指定文件为预设类型的文件。
文件解析模块602,用于对所述指定文件进行解析处理,得到所述目标SDK的权限信息,所述目标SDK的权限信息用于指示所述目标SDK具有的权限。
权限检测模块603,用于将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息,所述目标应用程序是所述目标SDK的宿主应用程序,所述权限借用信息用于指示所述目标SDK从所述目标应用程序处借用的权限。
综上所述,本申请实施例提供的技术方案,通过提供一种针对第三方SDK从宿主应用程序中借用权限的检测方案,对第三方SDK所包括的指定文件解析得到第三方SDK的权限信息,并将第三方SDK的权限信息与其宿主应用程序的权限信息进行比对,从而确定第三方SDK从宿主应用程序处借用的权限,为权限管理提供更为详实的数据支撑,后续可以针对第三方SDK从宿主应用程序处借用权限制定权限管理方案,尽可能减小第三方SDK从宿主应用程序借用权限造成的用户信息泄露等情况的发生,提升用户信息的安全性。
在基于图6所示实施例提供的可选实施例中,所述指定文件包括第一类型的文件,所述文件解析模块602,用于:
对所述指定文件进行解压处理,得到第一文件和第二文件;
对所述第一文件进行分析处理,得到所述目标SDK的第一权限信息,以及,对所述第二文件进行分析处理,得到所述目标SDK的第二权限信息;
根据所述目标SDK的第一权限信息和所述目标SDK的第二权限信息,得到所述目标SDK的权限信息。
可选地,所述文件解析模块602,用于:
将所述第二文件转换为第一可执行文件;
确定所述第一可执行文件中的至少两个函数之间的第一调用关系;
采用污点分析方式对所述第一调用关系进行检测,得到所述目标SDK的第二权限信息。
在基于图6所示实施例提供的一个可选实施例中,所述指定文件包括第二类型的文件,所述文件解析模块602,用于:
将所述指定文件转换为第二可执行文件;
确定所述第二可执行文件中的至少两个函数之间的第二调用关系;
采用污点分析方式对所述第二调用关系进行检测,得到所述目标SDK的权限信息。
在基于图6所示实施例提供的一个可选实施例中,所述权限检测模块603,还用于将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限非借用信息,所述权限非借用信息用于指示所述目标SDK未从所述目标应用程序处借用的权限。
在基于图6所示实施例提供的一个可选实施例中,所述权限检测模块603,还用于基于所述目标SDK的权限信息确定所述目标SDK的敏感权限信息,所述目标SDK的敏感权限信息用于指示所述目标SDK具有的敏感权限。
在基于图6所示实施例提供的一个可选实施例中,所述装置还包括:应用程序检测模块(图6未示出)。
应用程序检测模块,用于检测所述目标应用程序是否具有敏感权限。
所述文件获取模块,还用于若所述目标应用程序具有所述敏感权限,则执行所述获取目标软件工具开发包SDK所包括的指定文件的步骤。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参考图7,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器710和存储器720。
处理器710可以包括一个或者多个处理核心。处理器710利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器720内的指令、程序、代码集或指令集,以及调用存储在存储器720内的数据,执行终端的各种功能和处理数据。可选地,处理器710可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器710可集成中央处理器(CentralProcessing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块芯片进行实现。
可选地,处理器710执行存储器720中的程序指令时实现下上述各个方法实施例提供的权限检测方法。
存储器720可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选地,该存储器720包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器720可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据终端的使用所创建的数据等。
上述终端的结构仅是示意性的,在实际实现时,终端可以包括更多或更少的组件,比如:摄像头等,本实施例对此不作限定。
本领域技术人员可以理解,图7中示出的结构并不构成对终端700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由终端的处理器加载并执行以实现上述方法实施例中的权限检测方法。
可选地,上述计算机可读存储介质可以是ROM、RAM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述方法实施例中提供的权限检测方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本文中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种权限检测方法,其特征在于,所述方法包括:
获取目标软件工具开发包SDK所包括的指定文件,所述指定文件为预设类型的文件;
对所述指定文件进行解析处理,得到所述目标SDK的权限信息,所述目标SDK的权限信息用于指示所述目标SDK具有的权限;
将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息,所述目标应用程序是所述目标SDK的宿主应用程序,所述权限借用信息用于指示所述目标SDK从所述目标应用程序处借用的权限。
2.根据权利要求1所述的方法,其特征在于,所述指定文件包括第一类型的文件,所述对所述指定文件进行解析处理,得到所述目标SDK的权限信息,包括:
对所述指定文件进行解压处理,得到第一文件和第二文件;
对所述第一文件进行分析处理,得到所述目标SDK的第一权限信息,以及,对所述第二文件进行分析处理,得到所述目标SDK的第二权限信息;
根据所述目标SDK的第一权限信息和所述目标SDK的第二权限信息,得到所述目标SDK的权限信息。
3.根据权利要求2所述的方法,其特征在于,所述对所述第二文件进行分析处理,得到所述目标SDK的第二权限信息,包括:
将所述第二文件转换为第一可执行文件;
确定所述第一可执行文件中的至少两个函数之间的第一调用关系;
采用污点分析方式对所述第一调用关系进行检测,得到所述目标SDK的第二权限信息。
4.根据权利要求1所述的方法,其特征在于,所述指定文件包括第二类型的文件,所述对指定文件进行解析处理,得到所述目标SDK的权限信息,包括:
将所述指定文件转换为第二可执行文件;
确定所述第二可执行文件中的至少两个函数之间的第二调用关系;
采用污点分析方式对所述第二调用关系进行检测,得到所述目标SDK的权限信息。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述指定文件进行解析处理,得到所述目标SDK的权限信息之后,还包括:
将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限非借用信息,所述权限非借用信息用于指示所述目标SDK未从所述目标应用程序处借用的权限。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述指定文件进行解析处理,得到所述目标SDK的权限信息之后,还包括:
基于所述目标SDK的权限信息确定所述目标SDK的敏感权限信息,所述目标SDK的敏感权限信息用于指示所述目标SDK具有的敏感权限。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述获取目标软件工具开发包SDK所包括的指定文件之前,还包括:
检测所述目标应用程序是否具有敏感权限;
若所述目标应用程序具有所述敏感权限,则执行所述获取目标软件工具开发包SDK所包括的指定文件的步骤。
8.一种权限检测装置,其特征在于,所述装置包括:
文件获取模块,用于获取目标软件工具开发包SDK所包括的指定文件,所述指定文件为预设类型的文件;
文件解析模块,用于对所述指定文件进行解析处理,得到所述目标SDK的权限信息,所述目标SDK的权限信息用于指示所述目标SDK具有的权限;
权限检测模块,用于将所述目标SDK的权限信息与目标应用程序的权限信息进行比对,得到权限借用信息,所述目标应用程序是所述目标SDK的宿主应用程序,所述权限借用信息用于指示所述目标SDK从所述目标应用程序处借用的权限。
9.根据权利要求8所述的装置,其特征在于,所述指定文件包括第一类型的文件,所述文件解析模块,用于:
对所述指定文件进行解压处理,得到第一文件和第二文件;
对所述第一文件进行分析处理,得到所述目标SDK的第一权限信息,以及,对所述第二文件进行分析处理,得到所述目标SDK的第二权限信息;
根据所述目标SDK的第一权限信息和所述目标SDK的第二权限信息,得到所述目标SDK的权限信息。
10.根据权利要求8所述的装置,其特征在于,所述指定文件包括第二类型的文件,所述文件解析模块,用于:
将所述指定文件转换为第二可执行文件;
确定所述第二可执行文件中的至少两个函数之间的第二调用关系;
采用污点分析方式对所述第二调用关系进行检测,得到所述目标SDK的权限信息。
11.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至7任一项所述的权限检测方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至6任一项所述的权限检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105063.9A CN113282906B (zh) | 2020-02-20 | 权限检测方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010105063.9A CN113282906B (zh) | 2020-02-20 | 权限检测方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282906A true CN113282906A (zh) | 2021-08-20 |
CN113282906B CN113282906B (zh) | 2024-05-03 |
Family
ID=
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861180A (zh) * | 2022-05-25 | 2022-08-05 | 广东粤密技术服务有限公司 | 应用程序的安全性检测方法和装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713902A (zh) * | 2013-12-26 | 2014-04-09 | Tcl集团股份有限公司 | 一种基于Android系统的BOA编译方法和系统 |
CN104462970A (zh) * | 2014-12-17 | 2015-03-25 | 中国科学院软件研究所 | 一种基于进程通信的Android应用程序权限滥用检测方法 |
CN107194277A (zh) * | 2017-05-15 | 2017-09-22 | 华中科技大学 | 面向安卓广告库的细粒度权限管理方法及系统 |
WO2017219526A1 (zh) * | 2016-06-23 | 2017-12-28 | 乐视控股(北京)有限公司 | 一种图形文件格式的使用方法及存储设备 |
CN108521608A (zh) * | 2018-03-13 | 2018-09-11 | Oppo广东移动通信有限公司 | 视频文件的处理方法、装置、终端及存储介质 |
CN108632460A (zh) * | 2018-04-18 | 2018-10-09 | Oppo广东移动通信有限公司 | 权限管理方法、装置、移动终端以及存储介质 |
CN109558739A (zh) * | 2017-09-26 | 2019-04-02 | 腾讯科技(深圳)有限公司 | 程序运行方法、装置、终端及可读介质 |
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713902A (zh) * | 2013-12-26 | 2014-04-09 | Tcl集团股份有限公司 | 一种基于Android系统的BOA编译方法和系统 |
CN104462970A (zh) * | 2014-12-17 | 2015-03-25 | 中国科学院软件研究所 | 一种基于进程通信的Android应用程序权限滥用检测方法 |
WO2017219526A1 (zh) * | 2016-06-23 | 2017-12-28 | 乐视控股(北京)有限公司 | 一种图形文件格式的使用方法及存储设备 |
CN107194277A (zh) * | 2017-05-15 | 2017-09-22 | 华中科技大学 | 面向安卓广告库的细粒度权限管理方法及系统 |
CN109558739A (zh) * | 2017-09-26 | 2019-04-02 | 腾讯科技(深圳)有限公司 | 程序运行方法、装置、终端及可读介质 |
CN108521608A (zh) * | 2018-03-13 | 2018-09-11 | Oppo广东移动通信有限公司 | 视频文件的处理方法、装置、终端及存储介质 |
CN108632460A (zh) * | 2018-04-18 | 2018-10-09 | Oppo广东移动通信有限公司 | 权限管理方法、装置、移动终端以及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861180A (zh) * | 2022-05-25 | 2022-08-05 | 广东粤密技术服务有限公司 | 应用程序的安全性检测方法和装置 |
CN114861180B (zh) * | 2022-05-25 | 2023-09-08 | 广东粤密技术服务有限公司 | 应用程序的安全性检测方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141801B2 (en) | Apparatus and method for analyzing permission of application for mobile devices and detecting risk | |
US10481964B2 (en) | Monitoring activity of software development kits using stack trace analysis | |
US9053322B2 (en) | Computing environment security method and electronic computing system | |
US9525706B2 (en) | Apparatus and method for diagnosing malicious applications | |
CN106897609B (zh) | 一种对动态加载的应用程序进行监控的方法及装置 | |
US10635812B2 (en) | Method and apparatus for identifying malicious software | |
KR20150044490A (ko) | 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법 | |
CN108763951B (zh) | 一种数据的保护方法及装置 | |
CN111967017B (zh) | 生成依赖关系的方法、装置、终端设备及存储介质 | |
KR101900047B1 (ko) | 애플리케이션이 필요로 하는 권한을 진단하는 방법 및 장치 | |
KR101277517B1 (ko) | 애플리케이션 위/변조 탐지장치 및 방법 | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
CN111190603B (zh) | 一种隐私数据检测方法、装置和计算机可读存储介质 | |
EP2761462B1 (en) | Method and device for obtaining using-frequency of application program | |
CN111338716A (zh) | 基于规则引擎的数据处理方法、装置及终端设备 | |
CN113282906B (zh) | 权限检测方法、装置、终端及存储介质 | |
CN113282906A (zh) | 权限检测方法、装置、终端及存储介质 | |
CN108628620B (zh) | Pos应用开发的实现方法、装置、计算机设备和存储介质 | |
CN113127367B (zh) | Android动态权限申请的缺陷检测方法 | |
CN113553578A (zh) | 一种日志打印响应方法、装置、电子设备和存储介质 | |
CN113836529A (zh) | 进程检测方法、装置、存储介质以及计算机设备 | |
CN113360901B (zh) | 异常Xposed框架的检测方法、装置、介质及设备 | |
EP3748494A1 (en) | A tool for analysing a software distribution package | |
CN114780952A (zh) | 敏感应用调用场景的检测方法、系统及存储介质 | |
CN115952491A (zh) | hook目标函数的方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |