一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种安卓系统隐私窃取行为的动态检测与溯源方法

2022-07-31 05:38:35 来源:中国专利 TAG:


1.本发明涉及移动终端隐私安全技术领域,特别是涉及一种针对安卓系统隐私窃取行为的动态检测与溯源方法。


背景技术:

2.随着安卓、ios等手机操作系统的出现,智能手机开启了移动互联网时代。人们可以使用手机进行购物、社交以及各种娱乐活动等。然而享受便利的同时,人们也因此承担着手机带来的各种隐私泄露风险。目前的移动端设备承载了太多的个人信息,可标识个人信息、媒体信息等都可以通过手机被窃取。
3.手机webview是用来承载网页的开源开发组件,其也提供了权限代理的能力。
4.例如对于混合应用来说,开发者需要借助网页开发提升应用的迭代速度和实时更新能力。同时为了将原生应用拥有的系统权限赋予给webview中加载的网页部分,开发者一般会通过jsbridge技术自定义地将权限代理出去。但网页容器内的代码行为对于系统来说是不可见的,即加载进容器的动态网页代码是不可控的。由此会带来潜在的隐私泄露的风险。
5.而如今,愈来愈多的应用将外部三方网页代码通过webview集成到应用内,并且通过权限代理赋予这些三方代码很多隐私相关的敏感权限,且外部动态代码借此能够进行动态且无限制地隐私窃取。有研究表明,这种情况下存在着严重的隐私泄露的危机且已经发生了相关的案例。一方面由于权限代理机制实现的缺陷会导致意外的隐私权限被代理出去,另一方面由于设计缺陷,应用对代理出去的权限的访问控制策略或多或少会导致特权的升级。由于种种权限代理过程中的不合理,加载的外部三方网页代码以及其中采用的四方的服务或者代码则有机会利用这些不合理的实现或者设计缺陷进行隐私的窃取,造成严重的隐私泄露危机。然而由于这种从系统原生端到网页端进行的跨域接口调用难以实时监测,目前尚未有可靠的针对网页技术的权限代理带来的移动端隐私泄露行为的检测和判别。
6.因此亟需提出一种高效且可靠的方案对这一问题进行检测并对检测到的网页代码带来的隐私泄露进行取证和溯源。


技术实现要素:

