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차 필터 |
|---|---|---|---|
| 1 | xp_cmdshell | sp_addextendedproc and xp_cmdshell | |
| 2 | zb_now_connect | REMOTE_ADDR and (fputs or fwrite) | path == "lib.php" |
패턴 그룹은 소나 웹 콘솔의 정책 > 패턴 그룹 메뉴에서 관리합니다.
오류 코드
해당 사항 없음
사용 예
-
raw필드 값에 지정한 패턴 그룹의 패턴이 매칭되는지 확인합니다.json "{'raw': 'GET /index.php HTTP/1.1'}" | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw) | # result: false -
STR_EXPR값이 문자열 타입이 아닌 경우json "{'raw': 12345}" | eval result = matchsig("550e8400-e29b-41d4-a716-446655440000", raw) | # result: false
호환성
matchsig() 함수는 소나 4.0 이전 버전부터 제공되었습니다.