CN114780952A - 敏感应用调用场景的检测方法、系统及存储介质 - Google Patents

敏感应用调用场景的检测方法、系统及存储介质 Download PDF

Info

Publication number
CN114780952A
CN114780952A CN202210234402.2A CN202210234402A CN114780952A CN 114780952 A CN114780952 A CN 114780952A CN 202210234402 A CN202210234402 A CN 202210234402A CN 114780952 A CN114780952 A CN 114780952A
Authority
CN
China
Prior art keywords
sensitive
class file
task
acquiring
file
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
CN202210234402.2A
Other languages
English (en)
Other versions
CN114780952B (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.)
Zhejiang Geely Holding Group Co Ltd
Hangzhou Youxing Technology Co Ltd
Original Assignee
Zhejiang Geely Holding Group Co Ltd
Hangzhou Youxing Technology Co 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 Zhejiang Geely Holding Group Co Ltd, Hangzhou Youxing Technology Co Ltd filed Critical Zhejiang Geely Holding Group Co Ltd
Priority to CN202210234402.2A priority Critical patent/CN114780952B/zh
Publication of CN114780952A publication Critical patent/CN114780952A/zh
Application granted granted Critical
Publication of CN114780952B publication Critical patent/CN114780952B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种敏感应用调用场景的检测方法、系统及存储介质,包括:构建class文件提取工具,用于通过执行compileJavaWithJavac任务,获取class文件;采集compileJavaWithJavac任务,通过class文件提取工具,获取class文件;解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;根据敏感权限和敏感方法,确定调用敏感方法的调用场景;本申请无需依赖应用运行时检测,在应用APK构建时,即可完成检测;无需关注本应用和三方库的业务逻辑,不会造成漏检现象;自动检测出三方库声明的敏感权限,减少人力排查成本。

Description

