CN114297700A - 动静态结合的移动应用隐私协议提取方法及相关设备 - Google Patents

动静态结合的移动应用隐私协议提取方法及相关设备 Download PDF

Info

Publication number
CN114297700A
CN114297700A CN202111335897.XA CN202111335897A CN114297700A CN 114297700 A CN114297700 A CN 114297700A CN 202111335897 A CN202111335897 A CN 202111335897A CN 114297700 A CN114297700 A CN 114297700A
Authority
CN
China
Prior art keywords
mobile application
tested
privacy protocol
gui
privacy
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
CN202111335897.XA
Other languages
English (en)
Other versions
CN114297700B (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.)
Beijing University of Posts and Telecommunications
Original Assignee
Beijing University of Posts and Telecommunications
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 Beijing University of Posts and Telecommunications filed Critical Beijing University of Posts and Telecommunications
Priority to CN202111335897.XA priority Critical patent/CN114297700B/zh
Publication of CN114297700A publication Critical patent/CN114297700A/zh
Application granted granted Critical
Publication of CN114297700B publication Critical patent/CN114297700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephone Function (AREA)

Abstract

本申请提供一种动静态结合的移动应用隐私协议提取方法及相关设备,所述方法包括:获取待测移动应用的APK文件;构建GUI自动化遍历框架;基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行;对APK文件进行静态分析,得到静态分析结果;响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议;响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。本申请的技术方案,通过静态分析和动态分析相结合的方式对移动应用的隐私协议进行提取,能够准确、完善的提取隐私协议信息,同时节省了大量的人力物力。

Description

