当前位置:网站首页>A Security Analysis Of Browser Extensions
A Security Analysis Of Browser Extensions
2022-06-11 03:42:00 【Sword-heart】
0x00 前言
浏览器扩展安全似乎讨论的不多,drops上也没有相关的文章,我只在知乎上搜到一篇关于扩展问题的实例文章,链接请点我。因此,我搜索了一些关于扩展安全的研究报告,如下便是其中一篇,来自于康奈尔大学图书馆(跟伯克利并列的学校哦),在大批量分析扩展安全性和绕过静默安装的方法上给我们提供了非常好的思路,我认为是值得学习的,故翻译下来分享给大家。 原文:http://arxiv.org/abs/1403.3235
0x01 摘要
浏览器扩展(通常称为插件或者加载项)本质上是让开发者给浏览器附加功能的一小段代码。然而,扩展也是有安全代价的:用户必须信任插件开发者。我们来看看这种信任关系是如何被打破,从而造成恶意的扩展被安装到用户的浏览器。同样,我们也看看在各种浏览器中扩展的静默安装方法以及浏览器本身是如何预防静默安装的。
我们通过比较多种浏览器的扩展机制,试图创建了一种保持插件在浏览器中的权限最小化规则,然后以此为依据分析了各种各样的插件,以便观察最小化权限规则是否满足插件对权限的要求。
同样的,我们也对多种浏览器上的很多插件做了调查,查明了可能造成攻击的根本原因。举个例子,如果开发者的账号被黑,那么此开发者开发的扩展中是可能被嵌入恶意代码的。我们还发现了权限滥用问题,调查到很多扩展会申请超出本身使用的更多的权限。
最后提供了一个解决方案让用户在下载扩展前检查其可靠性。
0x02 介绍
浏览器扩展现在已经极度受欢迎,超过33%的Chrome浏览器使用者不止安装了一个扩展。在正常的网站上,扩展(也称插件)是一小段能允许用户修改浏览器行为的代码。大多数插件使用javascript编写,当然也有其他的脚本。当扩展被如此广泛的在桌面操作系统中使用的时候,在移动浏览器中,仍处在最初的阶段,只有在一小部分移动浏览器会支持第三方扩展,比如Mozilla’s Firefox for Android and Dolphin 由于时间的关系,在此文中,我们仅以Google Chrome和Firefox为例,其他浏览器暂时不作考虑。
大多数浏览器在它们的扩展平台中都有自己的安全模型。此文中,我们分析了多种由于扩展造成的或可能造成的漏洞。同时,基于测试结果验证了这些安全模型的有效性。
0x03 安全概述
1、Google Chrome 使用三种方式保证扩展的安全性。
1 2 3 4 |
|

图1:Google Chrome的扩展架构图
2、威胁。
在扩展中有两种可能的攻击方式:
1 2 3 4 |
|
我们没有研究Firefox的扩展,因为Firefox对扩展没有权限管理。因此,所有的扩展都能读写用户的家目录。这导致Firefox的扩展权限过大,也造成了更多的漏洞。
0x04 方式
我们使用如下操作:
1 2 3 4 |
|
0x05 统计
我们总共从Chrome Web 商店下载了10047个扩展。它们以受欢迎的程度排序,因此能够代表扩展的使用频率是最高的。
1)内容安全策略(Content-Security Policy)
内容安全策略作为一个新特性被引入到Chrome的第18个版本,通过其严格的策略,阻止了大多数如上我们讨论的漏洞情况。我们发现有4079个扩展已经升级它的manifest到第二版,从而强制使内容安全策略得以被应用。尽管这些扩展仍然存在权限滥用和自身漏洞,但是也比其他未应用该策略的扩展要更加安全。
在10047个扩展中,我们成功扫描的有9558个,其他的因为错误的manifest文件和部分文件丢失未能成功分析。
2)权限滥用
通过解析manifest.json文件,我们扫描了这些扩展申请的权限。该方法来自Google Chrome开发者网站页面:“所有的扩展,浏览器应用程序和主题都有一个json格式的manifest文件,以manifest.l命名,或者missing.json,用于提供扩展的重要信息。”
然后跟扩展实际使用的权限匹配。Chrome的安全策略仅允许‘backgroud-scripts’直接访问核心的API。通过解析所有文件源码中的‘backgroud-scripts’段,分析出扩展需要实际需要的权限。
我们发现这些扩展中,超过一半的都申请了大于实际使用必须的权限。其中大多数多申请了一到两个额外的权限,这可以归结于开发者的水平和不严谨。另外有192个扩展多申请了4个或更多的权限,体现出较为严重的安全问题。
在统计中,我们没有包含那些不能被滥用的权限。比如,通知功能的权限,能被允许使用HTML5的通知接口,但是无法被滥用。有超过300个扩展申请了该权限,却并未使用,我们也就没有将这些扩展列入统计结果。尽管它们不会造成安全问题,但在申请权限中,这也是个不好的习惯。
如下是我们统计的数据:

下面是一个权限滥用的扩展数量和申请的额外的权限数量对比的树状分布图,Y坐标是以10为底对数的值。

