Windows 이벤트 추적 이해하기_ETW

  • Windows 이벤트 추적 이해하기_ETW

ETW 이해하기

불필요한 정보를 일부 필터링했으며, 전체 문서는 다음에서 확인하세요: https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal

기본 개념 이해

https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

아키텍처

세션

네 가지 종류의 세션이 존재합니다.

세션 종류 사용 제한 특징
Event Tracing Session(Standard ETW) 1. EVENT_TRACE_PROPERTIES2. StartTrace, 세션 생성3. EnableTrace 1. EnableTrace for classic provider 2. EnableTraceEx for manifest-based provider4. ControlTrace  세션 중지 - manifest-based provider는 최대 8개의 세션에만 이벤트를 제공할 수 있음- classic provider는 하나의 세션만 지원함.- provider抢夺 세션의 동작은 후발주자에게 유리함 표준 ETW.
SystemTraceProvider Session 1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace  세션 중지 - SystemTraceProvider는 커널 이벤트 provider로, 일련의 사전 정의된 커널 이벤트를 제공함.- **NT Kernel Logger session**는 시스템 사전 설정 세션으로, 여러 시스템 사전 정의 커널 이벤트를 기록함.- Win7/WinServer2008R2에서는 NT Kernel Logger session만이 SystemTraceProvider를 사용할 수 있음.- Win8/WinServer2012에서는 SystemTraceProvider가 8개의 logger session에 이벤트를 제공할 수 있으며,其中 두 개는 NT Kernel Logger와 Circular Kernel Context Logger로 고정됨.- Win10 20348 이후, 각 System provider는 개별적으로 제어할 수 있음. 시스템 커널 사전 정의 이벤트 획득.
AutoLogger session 1. 레지스트리 수정 2. EnableTraceEx3. ControlTrace  세션 중지 - **Global Logger Session**는 특별한 독립 세션으로, 시스템 부팅 시 이벤트를 기록함.- 일반 AutoLogger는 provider를 수동으로 활성화해야 하며, GlobleLogger는 필요하지 않음.- AutoLogger는 NT Kernel Logger 이벤트를 지원하지 않으며, GlobalLogger만 지원함.- 부팅 시간에 영향을 미치므로 절제하여 사용 운영 체제 부팅 중 이벤트 기록
Private Logger Session - - User-mode ETW- 프로세스 내부에서만 사용- 64 session 병렬 제한에 포함되지 않음 프로세스 전용

도구

  • logman
  • wevtutil
    • xpath 쿼리 예시: wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
  • tracelog
    • viusal studio의tracelog도구를 사용하면 실행 중에 동적으로 ETW Provider와 ETW Session을 추가 및 삭제할 수 있음
  • mc
  • etw-providers-docs