본문 바로가기
시스템(Windows)

에이전트 배포·로컬 로그 삭제 끝낸 무에이전트 윈도우 중앙 로깅, WEF·Sysmon

by forward error correction Circle 2026. 10. 16.
반응형

Ⅰ. WEF·Sysmon 기술이란?

ⅰ. 운반자 WEF와 생성기 Sysmon의 정의 및 역할 분담

WEF(Windows Event Forwarding)는 윈도우 OS에 내장된 WS-Management(WinRM) 기반의 이벤트 전달 메커니즘으로, 포워더(각 윈도우 장비)가 중앙 수집기(WEC 서버)에 스스로 접속하여 수신 조건을 받아온 뒤 일치하는 이벤트를 배치로 전송하는 기술입니다.
Sysmon(System Monitor)은 커널 드라이버와 서비스로 구성된 고성능 이벤트 생성기로, 프로세스 계보, SHA256 해시, 네트워크 연결, 파일 생성 등 표준 윈도우 감사가 기록하지 못하는 상세한 보안 사실을 Microsoft-Windows-Sysmon/Operational 채널에 기록합니다.
핵심은 WEF는 운반만 담당하는 수동적(Passive) 파이프라인이며, Sysmon은 양질의 보안 사실을 만들어내는 센서라는 점입니다.

ⅱ. 기존 방식(로컬 보관, 서드파티 SIEM 에이전트 배포)의 구조적 한계

로컬 장비에만 로그를 둘 경우 기본 크기(20MB) 제한으로 인해 며칠 만에 덮어써지거나, 공격자가 wevtutil cl로 로그를 삭제하면 삭제된 사실(1102)조차 함께 소멸합니다.
또한 타사 SIEM 에이전트를 전사 배포하는 방식은 버전 파편화, 커널 후킹 충돌(블루스크린), 엔드포인트 수량별 과금 장벽으로 인해 커버리지가 100%에 도달하지 못하며, 사각지대에 방치된 장비가 침해 사고의 온상이 됩니다.

기존 방식 기존 방식의 한계 WEF·Sysmon 적용 효과
로컬에만 로그 보관 약 20MB의 로그 용량 제한으로 오래된 로그가 빠르게 덮어써집니다. 또한 공격자가 wevtutil cl 명령으로 이벤트 로그를 삭제하면 공격 흔적이 사라질 수 있습니다. 이벤트 발생 즉시 별도의 신뢰 영역으로 로그를 전송·수집하여 원본 시스템의 로그 삭제나 변조로 인한 증거 유실 위험을 줄입니다.
SIEM 에이전트 개별 배포 에이전트 배포 및 업데이트 실패, 버전 불일치, 정책 충돌 등의 운영 이슈가 발생하며, 엔드포인트별 라이선스 비용도 증가할 수 있습니다. 별도 에이전트 설치 없이 Windows 기본 기능인 WEF와 GPO를 활용해 도메인 가입 PC에 로그 수집 정책을 일괄 적용하고, 전사 단위의 로그 수집 범위를 확대합니다.
표준 감사 정책 의존 기본 감사 정책만으로는 4688 프로세스 생성 이벤트의 상세 정보가 부족할 수 있으며, 명령줄 실행 정보나 네트워크 연결 기록 등 추가적인 추적 정보 확보에 한계가 있습니다. Sysmon을 활용해 프로세스 생성, 네트워크 연결 등 상세 이벤트를 수집하고, 공격 행위의 연관 분석 및 사고 원인 추적 역량을 강화합니다.

ⅲ. 2026년 Sysmon 윈도우 내장 기능(Native Feature) 편입의 의의

마이크로소프트는 2026년 3월 누적 업데이트(KB5079473)를 기점으로 Windows 11 및 Server 2025에 Sysmon을 OS 선택적 기능(Optional Feature)으로 내장시켰습니다.
이제 Sysmon은 사외 배포 시스템으로 밀어 넣는 '추가 에이전트'가 아니라, DISM 한 줄로 켜고 Windows Update로 자동 서비싱되는 'OS 구성 요소'로 전환되었습니다. 단, 켜기가 쉬워진 만큼 정교한 구성 XML 없이 켰다가는 로그 폭증으로 수집기 디스크가 마비될 수 있습니다.

Ⅱ. WEF·Sysmon 기술 특징

무에이전트 수집은 공짜가 아닙니다. '배포와 관리의 비용'을 덜어내는 대신, '용량 설계와 완전성 계측의 책임'을 담당자가 지는 트레이드오프를 명확히 이해해야 합니다.

ⅰ.OS 내장 전송 및 소스 개시(Push) 기반 무에이전트 아키텍처

설치할 소프트웨어가 전혀 없으므로 패치 주기와 취약점 관리가 OS와 완벽히 하나로 묶이며, 커널 충돌 위험이 사라집니다.
수집기가 장비 목록을 들고 있지 않고 포워더가 GPO 정책을 읽어 자발적으로 접속(Source-Initiated Push)하므로, 자산 관리 시스템에 신규 장비가 등록되는 순간 로그 수집 대상에 자동으로 합류합니다.

ⅱ.도메인 Kerberos 상호 인증 및 구독 단위 ACL 제어

Active Directory 도메인 환경에서는 컴퓨터 계정(Machine Account)을 기반으로 상호 인증과 전송 암호화가 자동으로 수행되므로, 자격 증명을 장비마다 별도 배포할 필요가 없습니다.
수집기에서는 구독(Subscription)마다 별도의 ACL을 두어, 서버군 구독과 일반 업무용 PC 구독의 참여 권한을 컴퓨터 계정 단위로 완벽하게 격리할 수 있습니다.

ⅲ.데이터 포맷(Events vs RenderedText)과 '손실 무통보' 특성

기본값인 RenderedText는 이벤트 뷰어의 사람이 읽을 수 있는 설명 문구를 통째로 전송하므로 이벤트 크기가 2~3배 커집니다. 대규모 환경에서는 바이너리 형태인 Events 포맷으로 전환하여 수집기 처리 용량을 두 배 이상 끌어올릴 수 있습니다.
가장 주의할 점은 '손실 무통보' 성질입니다. 장비가 네트워크에서 단절된 사이 로컬 로그가 덮어써져 이벤트가 증발해도, WEF는 수집기에 어떠한 경고도 주지 않습니다. 따라서 하트비트 기반의 '오늘 몇 대가 보고했는가'를 스스로 계측하는 대시보드가 필수입니다.

Ⅲ. WEF·Sysmon 기술 동작방식

ⅰ.7대 핵심 구성 요소와 장애 발생 지점

전체 파이프라인은 7개의 핵심 요소로 구성되며, 각 요소가 고장 나는 방식이 완전히 다릅니다.

구성 요소 위치 주요 역할 장애 시 증상
Sysmon 드라이버/서비스 포워더 커널 콜백을 받아 필터링 후 채널에 기록 이벤트 미생성 (수집기에는 조용한 장비로 보임)
로컬 이벤트 채널 (EVTX) 포워더 WEF의 송신 버퍼 역할 수행 크기 부족 시 미전송분 덮어쓰기 유실 (무통보)
WinRM 서비스 포워더 WS-Man 프로토콜로 수집기 접속 및 인증 접속 거부 (5985 포트 선점 시에도 발생)
Network Service 계정 포워더 채널에서 이벤트를 읽어내는 OS 주체 Security 채널 읽기 권한 누락 (Application만 수집됨)
구독 (Subscription) 수집기 XPath 쿼리 조건, 주기, 대상을 정의 ACL 불일치 시 거절, 쿼리 오류 시 조용히 비어옴
WEC 서비스 수집기 이벤트를 ForwardedEvents.evtx에 쓰고 북마크 갱신 디스크 쓰기 I/O 병목 발생, 레지스트리 비대화
진단 채널 포워더 ForwardingPlugin/Operational 에 에러 기록 사용자 UI 경고 없음 (이 채널을 열어야만 확인)

ⅱ.엔드투엔드 데이터 전송 라이프사이클

수집기가 장비를 찾아가는 것이 아니라, 모든 통신은 포워더에서 수집기로 시작됩니다.
① GPO가 포워더에 수집기 URI를 주입합니다.

② 포워더 WinRM이 설정된 주기(기본 60초)마다 수집기에 접속합니다.

③ 수집기는 해당 장비의 권한을 검증하고 구독 정의(XML)를 내려줍니다.

④ 포워더는 XPath 조건으로 로컬 채널을 감시합니다.

⑤ 이벤트가 발생하면 전달 최적화 설정에 따라 배치로 전송합니다.

⑥ 수집기는 EVTX에 저장하고 북마크를 갱신합니다.

⑦ 보낼 이벤트가 없을 때 포워더는 생존 확인용 하트비트(Heartbeat)만 보냅니다.

ⅲ.전달 최적화(Delivery Optimization) 메커니즘과 지연 시간

전달 최적화 옵션을 잘못 고르면 실시간 보안 탐지가 무력화됩니다.

모드 실제 동작 실무 적용 가이드
Normal (기본) Pull 방식, 5건 배치, 배치 타임아웃 15분 이벤트가 드문 장비에서는 최대 15분 지연되므로 보안용으로 부적합합니다.
Minimize Bandwidth Push 방식, 배치 타임아웃 6시간, 하트비트 6시간 장애나 침해 사실을 6시간 뒤에 알게 되므로 일반 엔드포인트에는 절대 금지입니다.
Minimize Latency Push 방식, 배치 타임아웃 30초 보안 목적 구독의 사실상 표준 기본값입니다. 반드시 이것을 선택해야 합니다.

Ⅳ. WEF·Sysmon 구성 및 흐름도

ⅰ. SIEM 에이전트 방식 vs WEF 무에이전트 방식 아키텍처 비교 다이어그램

ⅱ. 이벤트 한 건의 생애 및 지연/손실 발생 4대 장애 지점 다이어그램

Ⅴ. WEF·Sysmon 설치 방법

ⅰ.사전 필수 결정 사항 5가지 (나중에 바꾸면 기존 데이터와 호환 불가)

설치 전 반드시 아래 정책을 확정해야 합니다.

결정 항목 선택지 권고안
구독 모드 소스 개시(Push) / 수집기 개시(Pull) 전사는 무조건 소스 개시(Push)입니다. GPO로 장비가 자동 합류합니다.
이벤트 형식 Events(바이너리) / RenderedText(텍스트) 대규모라면 처음부터 Events입니다. 수집 용량이 2배 이상 늘어납니다.
전송 경로 HTTP(5985) / HTTPS(5986) 도메인 내부라면 HTTP(5985)로 충분합니다. Kerberos 상호 인증/암호화가 기본 적용됩니다.
수집기 배치 단일 수집기 / 복수 이중화 수집기 동일 구독을 가진 수집기 2대의 URI를 GPO에 등록하여 동시 전송 이중화를 구성합니다.
Sysmon 배포 OS 내장 선택적 기능 / 독립 바이너리 Windows 11·Server 2025는 내장 기능을 사용하며, 기존 수동 설치본은 먼저 제거해야 합니다.

 

ⅱ.0단계: WEC 수집기 서버 준비 및 대용량 EVTX 볼륨 분리

수집기 서버에서 서비스를 활성화하고, 수신 로그 채널을 고속 전용 볼륨으로 분리하여 디스크 쓰기 병목을 예방합니다.

POWERSHELL (수집기 서버 관리자 권한)복사

# 수집기 서비스 및 WinRM 활성화
wecutil qc /q
winrm quickconfig -q

# 수신 채널을 별도 고속 볼륨(D:\)으로 분리하고 크기를 4GB로 확장
wevtutil sl ForwardedEvents /lfn:D:\WEC\ForwardedEvents.evtx
wevtutil sl ForwardedEvents /ms:4294967296

# WinRM 리스너 정상 구동 점검
winrm enumerate winrm/config/listener

ⅲ.1단계: 포워더(엔드포인트) GPO 정책 배포

AD 도메인 컨트롤러에서 그룹 정책(GPO)으로 3대 필수 요소를 전사에 배포합니다.

GPO 설정 구성 요약복사

[정책 1] 대상 구독 관리자 구성 (SubscriptionManager)
컴퓨터 구성 > 관리 템플릿 > Windows 구성 요소 > 이벤트 전달
-> Server=http://wec01.corp.example:5985/wsman/SubscriptionManager/WEC,Refresh=60

[정책 2] WinRM 서비스 자동 시작
컴퓨터 구성 > 정책 > Windows 설정 > 보안 설정 > 시스템 서비스
-> Windows Remote Management(WS-Management) : 시작 모드 '자동'

[정책 3] Security 채널 읽기 권한 부여 (가장 흔한 누락 지점)
컴퓨터 구성 > 정책 > Windows 설정 > 보안 설정 > 제한된 그룹
-> 'Event Log Readers' 그룹에 'NETWORK SERVICE' 계정 추가

ⅳ.2단계: 윈도우 내장 Sysmon 활성화(DISM) 및 구성 XML 적용

포워더 장비에서 내장 기능을 켜고 정제된 보안 구성 XML을 즉시 바인딩합니다.

POWERSHELL (포워더 장비)복사

