Event Threat Detection용 커스텀 모듈 개요

이 페이지에서는 Event Threat Detection의 커스텀 모듈에 대해 간략하게 설명합니다.

감지기라고도 하는 모듈을 구성하여 Cloud Logging 스트림을 구성하고 지정한 매개변수를 기반으로 위협을 감지할 수 있습니다. 이 기능은 Event Threat Detection의 모니터링 기능을 확장하여, 기본 제공되는 감지기로 지원되지 않는 구성을 위해 자체 감지 매개변수, 해결 가이드, 심각도 지정이 포함된 모듈을 추가할 수 있게 해줍니다.

커스텀 모듈은 조직의 고유한 요구를 충족시키는 감지 규칙이 포함된 모듈이 필요한 경우에 유용합니다. 예를 들어 로그 항목에 리소스가 특정 IP 주소에 연결되어 있거나 제한된 리전에서 생성된 것으로 표시되면 발견 항목을 만드는 커스텀 모듈을 추가할 수 있습니다.

Event Threat Detection의 커스텀 모듈 작동 방법

커스텀 모듈은 자체 감지 매개변수로 구성할 수 있는 Event Threat Detection 감지기의 선별된 그룹입니다. Google Cloud 콘솔을 통해 Event Threat Detection 커스텀 모듈을 만들 수 있습니다. 또는 커스텀 모듈 템플릿을 업데이트하고 Google Cloud CLI를 통해 Security Command Center로 커스텀 모듈을 전송하여 커스텀 모듈을 만들 수 있습니다. 사용 가능한 템플릿에 대한 자세한 내용은 커스텀 모듈 및 템플릿을 참조하세요.

커스텀 모듈 템플릿은 JSON으로 작성되며 이를 통해 발견 항목을 트리거할 수 있는 로그 항목의 이벤트를 제어하는 감지 매개변수를 정의할 수 있습니다. 예를 들어 기본 제공되는 Malware: Bad IP 감지기는 가상 프라이빗 클라우드 흐름 로그에서 의심스러운 것으로 알려진 IP 주소와 연관된 증거를 찾습니다. 하지만 유지보수하는 의심스러운 IP 주소 목록을 사용해서 Configurable Bad IP 커스텀 모듈을 사용 설정 및 수정할 수 있습니다. 로그에 제공된 IP 주소에 대한 연결이 표시되면 발견 항목이 생성되고 Security Command Center에 기록됩니다.

또한 모듈 템플릿을 사용하면 위협의 심각도를 정의하고 보안팀의 문제 해결을 돕기 위한 커스텀 해결 단계를 제공할 수 있습니다.

커스텀 모듈을 사용하면 Event Threat Detection에서 위협을 감지하고 발견 항목을 보고하는 방법을 더 세밀하게 제어할 수 있습니다. 커스텀 모듈에는 제공된 매개변수가 포함되지만 tripwire 표시기 매칭을 포함하여 Event Threat Detection의 독점적인 감지 로직과 위협 인텔리전스를 계속 활용합니다. 조직의 고유 요구사항에 맞게 조정된 광범위한 위협 모델 집합을 구현할 수 있습니다.

Event Threat Detection 커스텀 모듈은 기본 제공되는 감지기와 함께 실행됩니다. 사용 설정된 모듈은 실시간 모드로 실행되며, 새 로그가 생성될 때마다 스캔을 트리거합니다.

커스텀 모듈 및 템플릿

다음 표에서는 지원되는 커스텀 모듈 유형, 설명, 필요한 로그, JSON 모듈 템플릿 목록을 보여줍니다.

gcloud CLI를 사용해서 커스텀 모듈을 만들고 업데이트하려면 이러한 JSON 모듈 템플릿이 필요합니다. 템플릿을 보려면 이름 옆에 있는 확장 아이콘 을 클릭하세요. 커스텀 모듈 사용에 대한 자세한 내용은 커스텀 모듈 구성 및 관리를 참조하세요.

