컨텍스트 인식 분석에 Sensitive Data Protection 데이터 사용

다음에서 지원:

이 문서에서는 Sensitive Data Protection의 항목 컨텍스트 데이터와 추가 로그 소스를 사용하여 조사를 수행할 때 잠재적인 위협의 영향과 범위를 상황별로 이해하는 방법을 보여줍니다.

이 문서에 설명된 사용 사례에서는 사용자의 악성 파일 실행(MITRE ATT&CK Technique T1204.002)과 사용자가 네트워크의 다른 위치에서 민감한 정보에도 액세스할 수 있는지 여부를 감지합니다.

이 예시를 사용하려면 다음 데이터를 수집하고 Google Security Operations에서 정규화해야 합니다.

  • 네트워크와 EDR 로그를 사용한 사용자 활동 데이터
  • Google Cloud IAM 분석과 같은 데이터 소스의 리소스 관계
  • 저장된 데이터의 유형과 민감도에 대한 라벨이 포함된 Sensitive Data Protection 로그

Google Security Operations에서 원시 데이터를 통합 데이터 모델(UDM) 항목과 이벤트 레코드로 파싱할 수 있어야 합니다.

Sensitive Data Protection 데이터를 Google Security Operations로 수집하는 방법에 대한 자세한 내용은 Google Security Operations로 Sensitive Data Protection 데이터 내보내기를 참조하세요.

Google Cloud IAM 분석 데이터

이 예시의 Google Cloud IAM 분석 로그 데이터는 조직의 사용자를 식별하고 각 사용자가 네트워크의 다른 시스템에 대해 갖는 관계를 캡처합니다. 다음은 UDM 항목 레코드로 저장된 IAM 분석 로그의 스니펫입니다. 여기에는 analytics:claim.patients라는 BigQuery 테이블을 관리하는 mikeross 사용자에 대한 정보가 저장됩니다.

metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP IAM Analysis"
metadata.entity_type: "USER"
entity.user.userid: "mikeross"
relations[2].entity.resource.name: "analytics:claim.patients"
relations[2].entity.resource.resource_type: "TABLE"
relations[2].entity_type: "RESOURCE"
relations[2].relationship: "ADMINISTERS"

Sensitive Data Protection 데이터

이 예시의 Sensitive Data Protection 로그 데이터는 BigQuery 테이블에 대한 정보를 저장합니다. 다음은 UDM 항목 레코드로 저장된 Sensitive Data Protection 로그의 스니펫입니다. analytics:claim.patients라는 BigQuery 테이블을 나타내며 Predicted InfoType 라벨 US_SOCIAL_SECURITY_NUMBER는 테이블에 미국 사회보장번호가 저장되어 있음을 나타냅니다.

metadata.vendor_name: "Google Cloud Platform"
metadata.product_name: "GCP DLP CONTEXT"
metadata.entity_type: "RESOURCE"
metadata.description: "RISK_HIGH"
entity.resource.resource_type: "TABLE"
entity.resource.resource_subtype: "BigQuery Table"
entity.resource.attribute.cloud.environment"GOOGLE_CLOUD_PLATFORM"
entity.resource.attribute.labels[0].key: "Sensitivity Score"
entity.resource.attribute.labels[0].value: "SENSITIVITY_HIGH"
entity.resource.attribute.labels[1].key: "Predicted InfoType"
entity.resource.attribute.labels[1].value: "US_SOCIAL_SECURITY_NUMBER"
entity.resource.product_object_id: "analytics:claim.patients"

웹 프록시 이벤트

이 예시의 웹 프록시 이벤트는 네트워크 활동을 캡처합니다. 다음 스니펫은 UDM 이벤트 레코드로 저장된 Zscaler 웹 프록시 로그입니다. userid 값이 mikeross인 사용자의 실행 파일에 대한 네트워크 다운로드 이벤트를 캡처합니다. 여기서 received_bytes 값은 514605입니다.

metadata.log_type = "ZSCALER_WEBPROXY"
metadata.product_name = "NSS"
metadata.vendor_name = "Zscaler"
metadata.event_type = "NETWORK_HTTP"
network.http.response_code = 200
network.received_bytes = 514605
principal.user.userid = "mikeross"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"

EDR 이벤트

이 예시의 EDR 이벤트는 엔드포인트 기기의 활동을 캡처합니다. 다음 스니펫은 UDM 이벤트 레코드로 저장된 CrowdStrike Falcon EDR 로그입니다. Microsoft Excel 애플리케이션과 관련된 네트워크 이벤트와 userid 값이 mikeross인 사용자를 캡처합니다.

metadata.log_type = "CS_EDR"
metadata.product_name = "Falcon"
metadata.vendor_name = "Crowdstrike"
metadata.event_type = "NETWORK_HTTP"
target.process.file.full_path = "\\Device\\HarddiskVolume1\\Program Files\\C:\\Program Files\\Microsoft Office\\Office16\\EXCEL.exe"
target.url = "http://manygoodnews.com/dow/Client%20Update.exe"
target.user.userid = "mikeross"

이러한 레코드에는 사용자 식별자 mikeross와 테이블 이름 analytics:claim.patients라는 공통된 정보가 있습니다. 이 문서의 다음 섹션에서는 규칙에서 이러한 값을 사용해 레코드를 조인하는 방법을 보여줍니다.

이 예시의 감지 엔진 규칙

이 예시 규칙은 사용자의 악성 파일 실행(MITRE ATT&CK 기술 T1204.002)을 감지합니다.