# 기존에 수동 설치한 독립 Sysmon이 있다면 반드시 먼저 언인스톨
sysmon -u

# 윈도우 11 / 서버 2025 내장 Sysmon 기능 활성화
Dism /Online /Enable-Feature /FeatureName:Sysmon

# 구성 파일과 함께 서비스 가동 (절대 기본 구성으로 켜지 마십시오)
sysmon -i C:\ProgramData\sysmon\config.xml -accepteula

# 단절 기간을 버틸 수 있도록 로컬 EVTX 버퍼 크기를 1GB로 확장
wevtutil sl Microsoft-Windows-Sysmon/Operational /ms:1073741824
wevtutil sl Security /ms:1073741824

Ⅵ. WEF·Sysmon 사용 방법

ⅰ.XML 기반 소스 개시 구독(Subscription) 작성 및 등록

수집기 서버에서 구독 XML을 작성하고 wecutil cs 명령어로 등록합니다.

  XML (sub-endpoint.xml)복사  
  
  EndpointSecurity
  SourceInitiated
  true
  Events
  MinLatency
  true
  ForwardedEvents
  
  O:NSG:BAD:P(A;;GA;;;DC)S:
  
      *[System[EventID=1 or EventID=3 or EventID=11]]
      
      *[System[(EventID=4624)]] and (*[EventData[Data[@Name="LogonType"]!="3"]]) and (*[EventData[Data[@Name="LogonType"]!="5"]])
      
      *[System[EventID=1102 or EventID=4719]]*[System[EventID=104]]
      
    
  ]]>

 

POWERSHELL (구독 등록 및 상태 확인)복사

# 구독 생성 등록
wecutil cs sub-endpoint.xml

# 구독 상태 및 설정값 확인
wecutil gs EndpointSecurity

ⅱ.XPath 쿼리 작성 핵심 규칙 3가지

① 독립성 유지: 요소는 서로 완전히 독립되어 작동합니다. 수정이 잦은 항목일수록 별도 Id 번호로 분리하십시오.
② Suppress의 스코프: (제외)는 자신이 속한 단일 Query 안에서만 적용되며 전역으로 걸리지 않습니다.
③ 다중 채널 수집: 하나의 Query 안에서 Security와 System 등 서로 다른 채널을 동시에 할 수 있습니다.

ⅲ.프로덕션 대규모 환경 운영 고려사항

수집기 1대당 현실적인 처리 상한은 초당 약 3,000건(3,000 events/sec)입니다.
또한 수집기 레지스트리에 누적된 장비 수가 1,000대를 넘으면 이벤트 뷰어 UI가 멈추고, 5만 대를 넘으면 오직 CLI(wecutil)로만 관리해야 합니다. 장비군별로 구독을 쪼개고 새로 고침 주기를 분산하여 TCP 연결 폭증을 예방해야 합니다.

Ⅶ. WEF·Sysmon 자주 쓰는 명령어

ⅰ.수집기(WEC), 채널(wevtutil), Sysmon 진단 핵심 CLI 모음

장애 발생 시 문제 계층을 빠르게 분리할 수 있는 실무 명령어들입니다.

명령어 사용 시점 및 목적
wecutil gr <구독명> 가장 자주 쓰게 될 핵심 명령. 장비별 수신 상태와 LastHeartbeatTime을 출력합니다.
wecutil gs <구독명> 구독의 실제 적용 설정값(ConfigurationMode, ContentFormat)을 확인합니다.
wecutil ss <구독명> /cf:Events 수집기 디스크 급증 시 렌더링 텍스트를 바이너리(Events)로 긴급 전환합니다.
wevtutil gl Security 채널의 SDDL 권한과 최대 크기를 확인합니다. (NS 권한 누락 확인용)
wevtutil sl <채널> /ms:<바이트> 로컬 EVTX 버퍼 최대 크기를 확장합니다. (WEF가 대신 해줄 수 없음)
wevtutil qe Eventlog-ForwardingPlugin/Operational /c:20 /rd:true /f:text 포워더 장애 진단의 출발점. 전송 실패 및 인증 거절 로그를 확인합니다.
sysmon -c 현재 메모리에 실제 활성화된 Sysmon 필터 구성 규칙을 출력합니다.

 

ⅱ.실무 트러블 슈팅 3대 시나리오 즉각 대처법

