컨텍스트 인식 분석에 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 선별된 감지 기능 사용을 참조하세요.