이 규칙은 사용자가 네트워크의 다른 위치에서 민감한 정보에도 액세스할 수 있는 경우 감지에 더 높은 위험 점수를 할당합니다. 이 규칙은 다음 정보를 상호 연관시킵니다.

  • 실행 파일 다운로드 또는 실행과 같은 사용자 활동
  • 리소스 간 관계(예: BigQuery 테이블과 사용자의 관계)
  • 사용자가 액세스할 수 있는 리소스에 민감한 정보가 있는 경우(예: BigQuery 테이블에 저장된 데이터 유형).

다음은 예시 규칙의 각 섹션에 대한 설명입니다.

  • events 섹션은 규칙이 찾는 데이터의 패턴을 지정하고 다음을 포함합니다.

    • 그룹 1 및 그룹 2는 Excel 애플리케이션의 활동과도 관련된 대량의 데이터 또는 실행 파일의 다운로드를 캡처하는 네트워크 및 EDR 이벤트를 식별합니다.
    • 그룹 3은 네트워크 및 EDR 이벤트에서 식별된 사용자가 BigQuery 테이블에 대한 권한도 갖고 있는 레코드를 식별합니다.
    • 그룹 4는 사용자가 액세스할 수 있는 BigQuery 테이블의 Sensitive Data Protection 레코드를 식별합니다.

    각 표현식 그룹은 $table_name 변수 또는 $user 변수를 사용하여 동일한 사용자 및 데이터베이스 테이블과 관련된 레코드를 조인합니다.

  • outcome 섹션에서 이 규칙은 $risk_score 변수를 만들고 테이블의 데이터 민감도에 따라 값을 설정합니다. 이 경우에는 데이터에 US_SOCIAL_SECURITY_NUMBER 민감한 정보 보호 infoType 라벨이 지정되었는지 확인합니다.

    또한 outcome 섹션에서는 $principalHostname$entity_resource_name와 같은 추가 변수를 설정합니다. 이러한 변수는 감지와 함께 반환 및 저장되므로 Google Security Operations에서 변수를 볼 때 변수 값을 열로 표시할 수도 있습니다.

  • condition 섹션은 패턴이 events 섹션에 지정된 모든 UDM 레코드를 찾음을 나타냅니다.

  rule high_risk_user_download_executable_from_macro {
 meta:
   author = "Google Cloud Security Demos"
   description = "Executable downloaded by Microsoft Excel from High Risk User"
   severity = "High"
   technique = "T1204.002"

 events:
   //Group 1. identify a proxy event with suspected executable download
   $proxy_event.principal.user.userid = $user
   $proxy_event.target.url =  /.*\.exe$/ or
   $proxy_event.network.received_bytes > 102400

   //Group 2. correlate with an EDR event indicating Excel activity
   $edr_event.target.user.userid  = $user
   $edr_event.target.process.file.full_path = /excel/ nocase
   $edr_event.metadata.event_type = "NETWORK_HTTP"

   //Group 3. Use the entity to find the permissions
   $user_entity.graph.entity.user.userid = $user
   $user_entity.graph.relations.entity.resource.name = $table_name

   //Group 4. the entity is from Cloud DLP data
   $table_context.graph.entity.resource.product_object_id = $table_name
   $table_context.graph.metadata.product_name = "GCP DLP CONTEXT"

 match:
    $user over 5m

 outcome:
   //calculate risk score
   $risk_score = max(
       if( $table_context.graph.entity.resource.attribute.labels.value = "US_SOCIAL_SECURITY_NUMBER", 80)
       )
   $technique = array_distinct("T1204.002")
   $principalHostname = array_distinct($proxy_event.principal.hostname)
   $principalIp = array_distinct($proxy_event.principal.ip)
   $principalMac = array_distinct($proxy_event.principal.mac)
   $targetHostname = array_distinct($proxy_event.target.hostname)
   $target_url = array_distinct($proxy_event.target.url)
   $targetIp = array_distinct($proxy_event.target.ip)
   $principalUserUserid =  array_distinct($proxy_event.principal.user.userid)
   $entity_resource_name = array_distinct($table_context.graph.entity.resource.name)

condition:
   $proxy_event and $edr_event and $user_entity and $table_context
}

감지 정보

기존 데이터로 규칙을 테스트하고 정의에 지정된 활동 패턴을 식별하면 감지가 생성됩니다. 감지 패널에는 규칙 테스트 후에 생성된 감지가 표시됩니다. 감지 패널에는 규칙에서 감지를 생성하게 한 이벤트 및 항목 레코드도 표시됩니다. 이 예시에서는 다음 레코드가 표시됩니다.

  • Google Cloud IAM 분석 UDM 항목
  • Sensitive Data Protection UDM 항목
  • Zscaler 웹 프록시 UDM 이벤트
  • CrowdStrike Falcon EDR UDM 이벤트

감지 패널에서 이벤트나 항목 레코드를 선택하여 세부정보를 확인합니다.

감지에서 규칙의 outcome 섹션에 정의된 변수도 저장합니다. 감지 패널에 변수를 표시하려면 을 선택한 다음 메뉴에서 변수 이름을 한 개 이상 선택합니다. 선택한 열이 감지 패널에 표시됩니다.

다음 단계

커스텀 규칙을 작성하려면 YARA-L 2.0 언어 개요를 참조하세요.

커스텀 컨텍스트 인식 분석을 만들려면 컨텍스트 인식 분석 만들기를 참조하세요.

사전 정의된 위협 분석을 사용하려면 Google Security Operations 선별된 감지 기능 사용을 참조하세요.