Google如何利用内容安全策略缓解Web漏洞

栏目: 编程工具 · 发布时间: 5年前

内容简介:跨站脚本攻击(Cross Site Script,简称CSS),通常又被称为XSS,是当今网络上最常见的漏洞类型之一。通过XSS漏洞,恶意攻击者可以在未经授权的情况下往Web页面里插入恶意html代码,当用户浏览该页面时,嵌入Web里面的html代码会被执行,从而达到恶意用户的特殊目的,如窃取各类用户账号(网银账号、设备登录账号等),读取、篡改、添加和删除企业敏感数据,非法转账以及网络挂马等等。

跨站脚本攻击(Cross Site Script,简称CSS),通常又被称为XSS,是当今网络上最常见的漏洞类型之一。

Google如何利用内容安全策略缓解Web漏洞

通过XSS漏洞,恶意攻击者可以在未经授权的情况下往Web页面里插入恶意html代码,当用户浏览该页面时,嵌入Web里面的html代码会被执行,从而达到恶意用户的特殊目的,如窃取各类用户账号(网银账号、设备登录账号等),读取、篡改、添加和删除企业敏感数据,非法转账以及网络挂马等等。

根据谷歌工程师Lukas Weichselbaum和Michele Spagnuolo的说法,XSS对于谷歌公司而言,同样是一个亟待解决的大问题,这也解释了为什么谷歌公司会通过使用一种称为 “内容安全策略”(CSP)的技术方法,来实现降低XSS风险的目的。

2019年4月17日,这两名谷歌工程师在夏威夷考艾岛举行的LocoMocoSec会议上详细介绍了谷歌 “内容安全策略”(CSP)的工作机制及成果。

LocoMocoSec会议创始人Jeremiah Grossman在其Twitter消息中激动地写道,谷歌公司花了12-18个月的时间来重构他们的JavaScript,以支持内容安全策略在其大约3/4的 properties配置文件中运行。现在,他们已经创建了新的开发框架,可以使用开发人员不可见的CSP自动生成代码。

事实上,内容安全策略并不是一个新出现的概念,因为至少从2010年开始,开发人员和浏览器供应商(包括Mozilla)就已经开始利用各种形式来实施CSP。在最基本的形式中,内容安全策略(CSP)可以作为一种“声明机制”,允许Web或应用程序开发人员在其应用程序上指定多个安全限制,由支持的用户代理(浏览器)来负责强制执行,以防止未经授权的注入脚本的运行。简单来说,CSP旨在 “作为开发人员可以使用的工具,以各种方式保护其应用程序,减轻内容注入漏洞的风险和减少它们的应用程序执行的特权”。

目前,谷歌公司正在其拥有的80多个域名和160多项服务中实施CSP,这一数据约占所有输出谷歌流量的62%。根据两位谷歌开发者的说法,仅2018年,就有超过60%的XSS尝试被谷歌的内容安全策略拦截阻断。

采取Nonce-Based的CSP方法

在多年部署CSP的过程中,谷歌发现并非所有方法都能够切实有效地防护XSS攻击。就拿基于白名单的CSP模型来说,虽然它明确列出了哪些域可以注入脚本,但是根据谷歌的研究结果发现,约95%的基于白名单的CSP都是可以被成功绕过的。因此可以说,部署传统的基于白名单的CSP模型,对于防止XSS是不可行的。

Weichselbaum和Spagnuolo所倡导的是一种nonce-based的CSP模型。在nonce中,应用程序定义并生成了单一的,不可猜测的令牌(nonce),这个令牌会同时传递给CSP策略和作为一个合法HTML属性传递给script。 用户代理仅允许执行那些nonce值能够匹配策略中指定的值的脚本。虽然攻击者可以将标记注入易受攻击的页面,但是由于不知道nonce的临时值,因此他并不能执行恶意脚本。

除了使用nonce-based方法之外,谷歌还在利用CSP中的新功能。CSP3是CSP的最新版本,并引入了几个可用于进一步降低XSS风险的附加属性。其中,script-src-elem标记适用于所有脚本请求和内联脚本块,为更精细的控制提供了一种新机制。

CSP的报告功能

为了获得对已实施规则的有效反馈信息,CSP 的报告功能不可或缺。通过CSP模型中提供的一种集成报告功能,组织可以有效地了解某些内容遭到阻止的原因。

例如,将 “report-sample” 标记添加到script-src指令中,CSP模型就会为相应组织提供一份报告,其中内联脚本违规还将提供被阻止数据类型的样本,以允许组织识别哪个脚本被阻止了。

为了帮助组织更好地利用和理解CSP,谷歌还创建了许多有关CSP利用的小 工具 和指南:

CSP Evaluator

这是一个能够评估你当前输入的CSP能否帮助你有效避免XSS攻击的工具,其用法非常简单,在输入框中输入你当前设置或将要设置的CSP值,选择需要验证的CSP版本,然后按下 “CHECK CSP” 即可。

CSP Guide

谷歌编写的一份有关CSP运用的指南。

虽然CSP可以成为降低XSS风险的有效工具,但它应该只是作为组织更大安全性工作的一部分来使用,以实现提高代码质量和整体安全性的目标。

最后,两位谷歌研究者强调称,CSP是一种纵深防御机制,这就意味着它是在主要安全机制(例如转义)失效时来保护用户的,它并不是没能解决潜在漏洞的借口。

CSP Evaluator地址:

https://csp-evaluator.withgoogle.com/

CSP 运用指南地址:

https://csp.withgoogle.com/docs/index.html


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数字乌托邦

数字乌托邦

尼古拉斯•卡尔 / 姜忠伟 / 中信前沿出版社 / 2018-5 / 69.00

当下,技术与我们的关系变得越来越紧密不可分割,特别是智能手机等设备的出现,带给整个人类社会一场彻底的变革。的确,智能手机上的各种应用程序让我们的工作生活无比便利:社交媒体让我们能够和他人实时保持联络并传输信息,不再受时间、地点的限制;搜索引擎通过精准的算法将我们所需要的信息整合推送至屏幕上,让我们毫不费力就看到自己想要的;地图软件为我们的出行提供了更多路线选择,甚至可以使用语音导航,帮助我们顺利到......一起来看看 《数字乌托邦》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具