윈도우즈 Sysmon(System Monitor)
Sysmon이란?
Sysmon은 Microsoft Sysinternals에서 제공하는 윈도우 시스템 서비스 및 장치 드라이버로, 시스템에 설치되면 재부팅 후에도 상주하여 시스템 활동을 모니터링하고 Windows 이벤트 로그에 기록합니다. Sysmon은 보안 모니터링 목적으로 사용되며, 프로세스 생성, 네트워크 연결, 파일 생성 시간 변경 등에 대한 자세한 정보를 제공합니다.
Sysmon의 주요 특징:
- 프로세스 생성에 대한 상세 로깅(전체 명령줄 포함)
- 파일 해시값(SHA1, MD5, SHA256, IMPHASH) 기록
- 네트워크 연결 모니터링
- 레지스트리 변경 추적
- 파일 생성 및 삭제 감시
- 드라이버 로드 기록
- DNS 쿼리 모니터링
- 악성 행위 탐지에 유용한 다양한 이벤트 수집
Sysmon 설치 방법
1. 다운로드
먼저 Microsoft Sysinternals 사이트에서 Sysmon을 다운로드합니다:
2. 기본 설치 방법
- 관리자 권한으로 명령 프롬프트(CMD)를 실행합니다.
- Sysmon 압축 파일을 풀고 해당 디렉토리로 이동합니다.
- 다음 명령어로 기본 설정으로 설치합니다:
sysmon -accepteula -i
또는 64비트 시스템에서는:
sysmon64 -accepteula -i
3. 설정 파일을 사용한 설치 방법
더 효과적인 모니터링을 위해 사전 구성된 설정 파일을 사용하는 것이 좋습니다. 많은 보안 전문가들이 SwiftOnSecurity의 Sysmon 설정 파일을 권장합니다:
- PowerShell에서 다음 명령어를 실행하여 Sysmon과 설정 파일을 다운로드합니다:
iwr https://download.sysinternals.com/files/Sysmon.zip -outfile sysmon.zip
expand-archive sysmon.zip
iwr https://raw.githubusercontent.com/SwiftOnSecurity/sysmon-config/master/sysmonconfig-export.xml -outfile sysmonconfig-export.xml
- 설정 파일을 적용하여 Sysmon을 설치합니다:
sysmon64.exe -accepteula -i sysmonconfig-export.xml
Sysmon 사용법
주요 명령어 옵션
- -i: 서비스 및 드라이버 설치 (설정 파일 지정 가능)
- -c: 현재 설정 확인 또는 업데이트
- -m: 이벤트 매니페스트 설치
- -s: 구성 스키마 정의 출력
- -u: 서비스 및 드라이버 제거
자주 사용하는 명령어 예시
- 네트워크 연결과 로딩된 모듈 모니터링 설정:
sysmon64.exe -i -l -n -accepteula
- 설정 파일 적용:
sysmon64.exe -c sysmonconfig-export.xml
- 현재 설정 확인:
sysmon64.exe -c
- Sysmon 제거:
sysmon64.exe -u
Sysmon 이벤트 확인 및 사용법
이벤트 로그 위치
Sysmon 이벤트는 Windows 이벤트 뷰어에서 확인할 수 있습니다:
Win+R
키를 눌러 실행 창을 열고eventvwr.exe
를 입력합니다.- 이벤트 뷰어에서
응용 프로그램 및 서비스 로그 > Microsoft > Windows > Sysmon > Operational
로 이동합니다.
주요 이벤트 ID와 의미
Sysmon은 다양한 이벤트 ID를 사용하여 시스템 활동을 로깅합니다:
이벤트 ID | 설명 | 용도 |
---|---|---|
1 | 프로세스 생성 | 새로 생성된 프로세스 정보 기록 |
2 | 파일 생성 시간 변경 | 프로세스가 파일 생성 시간을 수정할 때 기록 |
3 | 네트워크 연결 | TCP/UDP 네트워크 연결 정보 기록 |
4 | Sysmon 서비스 상태 변경 | Sysmon 서비스 시작/중지 정보 |
5 | 프로세스 종료 | 프로세스 종료 정보 |
6 | 드라이버 로드 | 시스템에 로드되는 드라이버 정보 |
7 | 이미지 로드 | 모듈이 프로세스에 로드될 때 기록 |
8 | CreateRemoteThread | 다른 프로세스에 스레드 생성 감지 |
11 | 파일 생성 | 파일 생성 및 덮어쓰기 기록 |
12-14 | 레지스트리 이벤트 | 레지스트리 생성, 삭제, 값 설정, 이름 변경 등 |
22 | DNS 쿼리 | DNS 쿼리 정보 기록 |
23 | 파일 삭제 | 파일 삭제 기록 |
설정 파일 사용하기
설정 파일 구조
Sysmon 설정 파일은 XML 형식으로 작성되며, 다음과 같은 주요 섹션이 있습니다:
- HashAlgorithms: 사용할 해시 알고리즘 지정
- EventFiltering: 기록할 이벤트와 필터링 규칙 설정
설정 파일 예시
<Sysmon schemaversion="4.82">
<!-- 모든 해시 캡처 -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Microsoft나 Windows 서명이 있는 경우를 제외한 모든 드라이버 로그 기록 -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<!-- 프로세스 종료는 기록하지 않음 -->
<ProcessTerminate onmatch="include" />
<!-- 포트 443이나 80으로의 네트워크 연결을 기록 (Internet Explorer 제외) -->
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort>
</NetworkConnect>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplore.exe</Image>
</NetworkConnect>
</EventFiltering>
</Sysmon>
필터링 조건
설정 파일에서 사용할 수 있는 필터링 조건:
- is: 기본값, 정확히 일치
- contains: 값이 포함됨
- excludes: 값이 포함되지 않음
- begin with: 값으로 시작
- end with: 값으로 끝남
- less than: 사전식 비교가 작음
- more than: 사전식 비교가 큼
- image: 이미지 경로 일치
실전 활용 사례
- 보안 모니터링: 악성 프로세스 실행, 비정상적인 네트워크 연결 등 의심스러운 활동 감지
- 사고 대응: 침해 사고 분석 시 시스템 활동 로그 제공
- 포렌식 분석: 시스템 변경 사항에 대한 상세 내역 확인
- 보안 정책 준수 확인: 시스템 활동 감사 및 모니터링
참고 자료
Sysmon은 윈도우 시스템의 보안 모니터링을 위한 강력한 도구로, 적절한 설정을 통해 시스템 활동을 효과적으로 추적하고 분석할 수 있습니다. 침해 사고 탐지와 대응에 매우 유용하게 활용될 수 있습니다.