Eskalasi Hak Istimewa: Pembuatan binding Kubernetes yang sensitif

Dokumen ini menjelaskan jenis temuan ancaman di Security Command Center. Temuan ancaman dibuat oleh detektor ancaman saat mendeteksi potensi ancaman di resource cloud Anda. Untuk daftar lengkap temuan ancaman yang tersedia, lihat Indeks temuan ancaman.

Ringkasan

Untuk meningkatkan hak istimewa, pihak berniat jahat yang berpotensi mencoba membuat objek baru RoleBinding atau ClusterRoleBinding untuk peran cluster-admin.

Event Threat Detection adalah sumber temuan ini.

Cara merespons

Untuk merespons temuan ini, lakukan hal berikut:

Langkah 1: Tinjau detail temuan

  1. Buka Privilege Escalation: Creation of sensitive Kubernetes bindings temuan seperti yang diarahkan di Meninjau temuan. Panel detail untuk temuan akan terbuka di tab Ringkasan.

  2. Di tab Ringkasan, tinjau informasi di bagian berikut:

    • Apa yang terdeteksi, terutama kolom berikut:
      • Principal email: akun yang melakukan panggilan.
      • Kubernetes bindings: binding Kubernetes sensitif atau ClusterRoleBinding yang dibuat.
    • Affected resource, terutama kolom berikut:
      • Nama tampilan resource: cluster Kubernetes tempat tindakan terjadi.
    • Related links, terutama kolom berikut:
      • Cloud Logging URI: link ke entri Logging.
      • Metode MITRE ATT&CK: tautan ke dokumentasi MITRE ATT&CK.
      • Temuan terkait: link ke temuan terkait.

Langkah 2: Periksa log

  1. Di tab Ringkasan detail temuan di Google Cloud konsol, buka Logs Explorer dengan mengklik link di kolom Cloud Logging URI.
  2. Periksa tindakan lain yang dilakukan oleh prinsipal menggunakan filter berikut:

    • resource.labels.cluster_name="CLUSTER_NAME"
    • protoPayload.authenticationInfo.principalEmail="PRINCIPAL_EMAIL"

      Ganti kode berikut:

    • CLUSTER_NAME: nilai yang Anda catat di kolom Resource display name di detail temuan.

    • PRINCIPAL_EMAIL: nilai yang Anda catat di kolom Principal email di detail temuan.

Langkah 3: Teliti metode serangan dan respons

  1. Tinjau entri framework MITRE ATT&CK untuk jenis temuan ini: Privilege Escalation.
  2. Konfirmasi sensitivitas binding yang dibuat dan apakah peran diperlukan untuk subjek.
  3. Untuk binding, Anda dapat memeriksa subjek dan menyelidiki apakah subjek memerlukan peran yang terikat.
  4. Tentukan apakah ada tanda aktivitas berbahaya lainnya oleh prinsipal dalam log.
  5. Jika email prinsipal bukan akun layanan, hubungi pemilik akun untuk mengonfirmasi apakah pemilik yang sah melakukan tindakan tersebut.

    Jika email prinsipal adalah akun layanan (IAM atau Kubernetes), identifikasi sumber tindakan untuk menentukan legitimasi.

  6. Untuk mengembangkan rencana respons, gabungkan hasil investigasi Anda dengan riset MITRE.

Contoh JSON temuan

Berikut adalah contoh JSON temuan.

{
  "findings": {
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP_ADDRESS",
      "callerIpGeo": {
        "regionCode": "US"
      },
      "serviceName": "k8s.io",
      "methodName": "io.k8s.authorization.rbac.v1.clusterrolebindings.create"
    },
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/02dcbf565d9d4972a126ac3c38fd4295",
    "category": "Privilege Escalation: Creation of sensitive Kubernetes bindings",
    "contacts": {
      "technical": {
        "contacts": [
          {
            "email": "EMAIL_ADDRESS"
          },
          {
            "email": "EMAIL_ADDRESS"
          },
          {
            "email": "EMAIL_ADDRESS"
          }
        ]
      }
    },
    "createTime": "2022-10-11T09:29:44.425Z",
    "database": {},
    "eventTime": "2022-10-11T09:29:26.309Z",
    "exfiltration": {},
    "findingClass": "THREAT",
    "findingProviderId": "organizations/ORGANIZATION_NUMBER/firstPartyFindingProviders/etd",
    "indicator": {},
    "kubernetes": {
      "bindings": [
        {
          "name": "cluster-admin",
          "role": {
            "kind": "CLUSTER_ROLE",
            "name": "cluster-admin"
          }
        }
      ]
    },
    "mitreAttack": {},
    "mute": "UNDEFINED",
    "name": "organizations/ORGANIZATION_NUMBER/sources/SOURCE_ID/findings/02dcbf565d9d4972a126ac3c38fd4295",
    "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": "create_sensitive_binding"
    },
    "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": "1665480566",
            "nanos": 309136000
          },
          "insertId": "e4b2fb24-a118-4d74-80ea-2ec069251321"
        }
      }
    ],
    "properties": {},
    "findingId": "02dcbf565d9d4972a126ac3c38fd4295",
    "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-11T09:29:26.309136Z%22%0AinsertId%3D%22e4b2fb24-a118-4d74-80ea-2ec069251321%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
        }
      ],
      "relatedFindingUri": {}
    }
  }
}

Langkah berikutnya