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

一种面向安卓应用的WebView桥接口污点映射及分析方法技术

技术编号:17117881 阅读:33 留言:0更新日期:2018-01-25 00:29
本发明专利技术公开了一种面向安卓应用的WebView桥接口污点映射及分析方法,在WebView桥接口通信数据传输方法中增加了对应的污点记录模块和污点还原模块,实现污点映射;当敏感数据在Android原生环境与Web环境之间通过WebView桥接口进行传输时,能够通过该污点映射方法使敏感数据的污点标记跟随数据进行跨语言传输;再使用针对Android原生环境的污点分析系统,基于污点标记来检测和跟踪敏感数据在Android原生环境下的传输,使用针对Web环境的污点分析系统,基于污点标记来检测和跟踪敏感数据在Web环境下的传输,从而实现跨语言污点分析。本发明专利技术具有通用性高、覆盖广的特点。

A WebView bridge interface stain and analysis method for the application of Android

The invention discloses an application for Android WebView bridge interface stain mapping and analysis method in WebView bridge interface communication data transmission method adds a tainted record module and the corresponding module to achieve reduction of stain, stain mapping; when the sensitive data between the native Android and the Web environment through the WebView bridge interface for transmission, can through the mapping method to stain stain marker sensitive data follow the data for cross language transfer; then use Android for primary environment stain analysis system based on taint marking to detect and track sensitive data transmission in native Android environment, using Web environment for the taint analysis system, based on the detection and tracking of sensitive markers to stain data transmission in the Web environment, so as to realize the cross language taint analysis. The invention has the characteristics of high generality and wide coverage.

