2017년 7월 14일 금요일

Logstash 필터 mutate

로그온 이벤트 분석에 사용된 Logstash 설정을 살펴보면, 이벤트 로그의 LogonType 필드를 대상으로 mutate 필터가 많이 사용됐음을 알 수 있다. mutate 필터의 용도는 데이터 변환.

다음은 svchost 프로세스가 Administrator 권한으로 윈도우 주요 서비스 실행에 관여하는 과정에서 발생한 로그온 성공 이벤트. 로그온 유형은 '4(배치 작업)'이다. 프로세스 실행할 때마다 발생하는 듯.


윈도우 로그온 이벤트는 10개의 유형을 가지고 있는데, LogonType 필드 데이터가 숫자로 표시되기 때문에 (나처럼 머리 나쁜 사람은) 즉각적인 의미 파악이 힘들다.


직관적으로 의미를 파악할 수 있는 정보로 바꿔주는 게 분석에 유리. 이럴 때 mutate 필터가 유용하다. 다음은 mutate 필터의 replace 옵션을 이용해서 특정 LogonType 필드값을 의미에 맞는 문자열로 바꾸는 설정.

if [event_data][LogonType] == "4" {
 mutate {
  replace => { "[event_data][LogonType]" => "batch" }
 }
}

보기 좋은 데이터가 먹기분석하기도 좋은 법.


참고로 gsub 옵션을 이용해도 같은 결과를 가져올 수 있는데, 영역을 '[]'로 구분한다는 차이점에 주의. (매우 헷갈림)

if [event_data][LogonType] == "4" {
 mutate {
  gsub => [ "[event_data][LogonType]", "4", "batch" ]
 }
}

replace 옵션 양식보다 약간 복잡한 대신 gsub는 정규표현식을 지원한다. 변환이 필요한 데이터의 변화가 무쌍할 때 유용하지 싶다.

if [event_data][LogonType] == "4" {
 mutate {
  gsub => [ "[event_data][LogonType]", "\d", "batch" ]
 }
}


댓글 없음:

댓글 쓰기

크리에이티브 커먼즈 라이선스