Windows Eventlog Parser (evtwalk)
소개[편집]
Windows Eventlog Parser는 TZWorks에서 개발한 도구이며, 상용도구이다. 최신 업데이트는 2014년 4월 9일이며, 최신 버전은 0.0.1.7버전이다. 본 항에서는 최신버전인 0.0.1.7버전을 사용하였다. Windows Eventlog Parser는 CLI 기반이며 Windows, Mac, Linux에서 사용 가능하다. Windows XP, Vista, Windows 7, Windows 8, Windows 서버 환경의 라이브 시스템 또는 수집한 Windows event log를 파싱하여 csv, bodyfile 형식으로 결과를 출력한다. USB, Password Change와 같은 명확한 event log의 경우 추가로 보고서 생성 기능을 제공한다.
사용법[편집]
Command 창을 관리자 권한으로 실행하여 “evtwalk -livesys > results.txt” 와 같은 문법으로 사용한다. 리포트 관련 Command 옵션은 [표 1]와 같다.
옵션 | 추가사항 | 설명 |
---|---|---|
-pw | ** | [security log]의 password 변경 이벤트 |
-time | ** | [security log]의 시간 변경 또는 업데이트 이벤트 |
-logon | ** | [security log]의 로그온 이벤트 |
-startstop | ** | [system log]의 시스템 시작, 종료 이벤트 |
-creds | ** | [security log]의 퍼미션, 자격증명 이벤트 |
-usb | ** | [system, DriverFrameworks logs]의 usb 이벤트 |
-cmdfile | ** | 사용자가 정의한 리포트 방식
cmdfile에 의해 정의된 방식으로 출력 evtwalk -cmdfile mycmd.txt -livesys |
-cmdfile 옵션에서 쓰이는 cmdfile이란 원하는 방식으로 보고서 생성을 위해 사용자가 정의한 규칙이 담긴 파일을 의미한다. 규칙은 [표 2]과 같다.
번호 | 규칙 |
---|---|
1 | 문서의 시작은 !cmd 로 시작해야 한다. |
2 | !cmd 이 후 방식은 CSV Format 형식과 동일하다.각각의 라인은 분리되어 파싱되고 구분자는 쉼표이다. |
3 | 공백은 무시된다. |
4 | 쉼표로 구분하여 옵션을 포함시킨다. 옵션은 다음과 같다.
–enum_evtxlog : 윈도우7 –enum_evtlog : 윈도우xp -id, <event id> : 추출할 이벤트 ID -name, <event name> : 출력 시 사용할 이벤트 이름 -contition, <parameter name | value name> -pull, <parameter data> : 추출할 파라미터 데이터 -type, <system | security | application | etc> : 추출할 타입 |
5 | 사용 예제는 다음과 같다.
(e.g.1) !cmd, -enum_evtxlog, -type, security, -id, 4624, -name, logon, -pull, TargetUserSid, -pull, SubjectUserSid, -pull, TargetUserName, -pull, LogonProcessName (e.g.2) !cmd, -enum_evtlog, -type, system, -id, 1074, -name, reboot or shutdown, -conditions, Data|winlogon.exe |
필터링 관련 Command 옵션은 [표 3]와 같다.
옵션 | 추가사항 | 설명 |
---|---|---|
-eventid | ** | event ID 필터링
한 개 이상 ID 필터링 시 쉼표사용 -eventid "id1, id2, ..." |
-string | ** | 대소문자 구별되는 문자열로 필터링
-string "substring to target" |
-start_time | ** | 이벤트가 발생한 시간 이후로 필터링
-start_time "time in UTC" |
-stop_time | ** | 이벤트가 발생한 시간 이전으로 필터링
-stop_time "time in UTC" |
그 외 기본적인 Command 옵션은 [표 4]와 같다.
옵션 | 추가사항 | 설명 |
---|---|---|
-livesys | 현재 라이브 시스템의 모든 이벤트로그 분석 | |
-log | 사용자가 수집한 이벤트로그 분석
-log "<eventlog1> | <eventlog2> | ..." | |
-csv | csv 파일포맷으로 결과 출력 | |
-csvl2t | log2timeline 형식에 맞추어 결과 출력 | |
-bodyfile | 슬러스킷에서 소개한 body-file version3 형식에 맞추어 결과 출력 | |
-pipe | ** | pipe file을 사용 |
-no_whitespace | ** | 공백 없이 csv 파일 포맷으로 출력
-csv 필수 |
-csv_separator | ** | csv의 구분자 변경
-csv_separator <separator> |
-dateformat | ** | 날짜 출력 형식 변경
(default : -dateformat "mm/dd/yyyy") |
-timeformat | ** | 시간 출력 형식 변경
(default : -timeformat "hh:mm:ss.xxx") |
-quiet | ** | 프로그램 진행 상태를 출력 안 함 |
도구 기능[편집]
Windows Eventlog Parser는 NTFS Log파일 중 event log파일을 파싱하여 한글 깨짐 없이 CSV, bodyfile 형식으로 결과를 출력해준다. CSV 파일 포맷으로 결과 출력 시 구분자를 지정해 줄 수 있고 날짜, 시간 출력 형식을 원하는 형태로 출력할 수 있다. 시간 정보의 경우 결과 출력 후 한국 시간에 맞추기 위해 +9 시간을 해주어야 한다.
수사 활용 방안[편집]
Windows Eventlog Parser는 라이브 시스템, 수집한 파일의 이벤트 로그를 Windows, Mac, Linux와 같은 다양한 환경에서 원하는 내용을 지정하여 빠르게 파싱할 수 있다. 따라서 Windows OS 시스템 수사 시 Event log 파일을 분석할 경우 이 프로그램이 유용하게 사용될 수 있다.