内容简介:跨站脚本攻击(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 Servlet & JSP Cookbook
Bruce W. Perry / O'Reilly Media / 2003-12-1 / USD 49.99
With literally hundreds of examples and thousands of lines of code, the Java Servlet and JSP Cookbook yields tips and techniques that any Java web developer who uses JavaServer Pages or servlets will ......一起来看看 《Java Servlet & JSP Cookbook》 这本书的介绍吧!