CSP的配置
实现内容安全策略(CSP)
CSP使用一个允许列表方法,在浏览器中强制执行资源,例如脚本或图像,从你的web应用程序加载的域检索。浏览器将阻止访问未明确授权的内容。allowlist,或CSP配置,通过每个请求的HTTP响应头被发送到web浏览器。
例子:我们希望保护我们的web应用程序免受跨站点脚本攻击。我们可以通过只允许从原始的第一方域和我们的CDN加载JavaScript来减轻这种风险。我们的应用程序也过度使用内联脚本,所以在应用程序被重构之前,我们还需要允许运行内联脚本。
响应上的HTTP报头强制执行我们的示例策略:
http
1Content-Security-Policy: script-src 'unsafe-inline' self https://cdn.foo.com/scripts/;
手动添加一个锁定的CSP到现有的web应用程序可能是一项艰巨的任务,因为基本的CSP架构与过去的网站构建方式是不兼容的。对于今天使用csp优先的思维方式开发的应用程序,很像测试优先的方法,在开发过程中锁定应用程序更容易完成。然而,挑战仍然是确定跨浏览器实现不一致的完整行为的成本,以及跟上跨许多应用开发的不断变化的目标。
tCell的CSP保护框架支持基于实际行为构建策略的工作流,从而支持旧项目和新项目的安全性。
CSP推荐工作流程
- 检查应用程序Newsfeed或为CSP可疑的错误配置定期配置警报。在政策->CSP>“观察到的违规”,您可以看到一个可疑的错误配置列表。将应用程序需要的资源添加到CSP策略中,如果可疑的错误配置不重要或干扰,则标记为忽略。或者,您也可以通过在“URI”字段中输入CSP策略条目并选择一个指令来手动添加CSP策略条目。
- 使用探索-> CSP违例,检查应该添加到策略中的最高数量的违例uri。
- 在部署更改之后,检查违规率以验证它们是否如预期的那样减少了。注意,由于正常的浏览器缓存行为,客户端可能需要一些时间来接收更新的CSP报头。
- 使用定期回顾和提醒CSP错误配置检测警告类别以在CSP配置中建立信任。
- 启用阻塞模式,以获得显著的安全性改进。
此外,在仅限测试的环境中审查违规行为,而不是对整个互联网开放,是非常有利的。在这样的环境中,几乎所有的违规行为都是应用程序的行为。
tCell CSP配置
在配置CSP之前,tCell使用默认策略将所有内容报告回控制台。策略执行从Report Only模式开始,这样您就可以开始微调,直到您准备好开始阻止未知行为。
配置CSP,执行政策——> CSP.
向下滚动到“当前政策”部分。这个视图很重要,因为它提供了应用程序范围内CSP配置的高级总结,以及应用程序中发生的事件的数据。这个视图还允许应用程序所有者手动添加、排除和忽略指令和URI模式。
理解CSP反馈
在tCell控制台中,有一些视图用于收集与浏览器和内容安全相关的CSP配置数据。CSP Events视图将洞察哪些事件应该添加到CSP中,哪些事件是恶意的。如果将CSP设置为阻塞和报告模式,那么浏览器将阻止一切。重要的是要知道允许哪些url和指令,以及如何识别可疑活动并对其采取行动。
导航到XSS ->事件-> CSP事件.这里我们看到了所有违反CSP的事件,无论是好是坏。事件的分类如下:
- missed_csp_policy-该请求不包含在策略中,并且tCell分析表明它很可能应该包含在策略中。换句话说,这些项目被认为是错误配置。
- 恶意软件-有一个违规的策略和url匹配的威胁检测数据库。这些几乎肯定不应该包括在内。
- 未定义的-该请求不是一个明显的恶意软件案例,分析也不认为这是一个配置错误。这些可能代表用户安装的、浏览器中的附加行为、横幅广告内容、与应用程序其余部分异常的不寻常请求,或者其他场景。
在底部的表格视图中,CSP违规显示,并按域和指令分组。通过单击任意行右侧的蓝色箭头,可以钻到聚合的Blocked Domain中,以查看已经发生的所有事件。CSP组数据提供了关于您的CSP策略所违反内容的摘要。在调优和设置期间,如果几乎100%的用户都在执行给定的脚本,那么很可能需要将它添加到CSP中。然后,您可以选择表数据中的任何事件行,并钻取违规规则、违规客户端和当前CSP报告的详细视图。在任何详细视图中,您都可以通过单击将域添加到CSP增加政策在左上角。
事件分析
XSS仪表板总结
导航->仪表板-> XSSXSS仪表板是理解所有与恶意内容注入或应添加到CSP的规则相关的事件的起点。这个屏幕是有组织的,以警告您的攻击,目前正在发生,并让您看到所有web内容活动,是不允许在您的CSP配置和JS代理。
XSS攻击的识别
导航回“事件”下的“CSP事件”菜单项查看可能受到恶意行为影响的用户。在tCell控制台中,CSP错误配置与“missed_csp_policy”下的事件相同。它可以是一个HTTP调用、内联内容或没有添加到策略中的指令。通过选择“过滤错误配置”,你将只看到CSP事件没有被添加,可能已经被识别为恶意软件或分类为未定义。
“点击劫持”活动总结
tCell的Clickjacking保护利用了您的CSP框架,并使用框架祖先指令来确保您的站点受到保护。
点击点击事件下的jacking菜单项.在这里,您可以找到可能试图构建应用程序的域的所有摘要数据。
“点击劫持”攻击识别
如果框架活动是预期行为,您可以通过“framing Domains”选项卡将域添加到策略中。
CSP参考
有关CSP的更多信息,请参阅以下链接: