일치 섹션 구문

다음에서 지원:

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 전문가에게 문의하여 답변을 받으세요.