Search

Splunk 위협헌팅 #2 - 시스템 로그 이해 (Sysmon)

1. Sysmon

Sysmon은 MS사의 Sysinternals suite에 포함된 시스템 모니터링 툴이다. 설치를 하게되면 시스템에 상주하며 작업들을 모니터링하고 windows 이벤트로그에 기록을 저장하게 된다. 이 뿐 아니라 Linux에도 적용이 가능하다.
기본적인 로그 보다 상세하게 저장을 하기에 단말기에서 발생하는 로그들을 식별하기 용이하고 이를 통해 침해사고 조사분석을 실시하거나, SIEM에 연동해 위협헌팅을 실시하게 된다.

2. Sysmon Event ID

Sysmon에는 다양한 이벤트가 있다.
이 중에서도 모든 로그를 보기보다는 핵심 행위를 보기 좋은 이벤트를 중심으로 보는 것이 좋다.
Event ID
Event Name
Description
1
Process create
새로 생성된 프로세스에 정보이며 커맨드라인 컨텍스트와 전체 해시값 등을 제공
2
A process changed a file creation time
프로세스에 의해 파일의 작성 시간이 수정
3
Network connection
시스템의 TCP 및 UDP 연결을 기록하며 출발지와 목적지의 Hostname, IP 주소 등을 제공
5
Process terminated
프로세스 종료
10
Process Access
다른 프로세스에 의해 프로세스가 실행 됐을 떄 생성
11
FileCreate
새로운 파일이 생성되거나 기존 파일이 덮어쓰기
12-14
RegistryEvent
레지스트리 생성, 삭제, 값 지정, 키나 값의 변경
22
DNS Event (DNS query)
성공 여부에 상관없이 DNS 쿼리가 발생
23
FileDelete
파일이 삭제됨

3. Sysmon 주요 필드

Splunk에 연동한 결과를 기반으로 설명한다.
Sysmon App for Splunk를 기반으로 CIM(필드명)을 구성했다.
주요 필드
설명 / 예시
host
로그가 수집된 단말기명 설정이름 WS1-BG01
dest (dvc)
이벤트가 발생한 단말기명 ws1-bg01.www.abc.com
event_id
이벤트 ID 1
event_description
이벤트 ID 설명 Process Create
event_creation_time
이벤트 생성 시간 2023-04-13 09:54:17.901
CurrentDirectory
이벤트 발생 경로 C:\Windows\system32\
Description
이벤트 내용 간략 설명 Windows Defender SmartScreen
TargetFileName
파일 생성, 파일 삭제, 파일 복사 등의 파일 작업이 발생하면, 해당 파일 작업 이벤트에는 대상이 된 파일의 경로 정보 기록 C:\Program Files\SplunkUniversalForwarder\bin\splunk-regmon.exe
Image
실행된 프로세스의 경로 포함 이름 (실행 파일 경로 포함 이름) C:\Windows\System32\winlogon.exe
ParentImage
실행된 프로세스의 부모 프로세스의 경로 포함 이름 C:\Windows\System32\winlogon.exe
IMPHASH
PE 파일의 IAT(Import Address Table)을 해싱하여 생성된 값 PE 파일이 사용하는 DLL 파일 및 함수에 대한 정보를 포함하고 있으며, 보안 업체 및 해킹 그룹 등에서 사용되는 악성코드를 식별하는 데 사용 F34D5F2D4577ED6D9CEEC516C1F5A744
SHA256
파일/프로세스의 SHA256 해시 값 5CDB3991B6DC7C895DD559F3E1FAD13AE4CE330D8D4239170EDC6D4D9C1B4ADA
MD5
파일/프로세스의 MD5 해시 값 77F27615601C9DA51054F84FDBA84F0E
file_name
PE 파일 리소스 섹션에 있는 “파일 이름” (공격자 조작 가능) EXPLORER.EXE
file_company
PE 파일의 리소스 섹션에 있는 "회사 이름” (공격자 조작 가능) Splunk Inc.
file_product
PE 파일의 리소스 섹션에 있는 "제품 이름” (공격자 조작 가능) splunk Application
file_version
PE 파일의 리소스 섹션에 있는 “버전 정보” (공격자 조작 가능) 1.1.1.0
original_file_name
파일이 최초로 작성될 당시의 파일 이름 (공격자 조작 가능) explorer.exe
process_name
실행된 프로세스의 이름 (실행 파일 이름) winlogon.exe
process_id
프로세스 id (운영 체제에서 할당한 고유한 식별자 0-65535) 1234
process_guid
프로세스 guid (시스템에서 생성된 전역적으로 고유한 식별자) {54377aa0-0944-6438-1910-000000001d00}
process_path
프로세스 실행 경로 C:\Windows\System32\winlogon.exe
process_commandline (CommandLine)
실행 명령어 "c:\windows\system32\windowspowershell\v1.0\powershell.exe" -c "echo \‘hello\’”
process_parent_*
해당 프로세스의 부모 프로세스 정보 process_parent_name process_parent_id process_parent_guid process_parent_path process_parent_commandline(ParentCommandLine)
User
Host명을 포함한 사용자명 NT AUTHORITY\SYSTEM
user
사용자명 SYSTEM
ParentUser
부모 프로세스 사용자명 NT AUTHORITY\SYSTEM
user_logon_id
사용자 계정에 할당된 고유한 식별자 (재로그인해도 바뀌지 않는다) 0x3e7 (SYSTEM)
user_logon_guid
사용자가 로그인할 때마다 새로 생성되는 GUID 값 {85b2b5aa-da17-6437-e703-000000000000}
file_* 은 리소스 섹션에 있는 정보를 기반으로 한다. 파일명을 정확히 식별하고 싶다면 Image 정보를 보는 것이 맞으므로 혼동하지 말자.

4. 사용 예시

Top Images
index=sysmon event_description="Process Create" | top Image
JavaScript
복사
Top Command Line
index=sysmon event_description="Process Create" | top CommandLine
JavaScript
복사
Top Files Created
index=sysmon event_description="File Created" | top TargetFilename
JavaScript
복사
Top File Creation Processes
index=sysmon event_description="File Created" | top Image
JavaScript
복사
Top Process Creators
index=sysmon event_description="Process Create" | top User
JavaScript
복사

✓ 다른 [탐구생활] 포스트

Pretendard vs SUIT 최고의 한글 고딕 폰트
Design
Pretendard vs SUIT 최고의 한글 고딕 폰트
Design
︎ 더 많은 게시물을 보려면
︎ 작성자가 궁금하면?
 2023. Absolroot all rights reserved.