Web Security Scanner 概览

>

本页面简要介绍了 Web Security Scanner。

简介

Web Security Scanner 可识别 App Engine、Google Kubernetes Engine(GKE)和 Compute Engine Web 应用中的安全漏洞。它会抓取您的应用,跟踪起始网址范围内的所有链接,并尝试执行尽可能多的用户输入和事件处理程序。目前,Web Security Scanner 仅支持不受防火墙保护的公共网址和 IP。

Web Security Scanner 目前支持 App Engine 标准环境和 App Engine 柔性环境、Compute Engine 实例和 GKE 资源。

Web Security Scanner 旨在完善您现有的安全设计和开发流程。为避免出现误报让您分心,Web Security Scanner 会在报告不足的一侧提供错误提示,而且不会显示可信度较低的提醒。该扫描仪不能取代手动安全审查,也不能保证您的应用没有安全缺陷。如需详细了解网页安全,请参阅 OWASP 十大项目

详细了解 Google Cloud 安全性

扫描类型

Web Security Scanner 为公共 App Engine、GKE 和 Compute Engine 服务的 Web 应用提供代管式和自定义的 Web 漏洞扫描。

代管式扫描

Web Security Scanner 代管式扫描由 Security Command Center 配置和管理。每周自动运行代管式扫描,以检测和扫描公共 Web 端点。这些扫描不使用身份验证,而是发送仅限 GET 的请求,因此他们无需在实际网站上提交任何表单。

代管式扫描与在项目级定义的自定义扫描分开运行。您可以使用代管式扫描来集中管理组织中的项目的基本 Web 应用漏洞检测,而无需涉及各个项目团队。发现结果后,您可以与这些团队合作,以设置更全面的自定义扫描。

启用 Web Security Scanner 作为服务后,“Security Command Center 漏洞”标签页和相关报告会自动显示代管式扫描发现结果。如需了解如何启用 Web Security Scanner 代管式扫描,请参阅配置 Security Command Center

自定义扫描

Web Security Scanner 自定义扫描可提供有关应用漏洞发现结果的详细信息,例如过时的库、跨站脚本攻击或混合内容的使用。完成设置 Web Security Scanner 自定义扫描的指南后,在 Security Command Center 中可获取自定义扫描发现结果。

扫描发现结果

这些表描述了受支持的检测器之间的映射,以及到相关法规遵从机制的最佳映射。

CIS Google Cloud Foundation 1.0 映射已通过 CIS Google Cloud Computing Foundations Benchmark v1.0.0 的互联网安全性校准中心的审核和认证。其中包含其他法规遵从映射以供参考,不会由支付卡行业数据安全标准或 OWASP 基金会提供或审核。如需了解如何手动检查这些违规,您应该参考 CIS Google Cloud Computing Foundations Benchmark v1.0.0 (CIS Google Cloud Foundation 1.0)、支付卡行业数据安全标准 3.2.1 (PCI-DSS v3.2.1)、OWASP Top Ten国家标准和技术研究所 800-53(NIST 800-53) 和国际标准化组织 27001 (ISO 27001)。

此功能仅用于监控法规遵从控制的违反情况。不提供映射作为您的产品或服务是否符合任何监管、行业基准化分析或标准的审计、认证或报告的的基础或替代。

以下是 Web Security Scanner 自定义和代管式扫描识别的发现结果类型。

