当前位置: 首页 > 专利查询>南京大学专利>正文

基于深度学习防止行为不端小程序的隐私保护方法及系统技术方案

技术编号:35911691 阅读:15 留言:0更新日期:2022-12-10 10:51
本发明专利技术提供基于深度学习防止行为不端小程序的隐私保护方法及系统,利用深度学习和程序分析技术的协同合作来检测小程序的预期和实际行为之间的不一致。本发明专利技术提供了新的小程序分析技术,将小部件的UI信息与相应的程序行为相关联,并基于程序分析确定小部件的实际行为,从而能够构建大规模、高质量的训练数据集。基于程序分析的结果,使用深度学习技术从非结构化数据集学习图标

【技术实现步骤摘要】
基于深度学习防止行为不端小程序的隐私保护方法及系统


[0001]本专利技术属于软件
,涉及隐私保护技术,尤其涉及一种基于深度学习防止行为不端小程序的隐私保护方法及系统。

技术介绍

[0002]应用内应用范型并不是一个新概念,而是对webview界面的创造性改进,它克服了移动操作系统(即Android和iOS)在网页应用的缺点。相比之下,小程序在主机应用程序中运行,而不是在web浏览器或移动操作系统中运行。用户可以操作主机应用程序提供的所有小程序,而无需下载或安装它们。此外,开发人员可以使用web开发语言以比传统移动应用更低的成本实现小程序。根据微信的统计数据,现有超过100万个小程序,涵盖200个类别,每天活跃用户超过2亿。为了获得比原生应用更好的体验,主机应用通常会封装小程序的API,以访问设备、系统和主机应用的资源。
[0003]小程序的架构通常包括用于UI显示的页面层和用于交互的服务层。页面层由Web视图组成,利用WXML和WXSS文件(即前端代码文件)以及Web视图API来呈现前端页面。服务层使用JavaScript(JS)引擎为小程序提供JS文件(即后端代码文件)的运行时环境。小程序通过JSAPI从主机应用程序或系统访问资源。
[0004]应用内应用范型中的设计缺陷可能会导致两类小程序错误行为。其一,系统资源暴露:主机应用程序取消对一些可以访问敏感资源的小程序API的保护;其二,UI欺骗:小程序UI遭受网络钓鱼攻击,这些小程序的不当行为通常针对用户,几乎不包含对系统有害的恶意代码,使得行为不当的小程序无法与正常应用程序区分开来,从而绕过主机应用程序的安全审查。此外,移动操作系统的安全机制没有解决这些错误行为,因为小程序由主机应用程序管理,对移动操作系统是透明的。对应用程序的错误行为检测已成为移动应用程序中的一个普遍趋势的研究趋势,并且现有的用户隐私保护方案尽保护具有一定的有效性,但由于小程序的架构和实现不同,因此无法将它们应用于小程序。

技术实现思路

[0005]为解决上述问题,本专利技术提出了一种基于深度学习防止行为不端小程序的隐私保护方法及系统,利用深度学习(DL)和程序分析技术的协同合作来检测小程序的预期和实际行为之间的不一致。预期行为是用户根据感知到的用户界面信息(即图标和文本描述)推断出的小程序将执行的行为。实际行为是小程序在底层移动设备上的操作,例如,由UI交互触发的API调用。本专利技术提供了新的小程序分析技术,将小部件的UI信息与相应的程序行为相关联,并基于程序分析确定小部件的实际行为(即实际API调用),从而能够构建大规模、高质量的训练数据集。基于程序分析的结果,使用深度学习技术从非结构化数据集(即图标和文本描述)学习图标

行为模型,以推断小部件的预期行为。本专利技术使用定义的三层标准模型,通过计算异常值分数来检测实际行为和预期行为之间的差异。如果发现任何不一致,则表明存在行为不端的小程序。然后,可以估计不当行为的风险水平,并主动执行对策。
[0006]为达到上述目的,本专利技术的技术方案如下:
[0007]一种基于深度学习防止行为不端小程序的隐私保护方法,包括如下步骤:
[0008]首先,通过静态和动态分析技术构建微信小程序数据集,并确定每个UI组件的实际行为,即程序实际执行的行为;
[0009]其次,利用深度学习技术从非结构化的UI信息中推断UI组件的预期行为,即用户对应用程序的期望行为;
[0010]最后,通过定义一个三层标准模型,聚合和计算实际行为与期望行为之间的差距;如果计算结果在不可接受的范围内,认为该小程序存在不端行为。
[0011]进一步的,具体包括如下步骤:
[0012]步骤一:准备阶段,自动提取数据集模块用于自动化地提取静态和动态数据,然后将它们合并为一个完整的数据集,包括UI组件的图标、对应的文本描述和绑定的API调用;应用静态分析从\verb|WXAPKG|文件中提取一部分静态数据,应用动态调试技术获得另一部分动态数据;然后,设计匹配器来合并静态和动态数据,生成一个完整的数据集;
[0013]步骤二:训练阶段,基于自动提取数据集模块获取的数据集,得到UI组件从用户的角度的期望行为,即预期的API调用;制定一个多标签分类任务,即把文本和图像作为输入,得出一个或多个API行为类别的预测结果;训练分类器,首先预先定义适当的API类别,并注释数据集的结果标签;然后建立一个图标

