1. 개요
이전 'Sysmon 활용 가이드: 개념 및 설치 방법'에서 Sysmon이 무엇이며 어떻게 설치할 수 있는지 알아봤다. 본 글에서는 Sysmon이 기록하는 이벤트의 구성 항목을 살펴본다.
Sysmon은 프로세스 생성을 포함해 총 29개의 이벤트로 구성되어 있으며, 목적에 맞게 이벤트를 활용하면 엔드포인트 보안을 보다 효과적으로 강화할 수 있다.
Windows Vista 이상에서는 이벤트가 Microsoft-Windows-Sysmon%4Operational.evtx에 기록되고, 그 이전 버전에서는 System.evtx에서 확인할 수 있다.
Sysmon 이벤트 구성 항목의 설정값(이름, Type 등)은 "sysmon.exe -s" 명령을 사용해 확인할 수 있다.
2. Sysmon 이벤트
ID 1. Process Create
Process Create 이벤트는 새로 생성된 프로세스에 대한 정보를 제공한다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 생성된 프로세스의 고유 식별자(Guid) |
ProcessId | 생성된 프로세스의 고유 식별자(ID) |
Image | 생성된 프로세스 이미지(경로) |
FileVersion | 실행된 프로세스 이미지 버전 |
Description | 이미지에 대한 설명 |
Product | 서비스 공급자 이름 |
Company | 서비스 공급사 이름 |
OriginalFileName | 실행된 프로세스 파일 이름 |
CommandLine | 프로세스가 실행된 명령어(전달된 인수 포함) |
CurrentDirectory | 프로세스가 실행된 디렉토리 경로 |
User | 이벤트가 발생한 PC(Domain) 및 User 이름 |
LogonGuid | 로그온 세션을 식별하는 사용자 LogonGuid |
LogonId | 로그온 세션을 식별하는 사용자 LogonId |
TerminalSessionId | 사용자가 속한 세션의 Id |
IntegrityLevel | 프로세스에 할당된 무결성 Label |
Hashes | HashType 필드에 존재하는 알고리즘이 있는 이미지의 전체 Hash |
ParentProcessGuid | 해당 프로세스를 시작한 상위 프로세스의 고유 식별자(Guid) |
ParentProcessId | 해당 프로세스를 시작한 상위 프로세스의 고유 식별자(Id) |
ParentImage | 해당 프로세스를 시작한 상위 프로세스의 이미지(경로) |
ParentCommandLine | 해당 프로세스를 시작한 상위 프로세스의 실행된 명령어(전달된 인수 포함) |
ParentUser | 해당 프로세스를 시작한 상위 프로세스의 PC(Domain) 및 User 이름 |
ID 2. File creation time changed
File creation time changed 이벤트는 파일 생성 시간이 프로세스에 의해 수정될 때 기록된다. 공격자(또는 악성코드)는 악성 파일 등의 탐지 회피를 목적으로 파일 시간을 변조하는데, 해당 이벤트가 파일의 실제 생성 시간을 추적하는 데 도움이 된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 파일 생성 시간을 수정한 프로세스의 고유 식별자(Guid) |
ProcessId | 파일 생성 시간을 수정한 프로세스의 고유 식별자(ID) |
Image | 파일 생성 시간을 수정한 프로세스 이미지(경로) |
TagetFilename | 생성 시간이 수정된 파일 경로 및 이름 |
CreationUtcTime | 수정된 파일 생성 시간(UTC) |
PreviousCreationUtcTime | 수정되기 전 파일 생성 시간(UTC) |
User | 파일 생성 시간을 수정한 PC(Domain) 및 User 이름 |
ID 3. Network connection detected
Network connection detected 이벤트는 시스템의 TCP/UDP 연결이 기록된다. 각 이벤트는 ProcessID 및 ProcessGuid 항목으로 네트워크 연결을 한 프로세스를 식별할 수 있다. 그러나 많은 이벤트가 발생 기본적으로 비활성화 되어 있으며, "sysmon.exe -c -n" 명령어로 활성화할 수 있다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 네트워크 연결을 발생시킨 프로세스의 고유 식별자(Guid) |
ProcessId | 네트워크 연결을 발생시킨 프로세스의 고유 식별자(ID) |
Image | 네트워크 연결을 발생시킨 프로세스 이미지(경로) |
User | 프로세스가 동작한 PC(Domain) 및 User 이름 |
Protocol | 네트워크 연결에 사용 중인 프로토콜 |
Initiated | 프로세스가 TCP 연결을 시작했는지에 대한 여부(true/false) |
SourceIsIpv6 | Source IP가 Ipv6 주소를 사용하는지에 대한 여부(true/false) |
SourceIp | 네트워크 연결을 발생시킨 Source IP 주소 |
SourceHostname | 네트워크에 연결한 호스트의 DNS 이름 |
SourcePort | Source Port 번호 |
SourcePortName | Source Port 이름 |
DestinationIsIpv6 | Destination IP가 Ipv6 주소를 사용하는지에 대한 여부(true/false) |
DestinationIp | Destination IP 주소 |
DestinationHostname | 네트워크에 연결된 호스트의 DNS 이름 |
DestinationPort | Destination Port 번호 |
DestinationPortName | Destination Port 이름 |
ID 4. Sysmon service state changed
Sysmon service state changed 이벤트는 Sysmon 서비스 상태(시작 또는 중지)를 기록한다.
- 구성 항목
구성 항목 | 설명 |
---|---|
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
State | Sysmon 서비스 상태(Started/Stopped) |
Version | Sysmon 바이너리 버전 |
SchemaVersion | Sysmon Config 스키마 버전 |
ID 5. Process terminated
Process terminated 이벤트는 프로세스가 종료될 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 종료된 프로세스의 고유 식별자(Guid) |
ProcessId | 종료된 프로세스의 고유 식별자(Id) |
Image | 종료된 프로세스의 이미지(경로) |
User | 프로세스를 종료한 PC(Domain) 및 User 이름 |
ID 6. Driver loaded
Driver loaded 이벤트는 시스템에 로드되는 드라이버 정보(드라이브 Hash, 서명 정보 등)가 기록된다. 드라이버 서명은 성능상의 이유로 비동기식으로 작성되며 로드 후 파일이 제거되었는지 여부를 나타낸다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ImageLoaded | 로드된 드라이버의 이미지(경로) |
Hashs | 로드된 드라이버의 Hash 값 |
Signed | 드라이버 로드가 서명됐는지에 대한 여부(true/false) |
Signature | 드라이버 서명자 이름 |
SignatureStatus | 서명 상태(Valid/Invalid) |
ID 7. Image loaded
Image loaded 이벤트는 프로세스에서 모듈이 로드될 때 기록된다. 모듈이 로드되는 프로세스, Hash 값과 서명 정보를 나타낸다. 서명은 성능상의 이유로 비동기식으로 작성되며 로드 후 파일이 제거되었는지 여부를 나타낸다. 이 이벤트는 기본적으로 비활성화 되어 있으며, sysmon.exe -c -l 명령어로 활성화할 수 있다. 모든 Image loaded 이벤트를 모니터링 하면 상당한 양의 로그가 기록되므로 신중하게 구성해야 한다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 이미지를 로드한 프로세스의 고유 식별자(Guid) |
ProcessId | 이미지를 로드한 프로세스의 고유 식별자(Id) |
Image | 이미지를 로드한 프로세스의 이미지(경로) |
ImageLoaded | 로드된 이미지의 이미지(경로) |
FileVersion | 로드된 이미지의 파일버전 |
Description | 로드된 이미지의 설명 |
Product | 로드된 이미지가 속한 제품 이름 |
Company | 로드된 이미지가 속한 제조사 |
OriginalFileName | 컴파일 시 추가되는 PE 헤더의 OriginalFileName |
Hashes | 로드된 이미지의 Hash 값 |
Siged | 로드된 이미지가 서명됐는지에 대한 여부(true/false) |
Signature | 이미지 서명자의 이름 |
SignatureStatus | 서명 상태(Valid/Invalid) |
User | 이미지를 로드한 PC(Domain) 및 User 이름 |
ID 8. CreateRemoteTread detected
CreateRemoteTread detected 이벤트는 프로세스가 다른 프로세스에서 스레드를 생성할 때 기록된다. 이 행위는 공격자가 악성 코드를 다른 프로세스에 숨기기 위해 사용될 수 있다. 새 스레드에서 실행될 코드(StartAddress, StartModule, StartFunction)에 대한 정보를 제공한다. StartModule 및 StartFunction 항목은 유추되며, 시작 주소가 로드된 모듈 외부에 있으면 비어 있을 수 있다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
SourceProcessGuid | 다른 프로세스에서 스레드를 생성한 원본 프로세스의 고유 식별자(Guid) |
SourceProcessId | 다른 프로세스에서 스레드를 생성한 원본 프로세스의 고유 식별자(Id) |
SourceImage | 다른 프로세스에서 스레드를 생성한 원본 프로세스의 이미지(경로) |
TargetProcessGuid | 대상 프로세스의 고유 식별자(Guid) |
TargetProcessId | 대상 프로세스의 고유 식별자(Id) |
TargetImage | 대상 프로세스의 이미지(경로) |
NewThreadId | 대상 프로세스에서 생성된 새 스레드의 Id |
StartAddress | 새 스레드의 시작 주소 |
StartModule | 스레드 시작 주소를 PEB Loaded module list에 매핑해 출력 |
StartFunction | Export tables에서 Function이 일치하는 경우 출력 |
SourceUser | 원격 스레드를 시작한 PC(Domain) 및 User 이름 |
TargetUser | 새 스레드가 시작된 PC(Domain) 및 User 이름 |
ID 9. RawAccessRead detected
RawAccessRead detected 이벤트는 프로세스가 "\\.\" 표시를 사용해 드라이브에서 읽기 작업을 수행하는 경우에 기록된다. 이 기술은 종종 파일 액세스 감사 도구를 피할 뿐만 아니라 잠긴 파일의 데이터를 유출하려는 공격자(또는 악성 코드)가 사용할 수 있다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 드라이브에서 읽기 작업을 수행한 프로세스의 고유 식별자(Guid) |
ProcessId | 드라이브에서 읽기 작업을 수행한 프로세스의 고유 식별자(Id) |
Image | 드라이브에서 읽기 작업을 수행한 프로세스의 이미지(경로) |
Device | 대상 디바이스 |
User | 드라이브에 접근한 PC(Domain) 및 User 이름 |
ID 10. Process accessed
Process accessed 이벤트는 프로세스가 다른 프로세스에 접근할 때 기록된다. 이 작업에는 종종 정보 쿼리가 뒤따르거나 대상 프로세스의 주소 공간을 읽고 쓰는 작업이 포함된다. 이를 통해 Pass-the-Hash 공격에 사용되는 lsass.exe(Local Security Authority)와 같은 프로세스 메모리 내용을 읽는 악성 파일을 탐지할 수 있다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
SourceProcessGuid | 다른 프로세스에 접근한 원본 프로세스의 고유 식별자(Guid) |
SourceProcessId | 다른 프로세스에 접근한 원본 프로세스의 고유 식별자(Id) |
SourceThreadId | 다른 프로세스에 접근한 원본 프로세스 내부의 특정 Thread ID |
SourceImage | 다른 프로세스에 접근한 원본 프로세스의 이미지(경로) |
TargetProcessGUID | 대상 프로세스의 고유 식별자(Guid) |
TargetProcessId | 대상 프로세스의 고유 식별자(Id) |
TargetImage | 대상 프로세스의 이미지(경로) |
GranteAccess | 대상 프로세스에 대해 요청된 프로세스 권한에 관한 Access Flags(bitmask) |
CallTrace | 열린 프로세스를 호출하는 위치의 Stack trace(함수의 DLL 및 상대 가상 주소 포함) |
SourceUser | 다른 프로세스에 접근한 원본 프로세스를 실행하는 PC(Domain) 및 User 이름 |
TargetUser | 접근할 대상 프로세스를 실행하는 PC(Domain) 및 User 이름 |
ID 11. File created
File created 이벤트는 프로세스가 파일을 생성하거나 덮어쓸 때 기록된다. 이 이벤트는 악성 프로그램이 생성됐다가 삭제되는 임시 및 다운로드 디렉터리를 모니터링하는 데 유용하다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 파일을 생성한 프로세스의 고유 식별자(Guid) |
ProcessId | 파일을 생성한 프로세스의 고유 식별자(Id) |
Image | 파일을 생성한 프로세스의 이미지(경로) |
TargetFilename | 생성된 파일 이름 |
CreationUtcTime | 파일이 생성된 시간을 UTC 표준 시간으로 출력 |
User | 파일을 생성한 PC(Domain) 및 User 이름 |
ID 12. RegistryEvent, Object added or deleted
Object added or deleted 이벤트는 프로세스가 레지스트리 키 또는 값을 생성 및 삭제할 때 기록된다. 이 이벤트는 공격자(또는 악성 코드)의 레지스트리 수정을 모니터링 하는 데 유용하다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | 이벤트 유형(CreateKey/DeleteKey/CreateValue/DeleteValue) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 레지스트리 객체를 생성하거나 삭제한 프로세스의 고유 식별자(Guid) |
ProcessId | 레지스트리 객체를 생성하거나 삭제한 프로세스의 고유 식별자(Id) |
Image | 레지스트리 객체를 생성하거나 삭제한 프로세스의 이미지(경로) |
TargetObject | 레지스트리 객체의 전체 경로 |
User | 레지스트리 객체를 생성하거나 삭제한 PC(Domain) 및 User 이름 |
ID 13. RegistryEvent, Value set
Value set 이벤트는 레지스트리 값을 수정할 때 DWORD 및 QWORD 유형의 값이 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | 이벤트 유형(SetValue) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 레지스트리 값을 수정한 프로세스의 고유 식별자(Guid) |
ProcessId | 레지스트리 값을 수정한 프로세스의 고유 식별자(Id) |
Image | 레지스트리 값을 수정한 프로세스의 이미지(경로) |
TargetObject | 수정된 레지스트리 키의 전체 경로 |
Details | 수정된 값에 대한 세부 정보 |
User | 레지스트리에 접근한 PC(Domain) 및 User 이름 |
ID 14. RegistryEvent, Object renamed
Object renamed 이벤트는 이름이 변경된 레지스트리 키 또는 값의 새 이름이 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | 이벤트 유형(RenameKey) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 레지스트리 키 또는 값의 이름을 변경한 프로세스의 고유 식별자(Guid) |
ProcessId | 레지스트리 키 또는 값의 이름을 변경한 프로세스의 고유 식별자(Id) |
Image | 레지스트리 키 또는 값의 이름을 변경한 프로세스의 이미지(경로) |
TargetObject | 이름이 변경된 레지스트리 키의 전체 경로 |
NewName | 레지스트리 키의 새 이름 |
User | 레지스트리 키 또는 값의 이름을 변경한 PC(Domain) 및 User 이름 |
ID 15. File stream created
File stream created 이벤트는 명명된 파일 스트림이 생성될 때 기록된다. 명명된 스트림의 내용뿐만 아니라 스트림이 할당된 파일의 내용(이름 없는 스트림)의 Hash가 포함된 이벤트를 기록한다. 이 이벤트는 브라우저가 zone.Identifier mark of the web 스트림을 연결하는 것을 모니터링하는 것을 목표로 한다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 명명된 파일 스트림을 생성한 프로세스의 고유 식별자(Guid) |
ProcessId | 명명된 파일 스트림을 생성한 프로세스의 고유 식별자(Id) |
Image | 명명된 파일 스트림을 생성한 프로세스의 이미지(경로) |
TargetFilename | 파일 이름 및 경로 |
CreationUtcTime | 파일 다운로드 시간을 UTC 표준 시간으로 출력 |
Hash | HashType 필드에 존재하는 알고리즘이 있는 파일의 전체 Hash |
Contents | Zone.Identifier 내용 |
User | 파일을 만든 PC(Domain) 및 User 이름 |
ID 16. Sysmon config state changed
Sysmon config state changed 이벤트는 필터링 규칙이 변경된 경우와 같이 Sysmon 설정 변경 내용이 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
Configuration | 변경된 필터링 규칙 또는 Configuration File 이름 및 경로 |
ConfigurationFileHash | 변경된 Configuration File의 Hash |
ID 17. PipeEvent, Pipe Created
Pipe Created 이벤트는 명명된 파이프가 생성될 때 기록된다. 공격자(또는 악성 코드)는 종종 프로세스 간 통신에 명명된 파이프를 사용한다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | CreatePipe |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | Pipe를 생성한 프로세스의 고유 식별자(Guid) |
ProcessId | Pipe를 생성한 프로세스의 고유 식별자(Id) |
PipeName | 생성된 Pipe의 이름 |
Image | Pipe를 생성한 프로세스의 이미지(경로) |
User | Pipe를 생성한 PC(Domain) 및 User 이름 |
ID 18. PipeEvent, Pipe Connected
Pipe Connected 이벤트는 클라이언트와 서버 간에 명명된 파이프 연결이 이루어질 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | ConnectPipe |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | Pipe를 연결한 프로세스의 고유 식별자(Guid) |
ProcessId | Pipe를 연결한 프로세스의 고유 식별자(Id) |
PipeName | 연결된 Pipe의 이름 |
Image | Pipe를 연결한 프로세스의 이미지(경로) |
User | Pipe를 연결한 PC(Domain) 및 User 이름 |
ID 19. WmiEvent, WmiEventFilter activity detected
WmiEventFilter activity detected 이벤트는 WMI 이벤트 필터가 등록될 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | WmiFilterEvent |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
Operation | Wmi Event Filter 작업 내용(Created 등) |
User | Wmi Filter를 생성한 PC(Domain) 및 User 이름 |
EventNamespace | WMI Class의 Event Namespace |
Name | 생성된 Filter의 이름 |
Query | Filter에 연결된 WMI Query |
ID 20. WmiEvent, WmiEventConsumer activity detected
WmiEventConsumer activity detected 이벤트는 WMI Consumers가 등록될 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | WmiConsumerEvent |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
Operation | Wmi Event Consumer 작업 내용(Created 등) |
User | Wmi Event Consumer를 생성한 PC(Domain) 및 User 이름 |
Name | 생성된 Event Consumer의 이름 |
Type | Event Consumer의 Type |
Destination | Consumer에 의해 실행된 프로세스 |
ID 21. WmiEvent, WmiEventConsumerToFilter activity detected
WmiEventConsumerToFilter activity detected 이벤트는 WMI Consumer가 필터에 바인딩될 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
EventType | WmiBindingEvent |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
Operation | Event Consumer에 WMI Filter 바인딩 작업 내용(Created 등) |
User | WMI Event Consumer를 생성한 PC(Domain) 및 User 이름 |
Consumer | 바인딩할 Consumer |
Filter | Consumer에 바인딩할 Filter |
ID 22. DNSEvent, DNS query
DNS query 이벤트는 결과의 성공 여부와 관계없이 프로세스가 DNS 쿼리를 실행할 때, 캐시 되거나, 캐시 되지 않을 때 기록된다. 이 이벤트는 Windows 7 이전 버전에서는 사용할 수 없다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | DNS Query를 발생시킨 프로세스의 고유 식별자(Guid) |
ProcessId | DNS Query를 발생시킨 프로세스의 고유 식별자(Id) |
QueryName | 질의된 DNS Query 이름 |
QueryStatus | 질의 결과 상태코드 |
QueryResults | 질의 결과 내용 |
Image | DNS Query를 발생시킨 프로세스의 이미지(경로) |
User | DNS Query를 수행한 PC(Domain) 및 User 이름 |
ID 23. FileDelete, File Delete archived
File Delete archived 이벤트는 시스템에서 파일이 삭제됐을 때 기록된다. 이벤트 기록 외에도 삭제된 파일이 ArchiveDirectory(기본값 C:\Sysmon)에 저장된다. ArchiveDirectory는 Configure File에서 지정하거나 -a 옵션으로 변경할 수 있다.
1) Configure File에서 ArchiveDirectory를 C:\Sysmondelete로 지정
<ArchiveDirectory>Sysmondelete</ArchiveDirectory>
2) ArchiveDirectory를 C:\Sysmondelete로 변경
sysmon.exe -c -a Sysmondelete
현재 설정된 ArchiveDirectory는 "sysmon.exe -c" 명령어로 확인할 수 있다.
삭제된 파일의 이름은 "[설정된 Hashes].[확장자]"로 구성되며, ArchiveDirectory는 시스템 ACL로 보호되어 직접적인 접근을 막고 있다.
ArchiveDirectory에 접근하기 위해서는 psexec를 사용해 접근할 수 있다.
psexec -sid cmd
cd C:\sysmondelete
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 파일을 삭제한 프로세스의 고유 식별자(Guid) |
ProcessId | 파일을 삭제한 프로세스의 고유 식별자(Id) |
User | 파일을 삭제한 PC(Domain) 및 User 이름 |
Image | 파일을 삭제한 프로세스의 이미지(경로) |
TargetFilename | 삭제된 파일의 이름 및 경로 |
Hashes | HashType 필드에 존재하는 알고리즘이 있는 파일의 전체 Hash |
IsExecutable | 파일이 PE 파일인지에 대한 여부(true/false) |
Archived | 파일이 Archive Directory에 저장되었는지에 대한 여부(true/false) |
ID 24. Clipboard changed
Clipboard changed 이벤트는 시스템 클립보드 내용이 변경될 때 기록된다. 이벤트 기록 외에도 변경된 데이터는 ArchiveDirectory(기본값 C:\Sysmon)에 저장된다. 클립보드 내용은 "CLIP-[설정된 Hashes]" 형식으로 저장된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 클립보드에 데이터를 변경한 프로세스의 고유 식별자(Guid) |
ProcessId | 클립보드에 데이터를 변경한 프로세스의 고유 식별자(Id) |
Image | 클립보드에 데이터를 변경한 프로세스의 이미지(경로) |
Session | Terminal Session ID |
ClientInfo | 원래 RDP host의 PC(Domain) 및 User 이름 |
Hashes | HashType 필드에 존재하는 알고리즘이 있는 파일의 전체 Hash |
Archived | 파일이 Archive Directory에 저장되었는지에 대한 여부(true/false) |
User | 클립보드에 데이터를 변경한 PC(Domain) 및 User 이름 |
ID 25. Process Tampering
Process Tampering 이벤트는 'process hollowing', 'process herpaderping'과 같은 프로세스 변조 기술이 탐지될 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 변조된 프로세스의 고유 식별자(Guid) |
ProcessId | 변조된 프로세스의 고유 식별자(Id) |
Image | 변조된 프로세스의 이미지(경로) |
Type | 탐지된 변조 유형 |
User | 프로세스 변조가 실행된 PC(Domain) 및 User 이름 |
ID 26. File Delete logged
File Delete logged 이벤트는 파일이 삭제됐을 때 기록된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 파일을 삭제한 프로세스의 고유 식별자(Guid) |
ProcessId | 파일을 삭제한 프로세스의 고유 식별자(Id) |
User | 파일을 삭제한 PC(Domain) 및 User 이름 |
Image | 파일을 삭제한 프로세스의 이미지(경로) |
TargetFilename | 삭제된 파일의 이름 및 경로 |
Hashes | HashType 필드에 존재하는 알고리즘이 있는 파일의 전체 Hash |
IsExecutable | 파일이 PE 파일인지에 대한 여부(true/false) |
ID 27. File Block Executable
File Block Executable 이벤트는 Sysmon이 실행파일 생성을 탐지하고 차단할 때 기록된다. Configure File에 실행파일 생성을 차단할 경로를 지정하면 해당 경로에 실행파일 생성 시 차단된다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 실행파일 다운로드가 차단된 프로세스의 고유 식별자(Guid) |
ProcessId | 실행파일 다운로드가 차단된 프로세스의 고유 식별자(Id) |
User | 실행파일 다운로드가 차단된 PC(Domain) 및 User 이름 |
Image | 실행파일 다운로드가 차단된 프로세스의 이미지(경로) |
TargetFilename | 차단된 실행파일의 이름 및 경로 |
Hashes | HashType 필드에 존재하는 알고리즘이 있는 파일의 전체 Hash |
ID 28. File Block Shredding
File Block Shredding 이벤트는 SDelete와 같은 파일 완전 삭제 도구로 완전 삭제 시도하는 것을 탐지하고 차단할 때 기록된다. Configure File에 완전 삭제를 차단할 경로를 지정하면 해당 경로에 완전 삭제 시 차단된다. 하지만 일반적인 삭제는 차단되지 않는다.
- 구성 항목
구성 항목 | 설명 |
---|---|
RuleName | 탐지된 Rule 이름(Configure File 내 작성된 RuleName) |
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ProcessGuid | 완전 삭제를 실행한 프로세스의 고유 식별자(Guid) |
ProcessId | 완전 삭제를 실행한 프로세스의 고유 식별자(Id) |
User | 완전 삭제를 실행한 PC(Domain) 및 User 이름 |
Image | 완전 삭제를 실행한 프로세스의 이미지(경로) |
TargetFilename | 완전 삭제하려는 파일의 이름 및 경로 |
Hashes | HashType 필드에 존재하는 알고리즘이 있는 파일의 전체 Hash |
IsExecutable | 파일이 PE 파일인지에 대한 여부(true/false) |
ID 255. Error report
Error report 이벤트는 Sysmon 내에서 아래와 같이 오류가 발생했을 때 기록된다.
- 시스템 과부하가 걸려 특정 작업을 수행할 수 없는 경우
- Sysmon 서비스에 버그가 발생한 경우
- 특정 보안 및 무결성 조건이 충족되지 않은 경우
- 구성 항목
구성 항목 | 설명 |
---|---|
UtcTime | 이벤트가 기록된 시간을 UTC 표준 시간으로 출력 |
ID | 발생한 Error Code |
Description | 발생한 Error 설명 |
본 글에서는 Sysmon이 기록하는 이벤트의 구성을 살펴보고 어떤 정보를 얻을 수 있는지 알아봤다. 다음 글은 'Sysmon 활용 가이드: Configure File 구성과 작성 방법'으로 Sysmon Configure File을 어떻게 작성할 수 있는지 알아본다.