表格 18. Web Security Scanner 发现结果
类别 发现结果说明 CIS GCP Foundation 1.0 PCI-DSS 3.2.1 版 OWASP 排名前 10 NIST 800-53 ISO-27001
ACCESSIBLE_GIT_REPOSITORY GIT 代码库会公开。要解决此问题,请移除对 GIT 代码库的意外公开访问权限。 A3
ACCESSIBLE_SVN_REPOSITORY SVN 代码库会公开。要解决此问题,请移除对 SVN 代码库的意外公开访问权限。 A3
CLEAR_TEXT_PASSWORD 密码以明文形式传输,可以被拦截。要解决此问题,请对通过网络传输的密码进行加密。 A3
INVALID_CONTENT_TYPE 加载的资源与响应的 Content-Type HTTP 标头不匹配。 要解决此问题,请将 `X-Content-Type-Options` HTTP 标头设置为正确的值。 A6
INVALID_HEADER 安全标头存在语法错误,并且会被浏览器忽略。要解决此问题,请正确设置 HTTP 安全标头。 A6
MISMATCHING_SECURITY_HEADER_VALUES 安全标头具有重复的、不匹配的值,这会导致未定义的行为。要解决此问题,请正确设置 HTTP 安全标头。 A6
MISSPELLED_SECURITY_HEADER_NAME 安全标头拼写错误,并且将被忽略。要解决此问题,请正确设置 HTTP 安全标头。 A6
MIXED_CONTENT 资源是通过 HTTPS 页面上的 HTTP 提供的。要解决此问题,请确保所有资源是通过 HTTPS 提供的。 A6
OUTDATED_LIBRARY 检测到有已知漏洞的库。要解决此问题,请将库升级到新版本。 A9
XSS 此 Web 应用中的字段容易受到跨站脚本 (XSS) 攻击。要解决此问题,请验证和转义不受信任的用户提供的数据。 A7
XSS_ANGULAR_CALLBACK 用户提供的字符串没有转义,并且可由 AngularJS 插入。要解决此问题,请验证并转义由 Angular 框架处理的不受信任用户提供的数据。 A7
XSS_ERROR 此 Web 应用中的字段容易受到跨站脚本攻击。要解决此问题,请验证和转义不受信任的用户提供的数据。 A7

使用警告

使用 Web Security Scanner 时需要注意以下一些重要事项:

  • 由于 Web Security Scanner 正在不断改进,因此将来的扫描可能会报告当前扫描未报告的问题。
  • 您的应用的某些功能或部分可能未经过测试。
  • Web Security Scanner 尝试激活它找到的每个控件和输入。
  • 如果您公开了测试帐号具有权限的状态更改操作,则 Web Security Scanner 可能会激活这些操作。这可能会导致不良结果。

谁可以运行安全扫描?

如需了解适用于 Web Security Scanner 的身份和访问权限管理 (IAM) 角色,请参阅访问权限控制

安全扫描需要多长时间?

安全扫描不会立即执行。它会加入队列,稍后执行,也可能会在几小时后再执行,具体取决于系统负载。扫描开始执行后,所需时间取决于应用的大小。 包含很多网址的大型应用可能需要几个小时才能完成扫描。

目标限制

您可以使用 Web Security Scanner 的过滤条件,将扫描目标限制为针对其创建扫描的特定 App Engine 实例。输入不同 App Engine 项目或外部网域的网址将导致错误消息。

在您的项目中,Web Security Scanner 会自动尝试避开注销网址和可能对扫描产生负面影响的其他通用位置。然而,为保险起见,您可以使用扫描设来手动排除网址

最佳做法

由于 Web Security Scanner 会执行填充字段、按下按钮、点击链接等,因此您应谨慎使用。Web Security Scanner 可能会潜在激活更改数据或系统状态的功能,造成不良后果。

例如:

  • 在允许公开评论的博客应用中,Web Security Scanner 可能会将测试字符串作为评论发布到您的所有博文。
  • 在电子邮件注册页面中,Web Security Scanner 可能会生成大量的测试电子邮件。

为避免产生不必要的后果,可单独或组合使用以下技术:

  1. 在测试环境中运行扫描。 通过创建单独的 App Engine 项目并在其中加载应用和数据来设置测试环境。如果您使用 gcloud 命令行工具,则可以在上传应用时将目标项目指定为命令行选项。
  2. 使用测试帐号。 创建一个不会访问敏感数据或有害操作的用户帐号,并使用该帐号进行应用扫描。很多应用会在用户首次登录期间提供特殊工作流程,如接受条款、创建个人资料等。由于工作流程不同,因此初始用户的测试帐号可能产生与已建立的用户帐号不同的扫描结果。在第一次流程完成后,最好使用处于正常用户状态的帐号进行扫描。
  3. 通过应用 CSS 类 inq-no-click屏蔽不希望激活的各个界面元素。附加到此元素的事件处理程序不会在抓取和测试期间被激活,无论它们是内嵌 JavaScript、使用 addEventListener 附加还是通过设置适当的事件处理程序进行附加属性。
  4. 使用备份数据。 考虑在扫描之前备份数据。
  5. 排除的网址。您可以指定不会被抓取或测试的网址格式。如需了解语法,请参阅排除网址

在扫描之前,请仔细审核您的应用,查看是否有功能影响数据、用户或系统,超出扫描的预期范围。

后续步骤