2016년 4월 30일 토요일

LogParser 활용(Windows Logon Event 이상징후 분석)

웹로그만 쳐다보고 있으니 지겨워서 다른 걸 해볼까 한다. 2월쯤에 잠깐 언급하다 말았던 윈도우 이벤트 로그. 대부분의 사용자가 윈도우를 사용하는 현실, 그리고 APT, 내부정보 유출, 랜섬웨어 등의 부각으로 윈도우 이벤트 로그 분석의 중요성은 점점 커지고 있는 추세다. 더불어 할 일도 증가(..)

하지만 LogParser와 엑셀이 있으니 괜찮;;

이벤트 로그는 그 방대한 로그량(우리 조직의 윈도우 PC가 몇 대?) 때문에 괜히 잠자는 사자의 코털만 건드리는 모양새가 될 소지가 크지만 그렇다고 쫄 필요는 없다. 일단 PC 하나부터 시작하자. 하나 하다 익숙해지면 두 개 하고, 그러다가 10개 되고, 100개 되고 그러는 거지 뭐.

시작은 뭐가 좋을까? 누가 내 PC에 로그온을 시도했나? 이거 아주 구미를 당기는 주제가 아닐 수 없다. 로그온 관련 주요 이벤트는 다음과 같다.


먼저 4월 한 달간의 로그온 성공 및 실패 내역부터 확인해보자.


select to_string(timewritten, 'MM-dd'), eventid, count(*)
from security
where to_string(timewritten, 'yyyy-MM') = '2016-04'
    and eventid between 4624 and 4625
group by to_string(timewritten, 'MM-dd'), eventid

확인 결과 21일을 중심으로 로그온 시도의 급증과 함께 갑작스런 로그온 실패 이벤트가 발생하고 있다. 잡았다 요놈


로그온 실패 이벤트의 세부 내역부터 확인해보자. 먼저 하나씩 확인하는 방법이 있지만 너무 번거로울 뿐더러 전체 그림을 그리고 싶다면 피해야할 방법이다.


Message 필드의 정보에 대한 일목요연한 정리가 필요한데, 전에 얘기했다시피 Strings 필드는 Message 필드의 정보를 '|' 구분자로 분류해주기 때문에 extract_token 함수를 이용하면 매우 쉽게 원하는 정보만을 정리할 수 있다.


나열된 정보 중 10번째(시작은 0번 부터) 정보인 로그온 유형과 로그온을 시도한 5번째 ID 및 19번째 IP 정보의 발생 현황을 날짜별로 조회한 결과는 다음과 같다.


select to_string(timewritten, 'MM-dd'), extract_token(strings,10,'|'), extract_token(strings,5,'|'), extract_token(strings,19,'|'), count(*)
from security
where to_string(timewritten, 'yyyy-MM') = '2016-04'
    and eventid = 4625
group by to_string(timewritten, 'MM-dd'), extract_token(strings,10,'|'), extract_token(strings,5,'|'), extract_token(strings,19,'|')

먼저 로그온 유형별 발생 현황은 다음과 같으며, 21일 '로그온 유형 3'의 급증이 확인됐다. '로그온 유형 3'은 어떤 의미일까?


로그온 유형은 다음과 같이 구분되며, '로그온 유형 3'은 네트워크를 이용한 로그온 유형임을 알 수 있다.


네트워크를 이용해서 로그온을 시도한 ID와 IP 내역은 다음과 같다. 모두 21일에 집중되어 있음을 알 수 있다. ID와 IP가 확인됐으니 증거를 들이밀며 '좋은 말로 할 때 다 불어'를 외쳐주면 되겠다.


관련 글

댓글 없음:

댓글 쓰기

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