提升权限:AlloyDB 过度授予特权

本文档介绍了 Security Command Center 中的一种威胁发现结果类型。当威胁检测器在您的云资源中检测到潜在威胁时,会生成威胁发现结果。如需查看可用威胁发现结果的完整列表,请参阅威胁发现结果索引

概览

AlloyDB for PostgreSQL 数据库(或数据库中的所有函数或过程)的所有权限已授予一个或多个数据库用户。

如何应答

如需响应此发现结果,请执行以下操作:

第 1 步:查看发现结果详情

  1. 按照查看发现结果中所述,打开 Privilege Escalation: AlloyDB Over-Privileged Grant 发现结果。
  2. 在发现结果详细信息面板的摘要标签页上,查看以下部分中的信息:

    • 检测到的内容,尤其是以下字段:
      • 数据库显示名称:受影响的 AlloyDB for PostgreSQL 实例中的数据库的名称。
      • 数据库用户名:授予超额权限的 PostgreSQL 用户。
      • 数据库查询:授予权限所执行的 PostgreSQL 查询。
      • 数据库授权对象:超额权限的授权对象。
    • 受影响的资源,尤其是以下字段:
      • 资源全名:受影响的 AlloyDB for PostgreSQL 实例的资源名称。
      • 父级完整名称:AlloyDB for PostgreSQL 实例的资源名称。
      • 项目全名:包含 AlloyDB for PostgreSQL 实例的 Google Cloud 项目。
    • 相关链接,尤其是以下字段:
      • Cloud Logging URI:指向 Logging 条目的链接。
      • MITRE ATT&CK 方法:指向 MITRE ATT&CK 文档的链接。
  3. 如需查看发现结果的完整 JSON,请点击 JSON 标签页。

第 2 步:查看数据库权限

  1. 连接到 AlloyDB for PostgreSQL 实例
  2. 为以下对象列出并显示访问权限
    • 数据库。使用 \l\list 元命令,检查为数据库显示名称中列出的数据库(来自第 1 步)分配了哪些权限。
    • 函数或过程。使用 \df 元命令,检查为数据库显示名称中列出的数据库(来自第 1 步)中的函数或过程分配了哪些权限。

第 3 步:检查日志

  1. 在 Google Cloud 控制台中,点击 Cloud Logging URI 中的链接,以前往 Logs Explorer(来自第 1 步)。 Logs Explorer 页面包含与相关 Cloud SQL 实例有关的所有日志。
  2. Logs Explorer 中,使用以下过滤条件检查 PostgreSQL pgaudit 日志,其中记录了对数据库执行的查询:
    • protoPayload.request.database="var class="edit">database"

第 4 步:研究攻击和响应方法

  1. 查看此发现结果类型的 MITRE ATT&CK 框架条目:Web 服务渗漏
  2. 如需确定是否需要执行额外的补救步骤,请将您的调查结果与 MITRE 研究相结合。

第 5 步:实现响应

以下响应方案可能适合此发现结果,但也可能会影响运营。 请仔细评估您在研究中收集的信息,以确定解析发现结果的最佳方法。

  • 与过度授予权限的实例的所有者联系。
  • 在调查完成之前,考虑撤消数据库授权对象中列出的授权对象的所有权限。
  • 如需限制对数据库(来自第 1 步数据库显示名称)的访问权限,请撤消第 1 步的授权对象(来自数据库授权对象)的不必要的权限。

后续步骤