일치 섹션 없이 조인 구현

다음에서 지원:

이 문서에서는 Google Security Operations 검색에서 match 섹션이나 데이터 조인이 없는 조인 작업의 개념을 설명합니다.

조인 작업을 사용하여 공통 필드 값을 기반으로 여러 소스의 원시 데이터를 상호 연관시키고 결합할 수 있습니다. 관련 보안 이벤트와 항목을 단일한 포괄적 보기로 결합하면 위협 감지 및 조사를 더 효과적으로 수행할 수 있습니다.

결과를 집계하기 위해 match 섹션이 필요한 통계 조인과 달리 데이터 조인은 전체 이벤트 또는 항목 데이터를 가져와 집계 없이 표시합니다.

데이터 조인 작동 방식

다양한 이벤트 또는 항목 블록에서 공통 필드를 상호 연관시켜 데이터 조인을 만들 수 있습니다. 다음 방법 중 하나를 사용하여 이 작업을 수행할 수 있습니다.

  • 필드를 직접 동일하게 설정합니다 (예: $e1.principal.hostname = $e2.principal.hostname).

  • 두 필드를 동일한 자리표시자 변수 (예: $host = $e1.principal.hostname$host = $e2.principal.hostname)에 할당합니다.

두 경우 모두 검색은 해당 필드의 값이 동일한 블록을 암시적으로 조인합니다.

지원되는 데이터 결합 유형

검색어에서 다음 데이터 조인 유형을 사용할 수 있습니다.

  • 이벤트 간 조인: 서로 다른 두 개의 통합 데이터 모델 (UDM) 이벤트 유형 간의 데이터를 상호 연관시킵니다.

  • 이벤트-ECG 조인: 항목 컨텍스트 그래프 (ECG)의 정보로 UDM 이벤트 데이터를 보강합니다.

이벤트 간 조인

이벤트 간 조인은 서로 다른 두 UDM 이벤트 유형 간의 필드를 상관관계로 연결하는 데 가장 적합합니다. 이는 다양한 로그 소스 또는 이벤트 유형에서 동일한 항목을 포함하는 이벤트 또는 작업 시퀀스를 찾는 데 유용합니다.

다음 쿼리 예시는 사용자 로그인 (USER_LOGIN)도 발생한 호스트에서 시작된 모든 네트워크 연결 (NETWORK_CONNECTION)을 찾습니다.


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the
  $host placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

제한사항

  • 최대 2개의 이벤트에 참여할 수 있습니다.

  • 쿼리 기간은 최대 14일로 제한됩니다.

  • 쿼리 한도는 시간당 120개 쿼리 (QPH)입니다.

예시

다음 쿼리 예시는 사용자 로그인(USER_LOGIN)도 발생한 호스트에서 시작된 모든 네트워크 연결(NETWORK_CONNECTION)을 찾습니다.


  // Find user logins and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "USER_LOGIN"

  $host = $e1.principal.hostname

  // Find network connections and join them where the hostname matches the $host
  placeholder

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e2.principal.hostname

사용자 ID로 조인


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.user.userid = $user

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.user.userid = $user

IP 주소로 참여


  $e1.metadata.event_type = "USER_LOGIN"

  $e1.security_result.action = "ALLOW"

  $e1.principal.ip = $ip

  $e2.metadata.event_type = "NETWORK_CONNECTION"

  $e2.principal.ip = $ip

이벤트-항목 컨텍스트 그래프 조인

이벤트-ECG 조인은 ECG의 관련 항목 (예: 애셋, 사용자)에 관한 컨텍스트 데이터로 UDM 이벤트를 보강하는 데 가장 적합합니다. 이 조인을 통해 실시간 이벤트 데이터와 이전 및 관계형 항목 정보를 결합하여 더 완전한 그림을 제공합니다.

제한사항

  • 쿼리 기간은 최대 14일로 제한됩니다.

  • 쿼리 한도는 120QPH입니다.

  • 쿼리에서 최대 2개의 UDM 이벤트를 조인할 수 있습니다.

  • 쿼리에는 최대 1개의 심전도 이벤트를 조인할 수 있습니다.

  • 이벤트-ECG 조인 쿼리에는 데이터 테이블로 내보내기가 지원되지 않습니다.

  • ECG-to-ECG 조인은 지원되지 않습니다.

  • 심전도-데이터 테이블 조인은 지원되지 않습니다.

예시

이 쿼리는 호스트 이름으로 조인하여 ECG의 애셋 정보로 네트워크 연결 이벤트를 보강합니다.


  // Find network connections and assign the hostname to the $host placeholder

  $e1.metadata.event_type = "NETWORK_CONNECTION"

  $host = $e1.principal.asset.hostname

  // Find asset entities in the graph and join where the hostname matches the
  $host placeholder

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.asset.hostname

특정 로그 유형의 IP 주소로 참여


  $ip = $e1.principal.ip

  $ip = $g1.graph.entity.ip

  $e1.metadata.log_type = "WINDOWS_DEFENDER_ATP"

  $g1.graph.entity.ip = "10.19.6.24"

특정 IP 필터가 있는 호스트 이름으로 참여


  $e1.metadata.event_type = "FILE_CREATION"

  $host = $e1.principal.hostname

  $e1.principal.ip = "10.0.0.76"

  $g1.graph.metadata.entity_type = "ASSET"

  $host = $g1.graph.entity.hostname

권장사항

성능 저하 및 쿼리 시간 초과를 방지하려면 조인 쿼리의 각 블록 ($e1, $e2, $g1) 내에서 구체적이고 좁은 필터를 사용하세요.

예를 들어 다음과 같은 광범위한 쿼리가 있습니다.

$e1.metadata.event_type = "USER_LOGIN"
$e2.metadata.event_type = "NETWORK_CONNECTION"
right join $e1.principal.hostname = $e2.principal.hostname

다음과 같은 특정 기준을 추가하여 최적화할 수 있습니다.


$e1.metadata.event_type = "USER_LOGIN"
$e1.principal.ip = "192.168.1.101"
$e1.principal.user.userid = "alex"
$e2.metadata.event_type = "NETWORK_CONNECTION"
$e2.src.hostname = "altostrat.com"
right join $e1.principal.hostname = $e2.principal.hostname

결과 작업

데이터 조인의 결과는 조인 표에 표시되며, 여기에는 상관관계가 있는 두 이벤트의 결합된 필드가 포함됩니다. 이 표는 집계된 수가 아닌 전체 이벤트 또는 항목 데이터를 제공하는 통계 뷰와 다릅니다.

쿼리를 실행한 후 다음과 같은 방법으로 결과를 사용할 수 있습니다.

  • CSV로 다운로드: 오프라인 분석을 위해 전체 결과 집합을 CSV 파일로 내보냅니다.

  • 데이터 테이블로 내보내기: 참조 또는 추가 상관관계 분석을 위해 인스턴스 내의 데이터 테이블에 결과를 저장합니다 (이벤트 간 조인에만 해당).

도움이 더 필요하신가요? 커뮤니티 회원 및 Google SecOps 전문가에게 문의하여 답변을 받으세요.