CN116451271A - 一种应用软件的隐私政策自动提取方法 - Google Patents
一种应用软件的隐私政策自动提取方法 Download PDFInfo
- Publication number
- CN116451271A CN116451271A CN202310342147.8A CN202310342147A CN116451271A CN 116451271 A CN116451271 A CN 116451271A CN 202310342147 A CN202310342147 A CN 202310342147A CN 116451271 A CN116451271 A CN 116451271A
- Authority
- CN
- China
- Prior art keywords
- network address
- application software
- application
- text
- extracting
- 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
- 238000000605 extraction Methods 0.000 title claims abstract description 48
- 238000013145 classification model Methods 0.000 claims abstract description 29
- 238000012360 testing method Methods 0.000 claims abstract description 19
- 238000000034 method Methods 0.000 claims description 63
- 238000012549 training Methods 0.000 claims description 52
- 230000014509 gene expression Effects 0.000 claims description 21
- 238000009434 installation Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 4
- 230000007613 environmental effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 description 20
- 230000003068 static effect Effects 0.000 description 12
- 230000009193 crawling Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- VOXZDWNPVJITMN-ZBRFXRBCSA-N 17β-estradiol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@H](CC4)O)[C@@H]4[C@@H]3CCC2=C1 VOXZDWNPVJITMN-ZBRFXRBCSA-N 0.000 description 1
- 241000282693 Cercopithecidae Species 0.000 description 1
- 241000892667 Cnidium silaifolium Species 0.000 description 1
- BUGBHKTXTAQXES-UHFFFAOYSA-N Selenium Chemical compound [Se] BUGBHKTXTAQXES-UHFFFAOYSA-N 0.000 description 1
- 229920002334 Spandex Polymers 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229940098618 estring Drugs 0.000 description 1
- 238000013486 operation strategy Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 229910052711 selenium Inorganic materials 0.000 description 1
- 239000011669 selenium Substances 0.000 description 1
- 239000004759 spandex Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
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/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
- G06F21/6263—Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
- G06F16/353—Clustering; Classification into predefined classes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种应用软件的隐私政策自动提取方法,涉及安卓应用技术领域,该方法包括:静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合;动态提取应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合;获取第一网络地址集合与第二网络地址集合的并集,得到目标网络地址集合;遍历提取目标网络地址集合内各网络地址中的文本内容,基于训练后的文本分类模型检测目标网络地址集合中类型为隐私政策的文本内容。本发明能够提高网络地址的提取效率,避免出现漏提取网络地址链接的情况,提升了隐私政策的提取效率及提取准确率。
Description
技术领域
本发明涉及安卓应用技术领域,尤其是涉及一种应用软件的隐私政策自动提取方法。
背景技术
安卓平台通过权限机制控制应用程序对设备中敏感资源的使用,只有当应用程序具有某一权限时,系统才会允许其访问相应资源。例如当应用程序需要获取设备位置信息时,应用程序应首先在其配置文件中声明使用位置权限,然后在其运行过程中请求用户授权,方可获取设备位置信息。
安卓的权限机制无疑保护了设备的敏感资源、用户的隐私数据,然而,移动平台中用户隐私数据泄露事件依然频出。可见,目前的应用软件权限机制仅能控制应用程序能否获取相应敏感资源,但无法控制应用程序在获取资源后如何使用。
应用程序对权限的恶意使用从技术手段上难以限制,因为从系统的角度来看,无论是恶意使用还是正常使用,其均属于建立在权限机制之上正常行为。在此背景下,面临用户日益增长的个人隐私数据保护需求,国家出台了《中华人民共和国个人信息保护法》,其中明确规定应用程序必须制定其《隐私政策》,并且在应用中以适当的方式呈现。《隐私政策》中最主要的编写内容即应用如何使用权限,这一规定的目的就是为了将应用程序对信息的收集范围限制于实现处理目的最小范围。
隐私政策作为应用收集、处理个人信息的标准,其对应用恶意行为的判定提供了重要法律依据,因此,隐私政策逐渐成为应用分析过程中的关键文件。但是,隐私政策文件并未像应用其他文件(如配置文件、资源文件等)被打包进应用安装包中,而是以外部链接的形式存在于应用中。现有的隐私政策提取技术,通常采用对应用安装包进行反编译的方式提取应用软件包括的网络地址(URL)链接,提取效率较低,且容易出现漏提取网络地址的情况,进而降低了隐私政策的提取效率及提取准确率。
发明内容
有鉴于此,本发明的目的在于提供一种应用软件的隐私政策自动提取方法,能够提高网络地址的提取效率,避免出现漏提取网络地址链接的情况,提升了隐私政策的提取效率及提取准确率。
为了实现上述目的,本发明实施例采用的技术方案如下:
第一方面,本发明实施例提供了一种应用软件的隐私政策自动提取方法,包括:静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合;动态提取所述应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合;获取所述第一网络地址集合与所述第二网络地址集合的并集,得到目标网络地址集合;遍历提取所述目标网络地址集合内各网络地址中的文本内容,基于训练后的文本分类模型检测所述目标网络地址集合中类型为隐私政策的文本内容。
进一步,本发明实施例提供了第一方面的第一种可能的实施方式,其中,所述静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合的步骤,包括:解压所述应用软件的安装包,从解压后的所述安装包中获取源码编译形成的可执行文件;基于网络地址的正则表达式提取所述可执行文件中所包含的网络地址链接,将各个所述可执行文件中包含的网络地址链接取并集,得到所述第一网络地址集合。
进一步,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述可执行文件包括基于Java源码编译形成的第一可执行文件,所述基于网络地址的正则表达式提取所述可执行文件中所包含的网络地址链接的步骤,包括:基于所述第一可执行文件中存储的字符串信息,截取并保存所述第一可执行文件中的字符串表数据区;其中,所述字符串信息包括字符串长度和偏移量;基于网络地址的正则表达式匹配出所述字符串表的数据区中所包括的网络地址链接。
进一步,本发明实施例提供了第一方面的第三种可能的实施方式,其中,所述可执行文件包括基于本地源码编译形成的第二可执行文件,所述基于网络地址的正则表达式提取所述可执行文件中所包含的网络地址链接的步骤,包括:截取并保存所述第二可执行文件中的字符串表;其中,所述字符串表存储有所述本地源码使用的全部字符串;基于网络地址的正则表达式从所述字符串表中匹配出符合网络地址格式的字符串,得到所述可执行文件中所包含的网络地址链接。
进一步,本发明实施例提供了第一方面的第四种可能的实施方式,其中,所述动态提取所述应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合的步骤,包括:在测试设备上部署拦截操作所需的环境框架,并安装所述应用软件;对文本超链接的构造函数进行所述拦截操作,并将所述构造函数的输入参数存储至所述第二网络地址集合中;控制所述应用软件自动运行,以得到所述应用软件运行期间使用的全部网络地址链接。
进一步,本发明实施例提供了第一方面的第五种可能的实施方式,其中,所述在测试设备上部署拦截操作所需的环境框架,并安装所述应用软件的步骤,包括:基于预设的调试工具将所述环境框架的服务文件推送进安卓设备公共存储目录,将所述环境框架的服务文件的权限修改为预设权限;其中,所述预设权限包括读取操作、写入操作和执行操作;基于预设调试指令将所述应用软件安装在所述测试设备上。
进一步,本发明实施例提供了第一方面的第六种可能的实施方式,其中,所述控制所述应用软件自动运行,以得到所述应用软件运行期间使用的全部网络地址链接的步骤,包括:从应用主界面启动所述应用软件,记录当前深度为0;遍历当前页面结构的全部按钮组件,并对各所述按钮组件自动执行点击操作;当页面发生跳转时,控制所述当前深度加1;当所述当前深度为1时,控制所述应用软件执行返回操作。
进一步,本发明实施例提供了第一方面的第七种可能的实施方式,其中,所述应用软件的隐私政策自动提取方法还包括:获取所述文本分类模型的训练文本;截取所述训练文本中的预设数量字符,或者,将所述训练文本扩充至所述预设数量字符,得到训练样本;其中,所述训练样本包括正样本和负样本,所述正样本包括隐私政策文本,所述负样本包括新闻文章;基于所述训练样本及预设训练工具对所述文本分类模型进行训练,得到训练后的文本分类模型。
第二方面,本发明实施例还提供了一种电子设备,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如第一方面任一项所述的方法。
第三方面,本发明实施例提供了一种存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如第一方面任一所述的方法。
本发明实施例提供了一种应用软件的隐私政策自动提取方法,该方法包括:静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合;动态提取应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合;获取第一网络地址集合与第二网络地址集合的并集,得到目标网络地址集合;遍历提取目标网络地址集合内各网络地址中的文本内容,基于训练后的文本分类模型检测目标网络地址集合中类型为隐私政策的文本内容。本发明通过采用静态提取的方式,提取应用软件代码文件中的网络地址,无需对应用软件进行反编译,提高了网络地址的提取效率,进而提升了隐私政策的提取效率,通过采用动态提取的方式,提取应用软件运行期间所涉及的网络地址,可以将应用软件运行过程中待跳转的网络地址提取出来,取第一网络地址集合与第二网络地址集合的并集,可以得到应用软件对应的全部网络地址链接,避免出现漏提取网络地址的情况,进而提升了隐私政策的提取准确率。
本发明实施例的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明实施例的上述技术即可得知。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例所提供的一种应用软件的隐私政策自动提取方法流程图;
图2示出了本发明实施例所提供的一种网络地址链接静态提取流程图;
图3示出了本发明实施例所提供的一种动态提取网络地址链接流程图;
图4示出了本发明实施例所提供的一种爬取隐私政策文本流程图;
图5示出了本发明实施例所提供的一种自动化提取安卓应用隐私政策流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
目前,隐私政策作为应用收集、处理个人信息的标准,其对应用恶意行为的判定提供了重要法律依据,因此隐私政策逐渐成为应用分析过程中的关键文件。然而,隐私政策文件并不像应用其他文件(如配置文件、资源文件等)被打包进应用安装包中,而是通常以外部链接的形式存在于应用中。因此如何自动化、高效、准确地提取应用隐私政策成为了目前亟需解决的问题。
为改善上述问题,本发明实施例提供的一种应用软件的隐私政策自动提取方法,以下对本发明实施例进行详细介绍。
本实施例提供了一种应用软件的隐私政策自动提取方法,该方法可以应用于电子设备,该电子设备可以是移动终端或计算机,参见图1所示的应用软件的隐私政策自动提取方法流程图,该方法主要包括以下步骤:
步骤S102,静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合。
以静态的方式提取安卓应用软件安装包中所包含的网络地址链接(UniformResource Locator,简称URL),将提取到的全部网络地址链接记为第一网络地址集合。在一种实施方式中,可以将提取到的全部网络地址链接以集合的形式存储,记为Set(URLs_static)。
步骤S104,动态提取应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合。
对应用软件进行测试运行,以动态的方式提取应用软件运行过程中所涉及到的全部网络地址链接(即URL链接),以便对静态提取到的网络地址链接进行补充,将动态提取到的全部网络地址链接记为第二网络地址集合。在一种实施方式中,可以将提取到的全部网络地址链接以集合的形式存储,记为Set(URLs_dynamic)。
步骤S106,获取第一网络地址集合与第二网络地址集合的并集,得到目标网络地址集合。
考虑到静态提取的网络地址链接与动态提取到的网络地址链接中可能包括相同的链接,将第一网络地址集合与第二网络地址集合合并,即取第一网络地址集合与第二网络地址集合的并集,将并集作为目标网络地址集合,记为Set(URLs)。
步骤S108,遍历提取目标网络地址集合内各网络地址中的文本内容,基于训练后的文本分类模型检测目标网络地址集合中类型为隐私政策的文本内容。
在应用市场与新闻网站中爬取大量应用隐私政策与新闻文章作为训练集,基于训练集训练文本分类模型,遍历目标网络地址集合,基于训练后的文本分类模型预测每个网络地址链接中的文本内容类型,在预测结果中,类型为隐私政策的文本即为提取出的应用软件的隐私政策。
在一种实施方式中,从提取的目标网络地址集合(即URL集合)中寻找应用隐私政策文本,遍历URL集合,提取每个URL链接的文本内容,再由分类模型判断文本类型。在判断结果中,若存在隐私政策类型的文本,则该文本为应用的隐私政策;否则说明该应用不存在隐私政策或没有较好地履行告知义务,需要整改。
本实施例提供的上述应用软件的隐私政策自动提取方法,通过采用静态提取的方式,提取应用软件代码文件中的网络地址,无需对应用软件进行反编译,提高了网络地址的提取效率,进而提升了隐私政策的提取效率,通过采用动态提取的方式,提取应用软件运行期间所涉及的网络地址,可以将应用软件运行过程中待跳转的网络地址提取出来,取第一网络地址集合与第二网络地址集合的并集,可以得到应用软件对应的全部网络地址链接,避免出现漏提取网络地址的情况,进而提升了隐私政策的提取准确率。
在一个实施例中,为了有效提高静态提取的效率,本实施例提供了静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合的实施方式:解压应用软件的安装包,从解压后的安装包中获取源码编译形成的可执行文件;基于网络地址的正则表达式提取可执行文件中所包含的网络地址链接,将各个可执行文件中包含的网络地址链接取并集,得到第一网络地址集合。
应用软件的安装包中可能包括多个可执行文件,分别提取每个可执行文件中包含的网络地址链接,将不同可执行文件中提取的网络地址链接取并集,可以得到应用软件安装包中包括的全部网络地址链接,记为第一网络地址集合。
在一个实施例中,上述可执行文件包括基于Java源码编译形成的第一可执行文件和基于本地(Native)源码编译形成的第二可执行文件,本实施例提供了静态提取应用软件代码文件中网络地址链接的实施方式,具体可参照如下步骤(1)~步骤(3)执行:
步骤(1):基于第一可执行文件中存储的字符串信息,截取并保存第一可执行文件中的字符串表数据区;基于网络地址的正则表达式匹配出字符串表的数据区中所包括的网络地址链接。
上述字符串信息包括字符串长度和偏移量,基于字符串长度和偏移量从第一可执行文件中定位并截取出字符串表数据区。
上述第一可执行文件可以包括应用程序Java源码编译所形成的DEX文件,字符串表(string table)是DEX文件中的一段数据,该部分数据存储了应用Java源码中所使用到的所有字符串。对于DEX文件,截取其string table的数据区,然后用URL正则表达式匹配数据内容,将匹配符合网络地址规范的字符串对应的网络地址链接加入集合Set(URLs_DEXs)中。对于提取出的每一个dex文件,执行上述过程,并将执行结果合并为Set(URLs_DEXs)。
以DEX文件为例,通过二进制编辑器(如010Editor)打开可执行文件,从文件头部中读取字段string_ids_size与string_ids_size的值,根据上述两个字段值即可在DEX文件中定位string table。查看string table中第一个item与最后一个item的起始位置和大小,分别记为offset_first_item、size_first_item、offset_last_item和size_last_item。参见如图2所示的网络地址链接静态提取流程图,从DEX文件中截取从offest_first_item到offset_last_item+size_last_item的数据内容,这部分内容即为该DEX文件的字符串表数据区。
上述字符串表数据区的内容即应用程序中硬编码的字符串常量,对于隐私政策外链接,其可能存在于这部分数据区中。根据URL规范构造URL正则表达式,如图2所示,基于URL正则表达式匹配数据区内容,即可得到数据区中符合URL规范的网络地址链接,将匹配结果以集合的形式存储。
步骤(2):截取并保存第二可执行文件中的字符串表;基于网络地址的正则表达式从字符串表中匹配出符合网络地址格式的字符串,得到可执行文件中所包含的网络地址链接。
上述字符串表存储有本地源码使用的全部字符串,上述第二可执行文件可以是由应用程序Native源码编译形成的SO文件,其中的.strlab段存储了应用Native源码中所使用的所有字符串。
对于SO文件,截取其.strtab段,同样用URL正则表达式匹配.strtab段的数据内容,将结果记为Set(URLs_SO)。对于提取出的每一个SO文件,执行上述过程,并将执行结果合并为Set(URLs_SOs)。上述“合并”即集合取并集。
步骤(3):取Set(URLs_DEXs)与Set(URLs_SOs)的并集,得到第一网络地址集合Set(URLs)。
通过对string table和.strlab的截取、匹配,即可获取应用源码中所定义的所有URL,包括硬编码的隐私政策外链。上述“截取”即从文件中找到相关数据段并保存下来,以DEX文件为例,其文件头部存储了string table的大小和偏移量,借助该信息,即可定位相关数据段并进行保存。上述“匹配”即通过正则表达式筛选出文件字符串数据区中符合URL格式的字符串,形成URL集。
在以静态提取的方式提取的第一网络地址集合中,包含隐私政策链接的前提是应用以硬编码的形式将隐私政策链接写入应用程序代码中。因此,在部分情况下无法有效提取隐私政策链接,例如,应用运行期间通过拼接2个字符串构建隐私政策链接。
在一个实施例中,为了提取应用软件动态运行过程中出现的隐私政策链接,本实施例提供了动态提取应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合的实施方式,具体可参照如下步骤S51~步骤S53执行:
步骤S51:在测试设备上部署拦截操作所需的环境框架,并安装应用软件。
上述环境框架可以是Frida框架,在测试设备上部署Frida框架并安装应用,修改Frida框架的权限。
在一种方式中,基于预设的调试工具将环境框架的服务文件推送进安卓设备公共存储目录,将环境框架的服务文件的权限修改为预设权限;其中,预设权限包括读取操作、写入操作和执行操作;基于预设调试指令将应用软件安装在测试设备上。
上述预设的调试工具可以是安卓调试桥(Android Debug Bridge,ADB),参见如图3所示的动态提取网络地址链接流程图,利用ADB或其他工具将frida-server推送进安卓设备公共存储目录,并修改frida-server的权限为777。通过ADB指令或其他方式将应用软件的APK(Android application package,Android应用程序包)文件安装在设备上。
步骤S52:对文本超链接的构造函数进行拦截操作,并将构造函数的输入参数存储至第二网络地址集合中。
如图3所示,对方法android.text.style.URLSpan进行Hook,将该方法的输入参数(即String类型的URL)存储进第二网络地址集合Set(URLs_dynamic)中。
在一种具体的实施方式中,基于Frida Hook脚本,提取组件URL信息。Frida Hook脚本中可以通过Java.Use(“android.text.style.URLSpan”)获取目标方法所在的类,然后对类中构造方法URLSpan(String url)进行Hook,Hook过程中提取该方法的输入参数,最后连接至目标应用进程。
通过以动态分析的方式静态提取形成的URL集进行补充,在应用运行期间,其隐私政策均以文本超链接的形式在页面中呈现,因此本实施例对文本超链接这一组件的底层实现进行Hook,从其构造参数中获取URL链接。具体的,安卓应用通常利用SpannableString组件的set(URlSpan)方法实现文本超链接,该方法输入参数为URLSpan类型,而URLSpan的构造方法URLSpan(url:String)输入参数即就是String形式的URL链接,通过Hook URLSpan(url:String!)即可获取到应用运行期间所使用的所有URL链接。
步骤S53:控制应用软件自动运行,以得到应用软件运行期间使用的全部网络地址链接。
如图3所示,基于MonkeyRunner脚本,控制应用自动化运行。脚本通过hierarchyviewer工具获取应用界面所有UI组件信息进行遍历,遍历过程中,若某一UI组件的类型为TextView或ImageView,且该组件具有clickable属性,脚本则通过touch API对上述组件发送点击指令。应用自动化运行过程中,若应用界面存在超链接文本组件,此时Frida自动地将组件中的URL链接提取出来,将提取的URL链接加入第二网络地址集合中。
在一种具体的实施方式中,应用软件的运行策略包括:从应用主界面启动应用软件,记录当前深度为0;遍历当前页面结构的全部按钮组件,并对各按钮组件自动执行点击操作;当页面发生跳转时,控制当前深度加1;在当前深度为1时,控制应用软件执行返回操作。
MonekyRunner脚本自动化运行应用,过程中界面跳转的深度最大仅为1。本实施例动态运行应用软件的目的是为了发现其中的隐私政策,而《个人信息保护法》中规定应用必须有效履行隐私政策的“告之-同意”义务,因此隐私政策通常会在应用首页呈现。
本实施例充分考虑了应用隐私政策跳转的实现原理以及《个人信息保护法》对隐私政策部分的要求,最终通过Hook关键构造方法的手段,动态提取应用运行期间所涉及的URL链接。在动态提取过程中,只要应用当前界面存在隐私政策的跳转组件,不需要人为点击相关组件,也不需要网络数据包分析,即可成功将待跳转的URL链接提取出来,与现有技术相比,有效提高了动态提取URL链接的效率和准确性。
在一个实施例中,为了准确提取出目标网络地址集合中的隐私政策链接,本实施例提供的方法还包括对文本分类模型的训练步骤,具体可参照如下步骤S81~步骤S83执行:
步骤S81,获取文本分类模型的训练文本。
上述文本分类模型可以是能够实现文本内容识别的语言模型,诸如可以是Festtext模型或word2vec模型等分类模型,利用爬虫收集大量应用隐私政策和其他文章,在应用市场与新闻网站中爬取大量应用隐私政策与新闻文章作为训练文本。
在一种实施方式中,参见如图4所示的爬取隐私政策文本流程图,爬取某应用市场中应用隐私政策的实施方式可以包括:
①通过selinium测试工具(浏览器自动化测试框架)获取各个APP的详情页地址。首先通过selenium测试工具控制浏览器,访问应用市场应用排行页。然后获取页面中所有元素,搜索其中class值为“Jsx-4088459223”的元素,搜索结果中每项元素对应排行页APP列表中的一个APP。继续从每个元素搜索标签“a”,并提取其“href”属性值,该属性值即APP详情页的地址。考虑到应用市场排行页采用异步加载的方式来展示更多APP信息,因此上述过程中还需要通过selinuim不断地使浏览器执行下滑操作直到收集到足够的应用详情页。
②从应用详情页中爬取应用隐私政策链接。通过requests库访问各个应用详情页,然后通过etree.html()解析详情页页面数据,最后调用etree.html().xpath(‘Xpath@href’)获取“隐私政策”元素的href属性,即应用隐私政策链接。
③从隐私政策链接中提取隐私文本。通过requests库访问各个应用的隐私政策链接,利用BeautifulSoup解析页面得到soup对象,最终调用soup.stripped_strings函数获取页面文本数据。
步骤S82,截取训练文本中的预设数量字符,或者,将训练文本扩充至预设数量字符,得到训练样本。
为了提升训练效率,根据每个文本的文本量进行截取或扩充操作,当训练文本中的字符数量大于预设数量时,从训练文本的第一个字符开始,截取训练文本中的预设数量字符,当训练文本中的字符数量小于预设数量时,将训练文本扩充至预设数量字符。将训练文本划分为正样本和负样本,正样本为隐私政策文本,负样本包括新闻文章,正样本和负样本构成了文本分类模型的训练样本。在一种具体的实施方式中,可以将隐私政策文本的标签设置为1,其他文本的标签设置为0。
步骤S83,基于训练样本及预设训练工具对文本分类模型进行训练,得到训练后的文本分类模型。
上述预设训练工具可以是BERT(Bidirectional Encoder Representations fromTransformers)预训练模型,将训练样本输入文本分类模型,基于BERT预训练模型训练文本分类模型。
在一种具体的实施方式中,下载BERT项目与BERT中文预训练模型chinese_L-12_H-768_A-12。在项目文件run_classifier.py中添加自己的数据加载类。配置相关参数,运行run_classifier.py,其中将参数do_train设置为true表示进行模型训练。
受BERT的限制以及出于对训练效率的考虑,上述预设数量的取值范围可以为400~600,优选500。这样并不影响模型的准确性,因为对一篇文章而言,其开头部分就是对文章大意的概括,因此其前500个字符可以有效地进行分本分类。
本实施例提供的上述应用软件的隐私政策自动提取方法,一方面可以自动化提取应用的隐私政策,为软件分析人员高效、准确地提供支持;另一方面,本文方法也可以用于应用合规检测,可以有效判断应用是否履行《个人信息保护法》中相关规定。
在前述实施例的基础上,本实施例提供了一种应用前述应用软件的隐私政策自动提取方法的示例,具体可参照如下执行:
参见如图5所示的自动化提取安卓应用隐私政策流程图,获取应用安装包的APK文件,基于应用隐私政策提取装置提取应用中的应用隐私文本,如图5所示,上述应用隐私政策提取装置包括URL链接提取器和URL内容分类器,URL链接提取器包括静态提取模块和动态提取模块,URL内容分类器包括分类模型训练和分类模型预测模块。
基于静态提取模块静态提取应用代码中的URL链接,基于动态提取模块提取应用动态运行期间所涉及的URL链接,如图5所示,提取应用APK文件中所有的DEX文件与SO文件,截取应用DEX文件与SO文件的字符串数据区,利用正则表达式对数据内容进行匹配,得到URL集合;通过自动化运行脚本以及Frida框架进一步提取URL,以此对上述URL集合进行补充,具体可参照如下步骤1~步骤2执行。
分类模型训练,从应用市场与新闻网站中分别爬取应用隐私政策文本和其他文本,以BERT预训练模型为基础模型,上述文本信息为训练集,得到文本分类模型;分类模型预测,通过上述文本分类模型预测上述URL集中各个URL页面文本内容的类型,预测结果中隐私政策类型的文本内容即本发明自动化提取的安卓应用隐私政策,具体可参照如下步骤3~步骤4执行。
步骤1,静态提取应用代码文件中所包含的URL链接,并将这些URL以集合的形式存储,记为Set(URLs)。
步骤1.1,解压应用安装包,提取出其中所有的DEX和SO文件。
步骤1.2,对于DEX文件,截取其string table的数据区,用URL正则表达式匹配数据内容,将结果记录为Set(URLs_DEX)。对于步骤1.1中的每一个dex文件,执行上述过程,并将执行结果合并为Set(URLs_DEXs)。
步骤1.3,对于SO文件,截取其.strtab段,用URL正则表达式匹配.strtab段的数据内容,将结果记为Set(URLs_SO)。对于步骤1.1中的每一个SO文件,执行上述过程,并将执行结果合并为Set(URLs_SOs)。
步骤1.4,合并步骤1.2和步骤1.3中Set(URLs_DEXs)与Set(URLs_SOs),记为Set(URLs)。
需要说明的是,上述步骤中“合并”即为集合取并集。
步骤2,动态提取应用运行过程中跳转的目标URL链接,添加进步骤1所述的Set(URLs)中。
步骤2.1,在测试设备上部署Frida框架并安装应用。
步骤2.2,编写Frida脚本,对方法android.text.style.URLSpan进行Hook,将该方法的输入参数(即String类型的URL)存储进Set(URLs_dynamic)中。
步骤2.3,编写MonkeyRunner脚本,控制应用自动化运行。运行策略如下:
①从应用主界面启动应用,同时记当前深度为0。
②获取当前页面结构,遍历所有按钮组件并执行点击操作。
③若页面发生跳转,深度加1。
④深度为1时,控制应用执行返回操作。
步骤2.4,当步骤2.3中的自动化运行过程结束后,将步骤2.2的结果Set(URLs_dynamic)合并至步骤1.4的结果Set(URLs)中。
步骤3,在应用市场与新闻网站中爬取大量应用隐私政策与新闻文章。将上述语料作为训练集,基于BERT预训练模型训练文本分类模型。
步骤3.1,从应用市场中爬取大量隐私政策文本。该步骤包含如下具体步骤:
①访问网页版应用市场的应用排行页。
②通过selinuim控制浏览器不断下滑,加载应用列表数据。上述过程中,爬取每个应用的信息详情页地址。
针对每个应用,执行下述步骤:
③利用requests库访问应用的信息详情页,通过xpath定位“隐私政策”超链接并提取链接地址。
④继续利用requests访问应用的隐私政策页,利用BeautifulSoup解析页面内容,提取文本信息。
步骤3.2,从新闻网站中爬取大量新闻文章,具体步骤与步骤3.1所述类似,不再赘述。
步骤3.3,对于步骤3.1和步骤3.2中收集到的文本信息,根据其文本量的大与小,截取其前500个字符或将其填充到500个字符。
步骤3.4,下载BERT中文预训练模型,通过步骤3.3中得到的训练集微调预训练模型,使其可以完成特定的分类任务。
步骤4,遍历Set(URLs),通过步骤3中的文本分类模型预测URL链接中的文本内容类型。预测结果中,类型为隐私政策的文本即为所提取的应用隐私政策。
本发明实施例提供了一种电子设备,其特征在于,包括:处理器和存储装置;所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行上述实施例提供的应用软件的隐私政策自动提取方法。
本发明实施例提供了一种存储介质,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如上述实施例提供的应用软件的隐私政策自动提取方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统具体工作过程,可以参考前述实施例中的对应过程,在此不再赘述。
本发明实施例所提供的应用软件的隐私政策自动提取方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种应用软件的隐私政策自动提取方法,其特征在于,包括:
静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合;
动态提取所述应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合;
获取所述第一网络地址集合与所述第二网络地址集合的并集,得到目标网络地址集合;
遍历提取所述目标网络地址集合内各网络地址中的文本内容,基于训练后的文本分类模型检测所述目标网络地址集合中类型为隐私政策的文本内容。
2.根据权利要求1所述的方法,其特征在于,所述静态提取应用软件代码文件中网络地址链接,得到第一网络地址集合的步骤,包括:
解压所述应用软件的安装包,从解压后的所述安装包中获取源码编译形成的可执行文件;
基于网络地址的正则表达式提取所述可执行文件中所包含的网络地址链接,将各个所述可执行文件中包含的网络地址链接取并集,得到所述第一网络地址集合。
3.根据权利要求2所述的方法,其特征在于,所述可执行文件包括基于Java源码编译形成的第一可执行文件,所述基于网络地址的正则表达式提取所述可执行文件中所包含的网络地址链接的步骤,包括:
基于所述第一可执行文件中存储的字符串信息,截取并保存所述第一可执行文件中的字符串表数据区;其中,所述字符串信息包括字符串长度和偏移量;
基于网络地址的正则表达式匹配出所述字符串表的数据区中所包括的网络地址链接。
4.根据权利要求2所述的方法,其特征在于,所述可执行文件包括基于本地源码编译形成的第二可执行文件,所述基于网络地址的正则表达式提取所述可执行文件中所包含的网络地址链接的步骤,包括:
截取并保存所述第二可执行文件中的字符串表;其中,所述字符串表存储有所述本地源码使用的全部字符串;
基于网络地址的正则表达式从所述字符串表中匹配出符合网络地址格式的字符串,得到所述可执行文件中所包含的网络地址链接。
5.根据权利要求1所述的方法,其特征在于,所述动态提取所述应用软件测试运行期间相关联的网络地址链接,得到第二网络地址集合的步骤,包括:
在测试设备上部署拦截操作所需的环境框架,并安装所述应用软件;
对文本超链接的构造函数进行所述拦截操作,并将所述构造函数的输入参数存储至所述第二网络地址集合中;
控制所述应用软件自动运行,以得到所述应用软件运行期间使用的全部网络地址链接。
6.根据权利要求5所述的方法,其特征在于,所述在测试设备上部署拦截操作所需的环境框架,并安装所述应用软件的步骤,包括:
基于预设的调试工具将所述环境框架的服务文件推送进安卓设备公共存储目录,将所述环境框架的服务文件的权限修改为预设权限;其中,所述预设权限包括读取操作、写入操作和执行操作;
基于预设调试指令将所述应用软件安装在所述测试设备上。
7.根据权利要求5所述的方法,其特征在于,所述控制所述应用软件自动运行,以得到所述应用软件运行期间使用的全部网络地址链接的步骤,包括:
从应用主界面启动所述应用软件,记录当前深度为0;
遍历当前页面结构的全部按钮组件,并对各所述按钮组件自动执行点击操作;
当页面发生跳转时,控制所述当前深度加1;
当所述当前深度为1时,控制所述应用软件执行返回操作。
8.根据权利要求1-7任一项所述的方法,其特征在于,还包括:
获取所述文本分类模型的训练文本;
截取所述训练文本中的预设数量字符,或者,将所述训练文本扩充至所述预设数量字符,得到训练样本;其中,所述训练样本包括正样本和负样本,所述正样本包括隐私政策文本,所述负样本包括新闻文章;
基于所述训练样本及预设训练工具对所述文本分类模型进行训练,得到训练后的文本分类模型。
9.一种电子设备,其特征在于,包括:处理器和存储装置;
所述存储装置上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至8任一项所述的方法。
10.一种存储介质,其特征在于,所述存储介质中存储有多条指令;所述多条指令,用于由处理器加载并执行如权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310342147.8A CN116451271A (zh) | 2023-03-31 | 2023-03-31 | 一种应用软件的隐私政策自动提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310342147.8A CN116451271A (zh) | 2023-03-31 | 2023-03-31 | 一种应用软件的隐私政策自动提取方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116451271A true CN116451271A (zh) | 2023-07-18 |
Family
ID=87131436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310342147.8A Pending CN116451271A (zh) | 2023-03-31 | 2023-03-31 | 一种应用软件的隐私政策自动提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116451271A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056921A (zh) * | 2023-08-11 | 2023-11-14 | 上海弘连网络科技有限公司 | 生成Frida脚本与APK动态分析的方法、系统、设备及介质 |
-
2023
- 2023-03-31 CN CN202310342147.8A patent/CN116451271A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117056921A (zh) * | 2023-08-11 | 2023-11-14 | 上海弘连网络科技有限公司 | 生成Frida脚本与APK动态分析的方法、系统、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104049986B (zh) | 插件加载方法及装置 | |
US9602347B2 (en) | Method, system and program for browser to switch IE kernel | |
CN108566399B (zh) | 钓鱼网站识别方法及系统 | |
CN110688307B (zh) | JavaScript代码检测方法、装置、设备和存储介质 | |
CN103778373A (zh) | 病毒检测方法及装置 | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
CN106022132A (zh) | 一种基于动态内容分析的网页木马实时检测方法 | |
CN116451271A (zh) | 一种应用软件的隐私政策自动提取方法 | |
Alnaeli et al. | Source code vulnerabilities in IoT software systems | |
CN114297700B (zh) | 动静态结合的移动应用隐私协议提取方法及相关设备 | |
CN105354490A (zh) | 一种处理被劫持浏览器的方法及设备 | |
CN111125704B (zh) | 一种网页挂马识别方法及系统 | |
CN112269666A (zh) | 小程序死链检测方法及设备、计算设备和介质 | |
WO2018114055A1 (en) | Method and system for providing additional information relating to primary information | |
CN105243134A (zh) | 一种处理被劫持浏览器的方法及设备 | |
CN108256338B (zh) | 一种基于扩展API改写的Chrome扩展敏感数据跟踪方法 | |
CN110825976B (zh) | 网站页面的检测方法、装置、电子设备及介质 | |
CN110083576B (zh) | 一种缓存目录的识别方法及装置 | |
Panum et al. | Kraaler: A user-perspective web crawler | |
US20200104483A1 (en) | Risk computation for software extensions | |
CN107122667B (zh) | 一种应用漏洞检测方法及系统 | |
CN111723400A (zh) | 一种js敏感信息泄露检测方法、装置、设备及介质 | |
CN111859387A (zh) | Android平台软件漏洞模式的自动化构建方法 | |
CN116974653B (zh) | 类加载方法及系统 | |
CN113391873B (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 |