출처 : http://blog.naver.com/kimgudtjr/140107878704
 

[ NCSA 로그분석 ]

 

NCSA는 W3C와 다르게 아래의 필드를 사용해야만 logparser를 이용한 분석이 가능하다.

 

--------------------------<NCSA 분석을 위한 logparser 사용필드>-------------------------

--------------------------------------------------------------------------------------
필드   설명
--------------------------------------------------------------------------------------
host  웹 페이지에 접속한 사용자 IP를 남기며, 호스트 명 혹은 서브 도메인 명이 기록되기도 한다.
(RemoteHostName)

username 인증에 사용되는 사용자 정보(계정 등)가 기록된다.

date:time  웹 페이지를 요청한 날짜와 시간정보를 남기며 해당 필드는
  [dd/MMM/yyyy:hh:mm:ss +-hhmm] 형태를 보인다.
  - dd는 일자
  - MMM는 월
  - yyyy는 연도
  - hh는 시각
  - mm는 분
  - ss는 초
  = +-hhmm는 표준시간대(GMT 등)

request  사용자가 요청한 URL 정보이며, HTTP 메소드(GET, POST등),
  uri-stem, uri-query, HTTP 프로토콜 버전 전체가 포함된다.

statuscode HTTP 응답 코드를 표기한다.

Referer Log 경유지 정보를 나타낸다.
  예) [10/Oct/1999:21:15:05 +0500] "http://www.xxx.com/index.html"

Agent Log  웹 사이트에 접속한 사용자의 웹 브라우저 정보(타입, 버전 등)를 나타낸다.
  예) "Microsoft Internet Explore -6.0"

Error Log  웹 서버 오작동에 대한 정보를 포함하며 특히 파일이나 이미지들의 링크 오류나
  CGI 프로그램의 비정상 내용 등을 표기한다.
  (error_log 파일에 저장된다.)

--------------------------------------------------------------------------------------

 

======== W3C 로그 포맷 ========

 

200X-XX-XX 06:45:34 10.1.1.10 GET /DealofWeek.asp ProdId=1  200
----------  -------    ------     ---          ---------------     -------                     ---
        (1)                       (2)              (3)        (4)            (5)                      (6)                   (7)


(1) 날짜(연/월/일)

(2) 시각(GMT+9가 대한민국 시각입니다.)

(3) 사용자 IP

(4) HTTP Method

(5) 요청 페이지

(6) 요청 페이지에 따라오는 파라미터

(7) 응답 코드


======== NCSA 로그 포맷 ========

 

200X-XX-XX 06:45:34 10.1.1.10     GET /DealofWeek.asp ProdId=1  200
-------------------               --------      ---------------------------------                  -----
            (1)                                   (2)                                    (3)    (4)


(1) 날짜와 시각

(2) 사용자 IP

(3) URL(메소드+페이지+파라미터)

(4) 응답 코드
------------------------------------------------------------------------------------

두 형태는 같은 정보를 포함하고 있으나, 표기 방법에는 차이가 있다.


======== 접속 날짜 ========

W3C 포맷 : 2007-06-27 05:56:01

NCSA 포맷 : [06/Jun/2007:00:01:06 +0100]


======== 메소드, 요청 페이지, 파라미터 ========

<W3C 포맷 : 3개의 필드로 구분>

GET Login.asp  id=xxx&password=xxx
----         --------                  --------------------
 (1)                 (2)                                     (3)

<NCSA 포맷 : 메소드, 요청 페이지, 파라미터를 1개의 필드로 사용>

GET Login.asp id=xxx&password=xxx
----------------------------------
                         (1)

------------------------------------------------------------------------------------


그러면 이번에는 Logparser 로 NCSA 포맷을 분석해보자.

500번 에러 코드 추출 요청

logparser "SELECT RemoteHostName, DateTime, Request, StatusCode FROM c:\windows\system32\Logfiles\W3SVC1\*.* to c:\aaa.csv" -i:NCSA -o:CSV


유닉스 시스템에서 생성되는 NCSA 로그는 grep, find 등의 명령어를 이용할 수 있으나, logparser를

시용하고자 한다면 윈도우 시스템으로 웹 로그를 내려받아 사용하도록하자.

(윈도우 시스템으로 웹 로그를 어떻게 내려 받지 -0-? 아시는 분 댓글점..)

 

----------------------------------------------------------------------------

[ 기타 유용한 분석 방법 ]


1. 웹 콘텐츠 디렉터리 (C:\inetpub\wwwroot\*.*)에 새로 생성된 악성 파일을 검사하고자 할 때 사용 된다.

===> logparser -i:FS "SELECT TOP 20 Path, CreationTime FROM c:\inetpub\wwwrot\*.* ORDER BY CreationTime DESC" -rtp:-1

2. 웹 콘텐츠 디렉터리 (C:\inetpub\wwwroot\*.*)에 파일 변조 여부를 검사하고자 할 때 사용한다.

===> logparser -i:FS "SELECT TOP20 Path, LastWriteTime FROM C:\inetpub\wwwroot\*.* ORDER BY LastWriteTime DESC" -rtp:-1


3. 시스템 침해 영향을 미칠 수 있는 공격 성공 코드(200번)를 검사하고자 할 때 사용한다.

