内容简介:跨站脚本攻击(Cross Site Script,简称CSS),通常又被称为XSS,是当今网络上最常见的漏洞类型之一。通过XSS漏洞,恶意攻击者可以在未经授权的情况下往Web页面里插入恶意html代码,当用户浏览该页面时,嵌入Web里面的html代码会被执行,从而达到恶意用户的特殊目的,如窃取各类用户账号(网银账号、设备登录账号等),读取、篡改、添加和删除企业敏感数据,非法转账以及网络挂马等等。
跨站脚本攻击(Cross Site Script,简称CSS),通常又被称为XSS,是当今网络上最常见的漏洞类型之一。
通过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 运用指南地址:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 零信任理念有望缓解 fastjson 软件漏洞
- LLVM 5.0.2 发布,缓解 Spectre 变种漏洞
- DragonFlyBSD 5.2 为缓解 CPU 漏洞带来的性能影响
- LLVM 5.0.2 计划 3 月底发布 可缓解 Spectre 变种漏洞
- LLVM 5.0.2 计划 3 月底发布 可缓解 Spectre 变种漏洞
- Red Hat 发布补丁以缓解 Spectre Variant 4 漏洞影响
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java 8实战
厄马(Raoul-Gabriel Urma)、弗斯科(Mario Fusco)、米克罗夫特(Alan Mycroft) / 陆明刚、劳佳 / 人民邮电出版社 / 2016-4-1 / CNY 79.00
本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。一起来看看 《Java 8实战》 这本书的介绍吧!