4.2.12-测试内容安全策略

测试内容安全策略

ID
WSTG-CONF-12

总结

内容安全策略 (CSP) 是通过 Content-Security-Policy 响应标头或等效元素强制实施的声明性允许列表策略。它允许开发人员限制加载JavaScript,CSS,图像,文件等资源的来源。CSP 是一种有效的深度防御技术,可降低跨站点脚本 (XSS) 和点击劫持等漏洞的风险。

内容安全策略支持允许对策略流进行精细控制的指令。(有关更多详细信息,请参阅 参考资料 )。

测试目标

  • 查看内容安全策略标头或元元素以识别配置错误。

如何测试

若要测试 CSP 中的错误配置,请通过检查代理工具中的 HTTP 响应标头Content-Security-Policy 或 CSP 元素meta 来查找不安全的配置:

  • unsafe-inline 指令启用内联脚本或样式,使应用程序容易受到 XSS 攻击。
  • unsafe-eval 指令允许在应用程序中使用eval(),并且容易受到常见的绕过技术(如数据 URL 注入)的影响。
  • unsafe-hashes 指令允许使用内联脚本/样式,假设它们与指定的哈希匹配。
  • 可以使用通配符 (*) 源允许从任何源加载脚本等资源。
    • 还要考虑基于部分匹配的通配符,例如:https://**.cdn.com
    • 考虑允许列出的源是否提供可用于绕过 CSP 或同源策略的 JSONP 终结点。
  • 通过使用指令的通配符 (*) 源,可以为所有 frame-ancestors源启用成帧。如果未在 Content-Security-Policy 标头中定义 frame-ancestors 该指令,则可能会使应用程序容易受到 点击劫持 攻击。
  • 业务关键型应用程序应要求使用严格的策略。

修复

配置强大的内容安全策略,以减少应用程序的攻击面。开发人员可以使用在线工具(如Google CSP Evaluator)验证内容安全策略的强度。

严格的政策

严格策略是一种策略,它提供针对经典存储、反射和某些 DOM XSS 攻击的保护,应该是任何尝试实现 CSP 的团队的最佳目标。

谷歌继续制定了一份指南,以采用基于随机数的严格CSP。根据在 LocoMocoSec上的演讲,以下两项政策可用于应用严格的政策:

适度严格政策:

script-src 'nonce-r4nd0m' 'strict-dynamic';
object-src 'none'; base-uri 'none';

锁定严格政策:

script-src 'nonce-r4nd0m';
object-src 'none'; base-uri 'none';
  • script-src 指令用于限制可以从中加载和执行脚本的源。
  • object-src 指令用于限制可以从中加载和执行脚本的源。
  • base-uri 指令指定用于解析页面中相对 URL 的基本 URL。如果没有此指令,页面将容易受到 HTML 基本标记注入攻击。

工具

  • Google CSP Evaluator
  • CSP Auditor - Burp Suite Extension
  • CSP Generator Chrome / Firefox

引用

  • OWASP Content Security Policy Cheat Sheet
  • Mozilla Developer Network: Content Security Policy
  • CSP Level 3 W3C
  • CSP with Google
  • Content-Security-Policy
  • Google CSP Evaluator
  • CSP A Successful Mess Between Hardening And Mitigation
  • The unsafe-hashes Source List Keyword

你可能感兴趣的:(4.2,配置和部署管理测试,web安全)