자리표시자 할당 함수

다음에서 지원:

YARA-L에서 함수를 사용하여 데이터를 처리하고 결과를 저장하는 프로세스를 함수-자리표시자 할당이라고 합니다. 자리표시자 변수 ($로 표시)는 UDM 이벤트 및 기타 데이터 소스에서 추출된 특정 데이터 포인트를 나타내는 데 사용됩니다. 그러면 함수가 이러한 이벤트 필드 또는 필드 조합에서 작동하고 이러한 작업의 결과가 match, condition, outcome 섹션과 같은 쿼리의 다른 부분에서 사용할 수 있도록 자리 표시자 변수에 할당됩니다.

  • 함수: YARA-L은 이벤트 필드에서 계산 또는 데이터 변환을 실행할 수 있는 측정항목 함수를 제공합니다.

  • 자리표시자 변수: 선행 달러 기호 (예: $user, $ip)로 표시되며 이벤트 필드 또는 함수 출력에서 파생된 값을 보유할 수 있는 변수입니다. events 섹션에 정의되어 있으며 규칙 전체에서 사용할 수 있습니다.

  • 할당: 함수의 출력이 자리표시자 변수에 할당됩니다.

제한사항

함수를 자리표시자에 할당할 때는 두 가지 제한사항이 있습니다.

  1. 자리표시자 할당 함수의 모든 자리표시자는 이벤트 필드가 포함된 표현식에 할당해야 합니다.

    유효한 예

    $ph1 = $e.principal.hostname
    $ph2 = $e.src.hostname
    
    // Both $ph1 and $ph2 have been assigned to an expression containing an event field.
    $ph1 = strings.concat($ph2, ".com")
    
    $ph1 = $e.network.email.from
    $ph2 = strings.concat($e.principal.hostname, "@gmail.com")
    
    // Both $ph1 and $ph2 have been assigned to an expression containing an event field.
    $ph1 = strings.to_lower($ph2)
    

    잘못된 예

    $ph1 = strings.concat($e.principal.hostname, "foo")
    $ph2 = strings.concat($ph1, "bar") // $ph2 has NOT been assigned to an expression containing an event field.
    
  2. 함수 호출은 단 하나의 이벤트에 의존해야 합니다. 그러나 동일한 이벤트의 두 개 이상의 필드를 함수 호출 인수에 사용할 수 있습니다.

    유효한 예

    $ph = strings.concat($event.principal.hostname, "string2")

    $ph = strings.concat($event.principal.hostname, $event.src.hostname)

    잘못된 예

    $ph = strings.concat("string1", "string2")

    $ph = strings.concat($event.principal.hostname, $anotherEvent.src.hostname)

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