本文說明 Security Command Center 中的威脅發現項目類型。威脅偵測工具偵測到雲端資源中可能存在威脅時,就會產生威脅發現項目。如需可用威脅發現項目的完整清單,請參閱威脅發現項目索引。
總覽
為提升權限,可能有惡意的行為人試圖使用 PUT 或 PATCH 要求,修改機密 cluster-admin 角色的 ClusterRole、RoleBinding 或 ClusterRoleBinding 角色式存取權控管 (RBAC) 物件。
Event Threat Detection 是這項發現項目的來源。
回應方式
如要回應這項發現項目,請按照下列步驟操作:
步驟 1:查看調查結果詳細資料
按照「查看結果」一文的指示,開啟
Privilege Escalation: Changes to sensitive Kubernetes RBAC objects發現項目。系統會開啟發現項目的詳細資料面板,並顯示「摘要」分頁。在「摘要」分頁中,查看下列各節的資訊:
- 偵測到的內容,尤其是下列欄位:
- 主體電子郵件地址:發出呼叫的帳戶。
- 方法名稱:呼叫的方法。
- Kubernetes 繫結:已修改的機密 Kubernetes 繫結或
ClusterRoleBinding。
- 受影響的資源,尤其是下列欄位:
- 資源顯示名稱:發生動作的 Kubernetes 叢集。
- 相關連結,尤其是下列欄位:
- Cloud Logging URI:記錄項目連結。
- MITRE ATT&CK 方法:連結至 MITRE ATT&CK 文件。
- 相關發現項目:任何相關發現項目的連結。
- 偵測到的內容,尤其是下列欄位:
在「偵測到什麼?」部分,點選「Kubernetes 繫結」列中的繫結名稱。系統會顯示繫結詳細資料。
在顯示的繫結中,記下繫結詳細資料。
步驟 2:檢查記錄
- 在 Google Cloud 控制台的「發現項目詳細資料」分頁中,按一下「Cloud Logging URI」欄位中的連結,前往「Logs Explorer」。
如果「方法名稱」中的值是
PATCH方法,請檢查要求主體,瞭解修改了哪些屬性。在
update(PUT) 呼叫中,整個物件都會在要求中傳送,因此變更內容並不明顯。使用下列篩選器,檢查主體執行的其他動作:
resource.labels.cluster_name="CLUSTER_NAME"protoPayload.authenticationInfo.principalEmail="PRINCIPAL_EMAIL"更改下列內容:
CLUSTER_NAME:您在調查結果詳細資料的「資源顯示名稱」欄位中記下的值。PRINCIPAL_EMAIL:您在調查結果詳細資料的「主體電子郵件」欄位中記下的值。
步驟 3:研究攻擊和回應方法
- 查看這類發現項目的 MITRE ATT&CK 架構項目: 權限提升
- 確認物件的機密程度,以及修改是否經過授權。
- 您可以檢查繫結的主體,並調查該主體是否需要繫結的角色。
- 判斷記錄中是否有其他跡象,表明主體進行了惡意活動。
如果主體電子郵件地址並非服務帳戶,請與帳戶擁有者聯絡,確認正當擁有者是否執行了該項操作。
如果主體電子郵件地址為服務帳戶 (IAM 或 Kubernetes),請找出修改來源來判斷正當性。
如要制定回應計畫,請將調查結果與 MITRE 研究結合。
發現項目 JSON 範例
以下是發現項目 JSON 的範例。
{ "findings": { "access": { "principalEmail": "PRINCIPAL_EMAIL", "callerIp": "IP_ADDRESS", "callerIpGeo": { "regionCode": "US" }, "serviceName": "k8s.io", "methodName": "io.k8s.authorization.rbac.v1.clusterrolebindings.update" }, "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/05b52fe8267d44bdb33c89367f0dd11a", "category": "Privilege Escalation: Changes to sensitive Kubernetes RBAC objects", "contacts": { "technical": { "contacts": [ { "email": "EMAIL_ADDRESS" }, { "email": "EMAIL_ADDRESS" }, { "email": "EMAIL_ADDRESS" } ] } }, "createTime": "2022-10-07T07:42:36.536Z", "database": {}, "eventTime": "2022-10-07T07:42:06.044Z", "exfiltration": {}, "findingClass": "THREAT", "findingProviderId": "organizations/ORGANIZATION_NUMBER/firstPartyFindingProviders/etd", "indicator": {}, "kubernetes": { "bindings": [ { "name": "cluster-admin", "role": { "kind": "CLUSTER_ROLE", "name": "cluster-admin" }, "subjects": [ { "kind": "USER", "name": "testUser-1665153212" } ] } ] }, "mitreAttack": {}, "mute": "UNDEFINED", "name": "organizations/ORGANIZATION_NUMBER/sources/SOURCE_ID/findings/05b52fe8267d44bdb33c89367f0dd11a", "parent": "organizations/ORGANIZATION_NUMBER/sources/SOURCE_ID", "parentDisplayName": "Event Threat Detection", "resourceName": "//container.googleapis.com/projects/PROJECT_ID/locations/us-west1-a/clusters/CLUSTER_NAME", "severity": "LOW", "sourceDisplayName": "Event Threat Detection", "state": "ACTIVE", "vulnerability": {}, "workflowState": "NEW" }, "resource": { "name": "//container.googleapis.com/projects/PROJECT_ID/locations/us-west1-a/clusters/CLUSTER_NAME", "display_name": "CLUSTER_NAME", "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.container.Cluster", "folders": [ { "resourceFolderDisplayName": "FOLDER_NAME", "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER" } ] }, "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_NUMBER" }, "detectionCategory": { "ruleName": "gke_control_plane", "subRuleName": "edit_sensitive_rbac_object" }, "detectionPriority": "LOW", "affectedResources": [ { "gcpResourceName": "//k8s.io/rbac.authorization.k8s.io/v1/clusterrolebindings/cluster-admin" }, { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" } ], "evidence": [ { "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "1665128526", "nanos": 44146000 }, "insertId": "5d80de5c-84b8-4f42-84c7-6b597162e00a" } } ], "properties": {}, "findingId": "05b52fe8267d44bdb33c89367f0dd11a", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/tactics/TA0004/" }, "cloudLoggingQueryUri": [ { "displayName": "Cloud Logging Query Link", "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222022-10-07T07:42:06.044146Z%22%0AinsertId%3D%225d80de5c-84b8-4f42-84c7-6b597162e00a%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID" } ], "relatedFindingUri": {} } } }
後續步驟
- 瞭解如何在 Security Command Center 中處理威脅調查結果。
- 請參閱威脅發現項目索引。
- 瞭解如何透過 Google Cloud 控制台查看發現項目。
- 瞭解產生威脅發現項目的服務。