使用 Cloud SQL 暴力破解防护功能

本页介绍了 Cloud SQL 提供的检测和保护功能,这些功能可保护您的实例免遭旨在实现未经授权访问的暴力破解访问尝试,并介绍了如何保护您的实例免遭这些尝试。

暴力破解防护是一项内置的安全功能,可防止未经授权访问您的 Cloud SQL 资源,从而帮助保护您的实例免遭暴力破解式访问尝试。当恶意行为者系统性地尝试不同的用户名和密码组合,以自动重复尝试登录并获取对您数据库的访问权限时,就会发生暴力破解访问尝试。

Cloud SQL 提供以下选项来保护数据库免遭暴力破解式访问尝试:

  • 暴力访问检测:Cloud SQL 会持续监控每个实例的登录失败尝试,并检测首次成功登录。如果连续登录尝试次数超过 Cloud SQL 定义的阈值,则 Cloud SQL 会在实例日志中生成警告消息。此日志消息会指明暴力破解访问尝试,以及关联的 IP 地址和用户名。

    暴力破解访问检测功能适用于所有 Cloud SQL 版本。

  • 暴力破解访问保护:当 Cloud SQL 检测到暴力破解访问尝试时,它会自动减慢登录尝试速度,方法是延迟登录响应并实时限制登录尝试。如果 Cloud SQL 将某个连接识别为暴力破解访问尝试,并且该连接导致登录成功,则 Cloud SQL 会限制该连接并生成日志事件来标识此成功登录。此日志事件可识别暴力破解访问尝试,以及关联的 IP 地址和用户名。

    暴力破解访问保护功能仅适用于 Cloud SQL 企业 Plus 版。

通过为您的实例提供暴力访问检测和保护,Cloud SQL 可帮助您识别这些暴力访问尝试的来源,并降低由此造成的风险。使用在这些暴力破解访问尝试中发现的 IP 地址和用户名来保护您的实例,并防止将来发生暴力破解访问尝试。如需识别针对实例的暴力破解尝试,请参阅查看暴力破解尝试的日志

查看暴力破解访问尝试的日志

当 Cloud SQL 检测到暴力破解访问尝试时,会在实例日志中记录一个事件,其中包含 an anomaly was found 文本。Cloud SQL 会记录以下详细事件:

事件 说明
检测暴力破解访问尝试 有人曾尝试从 IP 地址 IP 登录账号 user,但未能成功。系统发现异常情况,此 IP 地址多次尝试登录失败。
自动节流以缓解暴力破解访问尝试(仅限企业 Plus 版 有人尝试从 IP 地址 IP 登录账号 user,但未能成功。系统发现异常情况,此 IP 地址多次尝试登录失败。Cloud SQL 限制了响应,以缓解潜在的暴力破解尝试。
检测到在多次登录失败后首次成功登录 系统发现异常情况:在多次登录尝试失败后,有人成功从 IP 地址 IP 登录账号 user。如果此活动出乎意料,建议您更改用户密码。
在多次登录失败后,自动限制首次成功登录(仅限企业 Plus 版) 我们发现异常情况,有人在多次登录失败后,通过 IP 地址 IP 成功登录账号 user。Cloud SQL 限制了响应,以缓解潜在的暴力破解尝试。如果此活动出乎意料,请更改用户密码。

如需查看有关这些暴力破解尝试的详细信息,请查看实例的日志,并在每个日志的文本中查找 An anomaly was found

设置基于日志的提醒政策

您可以设置基于日志的提醒政策,以便在检测到或限制对 Cloud SQL 实例的暴力访问尝试时收到通知。如需详细了解如何设置此提醒,请参阅使用 Logs Explorer 配置基于日志的提醒政策

例如,您可以在提醒政策中使用以下查询来识别成功的暴力破解访问尝试日志:

resource.type="cloudsql_database"
textPayload =~ "An anomaly was found, successful login into the account"

保护您的实例

如果检测到暴力破解访问尝试,Cloud SQL 会建议您保护实例。如需查看潜在的暴力破解访问尝试,请参阅查看暴力破解访问尝试的日志

如果 Cloud SQL 发现有人试图对您的实例进行暴力破解,请执行以下操作:

  • 如果 Cloud SQL 检测到暴力破解访问尝试,但登录失败,请从授权网络中移除已识别的 IP 地址,以防止日后通过这些 IP 地址进行登录尝试。为此,请在实例的授权网络中使用较窄的 IP 范围,或从授权网络列表中移除该 IP 地址。
  • 如果 Cloud SQL 检测到暴力破解访问尝试,且已识别的 IP 地址和用户名成功登录,请更改相应用户账号的密码,并从授权网络列表中移除该 IP。

此外,您还可以使用 Auth 代理Cloud SQL 语言连接器连接到实例,而不是使用授权网络。Auth 代理和 Cloud SQL 语言连接器使用 Identity and Access Management 身份验证来管理与实例的连接,这样可以提供更安全的连接,并且无需将特定 IP 地址添加到实例的授权网络列表中。

为了进一步保护 Cloud SQL 实例,请使用专用 IP 而不是公共 IP,并使用基于 IAM 的数据库身份验证而不是基于用户名和密码的身份验证。

监控暴力破解访问尝试

为了监控暴力破解访问尝试,Cloud SQL 会使用 /database/network/connection_attempt_count 指标统计实例的每种连接事件的发生次数。此指标使用以下字段来确定连接是否为暴力破解访问尝试:

  • login_status:跟踪连接是否导致成功登录。
  • anomaly_detected:根据连接是否超出 Cloud SQL 设置的登录尝试次数阈值,跟踪连接是否为暴力破解访问尝试。
  • anomalous_connection_throttled:跟踪暴力破解访问尝试连接是否受到限制。

您可以监控此指标,以确定每种类型的连接事件的计数。下表显示了该指标跟踪的连接事件及其对应的字段值:

事件 说明
登录成功 成功登录您的实例,但未检测到暴力破解访问尝试。跟踪的字段值:
          login_status: succeeded
          anomaly_detected: none
          anomalous_connection_throttled: false
        
登录失败 检测到对您的实例的登录尝试失败,但未检测到暴力破解访问尝试。跟踪的字段值:
          login_status: failed
          anomaly_detected: none
          anomalous_connection_throttled: false
        
检测到暴力破解登录尝试(未限制) 被识别为暴力访问尝试的登录失败尝试,因为其超过了 Cloud SQL 设置的登录尝试阈值。连接未受到限制。跟踪的字段值:
          login_status: failed
          anomaly_detected: brute-force login
          anomalous_connection_throttled: false
        
检测到暴力破解登录尝试并已限制 一次登录尝试失败,被识别为暴力访问尝试,因为其超过了 Cloud SQL 设置的登录尝试次数阈值,并且受到限制以防止登录。跟踪的字段值:
          login_status: failed
          anomaly_detected: brute-force login
          anomalous_connection_throttled: true
        
检测到暴力破解访问尝试后成功登录(未受到限制) 在连接被识别为暴力破解尝试后,成功登录到您的实例。连接未受到限制。跟踪的字段值:
          login_status: succeeded
          anomaly_detected: brute-force login
          anomalous_connection_throttled: false
        
在检测到并限制暴力破解访问尝试后成功登录 在连接被识别为暴力破解访问尝试并受到限制后,成功登录到您的实例。跟踪的字段值:
          login_status: succeeded
          anomaly_detected: brute-force login
          anomalous_connection_throttled: true
        

限制

  • 暴力破解保护功能需要最低维护版本 MYSQL_$version.R20250531.01_23。如需了解详情,请参阅执行自助维护
  • 暴力破解防护功能仅适用于 MySQL 5.7 及更高版本。

后续步骤