行为模型,称为MiniCheckerBert,并向其提供这个新的数据集,使其能够学习足够的特征进行预测;
[0014]步骤三:检测阶段,给定一个未知的小应用程序,静态分析模块自动检测每个UI组件,然后生成一个结果报告,存储在签名数据库中,描述其预期行为和实际行为之间的一致性;根据三层标准模型,通过计算和汇总来检测意图与行为之间的差异;
[0015]步骤四:保护阶段,在用户设备的运行过程中,动态保护模块根据签名数据库的结果报告保护用户信息;在安卓连接桥ADB工具的帮助下,首先对用户的设备进行实时监控,当用户操作有问题的小程序部件时,一个策略器模块被触发以执行保护措施;三层模型的每一层都对应着一个保护策略。
[0016]进一步的,所述步骤一中提取静态数据的具体步骤如下:
[0017](1)首先获得小程序的WXAPKG文件;当用户通过用户界面第一次进入一个小程序时,WXAPKG文件会从相应的服务器上下载到本地,主包在运行时首先被下载,然后根据需要下载其他的子包;
[0018](2)监测Android中微信小程序的存储文件/data/data/com.tencent.mm/MicroMsg/{一串十六进制字符}/appbrand/pkg/,这个文件夹包含了小程序的基础库和所有使用的小程序的WXAPKG文件;根据文件的生成时间,找到一个小程序的所有WXAPKG文件;对WXAPKG文件进行逆向工程获得源代码:首先分解一个小程序的主包;然后在主包文件夹下放置子包,并逐个反编译子包;
[0019](3)在获得源代码后,构建用于分析和提取静态数据集的程序调用图;在源代码中,微信小程序的内部结构中有三个对象,即app,page,和component;
[0020](4)从app.json开始分析,以获得当前小程序的所有page对象路径;分别处理每个page对象;在page对象的WXML文件中,有四种类型的标签:原生标签、自定义标签、include标签和import标签;其余JSON和JS文件与传统的网页静态分析一致;在WXML文件中的小部
件和JS文件中的相应API调用之间建立映射关系;
[0021](5)解析WXML文件以定位每个部件,在分析过程中把虚拟标签转换为本地标签的表示;首先使用Python的Lxml工具包将WXML文件解析成一个分层树,其中每个UI组件是树中的一个节点;然后遍历层次树来转换虚拟标签,过程如下:
[0022]·
转换自定本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于深度学习防止行为不端小程序的隐私保护方法,其特征在于,包括如下步骤:首先,通过静态和动态分析技术构建微信小程序数据集,并确定每个UI组件的实际行为,即程序实际执行的行为;其次,利用深度学习技术从非结构化的UI信息中推断UI组件的预期行为,即用户对应用程序的期望行为;最后,通过定义一个三层标准模型,聚合和计算实际行为与期望行为之间的差距;如果计算结果在不可接受的范围内,认为该小程序存在不端行为。2.根据权利要求1所述的基于深度学习防止行为不端小程序的隐私保护方法,其特征在于,具体包括如下步骤:步骤一:准备阶段,自动提取数据集模块用于自动化地提取静态和动态数据,然后将它们合并为一个完整的数据集,包括UI组件的图标、对应的文本描述和绑定的API调用;应用静态分析从\verb|WXAPKG|文件中提取一部分静态数据,应用动态调试技术获得另一部分动态数据;然后,设计匹配器来合并静态和动态数据,生成一个完整的数据集;步骤二:训练阶段,基于自动提取数据集模块获取的数据集,得到UI组件从用户的角度的期望行为,即预期的API调用;制定一个多标签分类任务,即把文本和图像作为输入,得出一个或多个API行为类别的预测结果;训练分类器,首先预先定义适当的API类别,并注释数据集的结果标签;然后建立一个图标

