CN110837360A - 应用过度索权的检测方法及计算机可读存储介质 - Google Patents

应用过度索权的检测方法及计算机可读存储介质 Download PDF

Info

Publication number
CN110837360A
CN110837360A CN201910967597.XA CN201910967597A CN110837360A CN 110837360 A CN110837360 A CN 110837360A CN 201910967597 A CN201910967597 A CN 201910967597A CN 110837360 A CN110837360 A CN 110837360A
Authority
CN
China
Prior art keywords
application
authority
component
declaration
permission
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
Application number
CN201910967597.XA
Other languages
English (en)
Other versions
CN110837360B (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.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology Ltd
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 Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN201910967597.XA priority Critical patent/CN110837360B/zh
Publication of CN110837360A publication Critical patent/CN110837360A/zh
Application granted granted Critical
Publication of CN110837360B publication Critical patent/CN110837360B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种应用过度索权的检测方法及计算机可读存储介质,方法包括:对所有权限进行声明,得到权限声明总库;从权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成业务组件的组件权限声明,根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明;对所述应用的各业务组件的组件权限声明进行校验;若校验通过,则根据所述应用的应用权限声明,对所述应用进行过度索权检测。本发明可对应用中存在过度索权的行为的业务组件进行精确定位。

Description

应用过度索权的检测方法及计算机可读存储介质
技术领域
本发明涉及权限管理技术领域,尤其涉及一种应用过度索权的检测方法及计算机可读存储介质。
背景技术
随着移动设备在日常生活中越来越普及,移动应用开发者的数量日益增多。为满足应当的定制化与节约开发成本,越来越多的公司采用模块化封装移动业务组件的方案。各个移动业务组件需要用到的权限由移动业务组件的提供方在各自的组件代码中进行定义所需要的权限,再通过移动业务组件的拼装过程生产应用后才生产具体应用的权限列表。但存在以下缺点:
缺点1:权限的声明由各个组件方在代码中进行声明,外部的使用者无法直观地知道权限的详情以及是否存在滥用权限的情况。
缺点2:应用是各个移动业务组件拼装出来的,最终应用的索权列表中只会显示最终的结果,如果存在滥用权限的情况,无法准确地定位到是哪个移动业务声明了要使用这权限,导致排查十分困难。
缺点3:针对近来公安部下发警告要求APP需要有隐私条款,并且要对APP申请的高敏权限使用场景进行说明,原来的方案需要人工去走查各个权限是声明来做什么的,一旦应用增多,将耗费很大时间成本和人工成本。
发明内容
本发明所要解决的技术问题是:一种应用过度索权的检测方法及计算机可读存储介质,可对应用中存在过度索权的行为的业务组件进行精确定位。
为了解决上述技术问题,本发明采用的技术方案为:一种应用过度索权的检测方法,包括:
对所有权限进行声明,得到权限声明总库;
从所述权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成所述业务组件的组件权限声明,所述组件权限声明包括所述业务组件可使用的权限及其使用原因;
根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明,所述应用权限声明包括所述应用可使用的权限、各权限对应的业务组件以及使用原因;
对所述应用的各业务组件的组件权限声明进行校验;
若校验通过,则根据所述应用的应用权限声明,对所述应用进行过度索权检测。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
本发明的有益效果在于:通过生成所述业务组件的组件权限声明,将原来位于代码中的权限声明抽离到组件权限声明中,使外部使用者可以很容易地从组件权限声明中清晰地获取到组件的权限使用内容;通过统计得到应用的应用权限声明,可快速定位到存在过度索权行为的业务组件,缩短排查时间,降低排查难度;通过声明使用原因,可方便地得知组件使用权限的原因,且可作为权限使用依据,便于进行过度索权的检测;通过对各业务组件的组件权限声明进行校验,提高组件权限声明的准确性。本发明可对应用中存在过度索权的行为的业务组件进行精确定位。
附图说明
图1为本发明的一种应用过度索权的检测方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例一的组件权限声明的权限声明格式的示意图;
图4为本发明实施例一的应用权限声明的示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:将原来位于代码中的权限声明抽离到组件权限声明中;在声明业务组件使用的权限时,同时声明使用权限的原因;根据业务组件的组件权限声明,统计生成应用的应用权限声明。
请参阅图1,一种应用过度索权的检测方法,包括:
对所有权限进行声明,得到权限声明总库;
从所述权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成所述业务组件的组件权限声明,所述组件权限声明包括所述业务组件可使用的权限及其使用原因;
根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明,所述应用权限声明包括所述应用可使用的权限、各权限对应的业务组件以及使用原因;
对所述应用的各业务组件的组件权限声明进行校验;
若校验通过,则根据所述应用的应用权限声明,对所述应用进行过度索权检测。
从上述描述可知,本发明的有益效果在于:可使外部使用者可以很容易地从组件权限声明中清晰地获取到组件的权限使用内容;可快速定位到存在过度索权行为的业务组件,缩短排查时间。
进一步地,所述对所述应用的各业务组件的组件权限声明进行校验具体为:
在构建应用时,分别对所述应用的各业务组件进行解析,得到各业务组件的aar包;
分别对各业务组件的aar包进行解析,得到各业务组件对应的实际权限列表;
判断各业务组件对应的实际权限列表是否与其对应的组件权限声明匹配;
若不匹配,则判定校验不通过,阻断所述应用的构建,并进行提示;
若匹配,则判定校验通过。
由上述描述可知,通过对各业务组件的组件权限声明进行校验,提高组件权限声明的准确性。
进一步地,所述根据所述应用的应用权限声明,对所述应用进行过度索权检测之后,进一步包括:
收集所述应用的权限使用情况。
由上述描述可知,通过收集权限的使用场景,后续可以方便地导出各个应用的权限使用情况,方便应用通过公安部的审计。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
实施例一
请参照图2-4,本发明的实施例一为:一种应用过度索权的检测方法,适用于Android与iOS平台中模块化拼装的移动应用,如图2所示,所述方法包括如下步骤:
S1:对所有权限进行声明,得到权限声明总库,即将可以允许应用使用的所有权限进行统一的声明。
具体地,在实际应用场景中,可开发一个在线的编辑器,用于定义iOS和Android的权限声明,其具体内容如下,将所有允许应用使用的权限在此页面进行实时保存。具体实现逻辑:development的分支对应一份保存在服务端的xml定义文件,在前端读取这份文件,进行解析,管理员可以对这个份文件进行修改,然后进行提测。提测之后会生成一份对应的test文件,当验证这份文件声明确认可行之后(可以用这份文件进行Jenkins构建,通过构建,即可验证其可行性),发布为正式版本,此时服务端生成一份对应的正式配置文件,所有的应用进行集成的时候都使用这份文件。
S2:从所述权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成所述业务组件的组件权限声明;即在业务组件的xml声明中,定义权限声明格式,然后从权限声明总库中选择部分的权限声明进行声明使用,并声明要使用该权限的原因。
进一步地,所述权限声明格式可包括如下字段:name、describe、isAsk和closeable。其中,name表示权限的名称,describe表示调用权限的原因或目的,isAsk表示是否在使用权限时进行询问,closeable表示是否可以关闭权限。如图3所示,其中,ios与android节点中scenes节点中的每个scene节点中,name为属性的key,映射到权限声明总库中的的property的name,说明该业务组件含有该权限。
在实际使用场景中,可先由开发人员选择业务组件对应的权限,后续进行集成打包时会根据业务组件代码中的实际权限对所选择的权限进行校验。
S3:根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明。
具体地,可通过应用编辑器来编辑应用,在应用编辑器中配置业务组件时,会加载业务组件的xml定义内容,即业务组件的组件权限声明,可以根据添加的移动业务组件的组件权限声明,实时统计出应用当前状态下,Android/iOS应用有哪些权限,每个权限是哪些移动业务组件使用的,以及使用原因;当该应用所需的业务组件都配置完成后,即可统计得到该应用的应用权限声明。
S4:根据各业务组件对应的实际权限,对所述应用的各业务组件的组件权限声明进行校验,判断校验是否通过,若是,则执行步骤S6,若否,则执行步骤S5。即在编辑完应用后,进行集成打包时,Jenkins构建工具的验证权限插件会对权限进行校验,判断各业务组件的组件权限声明是否有遗漏,是否存在代码中有声明但组件权限声明中未声明的权限。
具体地,分别对所述应用的各业务组件进行解析,得到各业务组件的aar包;然后分别对各业务组件的aar包进行解析,得到各业务组件对应的实际权限列表;然后分别判断各业务组件对应的实际权限列表是否与其对应的组件权限声明匹配;若不匹配,则判定校验不通过;若匹配,则判定校验通过。
S5:判定校验不通过,阻断所述应用的构建,并进行提示。
S6:判定校验通过,根据所述应用的应用权限声明,对所述应用进行过度索权检测。应用权限声明相当于聚合该应用的所有业务组件的索权列表,在应用中进行统一的声明,如图4所示,一个权限可能对应多个业务组件,通过判断各业务组件在实际场景中是否需要使用该权限(例如可创建业务组件对应的权限白名单或权限黑名单),来判断是否存在过度索权的情况。
由于应用的构建需要花费较长的时间,因此在应用构建之前,编辑应用时就统计得到应用权限声明,校验通过后即可根据应用权限声明进行过度索权的检测,而无需等到应该构建完成后再进行检测,可提高检测效率。
进一步地,在应用的实际使用过程中,收集所述应用的权限使用情况。通过收集权限的使用场景,后续可以方便地导出各个应用的权限使用情况,方便应用通过公安部的审计,即使有问题,也可以方便地找各个业务组件做出对应解释。
本实施例通过将原来位于代码中的权限声明抽离到组件权限声明中,使外部使用者可以很容易地从组件权限声明中清晰地获取到组件的权限使用内容。通过统计得到应用的应用权限声明,清楚地表示出每个权限是由哪些业务组件声明需要添加的以及业务组件使用权限的使用原因,当出现没必要使用到的权限却被声明的时候可以快速定位到业务组件,缩短排查时间,降低排查难度。通过Jenkins构建工具的验证权限插件,校验并收集权限的使用场景,后续可以方便地导出各个应用的权限使用情况,方便应用通过公安部的审计,即使有问题,也可以方便地找各个业务组件做出对应解释。
实施例二
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如下步骤:
对所有权限进行声明,得到权限声明总库;
从所述权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成所述业务组件的组件权限声明,所述组件权限声明包括所述业务组件可使用的权限及其使用原因;
根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明,所述应用权限声明包括所述应用可使用的权限、各权限对应的业务组件以及使用原因;
对所述应用的各业务组件的组件权限声明进行校验;
若校验通过,则根据所述应用的应用权限声明,对所述应用进行过度索权检测。
进一步地,所述对所述应用的各业务组件的组件权限声明进行校验具体为:
在构建应用时,分别对所述应用的各业务组件进行解析,得到各业务组件的aar包;
分别对各业务组件的aar包进行解析,得到各业务组件对应的实际权限列表;
判断各业务组件对应的实际权限列表是否与其对应的组件权限声明匹配;
若不匹配,则判定校验不通过,阻断所述应用的构建,并进行提示;
若匹配,则判定校验通过。
进一步地,所述根据所述应用的应用权限声明,对所述应用进行过度索权检测之后,进一步包括:
收集所述应用的权限使用情况。
综上所述,本发明提供的一种应用过度索权的检测方法及计算机可读存储介质,通过生成所述业务组件的组件权限声明,将原来位于代码中的权限声明抽离到组件权限声明中,使外部使用者可以很容易地从组件权限声明中清晰地获取到组件的权限使用内容;通过统计得到应用的应用权限声明,可快速定位到存在过度索权行为的业务组件,缩短排查时间,降低排查难度;通过声明使用原因,可方便地得知组件使用权限的原因,且可作为权限使用依据,便于进行过度索权的检测;通过对各业务组件的组件权限声明进行校验,提高组件权限声明的准确性。本发明可对应用中存在过度索权的行为的业务组件进行精确定位。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (6)

1.一种应用过度索权的检测方法,其特征在于,包括:
对所有权限进行声明,得到权限声明总库;
从所述权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成所述业务组件的组件权限声明,所述组件权限声明包括所述业务组件可使用的权限及其使用原因;
根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明,所述应用权限声明包括所述应用可使用的权限、各权限对应的业务组件以及使用原因;
对所述应用的各业务组件的组件权限声明进行校验;
若校验通过,则根据所述应用的应用权限声明,对所述应用进行过度索权检测。
2.根据权利要求1所述的应用过度索权的检测方法,其特征在于,所述对所述应用的各业务组件的组件权限声明进行校验具体为:
在构建应用时,分别对所述应用的各业务组件进行解析,得到各业务组件的aar包;
分别对各业务组件的aar包进行解析,得到各业务组件对应的实际权限列表;
判断各业务组件对应的实际权限列表是否与其对应的组件权限声明匹配;
若不匹配,则判定校验不通过,阻断所述应用的构建,并进行提示;
若匹配,则判定校验通过。
3.根据权利要求1所述的应用过度索权的检测方法,其特征在于,所述根据所述应用的应用权限声明,对所述应用进行过度索权检测之后,进一步包括:
收集所述应用的权限使用情况。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如下步骤:
对所有权限进行声明,得到权限声明总库;
从所述权限声明总库中选择业务组件对应的权限,并根据预设的权限声明格式,生成所述业务组件的组件权限声明,所述组件权限声明包括所述业务组件可使用的权限及其使用原因;
根据应用所需的业务组件,编辑应用,并根据所述应用包含的业务组件的组件权限声明,生成所述应用的应用权限声明,所述应用权限声明包括所述应用可使用的权限、各权限对应的业务组件以及使用原因;
对所述应用的各业务组件的组件权限声明进行校验;
若校验通过,则根据所述应用的应用权限声明,对所述应用进行过度索权检测。
5.根据权利要求4所述的计算机可读存储介质,其特征在于,所述对所述应用的各业务组件的组件权限声明进行校验具体为:
在构建应用时,分别对所述应用的各业务组件进行解析,得到各业务组件的aar包;
分别对各业务组件的aar包进行解析,得到各业务组件对应的实际权限列表;
判断各业务组件对应的实际权限列表是否与其对应的组件权限声明匹配;
若不匹配,则判定校验不通过,阻断所述应用的构建,并进行提示;
若匹配,则判定校验通过。
6.根据权利要求4所述的计算机可读存储介质,其特征在于,所述根据所述应用的应用权限声明,对所述应用进行过度索权检测之后,进一步包括:
收集所述应用的权限使用情况。
CN201910967597.XA 2019-10-12 2019-10-12 应用过度索权的检测方法及计算机可读存储介质 Active CN110837360B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910967597.XA CN110837360B (zh) 2019-10-12 2019-10-12 应用过度索权的检测方法及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910967597.XA CN110837360B (zh) 2019-10-12 2019-10-12 应用过度索权的检测方法及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN110837360A true CN110837360A (zh) 2020-02-25
CN110837360B CN110837360B (zh) 2023-04-07

Family

ID=69575184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910967597.XA Active CN110837360B (zh) 2019-10-12 2019-10-12 应用过度索权的检测方法及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN110837360B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104462970A (zh) * 2014-12-17 2015-03-25 中国科学院软件研究所 一种基于进程通信的Android应用程序权限滥用检测方法
CN104636665A (zh) * 2015-02-03 2015-05-20 南京理工大学 一种Android应用程序的描述和匹配方法
US20170076099A1 (en) * 2014-02-21 2017-03-16 Beijing Qihoo Technology Company Limited An access method and apparatus for an application program based on an intelligent terminal device
CN106951786A (zh) * 2017-03-30 2017-07-14 国网江苏省电力公司电力科学研究院 面向安卓平台的移动应用权限安全分析方法
CN107169320A (zh) * 2017-04-20 2017-09-15 北京小米移动软件有限公司 校验方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170076099A1 (en) * 2014-02-21 2017-03-16 Beijing Qihoo Technology Company Limited An access method and apparatus for an application program based on an intelligent terminal device
CN104462970A (zh) * 2014-12-17 2015-03-25 中国科学院软件研究所 一种基于进程通信的Android应用程序权限滥用检测方法
CN104636665A (zh) * 2015-02-03 2015-05-20 南京理工大学 一种Android应用程序的描述和匹配方法
CN106951786A (zh) * 2017-03-30 2017-07-14 国网江苏省电力公司电力科学研究院 面向安卓平台的移动应用权限安全分析方法
CN107169320A (zh) * 2017-04-20 2017-09-15 北京小米移动软件有限公司 校验方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李江华等: ""Android恶意软件检测方法研究综述"", 《计算机应用研究》 *

Also Published As

Publication number Publication date
CN110837360B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
Grishchenko et al. Foundations and tools for the static analysis of ethereum smart contracts
CN105550594B (zh) 安卓应用文件的安全性检测方法
CN109032825B (zh) 一种故障注入方法、装置及设备
CN108536451A (zh) 应用程序的埋点注入方法和装置
CN110704306A (zh) 测试中的断言处理方法、装置、设备及存储介质
Monteiro et al. Bounded model checking of C++ programs based on the Qt cross‐platform framework
Chen et al. Veriws: a tool for verification of combined functional and non-functional requirements of web service composition
CN112395184A (zh) 一种信息获取方法、设备和计算机存储介质
CN111260336B (zh) 基于规则引擎的业务核对方法、装置及设备
CN110837360B (zh) 应用过度索权的检测方法及计算机可读存储介质
Bloem et al. Model-based MCDC testing of complex decisions for the java card applet firewall
CN111258562A (zh) Java代码质量检查方法、装置、设备和存储介质
Laranjeiro et al. Improving web services robustness
Wendland et al. Model-based testing in legacy software modernization: an experience report
CN110389897A (zh) Sdk逻辑测试方法、装置、存储介质及服务器
Gerasimou et al. On software modernisation due to library obsolescence
CN113672233B (zh) 一种基于Redfish的服务器带外管理方法、装置及设备
Yu et al. Systematic scenario-based analysis of UML design class models
Abdelfattah et al. Towards Security-Aware Microservices: On Extracting Endpoint Data Access Operations to Determine Access Rights [Towards Security-Aware Microservices: On Extracting Endpoint Data Access Operations to Determine Access Rights]
Buffoni et al. Traceability and impact analysis in requirement verification
CN114153435A (zh) 一种用于智能合约代码设计生成的eb2s系统及使用方法
Zeng et al. Test reactive systems with büchi-automaton-based temporal requirements
Kim et al. A multi-view API impact analysis for open SPL platform
Yu et al. Research on application’s credibility verification based on ABD
CN112363870B (zh) 应用程序开发处理方法、装置、计算机设备和存储介质

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
GR01 Patent grant
GR01 Patent grant