CN114398673A - 应用程序的合规检测方法、装置、存储介质与电子设备 - Google Patents
应用程序的合规检测方法、装置、存储介质与电子设备 Download PDFInfo
- Publication number
- CN114398673A CN114398673A CN202111679503.2A CN202111679503A CN114398673A CN 114398673 A CN114398673 A CN 114398673A CN 202111679503 A CN202111679503 A CN 202111679503A CN 114398673 A CN114398673 A CN 114398673A
- Authority
- CN
- China
- Prior art keywords
- information
- detected
- application program
- compliance
- compliance detection
- 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 230
- 230000003068 static effect Effects 0.000 claims abstract description 66
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims abstract description 25
- 238000004088 simulation Methods 0.000 claims description 26
- 230000006399 behavior Effects 0.000 claims description 22
- 238000009434 installation Methods 0.000 claims description 18
- 238000013515 script Methods 0.000 claims description 16
- 238000000605 extraction Methods 0.000 claims description 7
- 238000005206 flow analysis Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 12
- 238000004458 analytical method Methods 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000003058 natural language processing Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012549 training 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/629—Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
Abstract
本公开提供一种应用程序的合规检测方法、装置、计算机可读存储介质与电子设备,涉及计算机技术领域。该应用程序的合规检测方法包括:从待检测应用程序的文件中提取静态信息;获取所述待检测应用程序在运行过程中的动态信息;根据所述合规检测条目对所述静态信息与所述动态信息进行检测,得到所述待检测应用程序的合规检测结果。本公开能够实现全面、准确的合规检测,提高合规检测结果的可信度。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用程序的合规检测方法、应用程序的合规检测装置、计算机可读存储介质与电子设备。
背景技术
合规检测是指检测应用程序是否符合相关的监管规定,以保证应用程序不存在安全隐患,不会对用户的隐私、财产等造成威胁。
相关技术中,难以对应用程序进行全面、准确的合规检测,导致合规检测结果的可信度不高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域技术人员已知的现有技术的信息。
发明内容
本公开提供一种应用程序的合规检测方法、应用程序的合规检测装置、计算机可读存储介质与电子设备,以至少在一定程度上提高合规检测结果的可信度。
根据本公开的第一方面,提供一种应用程序的合规检测方法,包括:从待检测应用程序的文件中提取静态信息;获取所述待检测应用程序在运行过程中的动态信息;根据所述合规检测条目对所述静态信息与所述动态信息进行检测,得到所述待检测应用程序的合规检测结果。
根据本公开的第二方面,提供一种应用程序的合规检测装置,包括:静态信息提取单元,被配置为从待检测应用程序的文件中提取静态信息;动态信息提取单元,被配置为获取所述待检测应用程序在运行过程中的动态信息;合规检测单元,被配置为根据所述合规检测条目对所述静态信息与所述动态信息进行检测,得到所述待检测应用程序的合规检测结果。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面的应用程序的合规检测方法及其可能的实现方式。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述第一方面的应用程序的合规检测方法及其可能的实现方式。
本公开的技术方案具有以下有益效果:
通过获取待检测应用程序的静态信息与动态进行,并根据合规检测条目进行合规检测,使得合规检测条目与静态信息、动态信息具有紧密的联系,有利于实现全面、准确的合规检测,提高合规检测结果的可信度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施方式,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施方式,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本示例性实施方式中一种系统架构的示意图;
图2示出本示例性实施方式中一种应用程序的合规检测方法的流程图;
图3示出本示例性实施方式中一种获取静态信息的流程图;
图4示出本示例性实施方式中一种获取动态信息的流程图;
图5示出本示例性实施方式中一种对用户须知信息进行检测的流程图;
图6示出本示例性实施方式中一种针对隐私政策文本的检测示意图;
图7示出本示例性实施方式中一种针对权限的检测示意图;
图8示出本示例性实施方式中一种合规检测系统的软件架构图;
图9示出本示例性实施方式中一种应用程序的合规检测方法的交互流程图;
图10示出本示例性实施方式中一种应用程序的合规检测装置的结构示意图;
图11示出本示例性实施方式中一种电子设备的结构示意图。
具体实施方式
现在将参考附图描述本公开的示例性实施方式。然而,示例性实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例。提供这些实施方式使得本公开将更加全面和完整,并将示例性实施方式的构思全面地传达给本领域技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
目前,主流的操作系统(如iOS、Android系统)大多配置有较为成熟、完善的开发环境,降低了开发应用程序的难度,使得更多的开发者具备开发应用程序的能力与条件,但同时也带来了更高的风险。例如,部分小厂商或独立开发者可能缺乏安全开发规范,或者合规意识不强,容易写出有漏洞的代码,或者遗漏、误用安全措施以造成新的安全隐患。很多开发者会在应用程序中嵌入第三方SDK(Software Development Kit,软件开发工具包),SDK本身可能存在漏洞,甚至某些SDK存在恶意收集用户信息或执行攻击操作的情况,从而造成应用程序的安全隐患。
鉴于上述问题,本公开的示例性实施方式提供一种应用程序的合规检测方法。下面结合图1对本示例性实施方式运行环境的系统架构与应用场景进行示例性说明。
图1示出了系统架构的示意图,该系统架构100可以包括用户端110与服务端120。其中,用户端110可以是智能手机、平板电脑、台式电脑、笔记本电脑等终端设备,服务端120泛指提供本示例性实施方式中合规检测服务的后台系统,可以是一台服务器或多台服务器形成的集群。用户端110与服务端120之间可以通过有线或无线的通信链路形成连接,以进行数据交互。
在一种实施方式中,用户端110可以将待检测应用程序提交至服务端120,例如将待检测应用程序的安装文件上传至服务端120,服务端120执行本示例性实施方式中的应用程序的合规检测方法,对该待检测应用程序进行合规检测,并可以向用户端110返回检测结果。因此,上述应用程序的合规检测方法的执行主体可以是该服务端120,但本公开对此不做限定。
下面结合图2对本示例性实施方式中的应用程序的合规检测方法进行说明,图2示出了该应用程序的合规检测方法的示例性流程,可以包括:
步骤S210,从待检测应用程序的文件中提取静态信息;
步骤S220,获取待检测应用程序在运行过程中的动态信息;
步骤S230,根据合规检测条目对静态信息与动态信息进行检测,得到待检测应用程序的合规检测结果。
基于上述方法,通过获取待检测应用程序的静态信息与动态进行,并根据合规检测条目进行合规检测,使得合规检测条目与静态信息、动态信息具有紧密的联系,有利于实现全面、准确的合规检测,提高合规检测结果的可信度。
下面对图2中的每个步骤进行具体说明。
在步骤S210中,从待检测应用程序的文件中提取静态信息。
本示例性实施方式中,可以以某个待发布的应用程序或者某个应用程序的待发布版本作为待检测应用程序,但本公开不限定于此,例如也可以将已发布的应用程序作为待检测应用程序,进行合规检测。
待检测应用程序的文件可以是待检测应用程序的开发者所提交的文件,包括但不限于:安装文件,如APK(Android Package,Android应用程序包)、 EXE(Executable file,可执行文件)等格式的文件;日志文件,如记录有版本更新日志、安装日志的文件等;页面文件,如URL(Uniform Resource Locator,统一资源定位器)等格式的文件;其他的文本文件,如记录有应用程序的基本信息、应用程序的其他相关文字信息的文件等。需要说明的是,上述日志文件、页面文件等也可以包含在安装文件中,如安装文件是APK安装包,通过解压缩可以得到日志文件、页面文件等。
静态信息是指待检测应用程序中较为固定的信息。示例性的,可以提取以下几类静态信息,但本公开不限定于此。
应用程序的基本信息,如名称、占用存储空间的大小、版本号等;
应用程序的源代码,或者通过解析源代码所得到的其他相关信息,如敏感数据流向信息、权限配置信息等;
SDK统计信息,如应用程序所使用的第三方SDK的名称、数量等;
日志信息,如安装日志、版本更新日志等;
用户须知信息,是指应用程序中需要用户签署协议的文字信息,如用户隐私协议,用户须遵守的规定等。
通过对待检测应用程序的文件进行解析,可以得到上述静态信息。
在一种实施方式中,上述从待检测应用程序的文件中提取静态信息,可以包括以下步骤:
通过对待检测应用程序的安装文件进行反编译,得到待检测应用程序的源代码;
对源代码进行数据流分析,得到源代码中的敏感数据流向信息;
检测源代码中的权限配置信息。
以Android系统为例,待检测应用程序的安装文件可以是APK文件。首先对APK文件进行反编译得到其smali格式的源代码文件;然后,一方面,对该源代码进行数据流分析,例如可以对源代码中与敏感数据相关的API (Application Programming Interface,应用程序编程接口)进行分析,也可以对敏感数据的控制流进行分析等,得到待检测应用程序中的敏感数据流向信息;另一方面,检测源代码中的权限配置信息,例如可以检测源代码中关于相机权限、相册权限、麦克风权限、定位信息权限等的关键词,得到与这些权限相关的语句,并通过解析语句,得到权限配置信息。
在一种实施方式中,可以通过污点分析来实现上述对源代码的数据流分析与权限配置信息的检测。图3示出了一种从待检测应用程序的文件中提取静态信息的示例性流程,可以包括:
步骤S310,输入待检测应用程序的安装文件;
步骤S320,检测安装文件的格式是否正确,例如是否为APK文件,若否,则执行步骤S330,若是,则执行步骤S340;
步骤S330,反馈安装文件的格式不正确的信息,可以重新输入安装文件;
步骤S340,对安装文件进行反编译,得到smali源代码;
步骤S350,基于污点分析的配置信息对smali源代码进行污点分析;
步骤S360,污点分析后输出敏感数据流向信息与权限配置信息,此外还可以输出其他种类的分析信息,得到污点分析结果,该结果可以上传至云端,以在整理后进行后续的合规检测。
在一种实施方式中,可以从URL文件或文本文件中提取用户须知信息,还可以对用户须知信息进行编码,如通过嵌入(Embedding)的方式将用户须知信息的文本转换为对应的向量,以便于后续的合规检测处理。
继续参考图2,在步骤S220中,获取待检测应用程序在运行过程中的动态信息。
动态信息是指待检测应用程序在运行过程中产生的信息,可以随运行情况的不同而不同。示例性的,动态信息可以包括待检测应用程序在运行过程中的行为数据,用户在待检测应用程序中进行的操作不同,交互过程或内容不同,相应的行为数据也不同。
在一种实施方式中,参考图4所示,上述获取待检测应用程序在运行过程中的动态信息,可以包括以下步骤S410与S420:
步骤S410,运行待检测应用程序,并执行预先配置的模拟操作脚本;
步骤S420,收集待检测应用程序在运行过程中的行为数据,得到动态信息。
在待检测应用程序正式发布前,无法收集待检测应用程序实际运行的数据。模拟操作脚本用于模拟用户在待检测应用程序中的实际操作。由此,可以在用户未操作的情况下,模拟待检测应用程序的实际运行情况,从而收集有效的行为数据,解决无法在待检测应用程序发布前获取动态信息的问题。所收集的行为数据可以包括:模拟的用户操作数据,以及待检测应用程序进行响应的行为数据,如待检测应用程序响应用户操作的过程中调用用户信息的行为数据、与服务端进行交互的数据等。
本公开对于配置模拟操作脚本的具体方式不做限定,下面提供两种示例性方式:
方式一、确定与待检测应用程序类型相同的参考应用程序;获取参考应用程序中的操作信息,根据操作信息配置模拟操作脚本。
其中,参考应用程序可以是与待检测应用程序类型相同的其他应用程序,其可以是已发布并运营过一段时间的应用程序。例如,待检测应用程序是阅读类App,则可以在已发布的App中查找其他阅读类App,以作为参考应用程序。
获取参考应用程序中的操作信息,根据操作信息生成待检测应用程序中的模拟操作,并配置相应的模拟操作脚本。由此,可以通过从应用商店或其他相关途径获取参考应用程序的大数据,并进行分析与测试,从而实现了用户端与云端的结合,有利于得到全面、充分的模拟操作脚本,以实现多场景、多方面的合规检测。
方式二、基于待检测应用程序的每个可操作区域上的每种操作方式,生成多个操作事件;以每个操作事件为根节点,遍历根节点下的操作事件,生成模拟操作路径;根据模拟操作路径配置模拟操作脚本。
其中,待检测应用程序的每个可操作区域上的每种操作方式,能够遍历待检测应用程序中的所有操作方式,生成待检测应用程序中的所有操作事件。以每个操作事件为根节点,在所有操作事件中确定该根节点的子节点,并延伸至不同层级的子节点,从而得到操作事件树,该树中从根节点到每个叶子节点的路径即模拟操作路径。最后将模拟操作路径配置为相应的模拟操作脚本。
通过以上两种方式,均可以得到较为全面、充分的模拟操作脚本,以遍历待检测应用程序中所有可能的操作行为,便于在待检测应用程序的模拟运行过程中得到全面、充分的动态信息。
在一种实施方式中,可以获取待检测应用程序在不同场景下的行为数据,得到动态信息。场景具体可以包括:前台交互场景,前台静默场景,后台场景,锁屏场景,通讯场景等。示例性的,可以使待检测应用程序在上述不同场景下进行运行,并收集其行为数据,并将行为数据与场景进行关联,得到动态信息。由于相关规定可能对应用程序在不同场景下的行为做出具体要求,在后续的合规检测中,可以检测不同场景下的动态信息是否合规,有利于提高合规检测的精细化程度。
在一种实施方式中,可以在待检测应用程序的运行过程中,对待检测应用程序的网络通讯情况进行监测。示例性的,可以对访问的URL进行监测、对传输的数据进行监测等,监测结果表示待检测应用程序的通讯行为数据,可以添加到动态信息中。
通过步骤S210与S220,获取了静态信息与动态信息,完成了合规检测的数据准备。继续参考图2,在步骤S230中,根据合规检测条目对静态信息与动态信息进行检测,得到待检测应用程序的合规检测结果。
合规检测条目是指需要进行的合规检测项目。例如,按照某监管文件,可以确定以下合规检测条目:私自收集个人信息;超范围收集个人信息;私自共享给第三方;强制用户使用定向推送功能;不给权限不让用;频繁申请权限;过度索取权限;账号注销难;等等。在确定合规检测条目的情况下,可以检测静态信息与动态是否满足合规检测条目的要求,得到合规检测结果。
在一种实施方式中,可以根据合规检测条目生成对应的正则表达式。在步骤S230中,检测静态信息与动态信息是否满足正则表达式,即表示是否满足合规检测条目的要求。
在一种实施方式中,可以根据合规检测条目配置对应的黑名单或白名单,该黑名单或白名单可以是关于第三方SDK或URL等的名单。例如,可以预先配置第三方SDK的白名单,该白名单中的SDK均为已通过合规检测(或其他可信检测)的SDK。在步骤S230中,检测静态信息或动态信息中的SDK 是否均为白名单中的SDK,若存在白名单以外的SDK,则说明不合规,或需要对该白名单以外的SDK做进一步检测。又例如,可以预先配置URL的黑名单,该黑名单中的URL均不合规。在步骤S230中,检测静态信息或动态信息中是否存在该黑名单中的URL,若存在则说明不合规。
在一种实施方式中,可以根据合规检测条目训练对应的检测模型,如可以以每条合规检测条目训练对应的一个检测模型,也可以以多条合规检测条目合并训练对应的一个检测模型。在步骤S230中,可以将静态信息与动态信息输入经过训练的检测模型,输出合规检测结果。
示例性的,可以获取与用户须知信息相关的合规检测条目,并获取用户须知信息的样本,由人工按照合规检测条目检测这些样本是否满足要求,得到检测结果标签。然后利用用户须知信息的样本与检测结果标签训练用户须知信息的检测模型,如可以是NLP(Natural Language Processing,自然语言处理)模型。训练完成后,在步骤S230中,可以通过该检测模型检测静态信息中的用户须知信息是否合规。
应当理解,本示例性实施方式可以结合上述多种检测方式,如结合黑名单、正则表达式与检测模型来进行合规检测。
图5示出了一种对用户须知信息进行合规检测的示例性流程,可以包括:
步骤S510,输入用户须知信息;
步骤S520,对用户须知信息进行预处理,包括分词、词性还原、词干提取等,得到用户须知信息对应的文本嵌入信息;
步骤S530,基于合规检测条目对应的正则表达式,检测文本嵌入信息是否满足正则表达式,若否,则不合规,若是,则执行步骤S540;
步骤S540,基于合规检测条目对应的检测模型,对文本嵌入信息进行处理,以输出是否合规的结果,若否,则不合规,若是,则执行步骤S550;
步骤S550,输出用户须知信息合规的检测结果。
在一种实施方式中,上述根据合规检测条目对静态信息与动态信息进行检测,得到待检测应用程序的合规检测结果,可以包括以下步骤:
获取根据合规检测条目预先配置的多种检测模块;
根据静态信息与动态信息的类别,调用对应的检测模块对静态信息与动态信息进行检测,得到合规检测结果。
其中,每种检测模块可针对于一类信息进行合规检测。例如,检测模块可以包括:日志检测模块,第三方SDK检测模块,代码安全检测模块,动态安全检测模块,权限检测模块,隐私政策文本检测模块,通讯传输检测模块,内容安全检测模块,应用程序行为检测模块,数据安全检测模块等。检测模块中可以配置上述黑名单(或白名单)、正则表达式、检测模型中的一种或多种。
下面对几种检测模块进行示例性说明:
①第三方SDK检测模块。待检测应用程序的静态信息与动态信息中均可以包括与第三方SDK相关的信息。第三方SDK检测模块可以根据第三方SDK 的类别、归属、功能等对尽可能多的第三方SDK进行统计与记录,形成SDK 库,其中可以配置不合规SDK的黑名单,在合规检测中检测待检测应用程序是否包含黑名单中的SDK。另外,第三方SDK检测模块还可以检测SDK的权限行为,如所请求的权限、调用堆栈等信息,根据预先配置的正则表达式或检测模型等检测其是否合规。
②隐私政策文本检测模块。待检测应用程序的静态信息可以包括隐私政策文本,此外,也可以在动态信息中获取隐私政策文本,例如通过模拟首次登录,使待检测应用程序显示隐私政策的页面,并从中获取隐私政策文本。隐私政策文本检测模块可以通过NLP语义分析,对隐私政策文本进行拆解与分析,检测是否满足合规检测条目的要求。参考图6所示,合规检测条目要求隐私政策明确描述6种信息,隐私政策文本检测模块可以解析待检测应用程序的隐私政策文本中是否包含该6种信息的相关内容,如果包含,则相应项目的检测结果为通过,否则为不通过。
③通讯传输检测模块。可以对待检测应用程序运行过程中的网络通讯行为进行检测,实时将访问的URL进行检测,并且对传输的数据进行分析,包括但不限于:对流量进行分析,以检测是否存在不合规的信息收集情况;是否访问不合法网址,如可以检测地理位置信息;与网络通讯相关的调用堆栈的行为检测,可以与上述第三方SDK检测模块相结合,检测是待检测应用程序本身的请求还是第三方SDK的请求。
④权限检测模块。待检测应用程序的静态信息与动态信息中均可以包括权限相关的信息,如静态信息可以包括权限配置信息,动态信息可以包括权限调用信息等。权限检测模块可以检测待检测应用程序中与权限相关的信息是否合规,包括但不限于:检测在待检测应用程序的生命周期内,与权限相关的调用堆栈的行为,调用的SDK、调用次数等;检测待检测应用程序的权限使用场景。参考图7所示,权限检测模块可以检测待检测应用程序的权限使用行为,并分析对每种权限的使用是否合规。
在获取预先配置的检测模块的情况下,可以根据静态信息与动态信息的类别,调用对应的检测模块对静态信息与动态信息进行检测,得到合规检测结果。静态信息与动态信息均可以包括一类或多类信息,每一类别的信息对应一种检测模块,可以调用对应的检测模块进行检测。例如,静态信息包括日志信息、第三方SDK统计信息、权限配置信息,动态信息包括待检测应用程序的网络通讯行为数据,可以调用对应的日志检测模块,第三方SDK检测模块,权限检测模块,通讯传输检测模块分别对这几种类别的信息进行检测,并分别输出检测结果,通过汇总得到最终的合规检测结果。由此,可以针对性地调用检测模块,提高检测效率,减少开销。
在一种实施方式中,应用程序的合规检测方法还可以包括以下步骤:
将待检测应用程序运行时的用户界面投射至用户端,并接收用户端的反馈信息;该反馈信息用于添加至上述合规检测结果中。
其中,用户端可以由用户操作,通过人工检查待检测应用程序的用户界面,输出反馈信息,反馈信息即人工检查的结果,可视为对上述合规检测结果的补充。
图8示出了本示例性实施方式中合规检测系统的软件架构。该合规检测系统800可以包括检测引擎810、数据中台820、检测模块830、接口层840、检测平台850。检测引擎810用于提供底层的引擎工具,可以包括静态检测引擎、NLP引擎、自动化引擎、动态检测引擎等。数据中台820用于提供合规检测的数据库支持,可以包括第三方SDK库、合规检测条目库、应用行为库、应用类型库、应用权限库、应用版本库等。检测模块830是在检测引擎810 与数据中台820的基础上,将针对不同类信息的合规检测相关的代码、资源等进行模块化封装,可以包括第三方SDK检测模块、隐私政策文本检测模块、通讯传输检测模块、权限检测模块、代码安全检测模块、动态安全检测模块、内容安全检测模块、数据安全检测模块等。接口层840用于向前端的应用提供接口,可以包括一个或多个API。检测平台850用于提供面向用户的、平台化的合规检测功能,包括云手机展示、合规条目审查、截图存证、报告预览等功能。
图9示出了合规检测方法的示意性流程,包括:
步骤S901,用户端上传待检测App的文件至前端服务器;
步骤S902,前端服务器开始检测,发送静态检测指令至后端服务器;
步骤S903,后端服务器调起静态检测引擎;
步骤S904,静态检测引擎进行静态检测;
步骤S905,检测引擎向后端服务器返回静态检测结果;
步骤S906,后端服务器对静态检测结果进行分析汇总;
步骤S907,后端服务器向前端服务器返回静态检测的汇总数据与检测详情;
步骤S908,前端服务器发送动态检测指令至后端服务器;
步骤S909,后端服务器调起动态检测引擎;
步骤S910,动态检测引擎安装待检测App并启动;
步骤S911,检测引擎向后端服务器返回安装与启动的结果;
步骤S912,后端服务器向前端服务器返回安装与启动的结果;
步骤S913,前端服务器向用户端投射待检测App的页面;
步骤S914,用户端在待检测App的页面中执行模拟操作脚本,以使待检测App进行模拟运行;
步骤S915,检测引擎收集动态信息,并进行检测;
步骤S916,检测引擎向后端服务器返回动态检测结果;
步骤S917,后端服务器对动态检测结果进行分析汇总;
步骤S918,后端服务器向前端服务器返回动态检测的汇总数据与检测详情;
步骤S919,前端服务器根据合规检测条目发送转向检测指令至后端服务器;
步骤S920,后端服务器调起专项检测引擎;
步骤S921,专项检测引擎进行专项检测;
步骤S922,检测引擎向后端服务器返回专项检测结果;
步骤S923,后端服务器对专项检测结果进行分析汇总;
步骤S924,后端服务器向前端服务器返回专项检测的汇总数据与检测详情;
步骤S925,前端服务器根据上述静态检测结果、动态检测结果、专项检测结果确定最终的合规检测结果,向用户端展示最终的合规检测结果。
本公开的示例性实施方式还提供一种应用程序的合规检测装置。参考图 10所示,该应用程序的合规检测装置1000可以包括:
静态信息提取单元1010,被配置为从待检测应用程序的文件中提取静态信息;
动态信息提取单元1020,被配置为获取待检测应用程序在运行过程中的动态信息;
合规检测单元1030,被配置为根据合规检测条目对静态信息与动态信息进行检测,得到待检测应用程序的合规检测结果。
在一种实施方式中,静态信息包括敏感数据流向信息与权限配置信息。上述从待检测应用程序的文件中提取静态信息,包括:
通过对待检测应用程序的安装文件进行反编译,得到待检测应用程序的源代码;
对源代码进行数据流分析,得到源代码中的敏感数据流向信息;
检测源代码中的权限配置信息。
在一种实施方式中,上述获取待检测应用程序在运行过程中的动态信息,包括:
运行待检测应用程序,并执行预先配置的模拟操作脚本;
收集待检测应用程序在运行过程中的行为数据,得到动态信息。
在一种实施方式中,动态信息提取单元1020,还被配置为:
确定与待检测应用程序类型相同的参考应用程序;
获取参考应用程序中的操作信息,根据操作信息配置模拟操作脚本。
在一种实施方式中,动态信息提取单元1020,还被配置为:
基于待检测应用程序的每个可操作区域上的每种操作方式,生成多个操作事件;
以每个操作事件为根节点,遍历根节点下的操作事件,生成模拟操作路径;
根据模拟操作路径配置模拟操作脚本。
在一种实施方式中,上述根据合规检测条目对静态信息与动态信息进行检测,得到待检测应用程序的合规检测结果,包括:
获取根据合规检测条目预先配置的多种检测模块;
根据静态信息与动态信息的类别,调用对应的检测模块对静态信息与动态信息进行检测,得到合规检测结果。
在一种实施方式中,合规检测单元1030,还被配置为:
将待检测应用程序运行时的用户界面投射至用户端,并接收用户端的反馈信息;反馈信息用于添加至合规检测结果中。
上述装置中各部分的具体细节在方法部分实施方式中已经详细说明,未披露的细节内容可以参见方法部分的实施方式内容,因而不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。在一种可选的实施方式中,该程序产品可以实现为便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++ 等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供一种电子设备,该电子设备例如可以是上述用户端110与服务端120。该电子设备可以包括处理器与存储器。存储器存储有处理器的可执行指令,如可以是程序代码。处理器通过执行该可执行指令来执行本示例性实施方式中的应用程序的合规检测方法,如可以执行图2 的方法步骤。
下面参考图11,以通用计算设备的形式对电子设备进行示例性说明。应当理解,图11显示的电子设备1100仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来限制。
如图11所示,电子设备1100可以包括:处理器1110、存储器1120、总线1130、I/O(输入/输出)接口1140、网络适配器1150。
存储器1120可以包括易失性存储器,例如RAM 1121、缓存单元1122,还可以包括非易失性存储器,例如ROM 1123。存储器1120还可以包括一个或多个程序模块1124,这样的程序模块1124包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。例如,程序模块1124可以包括上述装置 800中的各模块。
总线1130用于实现电子设备1100的不同组件之间的连接,可以包括数据总线、地址总线和控制总线。
电子设备1100可以通过I/O接口1140与一个或多个外部设备1200(例如键盘、鼠标、外置控制器等)进行通信。
电子设备1100可以通过网络适配器1150与一个或者多个网络通信,例如网络适配器1150可以提供如3G/4G/5G等移动通信解决方案,或者提供如无线局域网、蓝牙、近场通信等无线通信解决方案。网络适配器1150可以通过总线1130与电子设备1100的其它模块通信。
尽管图11中未示出,还可以在电子设备1100中设置其它硬件和/或软件模块,包括但不限于:显示器、微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施方式。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施方式仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限定。
Claims (10)
1.一种应用程序的合规检测方法,其特征在于,包括:
从待检测应用程序的文件中提取静态信息;
获取所述待检测应用程序在运行过程中的动态信息;
根据合规检测条目对所述静态信息与所述动态信息进行检测,得到所述待检测应用程序的合规检测结果。
2.根据权利要求1所述的方法,其特征在于,所述静态信息包括敏感数据流向信息与权限配置信息;所述从待检测应用程序的文件中提取静态信息,包括:
通过对所述待检测应用程序的安装文件进行反编译,得到所述待检测应用程序的源代码;
对所述源代码进行数据流分析,得到所述源代码中的敏感数据流向信息;
检测所述源代码中的权限配置信息。
3.根据权利要求1所述的方法,其特征在于,所述获取所述待检测应用程序在运行过程中的动态信息,包括:
运行所述待检测应用程序,并执行预先配置的模拟操作脚本;
收集所述待检测应用程序在运行过程中的行为数据,得到所述动态信息。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定与所述待检测应用程序类型相同的参考应用程序;
获取所述参考应用程序中的操作信息,根据所述操作信息配置所述模拟操作脚本。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
基于所述待检测应用程序的每个可操作区域上的每种操作方式,生成多个操作事件;
以每个操作事件为根节点,遍历所述根节点下的操作事件,生成模拟操作路径;
根据所述模拟操作路径配置所述模拟操作脚本。
6.根据权利要求1所述的方法,其特征在于,所述根据所述合规检测条目对所述静态信息与所述动态信息进行检测,得到所述待检测应用程序的合规检测结果,包括:
获取根据所述合规检测条目预先配置的多种检测模块;
根据所述静态信息与所述动态信息的类别,调用对应的所述检测模块对所述静态信息与所述动态信息进行检测,得到所述合规检测结果。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述待检测应用程序运行时的用户界面投射至用户端,并接收所述用户端的反馈信息;所述反馈信息用于添加至所述合规检测结果中。
8.一种应用程序的合规检测装置,其特征在于,包括:
静态信息提取单元,被配置为从待检测应用程序的文件中提取静态信息;
动态信息提取单元,被配置为获取所述待检测应用程序在运行过程中的动态信息;
合规检测单元,被配置为根据所述合规检测条目对所述静态信息与所述动态信息进行检测,得到所述待检测应用程序的合规检测结果。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111679503.2A CN114398673A (zh) | 2021-12-31 | 2021-12-31 | 应用程序的合规检测方法、装置、存储介质与电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111679503.2A CN114398673A (zh) | 2021-12-31 | 2021-12-31 | 应用程序的合规检测方法、装置、存储介质与电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398673A true CN114398673A (zh) | 2022-04-26 |
Family
ID=81228653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111679503.2A Pending CN114398673A (zh) | 2021-12-31 | 2021-12-31 | 应用程序的合规检测方法、装置、存储介质与电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398673A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114938466A (zh) * | 2022-04-28 | 2022-08-23 | 国家广播电视总局广播电视科学研究院 | 一种互联网电视应用监测系统及方法 |
CN114996708A (zh) * | 2022-08-08 | 2022-09-02 | 中国信息通信研究院 | 涉诈手机应用研判方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749088A (zh) * | 2021-01-13 | 2021-05-04 | 挂号网(杭州)科技有限公司 | 应用程序检测方法、装置、电子设备和存储介质 |
CN113688033A (zh) * | 2021-07-20 | 2021-11-23 | 荣耀终端有限公司 | 一种隐私合规检测方法及计算机可读存储介质 |
CN113704102A (zh) * | 2021-08-24 | 2021-11-26 | 国家计算机网络与信息安全管理中心 | 应用程序合规检测方法、装置、设备和介质 |
CN113778877A (zh) * | 2021-09-10 | 2021-12-10 | 中金金融认证中心有限公司 | 检测应用程序安装包的方法和其相关产品 |
-
2021
- 2021-12-31 CN CN202111679503.2A patent/CN114398673A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112749088A (zh) * | 2021-01-13 | 2021-05-04 | 挂号网(杭州)科技有限公司 | 应用程序检测方法、装置、电子设备和存储介质 |
CN113688033A (zh) * | 2021-07-20 | 2021-11-23 | 荣耀终端有限公司 | 一种隐私合规检测方法及计算机可读存储介质 |
CN113704102A (zh) * | 2021-08-24 | 2021-11-26 | 国家计算机网络与信息安全管理中心 | 应用程序合规检测方法、装置、设备和介质 |
CN113778877A (zh) * | 2021-09-10 | 2021-12-10 | 中金金融认证中心有限公司 | 检测应用程序安装包的方法和其相关产品 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114938466A (zh) * | 2022-04-28 | 2022-08-23 | 国家广播电视总局广播电视科学研究院 | 一种互联网电视应用监测系统及方法 |
CN114938466B (zh) * | 2022-04-28 | 2023-11-07 | 国家广播电视总局广播电视科学研究院 | 一种互联网电视应用监测系统及方法 |
CN114996708A (zh) * | 2022-08-08 | 2022-09-02 | 中国信息通信研究院 | 涉诈手机应用研判方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3605324B1 (en) | Application development method and tool, and storage medium thereof | |
Fazzini et al. | Automatically translating bug reports into test cases for mobile apps | |
Pandita et al. | {WHYPER}: Towards automating risk assessment of mobile applications | |
JP2022062060A (ja) | リアルタイムデータフロープログラミング言語のためのツールおよび方法 | |
EP2368189B1 (en) | Debugging pipeline | |
US20130117855A1 (en) | Apparatus for automatically inspecting security of applications and method thereof | |
WO2021017735A1 (zh) | 一种智能合约的形式化验证方法、电子装置及存储介质 | |
Lin et al. | Automated forensic analysis of mobile applications on Android devices | |
US9436449B1 (en) | Scenario-based code trimming and code reduction | |
US11301357B1 (en) | Method to check application programming interface correctness in software | |
Li et al. | Peruim: Understanding mobile application privacy with permission-ui mapping | |
US10318479B2 (en) | Method and device for automatically identifying junk file | |
CN111737692B (zh) | 应用程序的风险检测方法及装置、设备、存储介质 | |
CN114398673A (zh) | 应用程序的合规检测方法、装置、存储介质与电子设备 | |
US11048621B2 (en) | Ensuring source code integrity in a computing environment | |
CN114328208A (zh) | 代码检测方法及装置、电子设备、存储介质 | |
WO2015073469A1 (en) | Functional validation of software | |
CN112395843A (zh) | 一种基于php代码的业务处理方法、装置及设备和介质 | |
CN113704590A (zh) | 网页数据获取方法、装置、电子设备及存储介质 | |
CN114969760A (zh) | 漏洞检测方法及装置、计算机可读介质和电子设备 | |
CN113778897B (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
US9436669B1 (en) | Systems and methods for interfacing with dynamic web forms | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
US9672020B2 (en) | Selectively loading precompiled header(s) and/or portion(s) thereof | |
CN111258802A (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 |