freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

你说安全就安全?对红芯浏览器的一次安全测试
FreeBuf_310457 2018-08-24 14:30:28 1238504

你说安全就安全?

近日,红芯浏览器“套壳”一事被网络舆论炒的沸沸扬扬。红芯浏览器被官方标榜为“安全、稳定、可控的企业浏览器”,其中“自主可控”一项已经被舆论所质疑,但是被官方放在第一项进行宣传的“安全”是否属实呢?

据笔者所知,红芯浏览器的主要客户为国内政府、大型国有企业,单位主体的性质决定了其内部会有大量涉及商密、机密、甚至涉及国家安全的重要信息,而红芯浏览器则被设计为触及这些重要信息的媒介,如果它出了问题,那么后果不堪设想。

为了验证红芯浏览器的安全性到底如何,小编决定做了一个简单的安全测试。对于这种套壳浏览器,安全测试大体可以分为两个部分,一个是“壳”的安全性,一个是浏览器“内核”的安全性。

对于“壳”,由于小编没有服务器环境,暂时无法接触到“壳”的主要逻辑,暂时作罢,如果你有测试环境,可以分享给小编,我们将在后续文章中分享测试结果。

1.png

图1 需要设置服务器地址才可以登陆,进而才可以测试“壳”

那么我们就测一下”内核”。根据之前网络上的爆料文章,红芯为了兼容XP,使用了最后一个兼容XP的内核:Chromium49。说起这个内核,笔者不禁回忆起了自己的青春,当初学编写chrome扩展的时候正是基于这个版本,说起来已经是两年前的事情了。

换句话说,如果你使用了两年前的版本,你失去不仅仅是两年内Chromium的新特性、新功能,更重要的是你失去了这两年内Chromium积累的安全补丁。

本次测试文件为红芯企业浏览器的3.0.54版本。

2.png

图2 红芯浏览器3.0.54安装文件 

测试项目:XSS Auditor(filter) ByPass

XSS Auditor(filter)ByPass 翻译过来意思是:XSS审计器(或称XSS过滤器)的绕过。一直以来,XSS攻击是web前端领域里面威胁最大、利用最广泛的漏洞。在国际权威组织owasp针对最流行的Top10的web攻击统计中,XSS攻击从未掉队。

3.png

图3 2013-2017之间XSS的排名变化

然而,从这张图可以看到XSS从2013年的第3滑落到2017年的第7名,这其中的原因是多方面的,但其中重要的原因,就是现代浏览器引入并不断完善的XSS Auditor对反射型XSS的“狙击”,让XSS攻击越来越难用。

XSS Auditor最早被Chrome4、IE8引入。当然,道高一尺魔高一丈,XSS Auditor的更新不是闭门造车,而是在不断的攻防对抗中完善自己。全世界的黑客都在乐此不疲寻找XSS Auditor中的缺陷,以求绕过防护进行XSS攻击。而几乎Chrome的每次更新、IE的每个补丁,都会更新XSS Auditor,让这些绕过措施失效。然后黑客又找、官方又更新……由此往复循环,才有了今天较为完善的XSS Auditor防护体系。

我是不是扯远了。回到正题,红芯用了两年前的内核,那么意味着XSS Auditor已经两年没有更新,理论上这两年内的任何一个绕过XSS审计器的利用代码都是可以生效的。

我们先构造一个简单的反射形XSS漏洞:

<?php
echo $_GET["c"]; //输入即输出
?>

我们检查红芯浏览器是否能抵御XSS攻击。地址栏输入:

http://127.0.0.1/uxss/xss.php?c=<script>alert(/xss/)</script> 

输入的js并没有执行,可见红芯是开启了XSS Auditor的。

百度随手搜了一段绕过XSS Auditor代码,即在上面的js前面加一串%00。“%00”是16进制的0,在C语言中代表字符串的结束。不同的程序对0字符的理解不同,因此这个字符经常会引发一些安全问题。输入:

http://127.0.0.1/uxss/xss.php?c=%00%00%00%00%00%00%00%00<script>alert(/xss/)</script>

4.png

图4 绕过红芯的防护,执行了XSS

  成功绕过XSS Auditor执行了js。

  相同的代码在我的Chrome63(非最新)上却被成功拦截。