【技术实现步骤摘要】
一种面向安卓应用的WebView桥接口污点映射及分析方法
本专利技术涉及移动端安全领域,特别是一种面向安卓应用的WebView桥接口污点映射及分析方法。
技术介绍
随着移动互联网技术的发展以及移动端智能设备的普及,移动互联网在生活中逐渐占据了重要的地位。移动端智能设备存储了大量用户隐私信息,随之而来的隐私泄漏问题逐渐被人们所关注。污点分析是指通过分析程序运行时可能的数据流,来标记跟踪特定数据的过程。污点分析可以分为四个部分,污点、污点源(source)、传播过程和污点库(sink)。污点就是指要追踪的特定数据;污点源(source)则是能够导致污点传播的来源,可以是程序的输入,也可以是调用污点的函数;污点库(sink)是指可能将污点发送出应用程序的相关操作代码。污点分析要求预先定义好source和sink,source指的是那些能够提供敏感信息的库,如提供通讯录信息的API,sink则是指那些可能会泄露数据的库,如能够将信息传送到某个恶意第三方服务器的方法。然后追踪来自source的污点数据在source和sink之间是否存在数据流。污点分析技术能够有效的发现移动端隐私信息泄漏的问题,其主要分为动态污点分析和静态污点分析。动态污点分析是一种动态的实时检测技术,不需要程序源代码即可在程序运行的同时在二进制平台下以运行时机器指令流为依据完成监控检测任务。动态污点分析作为信息流思想的一种具体体现,最近若干年被应用在信息安全验证、恶意代码分析、隐私泄露分析、协议格式逆向分析等领域,近期有研究人员将其扩展到Android平台上,比较典型的动态污点分析工具有TaintDroid、AppFence以及AAsandbox等。分析时,首先将未获取安全认证的输入数据打上污点标记,然后根据程序实时指令和运行时状态信息,依据制定的污点流传播规则,分析带有污点标记的数据在寄存器和内存中的传播过程,同时在程序敏感字段设置检测点,当检测到带有污点标记的数据导入时采取相应的安全决策措施。静态污点分析是指在不运行且不修改代码的前提下,通过分析程序变量间的数据依赖关系来检测数据能否从污点源(source)传播到污点库(sink)。静态污点分析的对象一般是程序的源码或中间表示,可以将对污点传播中显示流的静态分析问题转化为对程序中静态数据依赖的分析:首先根据程序中的函数调用关系构建调用图;然后在函数内或者函数间根据不同的程序特性进行具体的数据流传播分析。常见的显式流污点传播方式包括直接赋值传播、通过函数(过程)调用传播以及通过别名(指针)传播。比较典型的静态污点分析工具有FlowDroid、LeakMiner以及AndroidLeaks等。最近几年新兴的Web型应用和混合型应用,与传统的原生应用相比,最显著的不同在于程序的部分功能在Web环境中运行。目前针对Web环境的JavaScript语言,比较典型的动态污点分析工具有JSTA以及DOMinator,静态污点分析工具有JSFlow、ScanJS以及JSPrime等。在混合移动应用多语言架构体系下,WebView桥接口为实现数据在Android原生环境(Java语言)与Web环境(JavaScript语言)之间跨语言传输提供了支持。虽然桥接口通信机制增强了混合移动应用使用本地设备的能力,但也带来了严重的跨语言安全风险,可能导致用户敏感数据通过该通道向外泄露。例如JavaScript代码可以通过WebView桥接口调用Java代码获取设备的敏感信息,并通过Web环境向外发送。由于数据在Java语言与JavaScript语言之间传输时,由于其污点标记在数据转换过程中丢失,因此无法简单的结合现有的单语言污点分析方法进行跨语言污点分析。因此,针对上述问题,有必要提供一种面向安卓应用的WebView桥接口污点映射及分析方法,使得数据在Java语言与JavaScript语言之间传输时,能够实现跨语言污点分析。
技术实现思路
本专利技术所要解决的技术问题是,提供一种面向安卓应用的WebView桥接口污点映射及分析方法,本专利技术能在目前已经存在的一些针对Android原生环境和Web环境的单语言污点分析方法之间建立起桥梁,本专利技术具有通用性高、覆盖广的特点。专利技术的技术解决方案如下:一种面向安卓应用的WebView桥接口污点映射方法,包括以下步骤:步骤1、定义桥接口Sink和桥接口Source;(i)桥接口Sink包括跨语言数据传输的桥接口通信方法,即Web环境下的桥接口方法及其对应的本地Java方法;(ii)桥接口Source为敏感数据传输到另一语言环境后对应的数据,包括Web环境下的桥接口方法返回值和该桥接口方法对应的本地Java方法参数值;步骤2:建立跨Java语言与JavaScript语言的污点映射关系;包括对桥接口Sink实现污点记录和对桥接口Source实现污点还原;(a)对桥接口Sink实现污点记录的方法为:每使用桥接口Sink传输一条敏感数据,则产生一条污点记录,每一条污点记录包括以下信息:所使用的桥接口方法名;所使用的桥接口方法参数污点信息,桥接口方法参数污点信息包括该参数在Web环境下的数据类型、原始值和污点标记;所使用的桥接口方法对应的本地Java方法返回值污点信息,本地Java方法返回值污点信息包括该返回值在本地Java环境下的数据类型、原始值和污点标记;将污点记录写入污点记录日志中;(b)对桥接口Source实现污点还原的方法为:首先在污点记录日志中找到与该桥接口Source匹配的污点记录,最后将该桥接口Source的污点标记还原为污点记录中匹配数据的污点标记,即将桥接口方法返回值的污点标记还原为该桥接口方法对应的本地Java方法返回值污点信息中的污点标记,将桥接口方法对应的本地Java方法参数值的污点标记还原为桥接口方法参数值污点信息的污点标记。进一步地,通过修改JNI数据类型转换方法实现污点记录和污点还原,即在桥接口通信方法中对进行JNI数据类型转换前的敏感数据进行污点记录,对进行JNI数据类型转换后的相应敏感数据进行污点还原。本专利技术还提供了一种面向安卓应用的WebView桥接口污点分析方法,其特征在于,当敏感数据在Android原生环境与Web环境之间通过WebView桥接口进行传输时,首先通过权利要求1所述的污点映射方法,使得敏感数据的污点标记能够跟随数据进行跨语言传输;然后使用针对Android原生环境的污点分析系统,基于污点标记来检测和跟踪敏感数据在Android原生环境下的传输,使用针对Web环境的污点分析系统,基于污点标记来检测和跟踪敏感数据在Web环境下的传输,从而实现跨语言污点分析。本专利技术的原理为:(1)WebView桥接口通信数据传输机制分析在安卓平台下,开发者通过WebView桥接口方法来完成Java代码到JavaScript代码间的跨语言数据传输。具体来说,Java数据以本地Java方法的返回值的形式传输到JavaScript环境,JavaScript数据则以WebView桥接口方法的参数值的形式传输到Java环境,详细的WebView桥接口通信过程和数据传输过程如图1所示,包含以下5个步骤:(i)Java对象注入。开发者首先通过WebView组件的addJ本文档来自技高网
...
一种面向安卓应用的WebView桥接口污点映射及分析方法