敏感应用调用场景的检测方法、系统及存储介质
技术领域
本申请涉及智能终端用户数据隐私保护技术领域,具体而言,涉及一种敏感应用调用场景的检测方法、系统及存储介质。
背景技术
为保护用户隐私,当应用程序在智能终端操作平台上访问用户隐私数据或者进行敏感操作时,以Android平台为例,必须要进行以下几个步骤:1.在AndroidManifest.xml中声明相应的具体权限;2.在访问敏感数据/进行敏感操作之前,请求用户授权对应的权限;3.调用系统敏感API,访问敏感数据/进行敏感操作。
在用户数据隐私保护趋严的前提下,应用程序需要明确自己的代码在哪些地方声明了哪些权限,调用了哪些系统敏感API,以此来规避合规风险。
针对敏感权限和方法的检测,当前各检测机构主要的检测方式有以下几步:1.通过Hook手段代理系统的敏感方法,在代理的方法里打印日志;2.通过自动化工具或者其他手段运行目标App,当目标App调用敏感方法时,会输出对应日志;3.根据输出的日志来确定哪些场景有调用敏感方法;4.解压缩App或三方库并查看其内部的AndroidManifest.xml,确定哪些场景声明了敏感权限。通过上述步骤,应用程序就可以得到目标应用App使用的敏感权限和方法,然后根据检查报告对一些业务逻辑进行合规排查。
当前主流的Hook敏感方法并输出日志的检测方式在检测过程中存在一些弊端,主要体现为:1.在检测敏感方法时,需要真正调用到敏感方法才能被检测出。如果业务逻辑过于复杂,就有可能覆盖不到具体调用的场景;2.大量三方库对敏感方法的调用时机无法把控,极易造成合规风险;3.每个三方库都需要手动查看AndroidManifest.xml才能确定其声明了哪些敏感权限;为了解决上述弊端,急需一种用于敏感应用调用场景的检测方法,以满足现有的技术需求。
发明内容
为了解决上述问题,本申请的目的是提供一种用于敏感应用调用场景的检测方法,用于解决不依赖应用运行时检测,静态检测出所有敏感方法的调用,以及自动检测出三方库声明的敏感权限和调用的敏感方法,无需了解其业务逻辑。
为了实现上述技术目的,本申请提供了一种敏感应用调用场景的检测方法,包括以下步骤:
构建class文件提取工具,class文件提取工具用于通过执行compileJavaWithJavac任务,获取class文件;
采集compileJavaWithJavac任务,通过class文件提取工具,获取class文件;
解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;
根据敏感权限和敏感方法,确定调用敏感方法的调用场景。
优选地,在采集compileJavaWithJavac任务的过程中,通过采集compileJavaWithJavac任务的输入和输出,获取源代码、三方库代码以及class文件,其中,源代码和三方库代码用于被编译成class文件;
获取源代码和三方库代码分别对应的xml文件并进行解析,获取敏感权限。
优选地,在采集compileJavaWithJavac任务的输入和输出的过程中,通过在compileJavaWithJavac任务的前后分别插入两个新的Task,插入在前边的Task的第一输入用于表示compileJavaWithJavac任务的输入,插入在后边的Task的第二输入用于表示compileJavaWithJavac任务的输出。
优选地,在采集compileJavaWithJavac任务的输入和输出的过程中,输入包括:Java文件、Jar文件、AAR文件、R文件、Json输出文件;输出为class文件。
优选地,在获取敏感权限的过程中,基于源代码和三方库代码对应的位置,获取xml文件,其中,xml文件用于表示AndroidManifest.xml文件;
通过解析xml文件,获取xml文件对应的内部声明的敏感权限,其中,通过匹配敏感权限对应的配置的xml文件,判断解析过程的准确性。
优选地,在获取xml文件的过程中,通过Java文件和AAR文件对应的位置,获取xml文件。
优选地,在解析class文件的过程中,通过解析工具,提取class文件的class类的方法调用,获取敏感方法,并在敏感方法的调用处进行字节码插桩,输出相应日志,其中,相应日志用于获取调用场景,字节码插桩用于在App运行检测时,不通过Hook系统方法,获取敏感方法的调用记录;和/或,使用Javaassist工具解析class文件。
优选地,在获取class文件的过程中,通过Gradle Transform获取class文件;
解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;
根据敏感权限和敏感方法,确定调用敏感方法的调用场景。
本发明还公开了一种检测系统,检测系统用于实现敏感应用调用场景的检测方法,检测系统包括:
class文件获取模块,用于构建class文件提取工具,class文件提取工具用于通过执行compileJavaWithJavac任务,获取class文件;
任务提取模块,用于采集compileJavaWithJavac任务,通过class文件提取工具,获取class文件;
解析模块,用于解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;
检测模块,用于根据敏感权限和敏感方法,确定调用敏感方法的调用场景。
本发明公开了一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器执行时能够实现上述敏感应用调用场景的检测方法的步骤。
本申请公开了以下技术效果:
无需依赖应用运行时检测,在应用APK构建时,即可完成检测;无需关注本应用和三方库的业务逻辑,不会造成漏检现象;自动检测出三方库声明的敏感权限,减少人力排查成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例的检测方法流程图。
图2是本申请所述的Android应用的构建流程示意图;
图3是本申请所述的技术流程示意图。
具体实施方式
下为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请一实施例的检测方法流程图。
如图1所示,本申请提供了一种敏感应用调用场景的检测方法,包括以下步骤:
构建class文件提取工具,class文件提取工具用于通过执行compileJavaWithJavac任务,获取class文件;
采集compileJavaWithJavac任务,通过class文件提取工具,获取class文件;
解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;
根据敏感权限和敏感方法,确定调用敏感方法的调用场景。
进一步优选地,在采集compileJavaWithJavac任务的过程中,通过采集compileJavaWithJavac任务的输入和输出,获取源代码、三方库代码以及class文件,其中,源代码和三方库代码用于被编译成class文件;
获取源代码和三方库代码分别对应的xml文件并进行解析,获取敏感权限。
进一步优选地,在采集compileJavaWithJavac任务的输入和输出的过程中,通过在compileJavaWithJavac任务的前后分别插入两个新的Task,插入在前边的Task的第一输入用于表示compileJavaWithJavac任务的输入,插入在后边的Task的第二输入用于表示compileJavaWithJavac任务的输出。
进一步优选地,在采集compileJavaWithJavac任务的输入和输出的过程中,输入包括:Java文件、Jar文件、AAR文件、R文件、Json输出文件;输出为class文件。
优选地,在获取敏感权限的过程中,基于源代码和三方库代码对应的位置,获取xml文件,其中,xml文件用于表示AndroidManifest.xml文件;
通过解析xml文件,获取xml文件对应的内部声明的敏感权限,其中,通过匹配敏感权限对应的配置的xml文件,判断解析过程的准确性。
进一步优选地,在获取xml文件的过程中,通过Java文件和AAR文件对应的位置,获取xml文件。
进一步优选地,在解析class文件的过程中,通过解析工具,提取class文件的class类的方法调用,获取敏感方法,并在敏感方法的调用处进行字节码插桩,输出相应日志,其中,相应日志用于获取调用场景,字节码插桩用于在App运行检测时,不通过Hook系统方法,获取敏感方法的调用记录;和/或,使用Javaassist工具解析class文件。
进一步优选地,在获取class文件的过程中,通过Gradle Transform获取class文件;
解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;
根据敏感权限和敏感方法,确定调用敏感方法的调用场景。
图2是本申请所述的Android应用的构建流程示意图;图3是本申请所述的技术流程示意图。
请同时参考图2和图3,进一步地,用于实现敏感应用调用场景的检测方法的检测系统包括:
class文件获取模块,用于构建class文件提取工具,class文件提取工具用于通过执行compileJavaWithJavac任务,获取class文件;
任务提取模块,用于采集compileJavaWithJavac任务,通过class文件提取工具,获取class文件;
解析模块,用于解析class文件,记录class文件调用的敏感方法以及分析class文件是否有调用依赖库声明的敏感权限;
检测模块,用于根据敏感权限和敏感方法,确定调用敏感方法的调用场景。
针对现有的主流检测方式的不足,本申请不依赖运行时检测,无需关注应用或者三方库的业务逻辑,在构建应用APK时即可检测出所有调用系统敏感方法的场景。在检测声明的敏感权限时,能自动检测出所有三方库各自声明的敏感权限,无需再手动解压缩三方库去检测。
本申请能够不依赖应用运行时检测的关键在于:在构建应用APK时,构建工具会执行compileJavaWithJavac任务,在执行上述任务之后,会得到所有的Class文件,通过解析所有Class文件并分析是否有调用敏感权限,本申请就可以确定具体有哪些场景在调用敏感方法。同理,在构建时,本申请也能找到所有依赖库的AndroidManifest.xml,依次解析此文件即可知道依赖库声明的敏感权限。
请继续参考图2,在一实施例中,Android应用的构建流程如图2所示,由图可以看出应用项目中的所有源代码和引用的三方库代码在构建时都会被编译。
本申请提到的AndroidManifest.xml:Android项目的应用清单,每个应用项目必须在项目源设置的根目录中加入AndroidManifest.xml文件(且必须使用此名称)。清单文件会向Android构建工具、Android操作系统描述应用的基本信息,其中包括应用为访问系统或其他应用的受保护部分所需的权限。
请继续参考图3,在编译过程中,通过compileJavaWithJavac的输入和输出,本申请能获取到编译之前的源代码/三方库代码和编译之后的class文件,然后做以下操作:
1.通过源代码/三方库代码所在的位置,找到AndroidManifest.xml,解析此文件,记录其声明的敏感权限;
2.解析获取到的class文件,记录其调用的敏感方法,并在调用位置利用字节码插桩方式输出日志;(在构建应用APK时,构建工具会执行compileJavaWithJavac任务,在执行上述任务之后,会得到所有的Class文件)
3.根据匹配记录生成对应的检测报告。
1)获取compileJavaWithJavac任务的输入和输出
本申请主要通过以下方式来获取compileJavaWithJavac任务的输入和输出:在Android应用编译构建的所有Task里找到compileJavaWithJavac任务,利用Task的dependsOn强依赖方式,在上述任务前后分别插入两个新的Task,那么插入在前边的Task的输入即为compileJavaWithJavac任务的输入,插入在后边的Task的输入即为compileJavaWithJavac任务的输出。
CompileJavaWithJavac任务的输入和输出主要有以下几点:
输入:
1.项目中的Java文件;
2.项目中依赖的三方库:Jar/AAR文件;
3.项目自动生成的R文件;
4.上一个任务的Json输出文件。
输出:
1.编译生成的class文件。
2)检测敏感权限
在检测敏感权限时,首先要找到AndroidManifest.xml,只有项目源代码和AAR格式的的三方库才对应有此文件。所以针对compileJavaWithJavac任务的输入,本申请只需要分析项目中的Java文件和依赖的AAR三方库文件即可。主要步骤如下:
1.根据Java文件和AAR文件的路径找到对应的AndroidManifest.xml文件的路径;
2.解析AndroidManifest.xml,根据配置匹配对应的敏感权限,如果命中,进行相应记录。
如果是Java文件,那么对应的输入类似为:/项目路径/app/src/main/java/com/test/Test.java;
可以找到与之对应的AndroidManifest.xml:/项目路径/app/src/main/AndroidManifest.xml。
如果是AAR文件,那么对应的输入类似为:/gradle安装目录/caches/transforms-1/files-1.1/support-fragment-27.1.1.aar/b06dbb34e74a754e073c7400f08d827f/jars/classes.jar;可以找到与之对应的AndroidManifest.xml:/gradle安装目录/caches/transforms-1/files-1.1/support-fragment-27.1.1.aar/b06dbb34e74a754e073c7400f08d827f/AndroidManifest.xml。
在检测时,本申请只需要解析XML文件,然后拿到其内部声明的所有权限,和配置进行匹配并记录即可。
3)检测敏感方法
compileJavaWithJavac任务的输出目录如下所示:/项目路径/app/build/intermediates/classes/debug。目录里包含了所有的class文件,包含本申请自己的业务源代码和依赖的三方库代码。
在检测敏感方法时,主要步骤如下:
1.使用Javaassist等工具,依次解析compileJavaWithJavac任务输出的class文件;
2.获取class类中的方法调用,查看是否命中配置的敏感方法,如果命中,进行相应记录;
3.并在敏感方法的调用处进行字节码插桩,输出相应日志。
其中字节码插桩的目的是:如果还有需要在App运行时检测,无需Hook系统方法,即可拿到敏感方法的调用记录。
基于上述原理,本申请只需要在应用构建之前配置好需要检测的敏感权限/方法,然后进行项目编译构建,构建结束后即可拿到检测报告。
本申请中通过compileJavaWithJavac任务的输出来获取所有的class文件并进行检测。在获取所有class文件时,本申请也可以利用GradleTransform来获取所有的class文件。Transform是Android官方提供给开发者在项目构建阶段(.class->.dex转换期间)用来修改.class文件的一套标准API,通过此API,本申请也可以在构建时拿到所有的class文件。
本申请还提供一种智能终端设备,终端设备包括存储器、处理器,存储器上存储有应用程序,应用程序被处理器执行时实现上述任一实施例的检测方法的步骤。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例的方法的步骤。
在本申请提供的移动终端和计算机可读存储介质的实施例中,包含了上述用于敏感应用调用场景的检测方法各实施例的全部技术特征,说明书拓展和解释内容与上述方法的各实施例基本相同,在此不做再赘述。
本申请实施例还提供一种计算机程序产品,计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如上各种可能的实施方式中的方法。
本申请实施例还提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
在本申请中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
需要说明的是,在本文中,采用了诸如S10、S20等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S20后执行S10等,但这些均应在本申请的保护范围之内。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种敏感应用调用场景的检测方法,其特征在于,包括以下步骤:
构建class文件提取工具,所述class文件提取工具用于通过执行compileJavaWithJavac任务,获取class文件;
采集所述compileJavaWithJavac任务,通过所述class文件提取工具,获取所述class文件;
解析所述class文件,记录所述class文件调用的敏感方法以及分析所述class文件是否有调用依赖库声明的敏感权限;
根据所述敏感权限和所述敏感方法,确定调用所述敏感方法的调用场景。
2.根据权利要求1所述的检测方法,其特征在于:
在采集所述compileJavaWithJavac任务的过程中,通过采集所述compileJavaWithJavac任务的输入和输出,获取源代码、三方库代码以及所述class文件,其中,所述源代码和三方库代码用于被编译成所述class文件;
获取所述源代码和所述三方库代码分别对应的xml文件并进行解析,获取所述敏感权限。
3.根据权利要求2所述的检测方法,其特征在于:
在采集所述compileJavaWithJavac任务的输入和输出的过程中,通过在所述compileJavaWithJavac任务的前后分别插入两个新的Task,插入在前边的所述Task的第一输入用于表示所述compileJavaWithJavac任务的输入,插入在后边的所述Task的第二输入用于表示所述compileJavaWithJavac任务的输出。
4.根据权利要求2所述的检测方法,其特征在于:
在采集所述compileJavaWithJavac任务的输入和输出的过程中,所述输入包括:Java文件、Jar文件、AAR文件、R文件、Json输出文件;所述输出为所述class文件。
5.根据权利要求4所述的检测方法,其特征在于:
在获取所述敏感权限的过程中,基于所述源代码和所述三方库代码对应的位置,获取所述xml文件,其中,所述xml文件用于表示AndroidManifest.xml文件;
通过解析所述xml文件,获取所述xml文件对应的内部声明的所述敏感权限,其中,通过匹配所述敏感权限对应的配置的所述xml文件,判断解析过程的准确性。
6.根据权利要求4所述的检测方法,其特征在于:
在获取所述xml文件的过程中,通过所述Java文件和所述AAR文件对应的位置,获取所述xml文件。
7.根据权利要求1-6任一项所述的检测方法,其特征在于:
在解析所述class文件的过程中,通过解析工具,提取所述class文件的class类的方法调用,获取所述敏感方法,并在所述敏感方法的调用处进行字节码插桩,输出相应日志,其中,所述相应日志用于获取所述调用场景,所述字节码插桩用于在App运行检测时,不通过Hook系统方法,获取所述敏感方法的调用记录;和/
或,使用Javaassist工具解析所述class文件。
8.根据权利要求1-6任一项所述的检测方法,其特征在于:
在获取所述class文件的过程中,通过Gradle Transform获取所述class文件;
解析所述class文件,记录所述class文件调用的所述敏感方法以及分析所述class文件是否有调用所述依赖库声明的所述敏感权限;
根据所述敏感权限和所述敏感方法,确定调用所述敏感方法的所述调用场景。
9.一种检测系统,其特征在于,所述检测系统用于实现如权利要求1-8任一项所述敏感应用调用场景的检测方法,所述检测系统包括:
class文件获取模块,用于构建所述class文件提取工具,所述class文件提取工具用于通过执行所述compileJavaWithJavac任务,获取所述class文件;
任务提取模块,用于采集所述compileJavaWithJavac任务,通过所述class文件提取工具,获取所述class文件;
解析模块,用于解析所述class文件,记录所述class文件调用的所述敏感方法以及分析所述class文件是否有调用依赖库声明的所述敏感权限;
检测模块,用于根据所述敏感权限和所述敏感方法,确定调用所述敏感方法的所述调用场景。
10.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的敏感应用调用场景的检测方法的步骤。
CN202210234402.2A 2022-03-09 2022-03-09 敏感应用调用场景的检测方法、系统及存储介质 Active CN114780952B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210234402.2A CN114780952B (zh) 2022-03-09 2022-03-09 敏感应用调用场景的检测方法、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210234402.2A CN114780952B (zh) 2022-03-09 2022-03-09 敏感应用调用场景的检测方法、系统及存储介质