行为模型,称为MiniCheckerBert,并向其提供这个新的数据集,使其能够学习足够的特征进行预测;步骤三:检测阶段,给定一个未知的小应用程序,静态分析模块自动检测每个UI组件,然后生成一个结果报告,存储在签名数据库中,描述其预期行为和实际行为之间的一致性;根据三层标准模型,通过计算和汇总来检测意图与行为之间的差异;步骤四:保护阶段,在用户设备的运行过程中,动态保护模块根据签名数据库的结果报告保护用户信息;在安卓连接桥ADB工具的帮助下,首先对用户的设备进行实时监控,当用户操作有问题的小程序部件时,一个策略器模块被触发以执行保护措施;三层模型的每一层都对应着一个保护策略。3.根据权利要求2所述的基于深度学习防止行为不端小程序的隐私保护方法,其特征在于,所述步骤一中提取静态数据的具体步骤如下:(1)首先获得小程序的WXAPKG文件;当用户通过用户界面第一次进入一个小程序时,WXAPKG文件会从相应的服务器上下载到本地,主包在运行时首先被下载,然后根据需要下载其他的子包;(2)监测Android中微信小程序的存储文件/data/data/com.tencent.mm/MicroMsg/{一串十六进制字符}/appbrand/pkg/,这个文件夹包含了小程序的基础库和所有使用的小程序的WXAPKG文件;根据文件的生成时间,找到一个小程序的所有WXAPKG文件;对WXAPKG文件进行逆向工程获得源代码:首先分解一个小程序的主包;然后在主包文件夹下放置子包,并逐个反编译子包;(3)在获得源代码后,构建用于分析和提取静态数据集的程序调用图;在源代码中,微信小程序的内部结构中有三个对象,即app,page,和component;(4)从app.json开始分析,以获得当前小程序的所有page对象路径;分别处理每个page对象;在page对象的WXML文件中,有四种类型的标签:原生标签、自定义标签、include标签
和import标签;其余JSON和JS文件与传统的网页静态分析一致;在WXML文件中的小部件和JS文件中的相应API调用之间建立映射关系;(5)解析WXML文件以定位每个部件,在分析过程中把虚拟标签转换为本地标签的表示;首先使用Python的Lxml工具包将WXML文件解析成一个分层树,其中每个UI组件是树中的一个节点;然后遍历层次树来转换虚拟标签,过程如下:
·
转换自定义标签:根据标签名称是否在相应的JSON文件中声明确定它是否是一个自定义标签,标签的src属性确定了其地址;如果标签是自定义的,递归处理组件对象并返回相应的WXML和JS代码;
·
转换include标签:根据widget代码中的src属性找到相应的WXML文件,然后提取引用的WXML代码;
·
转换import标签:在遍历分层树时,如果遇到带有is属性的template标签,提取相应的WXML代码;从is属性值中获取地址,然后处理WXML文件,找到带有模板标签和name属性的导入代码;最后返回导入的代码;(6)重复(5)步骤,直到所有的标签都是WXML中的原生标签;(7)把一个WXML文件中的UI组件和它们的绑定事件关联起来;在小程序语法中,通过特殊事件属性将JS函数与UI前端代码相关联;一个一个地迭代UI组件,通过匹配上述的特殊属性来定位绑定事件;当遍历一个层次树时,考虑一个UI组件是否被隐含地绑定到其子节点的事件;把事件归于UI树中最大的组件;在WXML文件对应的JS文件中找到绑定函数,建立前端和后端代码之间的联系;(8)从JS文件中确定一个函数的API调用;通过JS解释器提供的API将一段JavaScript代码解析成抽象语法树AST;给定一个函数名,首先在AST中找到它,然后处理函数体的内容;当遇到一个从所需标识符导入的对象名称时,递归处理JS文件;(9)在完成上述步骤之后,使用程序调用图提取静态数据;所述步骤一中获取动态数据的具体步骤如下:(1)前端页面需要被动态调试,以确定每个UI组件的图标和上下文描述;使用Chrome DevTools动态调试小程序的HTML页面,使用TBS工具激活小程序页面的调试选项;(2)然后下载与微信版本相匹配的Chrome浏览器,在DevTools中查看每个webview页面的编译HTML代码和UI信息;转储动态的前端代码,以便将其与静态源代码联系;(3)使用JS自动化工具来编写脚本,将小程序的呈现页面解析成一个分层树,其中每个节点都是Android上的一个原生UI组件;(4)在脚本中,首先进入主页并遍历其分层树;如果树中的一个节点是可点击的,操作它并进入下一页;接下来遍历下一页的分层树,重复之前的点击操作;(5)在所有页面上迭代步骤(4);使用操作过的页面的路径作为标记来避免无限的迭代;(6)自动转储用户界面截图和当前运行的小程序的动态前端代码;(7)遍历DOM树并在用户界面截图的相应位置拦截其图标来确定一个UI组件的位置及其文本信息;所述步骤一中合并静态和动态数据的具体步骤如下:(1)静态和动态数据都包括前端代码,将静态前端代码编译成动态前端代码,使用调用
图的方法来处理静态前端代码;(2)确定共同的特征来关联静态和动态前端代码;共同的特征包括:标签名称、标签的class属性或is属性;标签的名称和class属性与传统的HTML中一致;(3)在动态和静态的前端代码中匹配标签名称;(4)进一步匹配相同部分的上下文标签;(5)如果步骤(4)仍然无法确定,用这些标签的class属性来匹配静态和动态前端代码;如果许多标签的class属性值相同,用同样的步骤来匹配它们的父亲或孩子的节点;(6)经过步骤(3)(4)(5),建立大多数静态和动态前端代码的映射;剩余的匹配通过以下步骤进行:(7)标签的is属性是一个唯一的标识符,当一个特殊的标签在被使用时,is属性会动态地生成;使用is属性来唯一地识别一段代码,包括静态和动态的;(8)静态和动态前端代码的映射是一对多的,根据上述步骤获得完整的数据集,包括图标图像、描述和API调用。4.根据权利要求2所述的基于深度学习防止行为不端小程序的隐私保护方法,其特征在于,所述步骤二中...

【专利技术属性】
技术研发人员:伏晓宋师文孙雨竹刘轩宇骆斌
申请(专利权)人:南京大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1