발견 항목 카테고리 모듈 유형 로그 소스 유형 설명
구성 가능한 잘못된 IP CONFIGURABLE_BAD_IP VPC 흐름 로그
방화벽 규칙 로그
지정된 IP 주소에 대한 연결을 감지합니다.
템플릿: 구성 가능한 잘못된 IP
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "ips": [
    "IP_ADDRESS_1",
    "IP_ADDRESS_2"
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • IP_ADDRESS_1: 감시할 공개적으로 라우팅 가능한 IPv4 또는 IPv6 주소 또는 CIDR 블록입니다(예: 192.0.2.1 또는 192.0.2.0/24).
  • IP_ADDRESS_2: (선택사항) 감시할 공개적으로 라우팅 가능한 IPv4 또는 IPv6 주소 또는 CIDR 블록입니다(예: 192.0.2.1 또는 192.0.2.0/24).
구성 가능한 잘못된 도메인 CONFIGURABLE_BAD_DOMAIN Cloud DNS 로그 지정된 도메인 이름에 대한 연결을 감지합니다.
템플릿: 구성 가능한 잘못된 도메인
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "domains": [
    "DOMAIN_1","DOMAIN_2"
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • DOMAIN_1: 감시할 도메인 이름(예: example.com). localhost 값은 허용되지 않습니다. 유니코드 및 퓨니코드 도메인 이름은 정규화됩니다. 예를 들어 例.example과 xn--fsqua00a.example은 동일합니다.
  • DOMAIN_2: (선택사항) 감시할 도메인 이름(예: example.com). localhost 값은 허용되지 않습니다. 유니코드 및 퓨니코드 도메인 이름은 정규화됩니다. 예를 들어 例.example과 xn--fsqua00a.example은 동일합니다.
예상치 못한 Compute Engine 인스턴스 유형 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_INSTANCE_TYPE Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
지정된 인스턴스 유형 또는 구성과 일치하지 않는 Compute Engine 인스턴스 생성을 감지합니다.
템플릿: 예상치 못한 Compute Engine 인스턴스 유형
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "instances": [
    {
      "series": "SERIES",
      "cpus": {
        "minimum": MINIMUM_NUMBER_OF_CPUS,
        "maximum": MAXIMUM_NUMBER_OF_CPUS
      },
      "ram_mb": {
        "minimum": MINIMUM_RAM_SIZE,
        "maximum": MAXIMUM_RAM_SIZE
      },
      "gpus": {
        "minimum": MINIMUM_NUMBER_OF_GPUS,
        "maximum": MAXIMUM_NUMBER_OF_GPUS
      },
      "projects": [
        "PROJECT_ID_1",
        "PROJECT_ID_2"
      ],
      "regions": [
        "REGION_1",
        "REGION_2"
      ]
    },
    {
      "series": " ... ",
      ...
      "regions": [ ... ]
    }
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • SERIES: (선택사항) Compute Engine 머신 시리즈(예: C2)입니다. 비어 있으면 모듈에서 모든 시리즈를 허용합니다. 자세한 내용은 머신 계열 리소스 및 비교 가이드를 참조하세요.
  • MINIMUM_NUMBER_OF_CPUS: (선택사항) 허용할 최소 CPU 수입니다. 없는 경우 최솟값은 없습니다. 음수가 아니어야 합니다.
  • MAXIMUM_NUMBER_OF_CPUS: (선택사항) 허용할 최대 CPU 수입니다. 없는 경우 최댓값은 없습니다. minimum 이상, 1000 이하여야 합니다.
  • MINIMUM_RAM_SIZE: (선택사항) 허용할 최소 RAM 크기(MB)입니다. 없는 경우 최솟값은 없습니다.
  • MAXIMUM_RAM_SIZE: (선택사항) 허용할 최대 RAM 크기(MB)입니다. 없는 경우 최댓값은 없습니다. minimum 이상, 10,000,000 이하여야 합니다.
  • MINIMUM_NUMBER_OF_GPUS: (선택사항) 허용할 최소 GPU 수입니다. 없는 경우 최솟값은 없습니다. 음수가 아니어야 합니다.
  • MAXIMUM_NUMBER_OF_GPUS: (선택사항) 허용할 최대 GPU 수입니다. 없는 경우 최댓값은 없습니다. minimum 이상, 1000 이하여야 합니다.
  • PROJECT_ID_1: (선택사항) 이 모듈을 적용할 프로젝트의 ID입니다(예: projects/example-project). 비어 있거나 설정되지 않은 경우 모듈이 현재 범위 내의 모든 프로젝트에서 생성된 인스턴스에 적용됩니다.
  • PROJECT_ID_2: (선택사항) 이 모듈을 적용할 프로젝트의 ID입니다(예: projects/example-project).
  • REGION_1: (선택사항) 이 모듈을 적용할 리전입니다(예: us-central1). 비어 있거나 설정되지 않은 경우 모듈이 모든 리전에서 생성된 인스턴스에 적용됩니다.
  • REGION_2: (선택사항) 이 모듈을 적용할 리전입니다(예: us-central1).
예상치 못한 Compute Engine 소스 이미지 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_SOURCE_IMAGE Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
지정된 목록과 일치하지 않는 이미지 또는 이미지 계열이 있는 Compute Engine 인스턴스의 생성을 감지합니다.
템플릿: 예상치 못한 Compute Engine 소스 이미지
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "patterns": [
    {

      "pattern": "PATTERN_1",
      "name": "NAME_1"
    },
    {
      "pattern": "PATTERN_2",
      "name": "NAME_2"
    }
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • PATTERN_1: 이미지를 확인할 RE2 정규 표현식입니다. 예를 들면 debian-image-1입니다. 이미지가 Compute Engine 인스턴스를 만드는 데 사용되고 이미지 이름의 이름이 지정된 정규 표현식과 일치하지 않으면 발견 항목이 생성됩니다.
  • NAME_1: 이 패턴을 설명하는 이름(예: first-image)입니다.
  • PATTERN_2: (선택사항) 이미지를 확인할 또 다른 RE2 정규 표현식입니다. 예를 들면 debian-image-2입니다.
  • NAME_2: (선택사항) 두 번째 패턴을 설명하는 이름(예: second-image).
예상치 못한 Compute Engine 리전 CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
지정된 목록에 없는 리전에서 Compute Engine 인스턴스 생성을 감지합니다.
템플릿: 예상치 못한 Compute Engine 리전
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "regions": [
    {
      "region": "REGION_1"
    },
    {
      "region": "REGION_2"
    }
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • REGION_1: 허용할 리전의 이름(예: us-west1). Compute Engine 인스턴스가 목록에 지정되지 않은 리전에 생성되면 Event Threat Detection에서 발견 항목을 생성합니다.
  • REGION_2: (선택사항) 허용할 리전의 이름(예: us-central1). Compute Engine 인스턴스가 목록에 지정되지 않은 리전에 생성되면 Event Threat Detection에서 발견 항목을 생성합니다.
사용된 breakglass 계정 CONFIGURABLE_BREAKGLASS_ACCOUNT_USED Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
긴급 액세스(breakglass) 계정 사용량을 감지합니다.
템플릿: 사용된 breakglass 계정
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "accounts": [
    "BREAKGLASS_ACCOUNT_1", "BREAKGLASS_ACCOUNT_2"
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • BREAKGLASS_ACCOUNT_1: 감시할 breakglass 계정(예: test@example.com). 이 계정이 Cloud 감사 로그 항목에 기록된 작업에 사용되는 경우 발견 항목이 생성됩니다.
  • BREAKGLASS_ACCOUNT_2: (선택사항) 감시할 breakglass 계정(예: test@example.com). 이 계정이 Cloud 감사 로그 항목에 기록된 작업에 사용되는 경우 발견 항목이 생성됩니다.
예상치 못한 역할 부여 CONFIGURABLE_UNEXPECTED_ROLE_GRANT Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
지정된 역할이 사용자에게 할당되는 경우를 감지합니다.
템플릿: 예상치 못한 역할 부여
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "roles": ["ROLE_1", "ROLE_2"]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • ROLE_1: 감시할 IAM 역할(예: roles/owner). 이 역할이 부여되면 발견 항목이 생성됩니다.
  • ROLE_2: (선택사항) 감시할 IAM 역할(예: roles/editor). 이 역할이 부여되면 발견 항목이 생성됩니다.
금지된 권한이 있는 커스텀 역할 CONFIGURABLE_CUSTOM_ROLE_WITH_PROHIBITED_PERMISSION Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
지정된 IAM 권한이 있는 커스텀 역할이 생성되거나 업데이트될 때 이를 감지합니다.
템플릿: 금지된 권한이 있는 커스텀 역할
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "permissions": [
    "PERMISSION_1",
    "PERMISSION_2"
  ]
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • PERMISSION_1: 감시할 IAM 권한(예: storage.buckets.list). Event Threat Detection은 이 권한을 포함하는 커스텀 IAM 역할이 주 구성원에게 부여된 경우 발견 항목을 생성합니다.
  • PERMISSION_2: (선택사항) 감시할 IAM 권한(예: storage.buckets.get). Event Threat Detection은 이 권한을 포함하는 커스텀 IAM 역할이 주 구성원에게 부여된 경우 발견 항목을 표시합니다.
예상치 못한 Cloud API 호출 CONFIGURABLE_UNEXPECTED_CLOUD_API_CALL Cloud 감사 로그:
관리자 활동 로그(필수)
데이터 액세스 로그(선택사항)
지정된 주 구성원이 지정된 리소스에 대해 지정된 메서드를 호출할 때 이를 감지합니다. 발견 항목은 단일 로그 항목에서 모든 정규 표현식이 일치할 때만 생성됩니다.
템플릿: 예상치 못한 Cloud API 호출
{
  "metadata": {
    "severity": "SEVERITY",
    "description": "DESCRIPTION",
    "recommendation": "RECOMMENDATION"
  },
  "caller_pattern": "CALLER_PATTERN",
  "method_pattern": "METHOD_PATTERN",
  "resource_pattern": "RESOURCE_PATTERN"
}

다음을 바꿉니다.

  • SEVERITY: 이 모듈에서 생성될 발견 항목의 심각도. 유효한 값은 LOW, MEDIUM, HIGH, CRITICAL입니다.
  • DESCRIPTION: 커스텀 모듈이 감지하는 위협에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 explanation 속성을 채우기 위해 사용됩니다.
  • RECOMMENDATION: 보안팀이 감지된 문제를 해결하기 위해 취할 수 있는 추천 조치에 대한 설명입니다. 이 설명은 이 모듈에서 생성된 각 발견 항목의 nextSteps 속성을 채우기 위해 사용됩니다.
  • CALLER_PATTERN: 주 구성원을 확인할 RE2 정규 표현식입니다. 예를 들어 .*는 모든 주 구성원을 찾습니다.
  • METHOD_PATTERN: 메서드를 확인할 RE2 정규 표현식입니다. 예를 들면 ^cloudsql\\.instances\\.export$입니다.
  • RESOURCE_PATTERN: 리소스를 확인할 RE2 정규 표현식입니다. 예를 들면 example-project입니다.

가격 책정 및 할당량

이 기능은 Security Command Center 프리미엄 고객에게 무료로 제공됩니다.

Event Threat Detection 커스텀 모듈에는 할당량 한도가 적용됩니다.

커스텀 모듈 생성 시 기본 할당량 한도는 200입니다.

커스텀 모듈 메서드에 대한 API 호출에도 할당량 한도가 적용됩니다. 다음 표에서는 커스텀 모듈 API 호출의 기본 할당량 한도를 보여줍니다.

API 호출 유형 한도
Get, List 조직별로 분당 API 호출 1,000개
Create, Update, Delete 조직별로 분당 API 호출 60개

모듈 크기 한도

각 Event Threat Detection 커스텀 모듈의 크기 한도는 6MB입니다.

비율 제한

다음 비율 한도가 적용됩니다.

  • 시간당 커스텀 모듈당 발견 항목 30개
  • 시간당 상위 리소스(조직 또는 프로젝트)당 커스텀 모듈 발견 항목 200개. 각 발견 항목은 소스 커스텀 모듈이 생성된 수준에 따라 조직 또는 프로젝트로 계산됩니다.

이러한 한도는 늘릴 수 없습니다.

다음 단계