Publications (2)

Publication Number Publication Date
CN114780952A true CN114780952A (zh) 2022-07-22
CN114780952B CN114780952B (zh) 2024-08-20

Family

ID=82422543

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210234402.2A Active CN114780952B (zh) 2022-03-09 2022-03-09 敏感应用调用场景的检测方法、系统及存储介质

Country Status (1)

Country Link
CN (1) CN114780952B (zh)

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335655A (zh) * 2015-09-22 2016-02-17 南京大学 一种基于敏感行为识别的安卓应用安全性分析方法
US20160132679A1 (en) * 2014-11-12 2016-05-12 Nec Laboratories America, Inc. System and method for detecting sensitive user input leakages in software applications
US20160142437A1 (en) * 2014-11-17 2016-05-19 Samsung Electronics Co., Ltd. Method and system for preventing injection-type attacks in a web based operating system
US20160197950A1 (en) * 2015-01-05 2016-07-07 Rangecloud Information Technology Co., Ltd. Detection system and method for statically detecting applications
CN106598866A (zh) * 2016-12-22 2017-04-26 合肥国信车联网研究院有限公司 一种基于smali中间语言的静态检测系统及方法
CN108647517A (zh) * 2018-05-17 2018-10-12 华中科技大学 一种Android混合应用代码注入的漏洞检测系统及方法
US10114960B1 (en) * 2014-03-20 2018-10-30 Amazon Technologies, Inc. Identifying sensitive data writes to data stores
CN109684840A (zh) * 2018-12-20 2019-04-26 西安电子科技大学 基于敏感调用路径的Android恶意软件检测方法
KR20190043850A (ko) * 2017-10-19 2019-04-29 삼성전자주식회사 민감 데이터를 보호하기 위한 소스 코드 변환 디바이스 및 그 동작 방법
US10691810B1 (en) * 2019-09-16 2020-06-23 Fmr Llc Detecting vulnerabilities associated with a software application build
CN111353146A (zh) * 2020-05-25 2020-06-30 腾讯科技(深圳)有限公司 应用程序敏感权限的检测方法、装置、设备和存储介质
CN111353143A (zh) * 2020-02-27 2020-06-30 深圳市腾讯信息技术有限公司 敏感权限检测方法、装置及存储介质
CN111400757A (zh) * 2020-03-13 2020-07-10 西安电子科技大学 防止安卓第三方库中native代码泄露用户隐私的方法
CN112099840A (zh) * 2020-08-28 2020-12-18 广州掌淘网络科技有限公司 应用程序包中的特征提取方法及设备
CN114021142A (zh) * 2021-11-03 2022-02-08 广州链安科技有限公司 一种安卓应用程序漏洞检测方法

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10114960B1 (en) * 2014-03-20 2018-10-30 Amazon Technologies, Inc. Identifying sensitive data writes to data stores
US20160132679A1 (en) * 2014-11-12 2016-05-12 Nec Laboratories America, Inc. System and method for detecting sensitive user input leakages in software applications
US20160142437A1 (en) * 2014-11-17 2016-05-19 Samsung Electronics Co., Ltd. Method and system for preventing injection-type attacks in a web based operating system
US20160197950A1 (en) * 2015-01-05 2016-07-07 Rangecloud Information Technology Co., Ltd. Detection system and method for statically detecting applications
CN105335655A (zh) * 2015-09-22 2016-02-17 南京大学 一种基于敏感行为识别的安卓应用安全性分析方法
CN106598866A (zh) * 2016-12-22 2017-04-26 合肥国信车联网研究院有限公司 一种基于smali中间语言的静态检测系统及方法
KR20190043850A (ko) * 2017-10-19 2019-04-29 삼성전자주식회사 민감 데이터를 보호하기 위한 소스 코드 변환 디바이스 및 그 동작 방법
CN108647517A (zh) * 2018-05-17 2018-10-12 华中科技大学 一种Android混合应用代码注入的漏洞检测系统及方法
CN109684840A (zh) * 2018-12-20 2019-04-26 西安电子科技大学 基于敏感调用路径的Android恶意软件检测方法
US10691810B1 (en) * 2019-09-16 2020-06-23 Fmr Llc Detecting vulnerabilities associated with a software application build
CN111353143A (zh) * 2020-02-27 2020-06-30 深圳市腾讯信息技术有限公司 敏感权限检测方法、装置及存储介质
CN111400757A (zh) * 2020-03-13 2020-07-10 西安电子科技大学 防止安卓第三方库中native代码泄露用户隐私的方法
CN111353146A (zh) * 2020-05-25 2020-06-30 腾讯科技(深圳)有限公司 应用程序敏感权限的检测方法、装置、设备和存储介质
CN112099840A (zh) * 2020-08-28 2020-12-18 广州掌淘网络科技有限公司 应用程序包中的特征提取方法及设备
CN114021142A (zh) * 2021-11-03 2022-02-08 广州链安科技有限公司 一种安卓应用程序漏洞检测方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
JOVANOVIC N ET AL.: "Static analysis for detecting taint-style vulnerabilities in web applications", JOURNAL OF COMPUTER SECURITY, vol. 18, no. 5, 16 August 2010 (2010-08-16), XP055689182, DOI: 10.3233/JCS-2009-0385 *
仲星球;曾凡平;程志超;谢念念;秦晓霞;郭树利;: "检测Android应用的权限提升漏洞", 电子技术, no. 06, 25 June 2017 (2017-06-25) *
徐玄骥 等: "基于多维度特征的Android恶意软件检测方法", 通信技术, vol. 54, no. 5, 10 May 2021 (2021-05-10) *
胡英杰;张琳琳;赵楷;方文波;于媛尔;: "基于静态污点分析的Android隐私泄露检测方法研究", 信息安全学报, no. 05, 15 September 2020 (2020-09-15) *
黄浩华;崔展齐;潘敏学;王林章;李宣东;: "静动态结合的恶意Android应用自动检测技术", 信息安全学报, no. 04, 15 October 2017 (2017-10-15) *