5.png

图5 该漏洞早已被谷歌官方修复

测试项目:UXSS

Same origin policy(同源策略,简称SOP)一直是web前端安全的基础。简单来说,SOP是指就是每个网站中的可执行脚本(包括html/js/flash等)只有读写自己网站内资源的权限,禁止跨域读写其它网站的内容。

举个例子,你同时打开了淘宝和京东的网站,淘宝和京东网站的js会同时在你的浏览器上运行。浏览器认为这两个网站是严格隔离的,淘宝的js不可能访问京东的收藏夹,同样,京东的js也不可能访问淘宝的购物车。这很好理解。

那么如果这种规则被破坏,后果则不堪设想。设想你访问某个网站,其中某个不知名的小广告商的js有权限访问你邮箱中的商业合同、你网盘中的私密照片,我就问你还敢不敢上网。

既然SOP这么重要,黑客又怎么可能放过呢。黑客们也在不断寻找绕过SOP的方法,这类绕过方法,或者说SOP的缺陷,被称为uxss漏洞。此类漏洞一旦被发现,基本上都被定性为高危漏洞。

企业微信截图_15347487179877.png7.jpg

图6和图7,谷歌高额悬赏uxss漏洞

与XSS Auditor一样,谷歌官方也不断修复着这些漏洞,而对于一个已经停止维护的内核,这类漏洞的PoC(即漏洞利用代码)在网上比比皆是。

在chromium项目的bug反馈页面,找到一个作用于chrome <52的UXSS。这个漏洞提交时间为2016年4月份。

https://bugs.chromium.org/p/chromium/issues/detail?id=604901

根据作者提供的Demo,把目标域名修改为baidu,把要执行的js修改为如下:

8.jpg

图8 修改跨域执行的js,效果为展示当前url并读取cookie

将Demo部署到本地http://127.0.0.1/中,用红芯访问。

9.jpg

图9 demo提供三种跨域方式分别为:跳转后执行、新标签页执行、iframe中执行uxss

点击第一个按钮,意为“跳转后执行uxss”,点击后调转至baidu,并以baidu域的权限执行了我们定义的js代码。

10.jpg

图10 以baidu的权限执行了js

上面的过程,演示了http://127.0.0.1/中的js读取了http://www.baidu.com/上的Cookie,Cookie意为着什么我就不多说了。换句话说,浏览器的SOP被破坏,http://127.0.0.1/将有权限读取 http://www.baidu.com/上的任何资源。如果进一步的利用,可以读取你百度搜索历史,百度网盘里的文件等等。

作为对比,我们换Chrome63试一下:

11.png

图11 漏洞已经修复

页面报错,代码没有执行。

解决方案

首先是对官方的建议,新内核不代表一定不会兼容XP。完全可以像360浏览器那样,把不兼容的函数一一手改成兼容的,当然这个工程量很大。

对于普通用户,尤其是政企类用户,在官方没有给出升级方案之前,暂时不建议使用。

后记

我从新审视了红芯官方对于安全功能的阐述,看上去很高大上。

12.jpg

12-1.jpg

图11 红芯主要对身份认证和通讯加密方面进行了介绍

红芯对于安全的宣传集中在身份认证和通讯加密,如果浏览器内核出了问题,导致浏览器被恶意代码接管,谈这些是没有意义的。

由于没有测试环境,对于这两点并没有测试,不过也没有必要了,毕竟决定你安全级别是木桶的短板。

13.jpg

安全不是销售的夸夸其谈,不是产品经理的纸上谈兵,不是投资人的患得患失,也不是程序员的“想当然”。安全是一件很专业的事情,应当交给专业的人去做。

*本文作者:山东星维九州安全技术有限公司,转载请注明来自FreeBuf.COM

# 内核安全 # 浏览器 # 红芯
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_310457 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
数据安全建设指南
FreeBuf_310457 LV.3
这家伙太懒了,还未填写个人描述!
  • 3 文章数
  • 3 关注者
流量加密又怎样? 多种姿势检测“冰蝎”
2019-11-02
机器学习与威胁情报的融合:一种基于AI检测恶意域名的方法
2018-10-30
文章目录