动静态结合的移动应用隐私协议提取方法及相关设备
技术领域
本申请涉及信息安全技术领域,尤其涉及一种动静态结合的移动应用隐私协议提取方法及相关设备。
背景技术
随着移动互联网的发展,智能手机在人们生活中承担了更多的功能,人们习惯于在Android手机中进行各类操作,Android应用的种类不断增加,应用程序数量呈现指数级增长,手机APP获取、甚至越界获取隐私权限的问题也逐年增加,存在较大隐私泄露风险。
发明内容
有鉴于此,本申请的目的在于提出一种解决上述技术问题的动静态结合的移动应用隐私协议提取方法及相关设备。
基于上述目的,本申请第一方面提供了一种动静态结合的移动应用隐私协议提取方法,包括:
获取待测移动应用的APK文件;
构建GUI自动化遍历框架;
基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行;
对APK文件进行静态分析,得到静态分析结果;
响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议;
响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。
进一步地,所述对APK文件进行静态分析,得到静态分析结果,包括:
对APK文件进行反编译处理,得到APK文件的smali代码;
利用正则表达式对smali代码进行规则匹配,得到URL地址信息;
爬取URL地址信息所对应的网页内容信息,并对所述网页内容信息进行预处理;
对预处理后的各所述网页内容信息与预设关键词进行正则匹配,以确定所述网页内容信息是否为所述隐私协议。
进一步地,所述对所述网页内容信息进行预处理,包括:
对所述网页内容信息中预设的HTML标签、与网页页面正文不相关的信息和页面导航内容进行删除处理。
进一步地,所述动态分析为主动动态分析;
所述对所述待测移动应用进行动态分析,以提取所述待测移动应用的所述隐私协议,具体包括:
获取所述待测移动应用的Activity信息,生成待检测Activity队列;
利用预编写的自动化测试脚本对所述待检测Activity队列中各节点对应Activity界面的UI控件树进行预设遍历深度的解析,以确定所述控件所在区域是否为关键区域,其中,UI控件树的节点与Activity界面中的所述控件一一对应;
响应于确定所述控件所在区域为所述关键区域,将所述控件所在区域划分为若干预设尺寸的矩形区域,并依次模拟点击所述矩形区域的预设坐标点;
响应于确定模拟点击所述行矩形区域后所述待测移动应用的Activity界面跳转到新的Activity界面,获取新的Activity界面的UI控件树以及UI控件树的结构文件;
基于所述新的Activity界面中UI控件树的结构文件,提取所述待测移动应用的所述隐私协议。
进一步地,所述动态分析为被动动态分析;
所述对所述待测移动应用进行动态分析,以提取所述待测移动应用的所述隐私协议,具体包括:
获取所述待测移动应用运行时的数据包信息;
将所述数据包信息对应的文本内容与所述预设关键词进行正则匹配;
响应于确定所述数据包信息对应的文本内容为隐私协议内容,对所述待测移动应用的所述隐私协议进行提取。
进一步地,所述确定所述控件所在区域是否为关键区域,包括:
响应于确定当前控件的text属性的属性值包含至少一个预设属性值,当前控件所在区域为所述关键区域;其中,
所述预设属性值为下列至少之一:隐私、用户、服务、条款、政策、协议和声明。
进一步地,基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行,具体包括:
基于APK文件获取所述待测移动应用的进程名和主Activity组件名,以将所述待测移动应用安装到Android模拟器中;
利用UiautomatorViewer工具从Android模拟器中获取所述待测移动应用当前GUI界面的UI控件树,并遍历UI控件树提取目标控件;
生成与所述目标控件的控件类型相对应的用户动作;
获取所述待测移动应用的GUI状态信息,以构建GUI遍历模型;
基于GUI遍历模型和所述用户动作,确定当前GUI的模拟任务并加入任务列表;
基于启发式深度优先遍历算法,获取所述任务列表中一个模拟任务并执行;
响应于确定所述模拟任务执行后GUI界面发生变化,重新获取所述待测移动应用的当前GUI界面的UI控件树;
响应于确定所述模拟任务执行后GUI界面未发生变化,获取所述任务列表的其他模拟任务并执行直至所述任务列表为空或满足预设停止条件。
基于同一发明构思,本申请第二方面提供了一种动静态结合的移动应用隐私协议提取装置,包括:
获取模块,被配置为获取待测移动应用的APK文件;
构建模块,被配置为构建GUI自动化遍历框架;
GUI遍历模块,被配置为基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行;
第一分析模块,被配置为对APK文件进行静态分析,得到静态分析结果;
响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议;
第二分析模块,被配置为响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。
基于同一发明构思,本申请第三方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
基于同一发明构思,本申请第四方面提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行第一方面所述的方法。
从上面所述可以看出,本申请提供的动静态结合的移动应用隐私协议提取方法及相关设备,基于GUI自动化遍历框架对待测移动应用进行自动化测试,利用动静态结合的分析方式确定待测移动应用的隐私协议并提取,在保证提取隐私协议完整性的同时,进一步提高了移动应用隐私协议提取的准确性,节省了大量的人力物力。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的动静态结合的移动应用隐私协议提取方法流程图;
图2为本申请实施例的利用GUI自动化遍历框架驱动待测移动应用运行的流程图;
图3为本申请实施例的动静态结合的移动应用隐私协议提取装置结构示意图;
图4为本申请实施例的电子设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
如背景技术部分所述,相关技术中对移动应用隐私协议提取的方案还难以满足需要,一般通过手动提取或静态分析来检测应用的敏感行为,申请人在实现本申请的过程中发现:对于使用代码混淆和加密技术的移动应用,在进行手动提取或静态分析提取隐私协议时,提取的效率很低,且提取的准确率也会下降。此外,在获取分析材料时,需要手动获取内嵌在移动应用页面中的隐私协议,,在获取样本的工作上浪费了大量的时间和人力。
有鉴于此,本申请的实施例提出一种动静态结合的移动应用隐私协议提取方法,基于构建的GUI自动化遍历框架,对待测移动应用进行自动化测试,并且在自动化测试过程中,对待测移动应用程序进行静态分析和动态分析,从而高效、准确地将待测移动应用程序中的隐私协议完整提取出来。
以下,通过具体的实施例来详细说明本申请的技术方案。
参考图1,本申请一个实施例提供的一种动静态结合的移动应用隐私协议提取方法,包括以下步骤:
步骤S101,获取待测移动应用的APK文件。
本步骤中,APK(Android Package)是Android系统的安装包文件,待测移动应用通过APK文件在Android模拟器中或Android手机中执行便完成移动应用程序的安装。
步骤S102,构建GUI自动化遍历框架。
本步骤中,移动应用中的GUI界面为移动应用显示在屏幕上的图像界面,通过构建GUI自动化遍历框架,模拟用户使用移动应用的过程,不需要人工操作,节省了大量的人力物力。
步骤S103,基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行。
本步骤中,移动应用会在第一次安装时向用户出示其隐私协议,多以弹窗、隐私协议页面等方式展现,隐私协议中会声明在程序运行过程中会获取用户的身份证信息、地理位置信息和通信录信息等与用户相关的隐私信息。
将APK作为GUI自动化遍历框架的输入,模拟首次安装环境,并通过模拟用户的动作使待测移动应用程序的GUI界面跳转到新的GUI界面,以保证待测移动应用程序运行过程中能够对隐私协议进行有效提取。
步骤S104,对APK文件进行静态分析,得到静态分析结果。
本步骤中,静态分析是指在不运行的情况下,采用词法分析或语法分析等对程序文件进行扫描,从而生成程序的反编译代码,通过反编译代码来获取程序执行的功能。根据静态分析结果能够判断出当前所分析的GUI页面是否包含隐私协议内容。
步骤S105,响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议。
本步骤中,对于未使用代码混淆和加密技术的移动应用,通过静态分析能够发现存在隐私协议内容的GUI界面,以对相应的隐私协议内容进行提取。
步骤S106,响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。
本步骤中,当通过静态分析,未能发现存在隐私协议内容的GUI界面,并不代表待测移动应用不存在隐私协议页面,因此通过动态分析能够发现静态分析未发现的存在隐私协议内容的GUI界面,并对相应GUI界面的内容进行提取。
可见,本实施例提供的动静态结合的移动应用隐私协议提取方法,基于 GUI自动化遍历框架对待测移动应用进行自动化测试,利用动静态结合的分析方式确定待测移动应用的隐私协议并提取,能够有效对抗代码混淆和加密技术,在保证提取隐私协议完整性的同时,进一步提高了移动应用隐私协议提取的准确性,节省了大量的人力物力。
在一些实施例中,对于前述实施例中的步骤S104,其可以包括以下步骤:
步骤S1041,对APK文件进行反编译处理,得到APK文件的smali代码。
本步骤中,首先解压待测移动应用的的APK文件得到dex文件,通过反编译工具apktool对dex文件进行反编译获取smali代码文件,smali代码包含 API的相关信息,例如:API的调用次数;此外,对待测移动应用其他资源文件进行反编译,能够获取XML配置、图片以及语言资源等文件。
步骤S1042,利用正则表达式对smali代码进行规则匹配,得到URL地址信息。
本步骤中,利用URL链接格式的正则表达式对smali代码进行匹配,得到 APK文件中所有URL链接,对URL链接进行去重处理,以免对相同URL链接的页面重复进行测试,节省了大量时间。
步骤S1043,爬取URL地址信息所对应的网页内容信息,并对所述网页内容信息进行预处理。
本步骤中,可利用selenium爬虫爬取各URL链接中的网页内容,通过对爬取的网页内容进行预处理,避免对与网页正文内容无关的内容进行测试,进一步节省了测试时间。
步骤S1044,对预处理后的各所述网页内容信息与预设关键词进行正则匹配,以确定所述网页内容信息是否为所述隐私协议。
本步骤中,正则匹配的关键词可包括下列至少之一:声明、隐私、协议和条款,需要说明的是,关键词可根据实际情况进行设定,在此不做具体限定。当网页内容包括一个或多个关键词时,则当前网页包含隐私协议内容。
在一些实施例中,可通过以下方式对所述网页内容信息进行预处理:
对所述网页内容信息中预设的HTML标签、与网页页面正文不相关的信息和页面导航内容进行删除处理。
也可以将网页的正文内容转换为Markdown格式,并利用Unicode字符进行标准化,以输出正文内容的纯文本文档。
在一些实施例中,当所述动态分析为主动动态分析时,前述实施例中的步骤S106,其可以包括以下步骤:
步骤S1061,获取所述待测移动应用的Activity信息,生成待检测Activity 队列。
本步骤中,遍历smali代码文件生成类名集合,从该类名集合中提取移动应用的启动类,当该启动类的smali代码中含有类名集合中的剩余类名时,将含有的剩余类名与当前类名设置父子关系并从类名集合中取出,加入到Class 队列,取出队列头部的类名重复上述操作,直至队列中取出的类名对应的smali 代码中不再含有类名集合中的剩余类名,得到一个根节点为移动应用启动类的树状图,取出树状图中非Activity入口类节点后,即可生成Activity树状图。从Activity树状图中的根节点开始,不断将根节点的子节点加入队列,直到子节点为空,待检测Activity队列生成完成。
步骤S1062,利用预编写的自动化测试脚本对所述待检测Activity队列中各节点对应Activity界面的UI控件树进行预设遍历深度的解析,以确定所述控件所在区域是否为关键区域。
本步骤中,自动化测试脚本由ADB shell命令和uiautoviewer工具编写,其中ADBshell命令能够启动待检测Activity界面,模拟用户点击操作,删除缓存文件;uiautoviewer工具可生成当前页面的UI控件树,UI控件树的节点与Activity界面中的所述控件一一对应。
按照索引提取待检测Activity队列中的节点,使用adb shell am start-W命令启动所提取节点对应的Activity界面,脚本会通过adbshell /system/bin/uiautomatordump命令解析当前页面的UI控件树。通过遍历UI控件树所有节点的clickable属性,选出所有clickable属性为true的可点击控件,然后依次判断是否为关键区域。
步骤S1063,响应于确定所述控件所在区域为所述关键区域,将所述控件所在区域划分为若干预设尺寸的矩形区域,并依次模拟点击所述矩形区域的预设坐标点。
本步骤中,当任意一个控件所在的区域被判定为关键区域时,该控件的 XML代码只给出所在区域的既定坐标点,例如:区域的左上/右下坐标点,即该控件的bounds属性,但无法确定包含隐私协议的链接所对应的坐标。因此,可将关键区域分割为更小的矩形,通过adb shell input tap x y命令,依次模拟点击每个小矩形的顶点。
步骤S1064,响应于确定模拟点击所述行矩形区域后所述待测移动应用的Activity界面跳转到新的Activity界面,获取新的Activity界面的UI控件树以及UI控件树的结构文件。
本步骤中,通过adb shell dumpsys activity top|grep"ACTIVITY”命令,对比控件点击前后的Activity界面是否发生变化判断跳转,若发生跳转,则说明点击到了隐私协议或用户协议的链接,保存跳转后Activity界面的UI控件树的结构文件。通过adb shellinput keyevent 4模拟点击Back键返回关键区域所在页面,继续点击其他划分的矩形区域进行测试。
步骤S1065,基于所述新的Activity界面中UI控件树的结构文件,提取所述待测移动应用的所述隐私协议。
本步骤中,可通过Java的DOM工具库载入整个控件树,将所有控件的text 属性值写入txt文件中保存,即可得到隐私协议的内容。
在一些实施例中,当所述动态分析为被动动态分析时,前述实施例中的步骤S106,其可以包括以下步骤:
步骤S1066,获取所述待测移动应用运行时的数据包信息。
本步骤中,数据包信息包括但不限于下列至少之一:弹窗信息、预提取的图片文字信息、预解析的流量信息和文件读写内容信息。可通过光学字符识别 (Optical CharacterRecognition,OCR)技术对使用移动应用过程中的图片进行文字识别;通过HTTP、HTTPS等协议信息对流量信息进行解析,以提取相应的文本内容。
步骤S1067,将所述数据包信息对应的文本内容与所述预设关键词进行正则匹配。
本步骤中,通过对弹窗信息、预提取的图片文字信息、预解析的流量信息和/或文件读写内容信息与关键词进行正则匹配,能够确定弹窗信息、预提取的图片文字信息、预解析的流量信息和/或文件读写内容信息的文本内容是否包含隐私协议的内容。
步骤S1068,响应于确定所述数据包信息对应的文本内容为隐私协议内容,对所述待测移动应用的所述隐私协议进行提取。
本步骤中,当弹窗信息、预提取的图片文字信息、预解析的流量信息和/ 或文件读写内容信息对应的文本内容为隐私协议内容时,将相应的文本内容进行提取并保存。
在本实施例中,在基于主动动态分析进行隐私协议提取的同时,还利用被动动态分析对隐私协议进行提取,大大增加了隐私协议内容的提取速度,提高了提取的隐私协议内容的完整性,节省了大量时间。
在一些实施例中,通过以下方式确定所述控件所在区域是否为关键区域:
响应于确定当前控件的text属性的属性值包含至少一个预设属性值,当前控件所在区域为所述关键区域;其中,所述预设属性值为下列至少之一:隐私、用户、服务、条款、政策、协议和声明。
关键区域的判断条件的代码表示如下:
boolean a=(t.contains(“隐私”)||t.contains(“用户”)||t.contains(“服务”))&& (t.contains(“条款”)||t.contains(“政策”)||t.contains(“协议”)||t.contains(“声明”))
其中,t为当前控件的text属性值,当a为true时,该控件所在的区域可被判定为关键区域。
在一些实施例中,结合图2,前述实施例中的步骤S103,其可以包括以下步骤:
步骤S1031,基于APK文件获取所述待测移动应用的进程名和主Activity 组件名,以将所述待测移动应用安装到Android模拟器中。
本步骤中,直接将待测移动应用的APK文件作为GUI自动化遍历框架的输入,可从待测移动应用中的AndroidManifest文件获取待测移动应用的进程名和主Activity组件名,并将待测移动应用安装到Android模拟器或真实设备中并自动启动。
步骤S1032,利用UiautomatorViewer工具从Android模拟器中获取所述待测移动应用当前GUI界面的UI控件树,并遍历UI控件树提取目标控件。
本步骤中,目标控件能够对用户事件产生相应动作的控件,即执行后能够引起GUI界面发生变化的控件。
步骤S1033,生成与所述目标控件的控件类型相对应的用户动作。
本步骤中,每个控件都对应固定的用户动作,如:Button控件生成点击动作、TextView控件生成输入动作。
步骤S1034,获取所述待测移动应用的GUI状态信息,以构建GUI遍历模型。
本步骤中,GUI状态信息与用户动作一一对应,获取的GUI状态的数量可根据实际情况进行设置,也可获取全部的GUI状态,在此不做具限定。
步骤S1035,基于GUI遍历模型和所述用户动作,确定当前GUI的模拟任务并加入任务列表。
本步骤中,根据一个GUI状态及其对应的用户动作,能够生成一个对应的模拟任务。
步骤S1036,基于启发式深度优先遍历算法,获取所述任务列表中一个模拟任务并执行。
本步骤中,当需要执行的用户动作为输入数据,此时可根据启发式策略在 GUI界面中输入有效的数据,保证能够与真实的用户动作保持一致。
步骤S1037,响应于确定所述模拟任务执行后GUI界面发生变化,执行步骤S1032~S1036。
本步骤中,为获取到完整的隐私协议内容,当GUI界面发生变化,变化后的GUI界面可能包含隐私协议的内容,因此,为避免发生遗漏,需要继续遍历测试跳转后的GUI界面。
步骤S1038,响应于确定所述模拟任务执行后GUI界面未发生变化,获取所述任务列表的其他模拟任务并执行直至所述任务列表为空或满足预设停止条件。
本步骤中,预设停止条件可以为遍历层数限制、遍历时间限制,也可根据实际情况对停止条件进行设置,在此不做具体限定。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种动静态结合的移动应用隐私协议提取装置。
参考图3,所述动静态结合的移动应用隐私协议提取装置,包括:
获取模块301,被配置为获取待测移动应用的APK文件。
构建模块302,被配置为构建GUI自动化遍历框架。
GUI遍历模块303,被配置为基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行。
第一分析模块304,被配置为对APK文件进行静态分析,得到静态分析结果;
响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议。
第二分析模块305,被配置为响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。
作为一个可选的实施例,所述第一分析模块304,具体被配置为对APK文件进行反编译处理,得到APK文件的smali代码;利用正则表达式对smali代码进行规则匹配,得到URL地址信息;爬取URL地址信息所对应的网页内容信息,并对所述网页内容信息进行预处理;对预处理后的各所述网页内容信息与预设关键词进行正则匹配,以确定所述网页内容信息是否为所述隐私协议。
作为一个可选的实施例,所述对所述网页内容信息进行预处理包括:对所述网页内容信息中预设的HTML标签、与网页页面正文不相关的信息和页面导航内容进行删除处理。
作为一个可选的实施例,所述动态分析为主动动态分析,所述第二分析模块305,具体被配置为获取所述待测移动应用的Activity信息,生成待检测 Activity队列;利用预编写的自动化测试脚本对所述待检测Activity队列中各节点对应Activity界面的UI控件树进行预设遍历深度的解析,以确定所述控件所在区域是否为关键区域,其中,UI控件树的节点与Activity界面中的所述控件一一对应;响应于确定所述控件所在区域为所述关键区域,将所述控件所在区域划分为若干预设尺寸的矩形区域,并依次模拟点击所述矩形区域的预设坐标点;响应于确定模拟点击所述行矩形区域后所述待测移动应用的Activity界面跳转到新的Activity界面,获取新的Activity界面的UI控件树以及UI控件树的结构文件;基于所述新的Activity界面中UI控件树的结构文件,提取所述待测移动应用的所述隐私协议。
作为一个可选的实施例,所述动态分析为被动动态分析,所述第二分析模块305,具体还被配置为获取所述待测移动应用运行时的数据包信息;将所述数据包信息对应的文本内容与所述预设关键词进行正则匹配;响应于确定所述数据包信息对应的文本内容为隐私协议内容,对所述待测移动应用的所述隐私协议进行提取。
作为一个可选的实施例,所述确定所述控件所在区域是否为关键区域,包括:响应于确定当前控件的text属性的属性值包含至少一个预设属性值,当前控件所在区域为所述关键区域;其中,所述预设属性值为下列至少之一:隐私、用户、服务、条款、政策、协议和声明。
作为一个可选的实施例,GUI遍历模块303,具体被配置为基于APK文件获取所述待测移动应用的进程名和主Activity组件名,以将所述待测移动应用安装到Android模拟器中;利用UiautomatorViewer工具从Android模拟器中获取所述待测移动应用当前GUI界面的UI控件树,并遍历UI控件树提取目标控件;生成与所述目标控件的控件类型相对应的用户动作;获取所述待测移动应用的GUI状态信息,以构建GUI遍历模型;基于GUI遍历模型和所述用户动作,确定当前GUI的模拟任务并加入任务列表;基于启发式深度优先遍历算法,获取所述任务列表中一个模拟任务并执行;响应于确定所述模拟任务执行后GUI界面发生变化,重新获取所述待测移动应用的当前GUI界面的UI控件树;响应于确定所述模拟任务执行后GUI界面未发生变化,获取所述任务列表的其他模拟任务并执行直至所述任务列表为空或满足预设停止条件。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的动静态结合的移动应用隐私协议提取方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的动静态结合的移动应用隐私协议提取方法。
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口 1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM (Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/ 输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的动静态结合的移动应用隐私协议提取方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的动静态结合的移动应用隐私协议提取方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的动静态结合的移动应用隐私协议提取方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种动静态结合的移动应用隐私协议提取方法,其特征在于,包括:
获取待测移动应用的APK文件;
构建GUI自动化遍历框架;
基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行;
对APK文件进行静态分析,得到静态分析结果;
响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议;
响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。
2.根据权利要求1所述的方法,其特征在于,所述对APK文件进行静态分析,得到静态分析结果,包括:
对APK文件进行反编译处理,得到APK文件的smali代码;
利用正则表达式对smali代码进行规则匹配,得到URL地址信息;
爬取URL地址信息所对应的网页内容信息,并对所述网页内容信息进行预处理;
对预处理后的各所述网页内容信息与预设关键词进行正则匹配,以确定所述网页内容信息是否为所述隐私协议。
3.根据权利要求2所述的方法,其特征在于,所述对所述网页内容信息进行预处理,包括:
对所述网页内容信息中预设的HTML标签、与网页页面正文不相关的信息和页面导航内容进行删除处理。
4.根据权利要求1所述的方法,其特征在于,所述动态分析为主动动态分析;
所述对所述待测移动应用进行动态分析,以提取所述待测移动应用的所述隐私协议,具体包括:
获取所述待测移动应用的Activity信息,生成待检测Activity队列;
利用预编写的自动化测试脚本对所述待检测Activity队列中各节点对应Activity界面的UI控件树进行预设遍历深度的解析,以确定所述控件所在区域是否为关键区域,其中,UI控件树的节点与Activity界面中的所述控件一一对应;
响应于确定所述控件所在区域为所述关键区域,将所述控件所在区域划分为若干预设尺寸的矩形区域,并依次模拟点击所述矩形区域的预设坐标点;
响应于确定模拟点击所述行矩形区域后所述待测移动应用的Activity界面跳转到新的Activity界面,获取新的Activity界面的UI控件树以及UI控件树的结构文件;
基于所述新的Activity界面中UI控件树的结构文件,提取所述待测移动应用的所述隐私协议。
5.根据权利要求2所述的方法,其特征在于,所述动态分析为被动动态分析;
所述对所述待测移动应用进行动态分析,以提取所述待测移动应用的所述隐私协议,具体包括:
获取所述待测移动应用运行时的数据包信息;
将所述数据包信息对应的文本内容与所述预设关键词进行正则匹配;
响应于确定所述数据包信息对应的文本内容为隐私协议内容,对所述待测移动应用的所述隐私协议进行提取。
6.根据权利要求4所述的方法,其特征在于,所述确定所述控件所在区域是否为关键区域,包括:
响应于确定当前控件的text属性的属性值包含至少一个预设属性值,当前控件所在区域为所述关键区域;其中,
所述预设属性值为下列至少之一:隐私、用户、服务、条款、政策、协议和声明。
7.根据权利要求1所述的方法,其特征在于,基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行,具体包括:
基于APK文件获取所述待测移动应用的进程名和主Activity组件名,以将所述待测移动应用安装到Android模拟器中;
利用UiautomatorViewer工具从Android模拟器中获取所述待测移动应用当前GUI界面的UI控件树,并遍历UI控件树提取目标控件;
生成与所述目标控件的控件类型相对应的用户动作;
获取所述待测移动应用的GUI状态信息,以构建GUI遍历模型;
基于GUI遍历模型和所述用户动作,确定当前GUI的模拟任务并加入任务列表;
基于启发式深度优先遍历算法,获取所述任务列表中一个模拟任务并执行;
响应于确定所述模拟任务执行后GUI界面发生变化,重新获取所述待测移动应用的当前GUI界面的UI控件树;
响应于确定所述模拟任务执行后GUI界面未发生变化,获取所述任务列表的其他模拟任务并执行直至所述任务列表为空或满足预设停止条件。
8.一种动静态结合的移动应用隐私协议提取装置,其特征在于,包括:
获取模块,被配置为获取待测移动应用的APK文件;
构建模块,被配置为构建GUI自动化遍历框架;
GUI遍历模块,被配置为基于APK文件和GUI自动化遍历框架,驱动所述待测移动应用运行;
第一分析模块,被配置为对APK文件进行静态分析,得到静态分析结果;
响应于确定所述静态分析结果中存在隐私协议,提取所述待测移动应用对应的隐私协议;
第二分析模块,被配置为响应于确定所述静态分析结果中不存在隐私协议,对所述待测移动应用进行动态分析,以提取所述待测移动应用的隐私协议。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
CN202111335897.XA 2021-11-11 2021-11-11 动静态结合的移动应用隐私协议提取方法及相关设备 Active CN114297700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111335897.XA CN114297700B (zh) 2021-11-11 2021-11-11 动静态结合的移动应用隐私协议提取方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111335897.XA CN114297700B (zh) 2021-11-11 2021-11-11 动静态结合的移动应用隐私协议提取方法及相关设备

Publications (2)

Publication Number Publication Date
CN114297700A true CN114297700A (zh) 2022-04-08
CN114297700B CN114297700B (zh) 2022-09-23

Family

ID=80964246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111335897.XA Active CN114297700B (zh) 2021-11-11 2021-11-11 动静态结合的移动应用隐私协议提取方法及相关设备

Country Status (1)

Country Link
CN (1) CN114297700B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023201621A1 (zh) * 2022-04-21 2023-10-26 山石网科通信技术股份有限公司 隐私信息泄露的检测方法、装置及电子设备
CN117056921A (zh) * 2023-08-11 2023-11-14 上海弘连网络科技有限公司 生成Frida脚本与APK动态分析的方法、系统、设备及介质

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
CN106874763A (zh) * 2017-01-16 2017-06-20 西安电子科技大学 模拟用户行为的安卓软件恶意行为触发系统及方法
CN107133519A (zh) * 2017-05-15 2017-09-05 华中科技大学 一种安卓应用网络通信中隐私泄漏检测方法及系统
US20170374034A1 (en) * 2014-12-31 2017-12-28 Interdigital Patent Holdings, Inc. Context-based protocol stack privacy
CN108628732A (zh) * 2017-03-16 2018-10-09 腾讯科技(深圳)有限公司 一种应用界面控件遍历测试方法及装置
CN108733551A (zh) * 2017-04-13 2018-11-02 中兴通讯股份有限公司 控件遍历方法及装置、分析系统
CN109740376A (zh) * 2018-12-21 2019-05-10 哈尔滨工业大学(深圳) 基于近邻查询的位置隐私保护方法、系统、设备及介质
CN111475811A (zh) * 2020-04-28 2020-07-31 北京邮电大学 一种Android应用程序动态生成控件中用户输入隐私检测方法
CN111723394A (zh) * 2020-04-22 2020-09-29 北京大学 一种动态加载代码库的隐私保护分布式计算方法及系统
CN112347502A (zh) * 2019-08-07 2021-02-09 陈善席 一种信息处理的方法与系统
CN112685737A (zh) * 2020-12-24 2021-04-20 恒安嘉新(北京)科技股份公司 一种app的检测方法、装置、设备及存储介质
CN112989424A (zh) * 2021-04-20 2021-06-18 北京瑞莱智慧科技有限公司 面向机器学习算法的预测与训练流程的统一方法及装置
CN113076538A (zh) * 2021-04-02 2021-07-06 北京邮电大学 一种移动应用apk文件内嵌隐私政策提取方法
CN113158251A (zh) * 2021-04-30 2021-07-23 上海交通大学 应用程序隐私泄露检测方法、系统、终端及介质
CN113177205A (zh) * 2021-04-27 2021-07-27 国家计算机网络与信息安全管理中心 一种恶意应用检测系统及方法
CN113282955A (zh) * 2021-06-01 2021-08-20 上海交通大学 隐私政策中隐私信息提取方法、系统、终端及介质

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038389A (zh) * 2014-06-19 2014-09-10 高长喜 多重应用协议识别方法和装置
US20170374034A1 (en) * 2014-12-31 2017-12-28 Interdigital Patent Holdings, Inc. Context-based protocol stack privacy
CN106874763A (zh) * 2017-01-16 2017-06-20 西安电子科技大学 模拟用户行为的安卓软件恶意行为触发系统及方法
CN108628732A (zh) * 2017-03-16 2018-10-09 腾讯科技(深圳)有限公司 一种应用界面控件遍历测试方法及装置
CN108733551A (zh) * 2017-04-13 2018-11-02 中兴通讯股份有限公司 控件遍历方法及装置、分析系统
CN107133519A (zh) * 2017-05-15 2017-09-05 华中科技大学 一种安卓应用网络通信中隐私泄漏检测方法及系统
CN109740376A (zh) * 2018-12-21 2019-05-10 哈尔滨工业大学(深圳) 基于近邻查询的位置隐私保护方法、系统、设备及介质
CN112347502A (zh) * 2019-08-07 2021-02-09 陈善席 一种信息处理的方法与系统
CN111723394A (zh) * 2020-04-22 2020-09-29 北京大学 一种动态加载代码库的隐私保护分布式计算方法及系统
CN111475811A (zh) * 2020-04-28 2020-07-31 北京邮电大学 一种Android应用程序动态生成控件中用户输入隐私检测方法
CN112685737A (zh) * 2020-12-24 2021-04-20 恒安嘉新(北京)科技股份公司 一种app的检测方法、装置、设备及存储介质
CN113076538A (zh) * 2021-04-02 2021-07-06 北京邮电大学 一种移动应用apk文件内嵌隐私政策提取方法
CN112989424A (zh) * 2021-04-20 2021-06-18 北京瑞莱智慧科技有限公司 面向机器学习算法的预测与训练流程的统一方法及装置
CN113177205A (zh) * 2021-04-27 2021-07-27 国家计算机网络与信息安全管理中心 一种恶意应用检测系统及方法
CN113158251A (zh) * 2021-04-30 2021-07-23 上海交通大学 应用程序隐私泄露检测方法、系统、终端及介质
CN113282955A (zh) * 2021-06-01 2021-08-20 上海交通大学 隐私政策中隐私信息提取方法、系统、终端及介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
XUSHENG XIAO等: "User-Aware Privacy Control via Extended Static-Information-Flow Analysis", 《2012 PROCEEDINGS OF THE 27TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING》 *
刘阳等: "基于随机模型检验的社交网络隐私保护研究", 《计算机工程》 *
孙卓等: "基于制度信任构建用户大数据隐私制度保护体系", 《图书馆学研究》 *
张铭喆: "Android应用隐私协议提取验证系统的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023201621A1 (zh) * 2022-04-21 2023-10-26 山石网科通信技术股份有限公司 隐私信息泄露的检测方法、装置及电子设备
CN117056921A (zh) * 2023-08-11 2023-11-14 上海弘连网络科技有限公司 生成Frida脚本与APK动态分析的方法、系统、设备及介质

Also Published As

Publication number Publication date
CN114297700B (zh) 2022-09-23

Similar Documents

Publication Publication Date Title
CN108304498B (zh) 网页数据采集方法、装置、计算机设备和存储介质
US9176742B2 (en) Converting desktop applications to web applications
US9317257B2 (en) Folded views in development environment
CN114297700B (zh) 动静态结合的移动应用隐私协议提取方法及相关设备
CN110688307B (zh) JavaScript代码检测方法、装置、设备和存储介质
AU2019205973A1 (en) Responsive resize
WO2020118485A1 (en) Method of Detecting User Interface Layout Issues for Web Applications
CN115407977A (zh) 一种信息编译方法、装置、设备及计算机可读存储介质
CN113704590A (zh) 网页数据获取方法、装置、电子设备及存储介质
CN115982491A (zh) 页面更新方法及装置、电子设备和计算机可读存储介质
US11604662B2 (en) System and method for accelerating modernization of user interfaces in a computing environment
CN114398673A (zh) 应用程序的合规检测方法、装置、存储介质与电子设备
CN113869789A (zh) 一种风险监控的方法、装置、计算机设备及存储介质
Cimino et al. An efficient model-based methodology for developing device-independent mobile applications
CN113656044B (zh) 安卓安装包压缩方法、装置、计算机设备及存储介质
US11550990B2 (en) Machine first approach for identifying accessibility, non-compliances, remediation techniques and fixing at run-time
CN112001157B (zh) 一种网页数据表格在线设计方法及装置
CN115437608A (zh) 智能研发辅助方法及装置
CN113515441A (zh) 应用信息采集方法、系统、电子设备及存储介质
CN112612469A (zh) 一种界面元素的处理方法、装置和电子设备
CN113934412A (zh) 程序生成方法、装置、设备及存储介质
CN117348876B (zh) 基于freeRTOS嵌入式系统的应用开发方法、系统及介质
CN116028108B (zh) 一种依赖包安装用时分析方法、装置、设备及存储介质
CN113849785B (zh) 针对应用程序的移动终端信息资产使用行为识别方法
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof

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