시나리오 1: 한 대만 이벤트가 안 올 때: 수집기에서 wecutil gr을 칩니다. 목록에 없다면 GPO 미적용이고, 하트비트가 오래됐다면 WinRM 통신 장애이며, 하트비트는 최신인데 이벤트만 없다면 Security 채널 읽기 권한(NETWORK SERVICE) 누락입니다.
시나리오 2: 수집기 디스크가 하루 만에 찼을 때: Get-WinEvent로 머신별 건수를 집계합니다. 범인은 99% 빌드 서버나 개발자 PC입니다. 해당 구독을 바이너리(/cf:Events)로 전환하고 해당 장비군을 별도 구독으로 떼어내십시오.
시나리오 3: 특정 기간 데이터가 통째로 없을 때: 장비 오프라인 중 로컬 채널이 한 바퀴 돌아 유실된 것입니다. 사후 복구는 불가능하므로, 로컬 채널 크기를 1GB 이상으로 키우고 매일 하트비트 보고 장비 수를 모니터링해야 합니다.

Ⅷ. WEF·Sysmon 활용방안

ⅰ.수집 체계별 비교 및 현실적 타협안: '수집기에만 에이전트 설치'

수천 대의 엔드포인트에는 아무것도 설치하지 않고(무에이전트 WEF), 소수의 중앙 WEC 수집기 서버 1~2대에만 SIEM 에이전트(Winlogbeat, Splunk UF 등)를 설치하여 상위 분석 플랫폼으로 전달하는 하이브리드 아키텍처가 전 세계 엔터프라이즈의 표준 정답입니다. 에이전트 관리 대상이 수천 대에서 단 2대로 축소됩니다.

ⅱ.WEF·Sysmon 도입을 권장하지 않는 4대 환경

① 엄격한 무손실 컴플라이언스 대상: 손실 무통보 특성상 규제 대응에 취약합니다.
② 비도메인·다중 포레스트·혼재 OS: Kerberos의 편의가 사라져 인증서 관리가 더 힘들어집니다.
③ 초 단위 실시간 차단 목표: 배치 전송 특성상 30초 지연이 발생하므로 실시간 차단은 EDR에 맡겨야 합니다.
④ 초당 3,000건 초과 대규모 트래픽: 수집기 증설에 따른 레지스트리 관리 부채가 발생하므로 전용 스트리밍 파이프라인이 유리합니다.

ⅲ.성공적인 운영을 위한 5대 원칙

① 하트비트 커버리지: 첫날부터 일일 보고 장비 수 계측 대시보드를 구축하십시오.
② 채널 크기 역산: 최대 단절 일수(휴가 2주 등)를 계산하여 로컬 EVTX 버퍼 크기를 확보하십시오.
③ 바이너리 형식: 처음부터 Events 모드로 구축하여 파서 재작성을 방지하십시오.
④ 신뢰 경계 분리: WEC 수집기는 워크스테이션 관리자 계정이 접근할 수 없는 티어0/티어1 관리망에 두십시오.
⑤ 장비군 분리: 개발자 PC와 빌드 서버는 일반 PC와 반드시 구독 및 XML을 분리하십시오.

Ⅸ. WEF·Sysmon 트러블 슈팅

ⅰ.권한 및 통신 장애 (침묵의 실패 해결)

Application은 오는데 Security만 누락될 때: Network Service 계정에 Security 채널 읽기 권한이 없는 경우입니다. GPO 제한된 그룹을 통해 'Event Log Readers' 그룹에 'NETWORK SERVICE' 계정을 주입하십시오.
이벤트가 몇 시간 뒤에 도착할 때: 구독 설정이 'Minimize Bandwidth'(6시간) 또는 'Normal'(15분)로 된 경우입니다. wecutil gs로 확인 후 MinLatency(30초)로 변경하십시오.
이벤트 뷰어 구독 노드가 멈출 때: 수집기 레지스트리에 장비 키가 누적된 것입니다. 이벤트 뷰어 대신 CLI 명령어인 wecutil을 사용하십시오.

ⅱ.Sysmon 내장 기능 활성화 실패 및 볼륨 폭증 대처

DISM 오류(0x800f080c) 발생 시: 기존 웹에서 다운로드해 설치했던 독립 Sysmon 바이너리가 남아있는 경우 활성화가 충돌합니다. 반드시 sysmon -u로 기존 버전을 완전 삭제한 후 DISM 명령을 실행하십시오.
수집량이 하룻밤 새 10배 폭증할 때: 구성 파일 없이 기본값으로 켠 경우입니다. 필터링 XML을 제작하여 sysmon -c config.xml로 재설치 없이 필터를 즉시 교체하십시오

 

반응형