기본 이벤트 로그가 못 잡는 것들
Windows 이벤트 로그를 쭉 들여다보면 뭔가 아쉽다는 느낌이 든다. 프로세스가 실행됐다는 건 알 수 있는데, 그 프로세스가 어떤 커맨드라인 인자를 받았는지, 부모 프로세스가 뭐였는지는 안 나온다. 'notepad.exe hello.txt'라고 입력해도 이벤트 로그엔 notepad.exe까지밖에 기록되지 않는다. 해킹 분석 입장에서는 꽤 치명적인 공백이다.
Sysmon은 그 공백을 정확하게 파고든다. Microsoft가 무료로 배포하는 Sysinternals 도구인데, 커널 드라이버 단에서 동작하면서 프로세스 생성 시 커맨드라인 전체, 부모 프로세스 정보, 파일 해시값까지 함께 기록한다. Event ID 1번 하나만 봐도 어떤 프로세스가 어디서 누구에 의해 실행됐는지 거의 다 나온다.
설치도 어렵지 않다. 다음 한 줄이면 된다.
Sysmon64.exe -i -h md5,imphash -n -accepteula
-h 옵션으로 md5와 imphash를 같이 찍어두면 나중에 바이러스토탈에 해시값을 바로 던져볼 수 있다. 샘플 파일 없이도 악성 여부를 빠르게 확인할 수 있으니 꽤 쓸모 있는 옵션이다.
XML 로그 포맷이 주는 실질적인 차이
Sysmon 로그는 기존 이벤트 로그랑 다르게 XML 형식으로 떨어진다. 처음엔 그냥 포맷 차이 아닌가 싶었는데, Splunk에 연동해보면 그 차이가 확실히 느껴진다. 로그 자체가 구조화돼 있으니 파싱이 훨씬 수월하고, props.conf와 transforms.conf에 정규표현식 몇 줄 넣어주면 CommandLine, ParentImage, Hashes 같은 필드가 깔끔하게 분리된다.
이렇게 파싱이 되고 나면 Splunk 쿼리가 완전히 달라진다. 예를 들어 psexec64.exe를 실행한 흔적을 찾고 싶으면 이렇게 날리면 된다.
index=* sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" Image=psexec64.exe
근데 책에서 인상적이었던 부분은, 해커가 psexec를 test64.exe로 이름을 바꿔서 실행한 케이스다. 이름 기반 탐지는 당연히 뚫리는데, Sysmon은 해시값도 같이 기록하기 때문에 이름이 바뀌어도 해시로 잡아낼 수 있다. 그리고 Event ID 3번 네트워크 연결 로그를 보면 어떤 프로세스가 어느 IP의 몇 번 포트로 접속했는지까지 나온다. 53번 UDP면 DNS 쿼리겠구나, 이런 식으로 바로 판단이 된다.
필터링은 양날의 검이다
Sysmon을 실제 운영 환경에 올리면 금방 체감하는 문제가 있다. 로그가 너무 많이 쌓인다. 특히 Splunk Universal Forwarder 같은 프로세스는 계속 실행됐다 종료됐다를 반복하는데, 이게 전체 로그의 80%를 차지하는 상황이 생길 수 있다.
그래서 sysmon.cfg라는 설정 파일로 수집 대상을 필터링할 수 있다. 문법은 XML이고, 아래처럼 시그니처에 특정 문자열이 포함되면 제외하는 식으로 쓴다.
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
McAfee, Symantec, Splunk, NVIDIA 같은 신뢰할 수 있는 벤더 시그니처나, System32\backgroundTaskHost.exe처럼 백그라운드에서 계속 돌아가는 프로세스를 제외하는 방식이다. contains, end with, begin with 같은 조건을 조합하면 꽤 세밀하게 제어할 수 있다.
그런데 책에서도 명확히 지적하는 부분이 있다. 필터링은 분명히 부작용이 있다. 앞서 언급한 필터를 그대로 갖다 쓰면, 악성코드가 'McAfee'라는 문자열만 포함하면 그냥 통과돼버린다. 그러니 되도록 전체 경로를 조건으로 쓰고, 범위를 최대한 좁게 잡아야 한다. GitHub의 Splunkmon 저장소에 올라와 있는 sysmon.cfg를 참고하되, 그대로 쓰기보다는 환경에 맞게 조정하는 게 맞다고 책은 이야기한다. 필터 잘못 썼다가 탐지 구멍이 생기면 Sysmon 설치한 의미가 없어지니까.
'study' 카테고리의 다른 글
| [도서] 인프라보안 - 17장: Splunk 대시보드와 연관분석 (0) | 2026.02.12 |
|---|---|
| [도서] 인프라보안 - 15장: Windows 이벤트 로그와 Linux 로그 분석 (0) | 2026.01.28 |
| [도서] 인프라보안 - 14장: ESM 구축과 보안 로그 중앙화 (0) | 2026.01.20 |
| [도서] 인프라보안 - 13장: Bro와 Xplico를 이용한 네트워크 포렌식 (0) | 2026.01.12 |
| [컨퍼런스] 토스 가디언즈 - 동의서 정복하기 (0) | 2026.01.05 |