지속성: GCE 관리자가 시작 스크립트를 추가함

이 문서에서는 Security Command Center의 위협 발견 사항 유형에 대해 설명합니다. 위협 발견 사항은 위협 감지기가 클라우드 리소스에서 잠재적인 위협을 감지할 때 생성됩니다. 사용 가능한 위협 발견 사항의 전체 목록은 위협 발견 사항 색인을 확인하세요.

개요

startup-script 또는 startup-script-url Compute Engine 인스턴스 메타데이터 키 가 생성된 지 7일 이상 지난 인스턴스에서 변경되었습니다.

Event Threat Detection이 이 발견 사항의 소스입니다.

대응 방법

다음의 응답 계획이 이 발견 항목에 적합할 수 있지만 작업에도 영향을 줄 수 있습니다. 조사에서 수집한 정보를 신중하게 평가하여 발견 항목을 해결할 최선의 방법을 결정해야 합니다.

이 발견 사항에 대응하려면 다음을 수행하세요.

  1. 의도적으로 구성원이 수행한 변경인지 또는 조직에서 새로운 액세스 권한을 도입하기 위해 공격자가 구현했는지 확인합니다.

  2. 다음 필터를 사용하여 로그를 확인합니다.

    protopayload.resource.labels.instance_id=INSTANCE_ID
    protoPayload.serviceName="compute.googleapis.com"
    ((protoPayload.metadata.instanceMetaData.addedMetadataKey : "startup-script" OR
    protoPayload.metadata.instanceMetaData.modifiedMetadataKey : "startup-script" ) OR
    (protoPayload.metadata.instanceMetaData.addedMetadataKey : "startup-script-url" OR
    protoPayload.metadata.instanceMetaData.modifiedMetadataKey : "startup-script-url" ))
    logName="organizations/ORGANIZATION_ID/logs/cloudaudit.googleapis.com%2Factivity
    

    다음을 바꿉니다.

    • INSTANCE_ID: 발견 사항에 나열된 gceInstanceId
    • ORGANIZATION_ID: 조직 ID
  3. 이 발견 사항을 트리거하는 이벤트를 조사합니다.

발견 사항 JSON 예

다음은 발견 사항 JSON의 예입니다.

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/COMPUTE_INSTANCE_NAME",
    "category": "Persistence: GCE Admin Added Startup Script",
    "sourceProperties": {
      "sourceId": {
        "projectNumber": "PROJECT_NUMBER",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "detectionCategory": {
        "technique": "persistence",
        "indicator": "audit_log",
        "ruleName": "gce_admin",
        "subRuleName": "instance_add_startup_script"
      },
      "detectionPriority": "LOW",
      "affectedResources": [{
        "gcpResourceName": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/COMPUTE_INSTANCE_NAME"
      }, {
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }],
      "evidence": [{
        "sourceLogId": {
          "projectId": "0",
          "resourceContainer": "organizations/ORGANIZATION_ID",
          "timestamp": {
            "seconds": "1621624109",
            "nanos": 3.73721E8
          },
          "insertId": "INSERT_ID"
        }
      }],
      "properties": {
        "callerIp": "IP_ADDRESS",
        "principalEmail": "PRINCIPAL_EMAIL",
        "gceInstanceId": "COMPUTE_INSTANCE_ID",
        "projectId": "PROJECT_ID",
        "metadataKeyOperation": "ADDED",
        "callerUserAgent": "USER_AGENT",
      },
      "contextUris": {
      "mitreUri": {
          "displayName": "MITRE Link",
          "url": "https://attack.mitre.org/techniques/T1543/"
        },
        "cloudLoggingQueryUri": [{
          "displayName": "Cloud Logging Query Link",
          "url": "https://console.cloud.google.com/logs/query;query\u003dtimestamp%3D%222021-05-21T19:08:29.373721Z%22%0AinsertId%3D%22INSERT_ID%22%0Aresource.labels.project_id%3D%220%22?project\u003d0"
        }]
      }
    },
  "resource": {
    "name": "//compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/instances/COMPUTE_INSTANCE_NAME",
  }
}

다음 단계