7.针对上述利用网页技术的权限代理进行的隐私泄露问题,为了及时发现这类隐私泄露行为并取证溯源,本发明提供一套完整的检测方法,解决了现有技术中无法从系统原生端到网页端进行的跨域接口调用的实时监测带来的隐私泄露问题,实现能够从设备外部根据流量进行初步判断,再根据预判结果进行系统取证、溯源,提高了检测鲁棒性与效果。
8.为达到上述目的,本发明的技术方案是这样实现的:
9.一种安卓系统隐私窃取行为的动态检测与溯源方法,其特征在于包括如下步骤:
10.步骤s01、动态生成用例以覆盖应用主要行为;
11.步骤s02、收集并提取应用产生的http流量;
12.步骤s03、根据http流量分析应用的外部动态代码加载状况;
13.步骤s04、根据http流量检测与外部动态代码方相对应的隐私数据泄露情况,检测步骤包括:
14.步骤s0401:对于每一个流量来源,提取http流量中的隐私内容载体即url、post请求体、cookie内容作为流量隐私特征;根据不同的隐私信息类型预设一组隐私关键词,通过文本模糊匹配方法检测流量隐私特征中是否包含上述隐私信息;
15.步骤s0402:根据预设隐私关键词匹配流量隐私特征,得到匹配得分;
16.步骤s0403:针对每一条流量隐私特征进行随机字符匹配,获得匹配基准分;
17.步骤s0404:采用所述匹配基准分规范化所述匹配得分,即采用s0403中获得的基准分值规范化每条流量隐私特征的匹配得分;
18.步骤s0405:对于某一应用的所有流量匹配后取每一关键词对应的最高分作为某个隐私关键词的得分;
19.步骤s0406:将某个隐私关键词的得分与既定阈值比较,若得分小于既定阈值,则匹配不成功,判断该流量中不包含该类隐私信息泄露;
20.若得分大于既定阈值,则匹配成功,判断该流量中包含该类隐私信息的泄露。
21.步骤s05、根据流量分析和检测的结果初步筛选出可疑应用,对存在个人隐私泄露且能够执行动态代码的三方,将其标注为隐私窃取方,且将该应用标注为可疑应用并进入步骤s06,否则结束检测;
22.步骤s06、对可疑应用实施跨域动态分析进行系统取证和溯源。
23.本发明进一步优选的技术方案为:所述步骤s03包括如下步骤:
24.s0301、根据流量url分析http请求的加载内容,判断是否有动态代码载体或javascript文件;
25.s0302、根据流量域名和ssl证书的内容判断流量来源,通过域名分类技术将域名互相关联,将具有相同域名或通用名称或组织名称的网页来源关联起来,将其标识为同一个来源,采用离线的方式对域名进行分类分析,分析背后的运营实体;
26.s0303、根据流量来源和内容,确定流量运营实体能够在应用内运行动态代码,将非应用自身的外部动态代码标识为外部三方的动态网页代码,并将该应用标记。
27.作为优选,所述步骤s06包括:
28.步骤s0601:动态地监测应用运行状况,获取应用对于权限接口的调用链;
29.步骤s0602:获得应用使用网页技术进行权限代理可能的接口,并在其中插入调用方捕获模块;
30.步骤s0603:记录接口调用情况,并将权限接口调用链与网页技术权限代理接口相对应。在网页技术权限代理接口和调用方捕获模块插入随机数作为特定的标识id来确认其关联性,由此得到网页侧调用方到网页技术权限代理接口的调用链;
31.步骤s0604:得到完整的调用链,获取应用中三方网页代码对于权限接口的调用情况;得到完整调用链后确认权限接口的调用情况及其在网页端的调用方,即确认是否有外部三方动态代码通过网页的权限代理调用了系统权限接口获得了相应的隐私信息;
32.步骤s0605:完成取证和溯源。
33.作为优选,所述步骤s0602中,所述调用方捕获模块为利用网页接口结合系统本身特性获取调用方的代码模块,其使用前端接口在网页内获得当前页面url随后回调给系统方并通过侵入式系统技术捕获结果。
34.作为优选,在所述步骤s01中,采用自动化动态用例生成工具产生的动态测试用例对预设应用集进行自动化检测。
35.作为优选,在所述步骤s02中,收集从特定应用产生的http流量,并对流量进行提取,包括http流量的url、post请求、cookie内容,或https流量ssl证书内容的domain、organization、common name项。
36.本技术技术方案至少具有如下技术效果或优点:
37.1)本发明提出的移动端隐私泄露行为的检测方法能够对利用网页技术进行权限代理带来的可能的隐私交易或者隐私侵犯行为做出预判、检测和溯源。
38.2)本发明提出的检测方法能够通过流量分析对包括安卓在内的大部分操作系统的应用进行初步隐私泄露检测以及判断外部动态代码加载情况。
39.3)本发明由于采用了跨域动态分析方法,有效的解决现有技术无法从系统原生端到网页端进行的跨域接口调用的实时监测的技术难题,进而实现了对从网页端到系统权限接口的调用进行可靠取证和溯源。
附图说明
40.图1为本发明实施例中的检测与溯源方法的整体流程示意图;
41.图2为本发明实施例的系统取证示意图;
42.图3为本发明实施例中线程相关技术抽象示意图。
具体实施方式
43.为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
44.本实施例以安卓平台为例,结合流量分析和系统取证实施高效且可信的针对基于网页技术的权限代理的移动端隐私窃取行为的动态检测与溯源。
45.如图1所示,图1是本实施例检测与溯源方法的整体流程示意图,具体步骤包括:
46.步骤s01:动态生成用例以覆盖应用主要行为。在安卓平台上,本发明实施例采用基于安卓无障碍套件能力的自动化测试用例生成工具droidbot以及模拟人为操作的humanoid工具进行自动化拟人动态测试用例生成,以覆盖尽可能多的用例。
47.步骤s02:收集并提取应用产生的http流量。对于捕获某一应用产生的流量,本实施例中,采用mitmproxy这一网络中间代理作为流量捕获工具,除此以外也可以考虑在设备端进行捕获或者使用其他网络代理捕获流量。流量从系统流出时会有对应的流出的客户端端口,对于安卓平台,其端口将与uid相对应,可将uid视作应用的唯一标识符。在使用mitmproxy捕获流量时也可以获得对应的uid,由此可以确定并捕获某一特定应用的http流量。通过在客户端安装中间代理的证书,也可以捕获https流量。
48.捕获流量的同时,可以预设相应的规则提取需要的流量特征。在这里,考虑到接下来的需求,需要提取流量的url,http的post请求体、cookie内容以及ssl证书内容的
domain、organization、common name等项。
49.步骤s03:根据http流量分析应用的外部动态代码加载状况。
50.所述步骤s03具体包括:
51.步骤s0301:根据流量url分析http请求的加载内容,判断是否有动态代码载体或是javascript文件。统一资源定位系统(uniform resource locator;url)是因特网的万维网服务程序上用于指定信息位置的表示方法,对于一般的动态网页内容,一般会有特定类型的url后缀,例如javascript文件的url的后缀是.js,html页面的后缀是.html等。将js文件、html/shtml页面和do/action/jsp/php/asp等页面视作动态网页代码的载体。
52.步骤s0302:根据流量域名和ssl证书的内容判断流量来源,通过自定义的域名分类技术将域名互相关联,分析背后的运营实体,提高来源可靠性。为了判断网页内容是来自应用自身还是其他外部三方,需要确定其来源。
53.一般来说,可以通过网页url的域名判断其来源,然而对于目前的很多公司来说,通常拥有不止一个域名,为了提升来源判断的准确性,则需要进行域名的分类。对于本实施例,考虑结合ssl证书的内容将相关域名关联起来。对于一般的ssl证书,通常会包含域名(domain)、通用名称(common name,cn)、组织名称(organization)这几项,域名一般对应url域名,组织名称一般指域名背后的运营商业实体,而通用名称则可能是域名或者组织名称。域名分类技术具体指,将具有相同域名或通用名称或组织名称的网页来源关联起来,将其标识为同一个来源,以这种离线的方式对域名进行分类,提升来源可靠性。
54.步骤s0303:根据流量来源和内容,确定流量运营实体能够在应用内运行动态代码,将其标记。确定了应用加载的动态网页代码和来源后,将非应用自身的外部动态代码标识为外部三方的动态网页代码,并将该应用标识。
55.步骤s04:根据http流量检测与外部动态代码方相对应的隐私数据泄露情况;
56.所述步骤s04,具体包括:
57.步骤s0401:对于每一个流量来源,提取http流量中的隐私数据载体即url、post请求体、cookie内容作为流量隐私特征。
58.移动端的很多隐私泄露都是通过http进行传输的,其传输途径包括http的url即get请求内容,post请求体以及cookie内容。如表1,预设了一些隐私关键词,通过文本模糊匹配的方式检测隐私数据载体即流量隐私特征中是否包含这些隐私信息,我们将流量关键词定义为s
k,j
,0<j<4,k为第j类的隐私信息的关键词数量,我们将其简化为sk。
59.表1
[0060][0061]
步骤s0402:根据预设隐私关键词匹配流量隐私特征,得到匹配得分;在本实施例中,考虑采用levenshtein距离作为模糊匹配的衡量依据。levenshtein距离被定义为当想
把一个字符串转换成另一个字符串时,必须编辑(插入、删除或替换)的最小字符数,其可以用来衡量语义距离。毫无疑问,它可以用来在隐私数据泄露检测中进行模糊字符串匹配,但问题是如何确定检测阈值,归一化后的语义距离即levenshtein比(匹配长度减去levenshtein距离后除以匹配长度)大于多少时判断其中包含匹配关键词对应的隐私信息。
[0062]
步骤s0403:由于流量隐私特征自身蕴含的随机性,即对于同一个匹配关键词sk,每一条流量隐私特征s
t
的匹配结果都不相同,流量隐私特征自带一定地模式。由此针对每一条流量隐私特征进行随机字符匹配,获得匹配基准分用来规范化匹配结果;本实施例中,考虑将与关键词长度相同的随机字符作为基准关键词与匹配目标(隐私数据载体)进行多次匹配并获得基准得分,以此来获得每个隐私数据载体的随机性带来的匹配得分的基准值。
[0063]
具体来说,将dis(sk,s
t
)定义为sk和s
t
之间的levenshtein比,对于待测应用某一流量来源的所有n条流量隐私特征有s
t
,0<t<n。则对于某一sk和任意两条不同的隐私特征s
t
和s
t

