1. 이벤트로그란
로그란 감사 설정된 시스템의 모든 기록을 담고 있는 데이터라 할 수 있습니다.
이러한 데이터에는 성능, 오류, 경고 및 운영 정보 등의 중요 정보가 기록되며 특별한 형태의 기준에 따라 숫자와 기호 등으로 이루어져 있습니다.
이러한 로그는 운영체제가 업그레이드 됨에 따라 버전 별로 형태와 경로가 조금 상이합니다.
1.윈도우에서 이벤트로그실행법
1-1 '윈도우 로고+R' 단축키를 눌러 실행 창에 'eventvwr.msc' 명령어를 입력 후 '확인' 버튼을 누릅니다.
1-2 윈도우버튼+r에서 '이벤트'라고 적으면 이벤트로그가 나옵니다
2.이벤트로그종류
이벤트로그의 종류에는 응용프로그램, 보안, 시스템로그, 디렉토리서비스 로그, 파일복제서비스로그, DNS서버로그, IIS로그등이 있습니다.
이벤트로그는 기존의 evt에서 비스타이후부터 evtx로 사용되고 있습니다. 실제 로그파일의 헤더 및 구성의 변경이 있지만 대부분의 이벤트가 evt ID값에 4096값을 더해주면 evtx형태의 이벤트 ID값이 됩니다.
2-1응용프로그램로그
: 응용프로그램이 기록한 다양한 이벤트가 저장되며 기록되는 이벤트는 해당 제품의 개발자에 의해 결정됩니다.
ex) 안티바이러스제품의 경우 악성코드 탐지 및 업데이트를 기록합니다. 일반 응용프로그램의 경우 활성화여부와 성공여부등에 대한 정보를 기록합니다.
2-2보안로그
: 유효하거나 유효하지 않은 로그온시도 및 파일생성/열람/삭제등의 리소스사용에 관련된 이벤트를 기록합니다. 다른 로그와 다르게 보안로그는 감사정책이 설정되어야만 기록이 됩니다.
2-2-1감사정책
: 윈도우감사정책은 로그정책을 의미합니다. 감사설정을 구성하지 않으면 보안과 관련하여 어떠한 일이 발생했는지 파악하기 어렵거나 전혀 파악할 수 없습니다. 감사설정시 이벤트생성작업을 너무 많이 허가하면 로그에 불필요한 데이터가 기록되며 이러한 작업은 컴퓨터성능에도 영향을 줄 수 있습니다.
'제어판 >> 관리도구 >> 로컬 보안 정책' 에서 감사정책을 설정할 수 있습니다.
다음 그림에서 감사속성에 들어가면 감사시도옵션을 선택할 수 있고 두가지 다 선택하지 않을 경우 아무런 감사정책을 하지 않습니다.
2-2-2 감사정책의 종류
*(권장값 : 정의안함)의 경우 활성화시켜놓으면 많은 양의 로그가 발생할 수 있으므로 꼭 필요한 경우에만 활성화시키는게 좋습니다.
1) 개체 엑세스 감사(권장값 : 성공,실패)
파일, 폴더, 레지스트리 키, 프린터 등 개체에 엑세스하는 사용자의 이벤트를 감사할지 여부를 결정합니다. 성공감사는 사용자가 개체에 성공적으로 엑세스하면 감사항목을 생성하고 실패감사는 사용자가 개체에 엑세스하지 못할 때 감사항목을 생성합니다. 개체 엑세스 감사를 실행하면 이벤트뷰어의 보안로그에 관련 로그가 남게 되는데 세부적인 사항은 로그의 이벤트 ID 로 확인이 가능합니다.
※ 개체 엑세스 감사의 주요 이벤트 로그
이벤트ID |
이벤트ID |
내용 |
560 |
4956 |
개체에 접근 허가 |
562 |
4658 |
개체에 대한 핸들 닫힘 >> 이벤트 종료 |
563 |
4659 |
삭제할 목적으로 개체에 접근 |
564 |
4660 |
보호된 개체의 삭제 |
2) 계정관리감사(권장값 : 성공,실패)
컴퓨터의 각 계정 관리 이벤트를 감사할지 여부를 결정합니다. 사용자계정 또는 그룹을 만들거나 변경하거나 삭제하는 경우 사용자계정의 이름을 바꾸거나 사용자계정을 사용 또는 사용하지 않는 경우, 암호를 설정하거나 변경하는 경우 등이 해당됩니다.
※계정 관리 감사의 주요 이벤트 로그
이벤트ID |
내용 |
624 |
사용자 계정 생성 |
625 |
사용자 계정 유형 변경 |
626 |
사용할 수 있는 사용자 계정 |
627 |
암호 변경 시도 |
628 |
사용자 계정 암호 설정 |
629 |
사용하지 않는 사용자 게정 |
630 |
삭제된 사용자 계정 |
636 |
보안사용로컬그룹 구성원 추가 |
637 |
보안사용로컬그룹 구성원 제거 |
642 |
변경된 사용자 계정 |
643 |
변경된 도메인 정책 |
644 |
사용자 계정 잠김 |
3) 계정 로그온 이벤트 감사(권장값 : 성공,실패)
계정 유효성을 검사하는 컴퓨터가 아닌 다른 컴퓨터에서 각 사용자 로그온 또는 로그오프했는지에 대한 감사 여부를 결정합니다. (외부 원격 접속시 기록) 성공 감사의 경우 로그온 한 사용자 및 로그온 컴퓨터를 확인할 수 있는 회계 및 사후 법적 절차용의 유용한 정보가 되고 실패 감사는 계정 로그온 시도가 실패할 때 감사 항목을 생성하며 이 항목은 침입 감지에 유용하게 사용이 가능합니다.
※ 계정 로그온 이벤트 감사의 주요 이벤트 로그
이벤트ID |
내용 |
680 |
로그인 성공 정보 |
68 |
로그인 실패 정보 |
4) 권한 사용 감사(권장값 : 정의안함)
권한을 사용하는 사용자의 각 인스턴스(객체)를 검사할지 여부를 결정합니다.
성공이나 실패에 대해서 설정하게 되면 많은 양의 로그를 생성한다는 점에 유의해서 결정을 해야합니다.
※ 권한 사용 감사의 주요 이벤트 로그
이벤트ID |
내용 |
576 |
권한의 할당 |
577 |
권한이 있는 서비스 호출 |
578 |
권한이 있는 개체 작동 |
5) 디렉토리 서비스 엑세스 감사
연결된 시스템 엑세스 제어 목록이 있는 Active Directory 서비스 개체에 대한 사용자 엑세스를 감사할지 여부를 결정합니다.
6) 로그인 이벤트 감사(권장값 : 성공,실패)
감사 이벤트를 기록하는 컴퓨터에 대한 사용자 로그온, 로그오프 또는 네트워크연결의 각 인스턴스를 감사할지 여부를 결정합니다. 성공감사는 로그온시도가 성공할 때 감사항목을 생성하고 실패감사는 로그온시도가 실패할 때 감사항목을 생성합니다. 계정로그온 이벤트감사보다 상세한 로깅을 제공합니다.
※ 로그인 이벤트 감사의 주요 이벤트 로그
이벤트ID |
내용 |
528 |
성공적인 로그인 |
529 |
알 수 없는 계정이나 잘못된 암호를 이용한 로그인 시도 |
530 |
로그인 시 허용시간 이내에 로그인 실패 |
531 |
사용이 금지된 계정을 이용한 로그인 시도 |
532 |
사용기간이 만료된 계정을 이용한 로그인 시도 |
533 |
로그인이 허용되지 않은 계정을 이용한 로그인 시도 |
534 |
허용되지 않은 로그인 유형을 통한 로그인 시도 |
535 |
암호 사용기간의 만료 |
537 |
위의 사항에 해당되지 않으나 로그인 실패인 경우 |
538 |
로그 오프 |
539 |
로그인 하려는 계정이 잠겨 있음, 패스워드 크래킹 공격가능 |
540 |
로그인 성공 |
7) 시스템 이벤트 감사(권장값 : 성공,실패)
사용자가 컴퓨터를 다시 시작하거나 종료할 경우 또는 컴퓨터 보안이나 보안 로그에 영향을 주는 이벤트가 발생할 경우 이를 감사할지 여부를 결정합니다. 시스템 이벤트에 대해 성공 및 실패 감사를 모두 사용하는 경우 추가로 기록되는 이벤트가 거의 없습니다. 회사의 경우 모든 컴퓨터에 대해 정책 설정을 사용으로 구성 하는 것이 좋습니다.
※ 시스템 이벤트 감사의 주요 이벤트 로그
이벤트ID |
내용 |
512 |
윈도우 시동 |
513 |
윈도우 종료 |
514 |
LSA인증패키지 로드 |
515 |
신뢰할 수 있는 로그인 프로세스가 LSA로 등록 |
516 |
저장공간의 부족으로 인해 보안 이벤트 메시지 손실 |
517 |
보안 로그 삭제 |
8) 정책 변경 감사(권장값 : 성공,실패)
모든 사용자 권한 할당 정책, Windows 방화벽 정책, 감사 정책 또는 신뢰 정책의 변경 사항을 감사할지 여부를 결정합니다.
※정책 변경 감사의 주요 이벤트 로그
이벤트ID |
내용 |
576 |
권한이 할당 |
577 |
한이 있는 서비스 호출 |
578 |
권한이 있는 개체 작동 |
9) 프로세스 추적 감사(권장값 : 정의안함)
프로그램 활성화, 프로세스 종료, 간접적 개체 엑세스 등의 이벤트에 대한 자세한 추적 정보를 감사할지 여부를 결정합니다. 프로세스 추적 감사 설정을 사용하면 많은 이벤트가 생성됩니다. 시작된 프로세스 및 프로세스가 시작된 시기에 대한 자세한 로그를 제공하므로 문제 상황 대처시 매우 유용하게 사용이 가능합니다.
※ 프로세스 추적 감사의 주요 이벤트 로그
이벤트ID |
내용 |
592 |
새 프로세스 생성 |
593 |
프로세스 종료 |
594 |
개체에 대한 힌트의 중복 |
595 |
개체에 대한 간접적인 접근 |
2-3시스템로그
: 윈도우시스템을 구동하거나 운영하면서 발생된 충돌이나 에러 등이 저장되는 로그입니다.
2-4 디렉토리 서비스 로그
: WINDOWS ACTIVE DIRECTORY서비스에서 발생하는 이벤트입니다
Ex)서버와 글로벌 카탈로그 사이의 연결문제
2-5 파일 복제 서비스 로그
: windows파일 복제 서비스에서 발생하는 이벤트
Ex) 도메인컨트롤러가 시스템볼륨변경정보로 업데이트 되고있는동안 발생하는 파일복제실패
2-6 DNS서버 로그
: WINDOWS DNS서비스에서 발생하는 이벤트
2-7 IIS 로그
: Windows서버를 이용하여 IIS서비스를 사용할 경우 로그기록을 남길 수 있습니다.
IIS서비스에서 FTP,WEB서비스에 각각 로그기록이 저장됩니다.
윈도우 서버에서 서버관리자 >> 역할 및 기능 추가 >> IIS설치 >> IIS관리자 실행
로그파일의 저장위치, 이벤트 대상, 생성스케줄을 정할 수 있다.
- W3C확장 로깅 정의: W3C 확장 로그 파일 형식에 사용할 수 있는 일반 속성
- IIS 로그 정의: IIS 로그 파일 형식에 사용할 수 있는 일반 속성
- NCSA 공통 로그 파일 형식: NCSA 공통 로그 파일 형식에 사용할 수 있는 일반 속성
*ETW(Event Tracing for Windows)
: ETW는 로그형식에서 W3C를 선택해야 활성화가 됩니다. 기존 버전의 인터넷 정보 서비스(IIS)들에서도 기본적인 로깅기능은 제공됩니다. 그러나 IIS가 실제로 디스크에 로그를 기록할 때까지는 약간의 시간이 필요하기 때문에 관리자라도 로깅 정보에 실시간으로 접근할 수는 없습니다. 또한, 텍스트기반의 로그파일은 처리하기도 어렵고 처리한다고 해도 작업 시간이 많이 걸립니다. 반면에 ETW는 전체 시스템컨텍스트에서 응용프로그램의 진행상황을 추적할 수 있습니다. ETW이벤트수집을 시작하면 시스템기반으로 이벤트를 수집하므로 응용 프로그램을 추적할 뿐만 아니라 시스템과 관련하여 실행중인 이벤트를 확인할 수 있습니다.
*W3C 확장 로깅 정의
s-서버 작업
c-클라이언트 작업
cs-클라이언트 대 서버 작업
sc-서버 대 클라이언트 작업
날짜 : date 작업이 발생한 날짜
시간 : time 작업이 발생한 시간
클라이언트 IP 주소 : c-ip 서버에 액세스한 클라이언트의 IP 주소
사용자 이름 : cs-username 서버에 액세스한 인증된 사용자 이름이며 하이픈(-)으로 표시되는 익명 사용자는 포함되지 않습니다.
서비스 이름 : s-sitename 클라이언트가 액세스한 인터넷 서비스 및 인스턴스 번호
서버 이름 : s-computername 로그 항목을 생성한 서버의 이름
서버 IP 주소 : s-ip 로그 항목을 생성한 서버의 IP 주소
서버 포트 : s-port 클라이언트가 연결된 포트 번호
메서드 : cs-method 클라이언트가 수행하려고 시도한 작업(예: GET 메서드)
URI 스템 : cs-uri-stem 액세스한 리소스(예: Default.htm)
URI 쿼리 : cs-uri-query 클라이언트가 수행하려고 시도한 쿼리(있는 경우)
프로토콜 상태 : sc-status 작업 상태(HTTP 또는 FTP 에서 사용되는 용어)
Win32® 상태 : sc-win32-status 작업 상태(Microsoft Windows® 에서 사용되는 용어)
보낸 바이트 수 : sc-bytes 서버가 보낸 바이트 수
받은 바이트 수 : cs-bytes 서버가 받은 바이트 수
걸린 시간 : time-taken 작업에 걸린 시간(밀리초 단위)
프로토콜 버전 : cs-version 클라이언트가 사용한 프로토콜(HTTP, FTP) 버전으로 HTTP의 경우 HTTP 1.0 또는 HTTP 1.1입니다.
호스트 : cs-host 호스트 헤더의 내용 표시
사용자 에이전트 : cs(User-Agent) 클라이언트에서 사용한 브라우저
쿠키 : cs(Cookie) 보내거나 받은 쿠키의 내용(있는 경우)
참조 페이지 : cs(Referer) 사용자가 방문한 이전 사이트이며 이 사이트에서 현재 사이트에 대한 링크를 제공합니다.
*IIS 로그 정의
필드설명
클라이언트의 IP : 주소요청한 클라이언트 컴퓨터의 IP 주소
사용자 이름 : 서버에 액세스한 인증된 사용자 이름이며 하이픈(-)으로 표시되는 익명 사용자는 포함되지 않습니다.
날짜 : 작업이 발생한 날짜
시간 : 작업이 발생한 시간
서비스 및 인스턴스 : 웹 사이트 인스턴스는 W3SVC#로 표시되고, FTP 사이트 인스턴스는 MSFTPSVC#으로 표시됩니다. 여기서 #은 해당 사이트의 인스턴스입니다.
컴퓨터 이름 : 서버의 NetBIOS(Network Basic Input/Output System) 이름
서버의 IP 주소 : 요청을 서비스한 서버의 IP 주소
걸린 시간 : 작업에 걸린 시간(밀리초 단위)
보낸 바이트 수 : 클라이언트에서 서버로 보낸 바이트 수
받은 바이트 수 : 클라이언트가 서버로부터 받은 바이트 수
서비스 상태 코드 : HTTP 또는 FTP 상태 코드
Windows 상태 코드 : 작업 상태(Microsoft Windows® 에서 사용되는 용어)
요청 형식 : 서버가 받은 요청 형식(예: GET 및 PASS)
작업 대상 : 작업 대상이었던 URL
매개 변수 : 스크립트에 전달되는 매개 변수
*NCSA 공통 로그 파일 형식
원격 호스트 주소 : 요청한 클라이언트 컴퓨터의 IP 주소
원격 로그 이름 : 값은 항상 하이픈(-)입니다.
사용자 이름 : 인증된 사용자인 경우에는 도메인\사용자 이름 형식을 사용하고, 익명 사용자의 경우에는 하이픈(-)을 사용합니다.
날짜 : 작업이 발생한 날짜
시간 및 GMT : 오프셋작업이 발생한 시간 다음에 GMT 오프셋이 옵니다.
요청 및 버전 : 사용된 요청 형식, 대상으로 지정된 URL, 스크립트에 전달된 매개 변수(있는 경우) 및 클라이언트가 사용한 HTTP 버전입니다.
서버 상태 코드 : HTTP 상태 코드
보낸 바이트 : 수서버가 클라이언트에게 보낸 바이트 수
IIS로그파일의 저장위치는 별도로 지정하지 않으면 %SystemDrive%%inetpub\logs\LogFiles폴더에 저장됩니다. (%SystemDrive란 os가 설치되어 있는 드라이브를 말합니다) 저장된 로그파일의 폴더이름은 W3SVC??형식과 FTPSVC?? 두가지 형식으로 저장되는데 W3SVC??는 웹 사이트의 로그파일을 의미하고 FTPSVC??은 FTP사이트의 로그파일을 의미합니다. ??에 위치하는 숫자는 실제 운영중인 사이트를 구분하는 고유ID값을 의미합니다.
IIS로그는 세계표준시를 기준으로 잡고있어서 우리나라 표준시와 9시간의 차이를 두고 기록됩니다. 따라서 로깅방법설정시 로그파일작성단위를 IIS로 설정해주고 아래의 파일명명 및 롤오버에 현지시간사용을 체크해주면 현재시간이 적용됩니다.
또한 로그파일이 계속 쌓이다 보면 서버의 하드디스크용량은 부족하게 될 것입니다. 이 경우 특정 폴더의 파일들을 주기적으로 삭제해주는 스크립트를 작성하여 윈도우 스케줄러에 등록해 놓으면 로그관리도 편할 것이고 하드디스크용량이 부족한 일이 발생하지 않을 것입니다.
3.이벤트 유형
1) 오류 : 데이터손실이나 기능상실 같은 중대한 문제로 시스템을 시작하는 동안 서비스가 로드되지 못했을 경우와 같은 로그가 기록됩니다.
2) 경고 : 시스템에 문제가 발생할 수 있는 문제를 미리 알려주는 이벤트로 디스크공간이 부족할 때와 같은 로그가 기록됩니다.
3) 정보 : 응용프로그램,드라이버 또는 서비스가 성공적으로 수행되었음을 설명하는 이벤트로그입니다.
4) 성공감사 : 사용자가 시스템에 성공적으로 로그온 했을 경우와 같이 감사된 보안이벤트가 성공했음을 나타냅니다.
5) 실패감사 : 사용자가 시스템에 로그온에 실패했을 경우와 같이 감사된 보안이벤트가 실패했음을 나타냅니다.
3-1.이벤트로그기록 저장관리
관리할 이벤트종류클릭 후 오른쪽메뉴에 속성을 클릭한다.
로그 크기가 최대이벤트크기에 도달할 때 관련하여 설정할 수 있다.
1)필요한 경우 이벤트 덮어쓰기 : 로그가 찰 경우 자동적으로 덮어쓰기가 된다.
2)로그가 꽉 차면 로그보관, 이벤트를 덮어쓰지 않음
3)이벤트 덮어쓰지 않음 : 로그가 다 차도 삭제되지 않으나 새로 발생하는 이벤트 로그를 기록 못하므로 다 차기 전에 삭제해줘야 한다.
3-2.Log Parser로 이벤트 로그 필터링
LogParser 로 파싱할 수 있는 Input Formats 은 대표적으로 CSV, XML 을 주로 사용하고 EVT, IIS, HTTPERR, NETMON, ETW, FS, W3C, URLSCAN 등의 형식을 지원합니다. EVT 입력 포맷을 사용하여 현재 이벤트 로그를 대상으로 직접 쿼리하여 정보를 얻을 수 있습니다.
입력포맷필드
-String타입 : eventlog, eventtypename, eventcategoryname, sourcename, strings, computername, sid, message, data
-Integer타입 : recordnumber, eventid, eventtype, eventcategory
-Timestamp타입 : timegenerated, timewritten
Ex)다운받은 log parser2.2를 실행하여 로그 필터링