matchsig()

matchsig() 함수는 지정한 패턴 그룹에 정의된 패턴 중 하나 이상이 대상 문자열에서 매칭되면 true를 반환합니다.

문법

matchsig(STR_GUID, STR_EXPR)

매개변수

STR_GUID
패턴 그룹 GUID입니다. 유효한 패턴 그룹 식별자여야 합니다. 존재하지 않는 GUID를 지정하면 쿼리 파싱 단계에서 오류가 발생합니다.
STR_EXPR
검색 대상 문자열 표현식입니다. 평가 값은 문자열 타입이어야 합니다. 문자열 타입이 아니면 false를 반환합니다.

설명

matchsig() 함수는 지정한 패턴 그룹에 속한 패턴 중 하나 이상이 STR_EXPR 값에서 매칭되면 true, 매칭되는 패턴이 없으면 false를 반환합니다.

STR_EXPR 값이 문자열 타입이 아니면 false를 반환합니다.

로그프레소 소나는 아호-코라식(Aho-Corasick) 알고리즘을 사용하여 수천 개 이상의 패턴을 동시에 고속으로 검색합니다. 1차로 입력 문자열에서 키워드를 검색하고, 2차로 패턴에 검증식이 설정된 경우 해당 검증식을 추가로 평가하여 최종 매칭 여부를 결정합니다.

패턴은 필수 키워드 조건과 선택적 검증식으로 구성됩니다.

#패턴명패턴(필수): 1차 고속 탐지검증식(선택): 2차 필터
1xp_cmdshellsp_addextendedproc and xp_cmdshell
2zb_now_connectREMOTE_ADDR and (fputs or fwrite)path == "lib.php"

패턴 그룹은 소나 웹 콘솔의 정책 > 패턴 그룹 메뉴에서 관리합니다.

오류 코드

해당 사항 없음

사용 예

  1. raw 필드 값에 지정한 패턴 그룹의 패턴이 매칭되는지 확인합니다.

    json "{'raw': 'GET /index.php HTTP/1.1'}"
    | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw)
    | # result: false
    
  2. STR_EXPR 값이 문자열 타입이 아닌 경우

    json "{'raw': 12345}"
    | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw)
    | # result: false
    

호환성

matchsig() 함수는 소나 4.0 이전 버전부터 제공되었습니다.