,一般来说0≤dis(sk,s
t
)≠dis(sk,s
t

)<θ≤100,θ可以是很小的值,这意味着即使s
t
和s
t

中都不存在sk对应的隐私信息,其匹配结果还是会有差异,主要是因为s
t
具有自带的一定模式,影响levenshtein距离的结果。为了应对这一问题,对于特定长度|sk|的匹配关键词,取随机字符串sr,0<r<r,l=|sr|=|sk|,得到norm(l,s
t
)=∑
0<r<r
dis(sr,s
t
)/r,得到对于某条流量隐私特征s
t
,特定长度1的关键词的匹配基准值,其中r为根据经验设定的随机匹配数。
[0064]
步骤s0404:使用匹配基准分规范化匹配得分;使用s0403中获得的基准值规范化对于每个隐私数据的匹配得分。
[0065]
具体来说,对于本实施例,dis

(sk,s
t
)=max(0,dis(sk,s
t
)-norm(|sk|,s
t
))即为对于流量隐私特征s
t
和匹配关键词sk的最终匹配得分。
[0066]
步骤s0405:对于某一应用的某一流量来源的所有流量匹配后取每一关键词对应的最高分;一个来源的http流量中将会有多个隐私数据载体,对于每个隐私关键词,取所有隐私数据载体得分的最大值作为某个隐私关键词的得分。对于本实施例,对于所测应用i中来自host的所有流量,即app
i,host
和所有的匹配关键词sk,我们最终需要求得
[0067]
步骤s0406:根据既定阈值确定是否匹配成功。根据经验预设一个阈值来判断流量中是否包含某类隐私数据的泄露。根据阈值与上述匹配得分,确定某个来源的流量中是否包含隐私数据。本实施例中,将阈值定为50,本发明并不局限于此阈值或者这种经验式阈值确定方法。具体来说,即当代表应用i存在对于流量来源host的sk对应的隐私信息的泄露情况。
[0068]
步骤s05:根据流量分析和检测的结果初步筛选出可疑应用,如果某应用存在将隐私泄露给三方动态代码的可能性,则进行步骤s06,否则结束。对于上述检测结果,如果确定了该应用加载了某三方来源的动态网页代码且存在传输给该三方的隐私数据,则将其标识
为可疑应用,对其实施下一步检测,否则结束检测。
[0069]
步骤s06:对可疑应用实施跨域动态分析进行系统取证和溯源。本实施例针对安卓平台进行系统取证。对于以上的流量分析,认为其不具有太大的平台相关性,然而实施系统取证则需要平台对应的套件支持和系统性工作,因此,侧重于取证与溯源的方法论介绍。
[0070]
这里所述步骤s06,如图2,具体包括:
[0071]
步骤s0601:动态地监测应用运行状况,获取应用对于权限接口的调用链;对于本实施例,在安卓平台,考虑借助java自带的stacktrace获取某个接口在单个线程的调用栈,通过如图3线程相关技术将接口在不同线程内的调用栈拼接,得到完整的安卓侧调用链。
[0072]
具体来说,对于多线程任务,需要任务的发起方和接收方,通过在各类多线程机制中处理可能的任务发起方和接收方,就可以将不同线程关联起来。
[0073]
步骤s0602:获得应用使用网页技术进行权限代理可能的接口,并在其中插入调用方捕获模块;在本实施例中,触发不同的容器并通过侵入式系统技术获得可能的权限代理的接口,并在其中插入调用方捕获模块。
[0074]
具体来说,使用侵入式系统技术(对于安卓平台来说指的是采用hook技术或者自定义修改的aosp)获得系统加载的webview及其可能发生权限代理的接口。
[0075]
具体来说,调用方捕获模块指的是使用前端接口如document.domain在网页内获得当前页面url随后回调给系统方并通过侵入式系统技术捕获结果。
[0076]
步骤s0603:记录接口调用情况,并将权限接口调用链与网页技术权限代理接口相对应;将安卓侧调用链和通过调用方捕获模块获得的调用者关联。具体来说,通过在权限代理接口和调用方捕获模块插入使用随机数生成器生成的0~1之间的浮点数作为特定的标识id来确认其关联性。
[0077]
步骤s0604:得到完整的调用链,获取应用中三方网页代码对于权限接口的调用情况;得到完整调用链后,能够确认权限接口的调用情况及其在网页端的调用方。即可以确认是否有外部三方动态代码通过网页的权限代理调用了系统权限接口获得了隐私数据。
[0078]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进,这些改进也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献