
사용자 정의 ETW 텔레메트리 집합을 수집하고 사용자 정의 탐지를 생성하는 도구
EventHorizon은 보안 분석가 및/또는 연구자에게 ETW(Event Tracing for Windows) 텔레메트리와 시그마 유사 규칙을 결합하여 강력한 엔드포인트 탐지 및 대응 기능을 제공하는 도구입니다. 그렇지만 EventHorizon은 적절한 솔루션을 대체하는 것은 아닙니다. 이 프로젝트는 주로 ETW 텔레메트리를 수집하고 코드를 작성하지 않고도 탐지 규칙을 생성할 수 있는 편의성을 제공하기 위한 것입니다. 이러한 편의성을 높이기 위해 EventHorizon의 설정 과정은 최대한 간단하게 설계되었으며, 제공된 .msi 설치 프로그램(릴리스 탭 참조)과 기본 설치 지침(위키 참조)이 포함되어 있습니다.
[!WARNING]
EventHorizon은 테스트 환경에서만 사용하세요 (프로덕션 환경에서는 사용하지 마세요). 설치하려면 특정 Windows 보안 기능을 비활성화해야 하며, EventHorizon이 안전하거나 전문적으로 작성된 소프트웨어임을 보장하지 않습니다.
시작하려면 EventHorizon Wiki를 방문하세요.
EventHorizon을 유지 관리하겠다고 약속할 수는 없지만, 향후 다음 사항을 추가/변경하고 싶습니다:
EventHorizon은 사용자 모드와 커널 모드에 걸쳐 여러 구성 요소로 구성됩니다. 다음 섹션에서는 구성 요소에 대한 자세한 개요와 각 구성 요소의 일반적인 기능을 설명합니다.
EventHorizon의 사용자 모드에는 EventHorizon이라는 단일 서비스가 있으며, 이 서비스는 EventHorizon의 다른 다양한 사용자 모드 구성 요소를 조율합니다. 사용자 모드 기능 관련 파일은 C:\Program Files\EventHorizon\에 있지만, 설치 중 경로가 변경될 수 있습니다.
EventHorizon의 커널 모드 구성 요소는 EventHorizonELAM이라는 단일 ELAM(조기 실행 맬웨어 방지) 드라이버로 구성되며, 이 드라이버는 C:\Windows\System32\drivers\에 있습니다.

EventHorizon은 시스템에 최소한의 오버헤드를 두려고 합니다. 유휴 상태에서는 일반적으로 약 2MB 이상의 RAM만 사용합니다. 하지만 수신되는 텔레메트리가 많고 로드된 규칙이 많을수록 더 많은 처리 능력/RAM이 사용됩니다. 이벤트 양이 많은 공급자를 사용하면 리소스 소비가 빠르게 증가할 수 있습니다.

EventHorizon 오케스트레이션 (EventHorizon.exe): EventHorizon의 기능과 관련된 사용자 모드 구성 요소를 조율합니다. 서비스가 시작되면 PPL 안티맬웨어 보호가 적용된 텔레메트리 실행 파일과 탐지 엔진을 생성하고, 어떤 이유로든 종료될 경우 이를 모니터링합니다. 또한 제거 요청을 처리합니다.
EventHorizon 텔레메트리 (EventHorizonTelemetry.exe): ETW 구성을 읽고, 관련 공급자를 구독하며, 들어오는 이벤트를 필터링하고, 큐를 사용하여 명명된 파이프를 통해 탐지 엔진으로 전송합니다.
EventHorizon 탐지 엔진 (EventHorizonDetectionEngine.exe): 규칙을 로드하고, 텔레메트리 실행 파일로부터 텔레메트리를 수신하며, 규칙이 트리거되면 Windows 이벤트 뷰어에서 탐지를 발생시킵니다.

Windows 이벤트 뷰어의 Applications and Services Logs > EventHorizon 아래에는 EventHorizon에서 사용하는 3개의 서로 다른 채널이 있습니다.
채널 이름과 관련된 이벤트가 해당 위치에 배치됩니다. 특정 이벤트에 대한 자세한 내용은 위키를 참조하십시오.

앞서 언급했듯이 EventHorizon의 커널 모드 구성 요소는 EventHorizonELAM이라는 단일 ELAM(조기 실행 맬웨어 방지) 드라이버로 구성되며, C:\Windows\System32\drivers\에 있습니다. 이 ELAM 드라이버를 통해 EventHorizon의 사용자 모드 구성 요소가 PPL 안티맬웨어 보호를 받을 수 있습니다. 또한 드라이버는 IOCTL을 통해 사용자 모드 구성 요소의 요청에 응답하여 다음 작업을 수행합니다:
EventHorizon은 다음 라이브러리에 의존합니다:
다음은 개발 과정에서 사용한 리소스 목록입니다. 하지만 먼저 직접 기여해주신 몇 분께 감사를 표하고 싶습니다. 먼저 프로젝트의 전체 구조와 기능에 초기 기여를 해주신 Jacob Acuna님께 감사드립니다. 또한 귀중한 통찰력을 제공해주신 Eric Esquivel, Julian Peña, Kyle Avery님께도 감사드립니다.