Also Published As

Publication number Publication date
CN114780952B (zh) 2024-08-20

Similar Documents

Publication Publication Date Title
CN108614707B (zh) 静态代码检查方法、装置、存储介质和计算机设备
KR101921052B1 (ko) 바이너리에 대한 보안 취약점 및 그 원인 위치의 식별 방법 및 그 장치
NL2029881B1 (en) Methods and apparatus for automatic detection of software bugs
CN101473301A (zh) 迭代静态和动态软件分析
US20130179867A1 (en) Program Code Analysis System
CN111124870A (zh) 一种接口测试方法及装置
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
CN112925524A (zh) 一种检测驱动程序中不安全直接存储器访问的方法及装置
CN111221721A (zh) 一种单元测试案例自动化录制和执行方法及装置
CN110287700B (zh) 一种iOS应用安全分析方法及装置
CN111240987A (zh) 移植程序检测方法、装置、电子设备及计算机可读存储介质
CN116450533B (zh) 用于应用程序的安全检测方法、装置、电子设备和介质
CN114328168A (zh) 异常检测方法、装置、计算机设备和存储介质
CN111258562A (zh) Java代码质量检查方法、装置、设备和存储介质
CN113127367B (zh) Android动态权限申请的缺陷检测方法
CN114780952B (zh) 敏感应用调用场景的检测方法、系统及存储介质
CN111309311B (zh) 一种漏洞检测工具生成方法、装置、设备及可读存储介质
CN114417347A (zh) 应用程序的漏洞检测方法、装置、设备、存储介质和程序
CN113132346A (zh) 一种移动应用信息窃取回传主控地址的检测方法及系统
Xiao et al. Performing high efficiency source code static analysis with intelligent extensions
CN116775040B (zh) 实现代码疫苗的插桩方法及基于代码疫苗的应用测试方法
CN117992359B (zh) 服务化软件的观测方法、装置和电子设备
CN118445214B (zh) 基于代码文件修改的测例获取方法、装置、设备、介质及产品
CN112099838B (zh) 确定版本差异的方法、装置及存储介质
CN116136800A (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