other

말년에 로그분석이라니...

파이s 2012. 12. 31. 14:34

말년에 로그분석이라니!!!

 

갑자기 "로그 분석 좀 해야겠다"라고 지령이 떨어짐. (덜컹!)

...지령받고 5분후 덜렁덜렁 출장...현장 도착...회의.....아..........................


[ 회의내용 ]

..................[컨피덴셜임]......................................................................................... 


[ 작업환경 ]

덜렁 windows xp, visual studio 6.0, editplus, 워드, 한글...알집.........제길슨;; 


수십기가짜리 로그 분석을 하기 위해서.....

최소한...

로그 파일이라도 열고, 검색이라도 해야 될텐데....

대용량 파일이다 보니 열리지도 않고......


이럴때 linux 머신이라도 있었으면...

이럴때 cygwin 이라도 있었으면...


급하게 해야 하는데...환경은 개차반이고...

아...............................................................................

cygwin을 한번 깔아봐?......아......10분 정도 설치하다 화뻣쳐 그냥 중지해버림.

구글옹한테 이런저런 질문을 막 던져봄.


급하게 나한테 필요한건 이런 조건임

 - GET / POST 방식 중 gif,css 등과 같은 쓰잘데기 없는 로그는 빼 버릴것 

(그러나! 공격자는 위 파일 형태로 파일을 업로드 하는 경우가 있어, 이럴 경우 전,후 좌우를 잘 따져봐야 함. 이건 나중에 따져도 늦지 않다. 일단 증후라도...)

- 필요한 문자열만 추출(파일 또는 프린트) 할 수 있도록 해야 함

- 엑셀로 포팅을 가능할것

- 대용량 파일을 쪼갤것

(이건 요청자가 day by day 별로 쪼개줌. 사이트 규모가 작아서 일 2기가 정도의 로그가 쌓임)


그나마 다행인것은 리뉴얼된 홈페이지가 POST 방식을 취하고 있음

분석가에겐 행복?이겠지만, 담당자라면 미치기 일보 직전인 상황임

아시다시피 POST 방식에서 data 부분은 로그에 쌓이지 않는다. 

그래서 공격자가 어떤 페이지에 접근하는것은 나와도 어떤 행위를 했는지는 알수 없는 상황임.

물론 누가 공격자 인지도 구분하기 매우 어려운 상황임. 이럴때는 통계가 완빵 좋긴 함

여하튼...혹시나 또 까먹을까봐서 막 적어 놓기로 함


참고로 본 내용은 아주 최소한의 설치로 최대한?의 효과를 누리기 위해서임. 열혈 전문가분께서 이 글을 보시면 좋은 대안이 있으시면 댓글이나 쪽지로 남겨주셨으면 감사하겠음.  


[ 로그 파일 현황 ]

127.0.0.1 - - [17/Dec/2012:00:00:22 +0900] localhost "GET /css/base.css HTTP/1.1" 304 - "http://localhost/forward/popup/Mailed.do" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; InfoPath.2)" "PCID=13556683282348357539500; WMONID=-FjI8nTBbzL; popup_5=checked; JSESSIONID=u8tDvaAlmbVAPNFqyNXWlyNZg54v51H

Gr64baEYdzthh9qc9sEI3PvYQeD1YwFYI.TESTWAS2_servlet_engine1; ACEN_CK=http%3A//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"


[ 분류 1 - 윈도우용 gawk 설치 

- 다운로드 : http://gnuwin32.sourceforge.net/packages/gawk.htm  (약 5M?)


gawk-3.1.6-1-setup.zip


- 파일 사이즈 작다. 몇메가 안됨

- 이제 로그 파일을 일부 열어보고 내가 주로 분석할 내용만 따로 빼봅시다.


분류하자

 ex: c:\gawk -F: "{print $1$2$3$4}" 분석할로그파일


위와 같은 옵션을 주면 대략 아래와 같이 추려진다. 

ex: 127.0.0.1 - - [17/Dec/2012:00:00:22 +0900] localhost "GET /css/base.css HTTP/1.1" 304 - "http: 

이런식으로 하면 일단 초벌은 완성되며, 로그 데이터 사이즈 또한 매우 작아지는데 테스트 해보니..

1.8G 데이터가 300M로..약 1/6 으로 줄어드는 효과가 있다. (이게 어디야)


[ 분류 2 - findstr ]

Windows XP 이상?에 포함되어 있는 findstr 명령을 이용하자.

전에는 이렇게 했던거 같음

ex: type 파일명 | find "찾을문자"


그러나 find 명령을 대체하는 findstr 명령어가 있다. 이놈은 find 명령의 확장으로 정규표현식도 지원한다.

본인은 여기서 gif,css 형태를 모두 빼고, 중요 서블릿 파일만 뽑았다(jsp 등만)

ex: findstr /C:".jsp " 분석할로그파일 > 결과물저장.txt 

요렇게 하면 서블릿파일에 대한 로그만 남게 되겠지..파일 사이즈가 다시 작아지는데, 여기까지 작업하면 1.8G 파일이 약 9M로 줄어드는 효과가 있다.


[ 분류 3 - 엑셀로 마무리(2010) ]

여기까지 작업하면 어느정도는 추렸다고 생각했고, 이제 분석을 좀? 쉽게 하기 위해 이런저런 정렬이 필요했다.

qawk로도 가능한데, 아무래도 불편하다. 그래서 엑셀을 사용하기로 함.

위 (분류2)에서 나온 결과를 엑셀에서 불어오기를 하자 

- 주의 : 드래그앤드롭 안됨, 꼭! "파일열기->파일선택->" 으로 파일을 오픈하면, 마법의 창이 나옴



이 절차를 거치게 되면 각 데이터가 각 쉘로 들어가는 엑셀 파일을 만들 수 있음. 

즉 아래그림처럼 나옴. 엑셀런트함



아마도 65535 라인까지만 가능한걸로 알고 있음. 다행히 약 45000라인 밖에 안됨. 얼마나 다행인지...

추후 생각나는게 있으면 추가하겠음.