【技术保护点】
一种面向安卓应用的WebView桥接口污点映射方法,其特征在于,包括以下步骤:步骤1、定义桥接口Sink和桥接口Source;(i)桥接口Sink包括跨语言数据传输的桥接口通信方法,即Web环境下的桥接口方法及其对应的本地Java方法;(ii)桥接口Source为敏感数据传输到另一语言环境后对应的数据,包括Web环境下的桥接口方法返回值和该桥接口方法对应的本地Java方法参数值;步骤2:建立跨Java语言与JavaScript语言的污点映射关系;包括对桥接口Sink实现污点记录和对桥接口Source实现污点还原;(a)对桥接口Sink实现污点记录的方法为:每使用桥接口Sink传输一条敏感数据,则产生一条污点记录,每一条污点记录包括以下信息:所使用的桥接口方法名;所使用的桥接口方法参数污点信息,桥接口方法参数污点信息包括该参数在Web环境下的数据类型、原始值和污点标记;所使用的桥接口方法对应的本地Java方法返回值污点信息,本地Java方法返回值污点信息包括该返回值在本地Java环境下的数据类型、原始值和污点标记;将污点记录写入污点记录日志中;(b)对桥接口Source实现污点还原的方法为:首先在污点记录日志中找到与该桥接口Source匹配的污点记录,最后将该桥接口Source的污点标记还原为污点记录中匹配数据的污点标记,即将桥接口方法返回值的污点标记还原为该桥接口方法对应的本地Java方法返回值污点信息中的污点标记,将桥接口方法对应的本地Java方法参数值的污点标记还原为桥接口方法参数值污点信息的污点标记。...

【技术特征摘要】
1.一种面向安卓应用的WebView桥接口污点映射方法,其特征在于,包括以下步骤:步骤1、定义桥接口Sink和桥接口Source;(i)桥接口Sink包括跨语言数据传输的桥接口通信方法,即Web环境下的桥接口方法及其对应的本地Java方法;(ii)桥接口Source为敏感数据传输到另一语言环境后对应的数据,包括Web环境下的桥接口方法返回值和该桥接口方法对应的本地Java方法参数值;步骤2:建立跨Java语言与JavaScript语言的污点映射关系;包括对桥接口Sink实现污点记录和对桥接口Source实现污点还原;(a)对桥接口Sink实现污点记录的方法为:每使用桥接口Sink传输一条敏感数据,则产生一条污点记录,每一条污点记录包括以下信息:所使用的桥接口方法名;所使用的桥接口方法参数污点信息,桥接口方法参数污点信息包括该参数在Web环境下的数据类型、原始值和污点标记;所使用的桥接口方法对应的本地Java方法返回值污点信息,本地Java方法返回值污点信息包括该返回值在本地Java环境下的数据类型、原始值和污点标记;将污点记录写入污点记录日志中;(b)对桥接口Source实现污点还原的方法为:首先在污点记录日志中找到...

【专利技术属性】
技术研发人员:王伟平覃岩柏军洋宋虹
申请(专利权)人:中南大学
类型:发明
国别省市:湖南,43

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

1