很多不合格的扩展会申请极度敏感的权限,这样就能很容易的被黑客和居心叵测的开发者利用这些权限获取用户的账号信息,如浏览器的cookie。
3)网络层面的攻击
我们发现有一些扩展在HTTP网络层面也存在漏洞,它们会通过HTTP协议加载远程脚本。由于技术原因,无法统计到所有产生的HTTP请求,但还是发现了146个扩展往外部发起过HTTP请求。我们只统计了直接包含<script>标签的的请求,如果加上包含XHR的请求(很多扩展会使用),这个数字会高很多。
我们没能是能够用程序来统计包含XHR的请求,如果通过手动的方式统计,会是一份吃力的工作。这是由于很多请求是直接使用javascript发起,或者使用<img>标签发起,如JQuery、MooTools等其他javacript框架。我们打算通过分析所有的URL字符串,假定其为请求的地址,结果发现导致了大量的错误,从而否定了这个做法。
网络层面的攻击包括中间人攻击(MitM),如果利用这种方式,将会允许远程代码执行,而当问题出在核心扩展部分,这意味着所有的权限都能被滥用。举个例子,中间人攻击的方式能复制用户浏览器的cookie值,然后发送给攻击者本身。这将会导致类似于“圣杯”攻击,从而危及到用户所有的账号。
0x06 工作模型
1、静默安装
Firefox和Chrome都有静默安装的方式。正常情况下,这就涉及到注册表编辑。浏览器启动时,会检查注册表中相应的键值,当安装扩展时,会弹出警告窗口。只有用户允许了,扩展才会被安装。
我们创建了一种不需要弹出警告窗口的机制,通过不同的方式对两种浏览器进行测试。
1 2 3 |
|
在对静默安装机制上的研究表明,浏览器现在的方式还不够完善,很容易就被绕过。当然,在浏览器对应bypass静默安装方面,这永远是一个猫鼠游戏。
2、扩展检查
我们通过设置一个在线的扩展检查数据库,让用户使用我们的研究结果。用户能轻松的找到对应扩展的权限滥用和外部HTTP请求分析。我们也打算尽快发布到网站上。
网站通过读取manifest.json文件来对比扩展实际需要的权限和申请的权限,分析过后将其存入数据库中,并提供HTTP方式的接口访问。
0x07 结论
我们成功的开发出了脚本,实现了Chrome和Firefox扩展的无警告静默安装,证明了现在的防范机制还不够完善。
在分析的扩展中,大约有50%的存在权限滥用的情况。虽然很难给出准确的数字,但是还是可以得出结论,有相当一部分的扩展会因为权限滥用的情况而受到攻击。我们也认识到,内容安全策略(Content-Security Policy)在保证扩展安全中的确是一个高效的方案。Google Chrome Web商店也会因为该策略的实行更加安全。
最后,附上这个项目的github上的源码地址:https://github.com/captn3m0/nullcon2014
1 2 3 4 5 |
|
本文章来源于乌云知识库,此镜像为了方便大家学习研究,文章版权归乌云知识库!
边栏推荐
- [dataset] | UAV Perspective
- Google 有哪些牛逼的开源项目?
- 常用测试用例设计方法之场景法详解
- Typera+picgo+ common configurations of Tencent cloud cos
- After the installation of Damon database is completed, query whether it is case sensitive
- 软件工程笔记之期末复习(简答)
- OPENSSL ASN. 1, DER, PEM, X509
- OpenGL Chapter 8 material
- Lianyirong (passed)
- 编译原理笔记之词法分析器
猜你喜欢

Notes on redisson distributed lock usage

/The world of 10 recommended websites for learning programming has entered the era of the Internet. According to a recently released Internet trends 2016 report, China has become a leader in the Inter
![[cnn]|differences between CNN and transformer](/img/ed/2b47387ba390a02c24bf9ff85b36e4.png)
[cnn]|differences between CNN and transformer

OpenGL error Guide

Two solutions for reliable message consistency

6. 表格标签

VNC remote configuration of Galaxy Kirin server system

Simple image browsing with fragment

让人感到心灵平静,阳光温暖的图片

华生·K的秘密日记
随机推荐
From function test to advanced automation test, I stayed up 7 days to sort out this 3000 word super complete learning guide [with network disk resources]
[cnn]| translation invariance
Makefile |
Management system of College Students' associations based on SSM
SSL interaction process
How to improve the efficiency of regression testing
[elt.zip] openharmony paper Club - electronic device software update compression
Implementation of publish and subscribe mode ----- hand tearing JS series
After the college entrance examination, what can I do and how should I choose my major-- From the heart of a college student
Path count 2 (DP + number of combinations)
Sentence s, paragraph P in VIM text object
Brew source change
Docker swarm installing MySQL Cluster
Discussion on the development trend of remote power management unit (Intelligent PDU)
[CNN]|CNN与Transformer区别
Rhel7 switch character encoding to GBK
Course classification tree structure display
Student online education and teaching course management system based on SSM framework
Nsthread of the multithreaded Trilogy
【可解释】|深层网络的公理化属性(Axiomatic Attribution for Deep Networks)