일치 섹션 구문

다음에서 지원:

YARA-L 2.0에서 match 섹션은 멀티 이벤트 상관관계 분석을 위한 메커니즘을 제공합니다. 특정 시간 경계 내에서 사용자, IP 주소, 파일 해시와 같은 공통 속성을 연결하여 이벤트를 단일 감지로 그룹화하는 로직을 정의합니다.

다음 사용 사례에 match 섹션을 사용합니다.

  • 규칙 내에서 서로 다른 두 개 이상의 이벤트를 연결합니다.
  • 특정 기간 동안의 로그인 실패 시도 횟수와 같은 검색 및 대시보드의 집계 데이터

상관관계 기준 정의

이를 사용하여 다음을 지정하여 이 상관관계의 기준을 정의합니다.

  • 그룹화 필드 (키): 일치를 트리거하려면 이벤트 (events 섹션에 정의됨) 간에 값이 동일해야 하는 변수 (예: $user 또는 $ip)입니다.

  • 시간 제약: 규칙 또는 집계를 충족하기 위해 그룹화된 이벤트가 발생해야 하는 기간 창입니다. 규칙에서는 감지 기간을 정의하고 검색 및 대시보드에서는 집계 또는 상관관계 기간을 정의합니다.

기능 요구사항 비교

다음 표에는 검색 규칙과 대시보드의 비교가 자세히 나와 있습니다.

기능 규칙 요구사항 검색 및 대시보드 지원
변수 유형 events 섹션에 정의된 자리표시자를 사용해야 합니다. 자리표시자와 직접 UDM 필드를 모두 지원합니다.
기간 감지 경계를 정의합니다. 집계 또는 상관관계 버킷을 정의합니다.
구문 over <number><m/h/d> (예: 10m, 2h, 1d) over <number><m/h/d>
한도 최소: 1m / 최대: 48h 최소: 1m / 최대: 48h

지원되는 창 유형

YARA-L 2.0은 다양한 윈도우 동작을 사용하여 시간을 어떻게 슬라이스하고 이벤트를 어떻게 그룹화할지 결정합니다. 지원되는 다음 기간 중 하나를 사용하여 match 섹션의 이벤트 필드와 자리표시자를 지정된 시간 단위로 그룹화할 수 있습니다.

YARA-L 2.0에서 지원되는 창 유형에 관한 자세한 내용은 YARA-L 2.0 창 처리 로직을 참고하세요.

시간 경계 이해

match 섹션은 그룹화 키를 기반으로 이벤트를 그룹으로 파티셔닝합니다. 지정된 기간은 각 그룹의 시간 경계를 정의합니다.

  • 포함: 기간 내의 이벤트만 해당 일치 항목의 condition 평가에 전달됩니다.
  • 제외: 기간 외의 이벤트는 특정 일치 그룹에서 무시되므로 관련 없는 이벤트가 거짓양성을 트리거하지 않습니다.

match 섹션의 값이 0입니다.

Google SecOps는 match 섹션에 사용된 모든 자리표시자의 0 값 (문자열의 경우 "", 숫자의 경우 0, 불리언의 경우 false, 열거 유형의 경우 위치 0의 값)을 암시적으로 필터링합니다.

예: 0 값 필터링

다음 예시는 0 값을 필터링하는 쿼리를 보여줍니다.

rule ZeroValuePlaceholderExample {

events:
  // Because $host is used in the match section, the query behaves
  // as if the following predicate was added to the events section:
  // $host != ""
  $host = $e.principal.hostname

  // Because $otherPlaceholder was not used in the match,
  // there is no implicit filtering of zero values for $otherPlaceholder.
  $otherPlaceholder = $e.principal.ip

match:
  $host over 5m

condition:
  $e
}

하지만 자리표시자가 함수에 할당되면 쿼리가 match 섹션에 사용되는 자리표시자의 0값을 암시적으로 필터링하지 않습니다.

0값의 암시적 필터링을 사용 중지하려면 옵션 섹션에서 allow_zero_values 옵션을 사용하면 됩니다. allow_zero_values 옵션은 규칙에서만 사용할 수 있습니다.

예시: 0 값 허용

다음 예시는 match 섹션에 사용된 자리표시자의 0값을 암시적으로 필터링하지 않는 쿼리를 보여줍니다.

rule AllowZeroValuesExample {

events:
  // Because allow_zero_values is set to true, there is no implicit filtering
  // of zero values for $host.
  $host = $e.principal.hostname

  // Because $otherPlaceholder was not used in the match,
  // there is no implicit filtering of zero values for $otherPlaceholder.
  $otherPlaceholder = $e.principal.ip

match:
  $host over 5m

condition:
  $e

options:
  allow_zero_values = true
}

다음 단계

다음 리소스를 살펴보고 YARA-L 로직을 계속하거나 고급 쿼리 함수를 자세히 알아보세요.

문법 및 논리

참조 및 예시

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