權限提升:已授予休眠服務帳戶身分的模擬角色

本文說明 Security Command Center 中的威脅發現項目類型。威脅偵測工具偵測到雲端資源中可能存在威脅時,就會產生威脅發現項目。如需可用威脅發現項目的完整清單,請參閱威脅發現項目索引

總覽

主體已獲得模擬角色,可模擬休眠的使用者自行管理的服務帳戶。在這項發現項目中,受影響的資源是閒置服務帳戶。如果服務帳戶閒置超過 180 天,就會視為閒置服務帳戶。

Event Threat Detection 是這項發現項目的來源。

回應方式

如要回應這項發現項目,請按照下列步驟操作:

步驟 1:查看調查結果詳細資料

  1. 按照「查看發現項目」一文的說明,開啟Privilege Escalation: Impersonation Role Granted for Dormant Service Account發現項目。
  2. 在「摘要」分頁的發現項目詳細資料中,記下下列欄位的值。

    「偵測到的內容」下方會顯示以下資訊:

    • 主體電子郵件地址:執行授權動作的使用者
    • 違規的存取權授予。主體名稱:獲派模擬角色者

    在「受影響的資源」下方:

    • 資源顯示名稱:閒置服務帳戶做為資源
    • 完整專案名稱:閒置服務帳戶所在的專案

步驟 2:研究攻擊和應變方法

  1. 使用服務帳戶工具 (例如活動分析器),調查休眠服務帳戶的活動。
  2. 與「Principal email」(主體電子郵件) 欄位的擁有者聯絡。 確認正當擁有者是否執行了該項操作。

步驟 3:檢查記錄

  1. 在發現項目詳細資料面板的「摘要」分頁中,按一下「相關連結」下方的「Cloud Logging URI」連結,開啟「Logs Explorer」。

步驟 4:實作回應

下列應變計畫可能適用於這項發現,但也可能影響作業。 請仔細評估調查期間收集到的資訊,找出解決問題的最佳方式。

  • 請與執行動作的專案擁有者聯絡。
  • 如果主體電子郵件的擁有者遭到入侵,請移除其存取權。
  • 從目標成員移除新授予的模擬角色。
  • 請考慮刪除可能遭入侵的服務帳戶,並輪替及刪除可能遭入侵專案的所有服務帳戶存取金鑰。刪除後,使用該服務帳戶進行驗證的應用程式會失去存取權。繼續操作前,安全團隊應找出所有受影響的應用程式,並與應用程式擁有者合作,確保業務持續運作。
  • 與安全團隊合作找出不熟悉的資源,包括 Compute Engine 執行個體、快照、服務帳戶和 IAM 使用者。刪除非授權帳戶建立的資源。
  • 回覆 Cloud Customer Care 的任何通知。
  • 如要限制可建立服務帳戶的使用者,請使用 組織政策服務
  • 如要找出並修正過於寬鬆的角色,請使用 IAM 建議工具

發現項目 JSON 範例

以下是發現項目 JSON 的範例。

{
  "findings": {
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP_ADDRESS",
      "callerIpGeo": {
        "regionCode": "REGION_CODE"
      },
      "serviceName": "iam.googleapis.com",
      "methodName": "google.iam.admin.v1.SetIAMPolicy"
    },
    "assetDisplayName": "ASSET_DISPLAY_NAME",
    "assetId": "organizations/ORGANIZATION_ID/assets/ASSET_ID",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "category": "Privilege Escalation: Impersonation Role Granted for Dormant Service Account",
    "cloudDlpInspection": {},
    "contacts": {
      "security": {
        "contacts": [
          {
            "email": "EMAIL_ADDRESS_1"
          },
          {
            "email": "EMAIL_ADDRESS_2"
          }
        ]
      },
      "technical": {
        "contacts": [
          {
            "email": "EMAIL_ADDRESS_3"
          },
          {
            "email": "EMAIL_ADDRESS_4"
          }
        ]
      }
    },
    "createTime": "CREATE_TIMESTAMP",
    "database": {},
    "eventTime": "EVENT_TIMESTAMP",
    "exfiltration": {},
    "findingClass": "THREAT",
    "findingProviderId": "organizations/ORGANIZATION_ID/firstPartyFindingProviders/etd",
    "iamBindings": [
      {
        "action": "ADD",
        "role": "roles/iam.serviceAccountTokenCreator",
        "member": "IAM_Account_Who_Received_Impersonation_Role"
      }
    ],
    "indicator": {},
    "kernelRootkit": {},
    "kubernetes": {},
    "mitreAttack": {
      "primaryTactic": "INITIAL_ACCESS",
      "primaryTechniques": [
        "VALID_ACCOUNTS",
        "CLOUD_ACCOUNTS"
      ]
    },
    "mute": "UNDEFINED",
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "parentDisplayName": "Event Threat Detection",
    "resourceName": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/DORMANT_SERVICE_ACCOUNT_ID",
    "severity": "MEDIUM",
    "state": "ACTIVE",
    "vulnerability": {},
    "workflowState": "NEW"
  },
  "resource": {
    "name": "//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/DORMANT_SERVICE_ACCOUNT_ID",
    "display_name": "projects/PROJECT_ID/serviceAccounts/DORMANT_SERVICE_ACCOUNT_EMAIL",
    "project_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "project_display_name": "PROJECT_ID",
    "parent_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "parent_display_name": "PROJECT_ID",
    "type": "google.iam.ServiceAccount",
    "folders": [
      {
        "resourceFolderDisplayName": "RESOURCE_FOLDER_DISPLAY_NAME",
        "resourceFolder": "RESOURCE_FOLDER_ID"
      }
    ]
  },
  "sourceProperties": {
    "sourceId": {
      "projectNumber": "PROJECT_NUMBER",
      "customerOrganizationNumber": "ORGANIZATION_ID"
    },
    "detectionCategory": {
      "ruleName": "impersonation_role_granted_over_dormant_sa"
    },
    "detectionPriority": "HIGH",
    "affectedResources": [
      {
        "gcpResourceName": "GOOGLE_CLOUD_RESOURCE_NAME"
      }
    ],
    "evidence": [
      {
        "sourceLogId": {
          "projectId": "PROJECT_ID",
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "1678897327",
            "nanos": 26483000
          },
          "insertId": "INSERT_ID"
        }
      }
    ],
    "properties": {},
    "findingId": "FINDING_ID",
    "contextUris": {
      "mitreUri": {
        "displayName": "MITRE Link",
        "url": "https://attack.mitre.org/techniques/T1078/004/"
      },
      "cloudLoggingQueryUri": [
        {
          "displayName": "Cloud Logging Query Link",
          "url": "LINK_TO_LOG_QUERY"
        }
      ]
    }
  }
}

後續步驟