출처: http://acc.giro.or.kr/secu_view.asp?seq=7887
윈도우 운영체제 기반의 피해시스템에서 공격자의 침투경로를 파악하기 위해서는 어떠한 정보가 필요할까요?
인터넷 기록 및 레지스트리 등을 확인 및 분석하여 악성코드에 어떻게 감염되었는지도 살펴볼 정보 중 하나이나,
가장 중요한 아티팩트는 윈도우 이벤트 로그라고 볼 수 있습니다.
이 이벤트 로그는 외부에서의 시스템 접속과 사용자 계정 설정 변경 등
침투/피해 시점 당시 발생하였던 다양한 정보를 저장하고 있으며 분석가는 이를 통해 보다 효율적인 접근이 가능합니다.
이번 포스트에서 다룰 내용은 분석 시 활용할 수 있는 로그 설명과 이벤트 ID 등 기초적인 내용이며,
실제 이벤트 로그의 내부 구조 및 활용 사례 등에 대한 심화 과정은 다음 포스팅에서 다룰 예정입니다.
그럼 이벤트 로그에 대해 하나씩 살펴보도록 하겠습니다.
1. 윈도우 이벤트 로그?
이벤트 로그에는 윈도우에서 발생하는 하드웨어, 소프트웨어 및 시스템 문제에 대한 다양한 이벤트들이 기록됩니다.
다만 운영체제가 업그레이드 됨에 따라 버전별로 기록되는 형태와 경로가 조금씩 다른데요,
각 운영체제별 이벤트 로그 특징은 아래와 같습니다.
(운영체제를 그룹핑하여 Type으로 분류하였으며, 앞으로 설명드릴 내용 역시 역시 분류 기준으로 설명드리겠습니다)
Type 1 (Windows 2000 / XP / 2003) | Type 2 (Windows Vista / 2008 / 7) | |
---|---|---|
주요 로깅 데이터 | System, Security, Application | System, Security, Application + |
로그 저장 형태 | Binary | Binary , XML |
로그 확장자명 | .evt | .evtx |
저장 경로 | \Windows\System32\Config | \Windows\System32\winevt\Logs |
바이너리 형태로 저장된 이벤트 로그를 확인하기 위해서는
데이터를 해석하고 알아볼 수 있게 해주는 별도의 프로그램이 필요한데요,
대표적으로 윈도우에서 기본으로 제공하는 ‘이벤트 뷰어’가 있습니다.
이 도구는 [제어판] → [관리도구]에 위치하고 있으며,
[실행] 창에 eventvwr.msc 를 입력하여 바로 실행할 수도 있습니다.
윈도우8에서는 아래와 같은 방법으로 이벤트 뷰어를 실행할 수 있습니다.
먼저 윈도우 화면에서 윈도우키와 w 키를 함께 누르게 되면 검색창이 실행되는데요,
이 검색창에 ev 를 입력 후 실행하시게 되면 이벤트 뷰어 화면이 출력되는 것을 보실수 있습니다.
1) 응용프로그램 로그
2) 시스템 로그
3) 보안 로그
이외에도 OS 구성에 따라 디렉토리 서비스, 파일 복제 서비스, DNS 서버 로그 등이 추가될 수 있습니다.
2. 이벤트 로그 설정 확인
이벤트 로그의 설정을 확인하는 방법은 크게 두 가지로
레지스트리를 이용하는 방법, 이벤트 뷰어를 이용하는 방법이 있습니다.
1) 레지스트리를 통한 확인
[실행] → ‘regedit’ 입력 → ‘HKLM\System\CurrentControlSet\Services\EventLog’ 에서 설정 값을 확인 및 수정할 수 있습니다.
AutoBackupLogFIles | 로그파일 자동 백업 여부 |
File | 이벤트 로그 파일의 저장 경로 |
MaxSize | 이벤트 로그 파일의 최대 크기 |
RestrictGuestAccess | 게스트 접근 제한 여부 |
Retention | 로그가 최대크기에 도달할 때 해당 시간보다 더 오래된 이벤트만 덮어쓰기 기본값은 604,800초 = 7일로 설정되어 있음 |
Source | 로그 파일에 기록을 허가받은 프로그램들의 목록 |
2) 이벤트 뷰어를 통한 확인
이벤트뷰어에서 각 이벤트로그에 대한 속성을 변경할 수 있으며,
설정을 변경하고 싶은 이벤트에 우클릭하여 나오는 메뉴에서 ‘속성’을 클릭합니다.
속성에서 이벤트 로그 파일의 최대크기를 지정해 줄 수 있으며, 로그 관리에 필요한 설정을 할 수 있습니다.
3. 이벤트 로그 구성
이벤트 뷰어를 통해 아래와 같이 로그에 저장된 이벤트를 확인할 수 있습니다.
각 이벤트 엔트리의 헤더에는 다음과 같은 이벤트 정보가 포함됩니다.
날짜 | 이벤트 발생 날짜 |
시간 | 이벤트 발생 시간 |
사용자 | 이벤트가 발생하였을 때 로그온 되어 있는 사용자의 이름 |
컴퓨터 | 이벤트가 발생한 컴퓨터의 이름 |
이벤트 ID | 이벤트 ID를 통해 어떤 이벤트가 발생하였는지 식별 |
원본 | 프로그램, 시스템 구성요소 또는 큰 프로그램의 개별 구성 요소에 대한 이름 |
종류 | 오류, 경고, 정보, 성공감사, 실패감사 중 하나 |
범주 | 이벤트 원본에 따른 이벤트 분류이며, 보안 로그에 주로 사용 |
또한 이벤트 종류는 다음과 같이 5가지로 분류됩니다.
정보 | 응용 프로그램, 드라이버 또는 서비스와 같은 작업의 성공적인 작동을 설명하는 이벤트 예를 들어 네트워크 드라이버가 성공적으로 로드된 경우 정보 이벤트가 기록됨 |
경고 | 매우 중요하지는 않으나 앞으로 문제가 발생할 수 있는 가능성이 있음을 나타내는 이벤트 예를 들어 디스크 공간이 부족할 경우 경고 메세지가 기록됨 |
오류 | 중요한 작업의 실패와 같이 문제를 설명하는 이벤트로 데이터 손실이나 기능 손실을 포함 예를 들어 시작하는 동안 서비스가 로드되지 않을 경우 오류 이벤트가 기록됨 |
성공감사 | 보안 이벤트의 성공적인 감사 완료를 설명하는 이벤트 예를 들어 사용자가 컴퓨터에 로그온하면 성공감사 이벤트가 기록됨 |
실패감사 | 보안 이벤트 감사가 완료되지 않았음을 설명하는 이벤트 예를 들어 사용자가 네트워크 드라이버에 액세스 할 수 없을 때 실패감사 이벤트가 기록됨 |
4. 이벤트 로그 감사 정책
윈도우 감사 정책은 곧 로그 정책이라고 볼 수 있습니다.
감사 설정을 구성하지 않으면 보안과 관련하여 어떠한 일이 발생하였는지 확인하기 어려운 문제가 발생합니다.
정책을 통해 개체 액세스, 로그온/로그오프, 감사 정책 설정 변경 등의 보안 로그를 기록하며,
지정한 이벤트 범주의 사용자나 시스템 동작을 기록하도록 정책 설정이 가능합니다.
로컬보안설정을 통해 감사 정책을 확인하기 위해서는
“[시작] → [제어판] → [관리도구] → [로컬 보안 정책] → [로컬 정책] → [감사 정책]” 선택 후,
각 감사를 클릭하여 ‘성공’, ‘실패’에 관한 감사를 설정할 수 있습니다.
레지스트리를 통해서도 감사 정책을 확인할 수가 있는데요,
저장 및 관리 되는 위치는 아래와 같습니다.
아래 내용은 Windows Vista/2008/7 의 감사정책 구성과 기본 값입니다.
5.보안감사 이벤트 설명
기존 Evt 형태의 이벤트 로그에서 운영체제의 업그레이드와 함께 새로운 이벤트 로그 Evtx가 등장합니다.
실제 로그 파일의 헤더 및 구성도 다수 변경이 이루어졌는데요,
상세한 내용은 차후에 다시 설명드리기로 하며 이 포스트에서는 이벤트 ID에 대해 다루어 보겠습니다.
이벤트 로그에서는 이벤트 행위에 대해 특정 숫자 값을 지정하여 관리하고 있습니다.
이것이 이벤트 로그에 있어 가장 중요한 이벤트 ID 인데요, 이 값 역시 Vista 이전과 이후로 나뉘어 상이하게 변경됩니다.
가장 손쉽게 매칭할 수 있는 방법은 Evt 사용 이벤트 ID 값에 4096 값을 더하면 Evtx 형태의 이벤트 ID값이 되며,
실제 상당수 이벤트가 이 조건을 만족합니다.
Type 1 – 이벤트 ID | Type 2 – 이벤트 ID | 내용 |
560 | 4656 | 개체에 대한 접근 허가 |
562 | 4658 | 개체에 대한 핸들 닫힘 – 이벤트 종료 |
563 | 4659 | 삭제할 목적으로 개체에 접근 |
564 | 4660 | 보호된 개체의 삭제 |
Type 1 – 이벤트 ID | Type 2 – 이벤트 ID | 내용 |
624 | 4720 | 사용자 계정 생성 |
625 | 사용자 계정 유형 변경 | |
626 | 4722 | 사용할 수 있는 사용자 계정 |
627 | 4723 | 암호 변경 시도 |
628 | 4724 | 사용자 계정 암호 설정 |
629 | 4725 | 사용하지 않는 사용자 계정 |
630 | 4726 | 삭제된 사용자 계정 |
636 | 4732 | 보안 사용 로컬 그룹 구성원 추가 |
637 | 4733 | 보안 사용 로컬 그룹 구성원 제거 |
642 | 4738 | 변경된 사용자 계정 |
643 | 변경된 도메인 정책 | |
644 | 4740 | 사용자 계정 잠김 |
Type 1 – 이벤트 ID | Type 2 – 이벤트 ID | 내용 |
680 | 4776 | 로그인 성공 정보 |
681 | 4777 | 로그인 실패 정보 |
Type 1 – 이벤트 ID | Type 2 – 이벤트 ID | 내용 |
528 | 4624 | 성공적인 로그인 |
529 | 4625 | 알 수 없는 계정이나 잘못된 암호를 이용한 로그인 시도 |
530 | 로그인 시 허용 시간 이내에 로그인 실패 | |
531 | 사용지 금지된 계정을 통한 로그인 시도 | |
532 | 사용 기간이 만료된 계정을 통한 로그인 시도 | |
533 | 로그인이 허용되지 않은 계정을 통한 로그인 시도 | |
534 | 허용되지 않은 로그인 유형을 통한 로그인 시도 | |
535 | 암호 사용 기간 만료 | |
537 | 위의 사항에 해당되지 않으나 로그인에 실패한 경우 | |
538 | 4634 | 로그오프 |
539 | 로그인하려는 계정이 잠겨 있음 | |
540 | 로그인 성공 |
Type 1 – 이벤트 ID | Type 2 – 이벤트 ID | 내용 |
592 | 4688 | 새 프로세스 생성 |
593 | 4689 | 프로세스 종료 |
594 | 4690 | 개체에 대한 힌트의 중복 |
595 | 4691 | 개체에 대한 간접적인 접근 |
Type 1 – 이벤트 ID | Type 2 – 이벤트 ID | 내용 |
512 | 4608 | 윈도우 시동 |
513 | 4609 | 윈도우 종료 |
514 | 4610 | LSA (Local Security Authority) 인증 패키지 로드 |
515 | 4611 | 신뢰할 수 있는 로그인 프로세스가 LSA로 등록 |
516 | 4612 | 저장 공간의 부족으로 인해 보안 이벤트 메세지 손실 |
517 | 보안 로그 삭제 |
로그온 유형 2 | 대화식 | 콘솔에서 키보드로 로그인 (KVM 포함) |
로그온 유형 3 | 네트워크 | 네트워크를 통한 원격 로그인 (파일 공유, IIS 접속 등) |
로그온 유형 4 | 스케쥴 | 스케쥴에 등록된 배치 작업 실행 시 미리 설정된 계정 정보로 로그인 |
로그온 유형 5 | 서비스 | 서비스가 실행될 때 미리 설정된 계정 정보로 로그인 |
로그온 유형 7 | 잠금해제 | 화면보호기 잠금 해제시 |
로그온 유형 8 | 네트워크 | 유형 3과 비슷하나 계정 정보를 평문으로 전송할 때 발생 |
로그온 유형 9 | 새자격 | 실행(RunAS)에서 프로그램 실행 시 /netonly 옵션을 줄 때 |
로그온 유형 10 | 원격 대화식 | 터미널 서비스, 원격 접속, 원격지원으로 로그인 |
로그온 유형 11 | 캐시된 캐화식 | PC에 캐시로 저장된 암호로 자동 입력 로그인 |
6. 참고
Security Audit Events for Windows 7 and Windows Server 2008 R2
http://www.microsoft.com/en-us/download/details.aspx?id=21561
Description of security events in Windows 7 and in Windows Server 2008 R2
https://support.microsoft.com/ko-kr/kb/977519
윈도우 이벤트 로그 분석가이드 [비공개 자료]
Windows XP에서 이벤트 뷰어의 이벤트 로그를 보고 관리하는 방법
https://support.microsoft.com/ko-kr/kb/308427
EVTX and Windows Event Logging
http://www.sans.org/reading-room/whitepapers/logging/evtx-windows-event-logging-32949
'프로젝트 관련 조사 > 로그 관련' 카테고리의 다른 글
웹 접근 로그 불필요한 부분 제거하고 추출하기 (0) | 2015.10.22 |
---|---|
웹 로그로 침해사고 흔적 찾기 (2) | 2015.10.21 |
How To Install Elasticsearch, Logstash, and Kibana 4 on Ubuntu 14.04 (0) | 2015.10.19 |
[Elasticsearch] 기초 컨셉 (0) | 2015.10.19 |
[Elasticsearch] Logstash와 Elasticsearch의 연동 (0) | 2015.10.19 |