2017년 7월 9일 일요일

Elasticsearch 활용(Logon Event 분석)

이번에는 로그온 이벤트를 분석해보자. winlogbeat 설정에 로그온 성공 및 실패 이벤트 4624, 4625 추가.


winlogbeat가 알아서 필드별 정규화를 해주지만, 몇몇 정보는 가독성을 높이기 위한 가공이 필요하다.


다음은 LogonType 필드의 숫자값을 문자열로 바꾸고, ProcessName 필드값을 경로와 파일명으로 분리하는 Logstash 설정.

#4624, 4625 이벤트 type(테이블) 지정
if [event_id] in [4624, 4625] {
 mutate {
  replace => { "type" => "logon_event" }
 }

 #LogonType별 값 변경
 if [event_data][LogonType] == "0" {
  mutate {
   replace => { "[event_data][LogonType]" => "system_start" }
  }
 }

 if [event_data][LogonType] == "2" {
   mutate {
    replace => { "[event_data][LogonType]" => "interactive" }
   }
 }

 if [event_data][LogonType] == "3" {
   mutate {
    replace => { "[event_data][LogonType]" => "network" }
   }
 }

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

 if [event_data][LogonType] == "5" {
   mutate {
    replace => { "[event_data][LogonType]" => "service" }
   }
 }

 if [event_data][LogonType] == "7" {
   mutate {
    replace => { "[event_data][LogonType]" => "unlock" }
   }
 }

 if [event_data][LogonType] == "8" {
   mutate {
    replace => { "[event_data][LogonType]" => "network_cleartext" }
   }
 }

 if [event_data][LogonType] == "9" {
   mutate {
    replace => { "[event_data][LogonType]" => "new_credentials" }
   }
 }

 if [event_data][LogonType] == "10" {
   mutate {
    replace => { "[event_data][LogonType]" => "rdp" }
   }
 }

 if [event_data][LogonType] == "11" {
   mutate {
    replace => { "[event_data][LogonType]" => "cache_interactive" }
   }
 }
}

#ProcessName 값을 경로와 파일명으로 분리
if [event_id] == 4624 {
 grok {
  match => { "[event_data][ProcessName]" => "(?<proc_path>.+\\).+" }
 }
 grok {
  match => { "[event_data][ProcessName]" => ".+\\(?<proc_name>.+)" }
 }
}

다음은 수집된 로그 중 로그온 실패 이벤트만을 검색한 결과. 어떤 계정이, 어떤 유형으로, 어디에서 로그온을 시도하다 실패했는지 알 수 있다.


수집된 로그의 통계 현황를 보여주는 대시보드는 다음과 같다.


로그온 성공(4624) 및 실패(4625) 이벤트 발생 현황.


다단계 파이 차트를 이용해서 로그온 성공 이벤트 발생 현황을 조회한 결과는 다음과 같다. 192.168.56.101에서 network 유형으로 익명 로그온 발생. 마우스를 가져가면 계층별 발생 현황을 알 수 있다.


로그온 실패 이벤트 발생 현황. 192.168.56.101에서 network 유형으로 admin 계정을 이용한 로그온 시도 발생.


엘라스틱서치, 참 예쁘고 편리하게 잘 만들었다. 예전에 SIEM에서 제공했으면 좋겠다 싶은 기능들이 다 있음. 이런 게 공짜라니.

댓글 없음:

댓글 쓰기

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