Windows/2008

[스크랩] Log Parser를 이용한 윈도우 이벤트로그 검색

99iberty 2015. 7. 30. 18:05


http://iprize.tistory.com/665


시중에는 시스템의 각종 로그를 검사하고 분석해주는 툴들이 많이 있다. 하지만 조그만 기업이나 개인 사용하기에는 너무 비싸고 어렵기만 하다. 뭐 여기서 설명하는 것도 그닥 쉬운 편은 아니지만.

시스템 로그를 위해 비싼 로그 점검 툴을 살 필요없이 마이크로 소프트에서 제공하는 무료 툴로 로그를 점검 및 분석해보자.

 

1. Log Parser v2.2 설치하기

Log Parser는 로그, XML, CSV파일과 같이 텍스트로 구성된 데이터뿐만 아니라 이벤트 로그, 레지스트리 파일시스템, 액티브 디렉토리와 같은 윈도우즈 운영체제의 주요 데이터 소스를 쿼리를 통해서 접근할 수 있는 방법을 제공하는 기능이 많고 강력한 도구이다. 사용자가 Log Parser에 필요한 정보를 제공하고 처리 방법을 알려주면 처리 결과를 원하는 형태의 텍스트나 SQL, SYSLOG, 또는 차트와 같이 특정 형태로 유지될 수도 있다. (원문)

아래 주소에서 Log Parser를 내려 받아 설치하여 준다.

 

http://www.microsoft.com/en-us/download/details.aspx?id=24659

 

2. Log Parser Studio v.2.D2 설치하기

Log Parser를 실행하면 커맨드 프롬프트 화면에 도움말을 표시한 후 커서 프롬프트가 깜빡거릴 것이다. 즉, SQL 언어를 모르면 사용하기가 무척 어렵다. 이를 위해 마이크로 소프트에서 Log Parser를 사용하기 쉽도록 GUI 기반의 툴인 Log Parser Studio를 제공한다.

Log Parser Studio는 IIS, 이벤트, EXADB 및 기타 여러 형태의 로그를 분석하고 레포트를 생성할 수 있는 유틸리티이다. 이는 Log Parser 2.2와 함께 구동되며 SQL 쿼리를 쉽게 생성하고 관리할 수 있는 사용자 인터페이스를 제공한다. (원문)

아래 주소에서 Log Parser Studio를 내려 받자. Log Parser Studio는 설치할 필요 없이 압축을 푼 후 그 안의 LPS.exe를 실행하면 된다.

 

http://gallery.technet.microsoft.com/Log-Parser-Studio-cd458765

 

Log Parset Studio 실행화면Log Parset Studio 실행화면Log Parset Studio 실행화면

 

 

3. 윈도우 이벤트 로그 파일을 분석하자

이벤트 로그에 감사 추적 로그를 기록하도록 GPO를 통해 설정해 두었다면 설정에 맞는 이벤트들이 기록될 것이다. 이제 Log Parser Studio의 예제 중 하나를 가지고 설명해보자.

설치 후 Library를 보면 'EVENTS: Find All Remote Logons' 예제를 볼 수 있다. 내 컴퓨터에서는 이 쿼리가 잘못 검색하여 아래와 같이 수정하였다.

기본적인 SQL 구조를 알고 있어야 아래 구문을 이해할 수 있을 것이다. 기본 SQL 구문 설명은 따로 하지 않는다. 이벤트 파일의 필드 중 Strings는 Event Message를 담고 있는 필드로 '|'로 구분된 텍스트 메시지이다. Event Message에 대한 자세한 사항은 아래 첨부된 Windows 7/Server 2008 R2 Security Event Descriptions를 참고하기 바란다. 또한 이벤트 파일이 어떤 필드로 이루어져 있는지 확인하기 위해서는 'SELECT TOP 0 * From Security' SQL문으로 확인이 가능하다.

 

SELECT
      timegenerated,
      EXTRACT_TOKEN(Strings,2,'|') AS Domain,
      RESOLVE_SID(EXTRACT_TOKEN(Strings,4,'|')) AS User,
      EXTRACT_TOKEN(Strings,3,'|') AS SessionName,
      RESOLVE_SID(EXTRACT_TOKEN(Strings,11,'|')) AS ClientName,
      EXTRACT_TOKEN(Strings,18,'|') AS ClientAddress,
      EventID
FROM Security
WHERE EventID=4624 /* xp/2003 = 682 */
ORDER BY timegenerated

 

EXTRACT_TOKEN 함수는 Strings 텍스트를 '|'로 분리하여 지정된 순번의 데이터를 가져오는 함수이다. 각 필드 위치에 맞게 데이터를 가져와 화면에 표시하며 그 결과는 아래와 같다.  

 

결과 화면

 

참고 자료

1. Log Parser Function Reference -

FunctionReference.html

2. Windows 7/Server 2008 R2 Security Event Descriptions

Windows_7_and_Windows_Server_2008_R2_Security_Event_Descriptions