===> logparser "SELECT DISTINCT TO_LOWERCASE(cs-uri-stem) AS URL, Count(*) AS Hits FROM ex*.log WHERE sc-status=200 GROUP BY URL ORDER BY RUL" -rtp:-1


4. 응답 코드가 200번 혹은 300번대와 500번대를 가지는 로그에서 요청 히트 수가 많은 순서대로 확장자
     (asp, exe)를 나열하고자 할 때 사용한다.

===> logparser "SELECT TO_STRING(TO_TIMESTAMP(date,time),'yyyy-MM-dd') AS Day, cs-uri-stem, Count(*) AS Total ex*.log WHERE (sc-status<400 or sc-status>=500) AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' OR TO_LOWERCASE(cs-uri-stem) LIKE '%.exe') GROUP BY Day, cs-uri-stem ORDER BY cs-uri-stem, Day" -rtp"-1

5. 하루 30번 이상 동일 페이지에 접속한 사용자 IP를 확인한다.

===> logparser "SELECT DISTINCT date, cs-uri-stem, c-ip, Count(*) AS Hits FROM ex*.log GROUP BY date, c-ip, cs-uri-stem HAVING Hits>30 ORDER BY Hits DESC" -rtp:-1

6. 500번대 이상의 응답 코드가 발생한 파라미터를 확인한다. (특히 SQL Injection 공격 시도 등을 확인할 때

사용할 수 있다)

===> logparser "SELECT cs-uri-query, Count(*) AS Total FROM ex*.log WHERE sc-status >= 500 GROUP BY cs-uri-query ORDER BY Total DESC" -rtp:-1

7. 요청 히트 수 별로 확장자(asp 및 .exe)를 나열한다.

===> logparser "SELECT cs-uri-stem, sc-status, Count(*) AS Total FROM ex*.log WHERE TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' or TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%' GROUP BY cs-uri-stem, sc-status ORDER BY cs-uri-stem, sc-status" -rtp:-1

8. HTTP Method 통계 분석(응답 코드가 400번 이상이며 확장자가 asp 혹은 exe인 정보)을 한다.

===> logparser "SELECT cs-uri-stem, cs-method, Count(*) AS Total FROM ex*.log WHERE (sc-status>=400) AND (TO_LOWERCASE(cs-uri-stem) LIKE '%.asp%' or TO_LOWERCASE(cs-uri-stem) LIKE '%.exe%') GROUP BY cs-uri-stem, cs-method ORDER BY cs-uri-stem, cs-method" -rtp:-1

Microsoft Log Parser 2

Log Parser 2.0 is a versatile tool that you can use to perform many tasks related to log files, including filtering entries, converting log files to other formats, and performing data mining. The tool supports many different input formats, including all of the Internet Information Services (IIS) log file formats, and it supports multiple output formats, including text files and database tables. Log Parser is available as a command-line tool and as a set of COM objects that support scripting.

Log Parser works by running Structured Query Language (SQL)-type queries against source files. The tool can then write the query results to different target files, including text files and database tables, or it can print the results to the screen.

You can use Log Parser to perform many different log-related tasks, including the following:

  • Quickly search for data and patterns in files of various formats
  • Create formatted reports and XML files containing data retrieved from different sources.
  • Export data to SQL tables. You can export entire files or filter the data to obtain only relevant entries.
  • Convert data from one log file format to another

Log Parser supports the following input formats:

  • IISW3C: This is the IIS W3C Extended log file format.
  • IIS: This is the IIS log file format.
  • IISMSID: This is the log format for files generated by IIS when the MSIDFILT filter or the CLOGFILT filter is installed.
  • NCSA: This is the IIS NCSA Common log file format.
  • ODBC: This is the IIS ODBC format, which sends log files to an ODBC-compliant database.
  • BIN: This is the IIS binary log file format.
  • URLSCAN: This is the format for URLScan logs.
  • HTTPERR: This is the IIS 6.0 HTTP error log file format.
  • EVT: This is the Microsoft Windows Event Messages format.
  • TEXTWORD: This is a generic text file, where the TEXT value is any separate word.
  • TEXTLINE: This is a generic text file, where the TEXT value is any separate line.
  • CSV: This is a comma-separated list of values.
  • W3C: This is a generic W3C log file, such as a log generated by Windows Media Services or Personal Firewall.
  • FS: This provides information about file and directory properties.

Log Parser supports the following output formats:

  • W3C: This format sends results to a text file that contains headers and values that are separated by spaces. 
  • IIS: This format sends results to a text file with values separated by commas and spaces.
  • SQL: This format sends results to a SQL table.
  • CSV: This format sends results to a text file. Values are separated by commas and optional tab spaces.
  • XML: This format sends results to an XML-formatted text file.
  • Template: This format sends results to a text file formatted according to a user-specified template.
  • Native: This format is intended for viewing results on screen.

Log Parser

'OS & Infra > Windows' 카테고리의 다른 글

IIS Log - LogParser [NCSA]  (0) 2012.03.21
프롬프트 창 크기 변경  (0) 2012.03.21
IIS Log - Log Parser  (0) 2012.03.21
IIS 로그분석 - LogParser  (0) 2012.03.21
윈도우 환경에서 MySQL 방화벽 포트 설정  (4) 2011.12.19
SQL Server 2008 설치 오류 [역할관리도구]  (0) 2011.12.13

+ Recent posts