Android应用WebView漏洞的浅谈

2022-09-11

现今, Android手机很受欢迎, 但是系统上的应用程序由于来源不明且没有明确的审核机构, 使得Android应用成为恶意攻击者的首选, 造成Android漏洞频繁被曝出[1]。根据不同的依据, Android漏洞可以分为很多类。例如根据组件分为以下几种:隐式广播漏洞、Content Provider文件目录遍历漏洞、全局可读写漏洞、Web View组件漏洞、SSL漏洞、动态注册未受保护广播接收者漏洞和允许调试漏洞。在这里面Web View组件漏洞是现今研究较少, 且经常被程序开发者忽略的一类, 因此本文主要研究Web View组件漏洞。

一、WebView漏洞的介绍

(一) 什么是WebView漏洞

随着Intent的全球化, 网络是现今人们获取知识和交流的途径, 同时移动端设备更加促进了网络的发展, 而Android系统作为移动设备的主要组成部分, 该系统上的移动应用大部分提供与Web交互的服务。该服务可以实现在APP中自由切换浏览网页, 使用户体验好感倍增。更专业点说, 在Android系统内提供了很多与web页面交互的类和函数, 其中Webview是使用最频繁的一个类[2], 它是WebKit模块Java层的视图类。WebView (网络视图) 利用WebKit渲染引擎加载显示网页。

现在市场上很多的电商平台都会使用网络视图, 一般是通过修改网页代码, 用WebView的形式去渲染一个个在线的网页, 不需要另外写客户端的程序, 既省去开发成本又方便用户使用, 因此应用非常广泛。具体来说, 程序开发者将需要浏览的网页的html文件直接给WebView类, 或者加载url (统一资源定位符) , 再结合网页编程语言 (JS、HTML) 与原生APP交互。

WebView被广泛使用的同时也存在弊端, 例如有些恶意程序会利用WebView的嵌入过程进行信息窃取, 使得应用平台用户的信息泄露等, 但是开发者很容易忽略这个问题, 造成WebView漏洞被频繁曝出。而一个应用程序中使用的WebView很多, 所以当存在WebView安全漏洞时, 对应用平台和用户都将是巨大的挑战。

(二) WebView漏洞的分类

WebView是Android系统中的浏览器组件, 可以实现与web页面的自由交互, 在Android4.4版本之前, WebView是通过WebKit实现的, 之后是Chromium, 安全性能也更好了, 但是由于Android系统版本参差不齐, 所以低版本的系统还是存在, 因此研究WebView漏洞还是有价值的。例如2017年出现的跨域访问漏洞 (CNVD-2017-36682) , 攻击者可以通过构造恶意的URL来远程获取应用程序内的敏感数据。当应用程序未采用HTTPS安全协议对内容进行加载时, 可能会发生中间人攻击从而实现对应用程序的控制。除此之外, WebView漏洞最经常出现的有以下2类:

1. 远程代码执行漏洞

在Android系统版本是4.2之前 (即Android API level 16以及之前) 才有漏洞, 系统利用WebView.addJavascriptInterface注册Java对象, 该对象供JS调用, 但是系统未限制对注册Java对象的方法的调用, 致使恶意程序可以多次执行任何Java类, 相当于JavaScript暴露在外并且成为有意者的一个攻击接口, 攻击者通过该漏洞可以对APP做任何事情, 这就是远程代码执行安全漏洞。该漏洞的被攻击代码段包含WebView.addJavascriptInterface (Object obj, String interfaceName) 。简单的说就是通过addJavascriptInterface给WebView加入一个JavaScript桥接接口, 也可能是WebView内置导出的searchBoxJavaBridge_、accessibility、accessibilityTraversal对象, 都有可能成为恶意程序进入系统的途径, 造成远程代码执行漏洞。在2012年刚开始发现这个漏洞, 当时被命令为CVE-2012-6636。根据该漏洞的产生条件, 如果要避免建议采取以下几种方式:1) 升级Android系统;2) 移除Javascript接口。

2. 密码明文存储漏洞

一般的应用平台都会存在登录界面, 当在该应用平台中输入登录名和密码时, 如果用户选中“保存密码”选项, 那用户密码会被保存在app目录下的/databases/webview.db中。当攻击者具有超级权限时, 密码就有被盗取的风险。所以解决办法是:不要选中“保存密码”选项。

二、结语

本文主要研究的是Android应用WebView漏洞, 该漏洞在Android早期系统中很常见, 但是现今Android系统中也会存在4.4版本以及之下, 所以本文对这类漏洞的形成原因进行分析, 重点研究了远程代码执行漏洞、密码明文存储漏洞两类WebView漏洞的成因和预防措施。

摘要:针对Android系统应用的漏洞进行研究, 其中WebView漏洞是程序开发者容易忽略的漏洞, Webview是应用程序渲染网页的常用类, 但是如果未进行正常限制, 会给攻击者留有接口, 造成用户信息被窃取, 甚至更大的损失。因此本文主要研究WebView漏洞的成因和分类。

关键词:Android,WebView漏洞,APP

参考文献

[1] Android应用中的JavaScript使用模式及其安全漏洞分析[D].南京:南京理工大学, 2017.

[2] 基于渗透测试的安卓应用信息安全评估[D].上海:东华大学, 2016.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:优化碳三加氢反应提高丙烯收率下一篇:关于人力资源会计在实际运用中的问题