업데이트로 돌아가기
New releaseAug 5, 2026

Zircolite v3.8.1

EVTX, Auditd 및 Linux용 Sysmon 로그를 위한 독립형 SIGMA 기반 탐지 도구

공유

Zircolite

EVTX, Auditd, Sysmon for Linux, XML, CSV 및 JSON 로그를 위한 독립형 Sigma 기반 탐지

python version

Zircolite는 로그에 대해 Sigma 규칙을 실행합니다. 이벤트를 SQLite로 평탄화하고, 각 규칙을 SQL 쿼리로 변환한 뒤, 일치하는 항목을 오프라인에서 단일 명령으로 보고합니다.

터미널에서 실행 중인 Zircolite

  • 다양한 로그 형식을 자동으로 감지: Windows EVTX(바이너리, XML, JSON), Auditd, Sysmon for Linux, EVTXtract, CSV, XML 및 JSON, 일반 파일 또는 gzip, bzip2, ZIP 및 7-Zip 아카이브.
  • Sigma 규칙 그대로 사용: pySigma로 변환된 네이티브 YAML 또는 rules/에 있는 미리 만들어진 규칙 세트. 상관관계 규칙 포함.
  • 빠른 속도: 컴파일된 평탄화 커널, 병렬 워커 및 규칙 사전 필터링; 벤치마크 참조.
  • 필드 처리: 압축된 필드를 분할하고 샌드박스 처리된 Python 변환 실행(Base64 디코딩, IOC 추출, LOLBin 탐지 등).
  • 내보내기: JSON, CSV 및 Splunk, Elastic, OpenSearch, Timesketch, SARIF, ATT&CK Navigator용 템플릿.
  • 타임라인: 모든 탐지를 시간 순서대로 한 행씩, 이벤트에 대한 한 줄 요약과 함께 CSV 또는 JSON lines로 제공(--timeline).
  • Zircolite Viewer: 모든 이벤트와 탐지를 브라우저에서 오프라인으로 열 수 있는 하나의 zip 파일로 제공.

📖 **문서**를 읽어보세요. docs/에도 있습니다.

설치

독립형 바이너리, 설치할 필요 없음: 릴리스에서 플랫폼에 맞는 zip을 다운로드하세요(Linux x64 및 ARM64, macOS Apple silicon, Windows x64 및 ARM64).

Docker:

docker pull wagga40/zircolite:latest

PDM을 사용하여 소스에서 설치, Python 3.11~3.14:

git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
pdm use -f 3.14
pdm install

pdm use는 PDM이 Python 3.15 및 free-threaded 빌드를 사용하지 않도록 유지하는데, 이들은 아직 지원되지 않습니다. 3.11부터 3.13 중 어느 것이든 잘 작동합니다. uv를 사용하는 경우:

git clone https://github.com/wagga40/Zircolite.git
cd Zircolite
uv sync --python 3.14+gil

소스 설치 시에는 네이티브 평탄화 커널을 컴파일하며 이를 위해 C 컴파일러가 필요합니다. 컴파일러가 없으면 더 느린 Python 커널로 대체됩니다. 컴파일러 패키지, 바이너리 세부 정보(macOS 격리, 체크섬) 및 Docker 권한은 설치를 참조하세요.

빠른 시작

# Windows logs, with the default ruleset (rules/rules_windows_merged.json)
python3 zircolite.py --events sysmon.evtx

# Linux logs: the format is detected
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json

# Native Sigma rules, through pySigma pipelines
python3 zircolite.py --events logs/ --ruleset ./sigma/rules/windows/process_creation \
    --pipeline sysmon --pipeline windows-logsources

# Every event and detection, for the Zircolite Viewer
python3 zircolite.py --events logs/ --package

# The detections as a timeline, for Timeline Explorer or a spreadsheet
python3 zircolite.py --events logs/ --timeline

바이너리의 경우 python3 zircolite.py 대신 ./Zircolite를 실행하세요. 소스에서 실행할 때는 환경이 활성화되어 있지 않다면 명령 앞에 pdm run(또는 uv run)을 붙이세요. Docker의 경우 로그를 마운트하고 절대 경로를 지정하세요:

docker run --rm --tty -v $PWD:/case/input:ro -v $PWD:/case/output \
    wagga40/zircolite:latest --events /case/input -o /case/output/detected_events.json

Linux 호스트에서는 --user "$(id -u):$(id -g)"와 -l /case/output/zircolite.log를 추가하세요. 이미지는 권한이 없는 사용자로 실행되므로 사용자가 소유한 디렉터리에 쓸 수 없습니다.

탐지 결과는 detected_events.json에 기록됩니다. 시험해 볼 로그는 EVTX-ATTACK-SAMPLES를 참고하세요.

[!IMPORTANT] 기본 규칙 세트에는 노이즈가 많거나 느린 규칙이 포함될 수 있습니다. 사용 환경에 맞게 규칙을 선택하고, python3 zircolite.py -U로 업데이트하세요.

작동 방식

Zircolite는 각 이벤트를 SQLite 테이블의 한 행으로 평탄화하고, 모든 Sigma 규칙을 해당 테이블에 대한 SQL 쿼리로 변환한 뒤, 일치하는 행을 보고합니다.

Zircolite 작동 방식: 로그가 SQLite 테이블의 행으로 평탄화되고, Sigma 규칙이 SQL 쿼리로 변환되며, 일치하는 행이 탐지 결과가 됩니다

Zircolite Viewer

--package는 실행 중의 모든 이벤트를 하나의 zip으로 작성하며, 탐지 결과와 상관 관계 알림이 이벤트에 연결됩니다. 압축을 풀고 index.html을 열면 됩니다. 뷰어는 오프라인으로 실행되며 개요, 탐지 결과, 모든 열로 검색·필터·정렬할 수 있는 이벤트 테이블, 타임라인, ATT&CK 매트릭스, 엔터티, 가장 희귀한 값의 스태킹, 로그온 및 측면 이동, 프로세스 트리, SQL 콘솔을 제공합니다. 패키지는 원본 로그와 동일하게 취급하여 공유하세요. Zircolite Viewer를 참고하세요.

Zircolite Viewer 둘러보기: 개요, 중요 탐지 결과와 해당 이벤트, 열 필터와 열의 가장 희귀한 값, PowerShell 명령이 디코딩된 이벤트와 해당 프로세스 활동, 타임라인, ATT&CK 매트릭스, 엔터티, 스태킹, 측면 이동과 권한 있는 세션, 프로세스 트리, SQL 콘솔

벤치마크

10코어 Apple M1 Max에서 각 도구를 기본 설정과 자체 규칙으로 실행한 중앙값 실제 시간:

도구Sysmon EVTX 4개, 478 MB11개 채널에 걸친 EVTX 8개, 13.3 GB
Zircolite7.7 s30.2 s
Hayabusa 4.2.023.3 s500.3 s
Chainsaw 2.17.148.3 s183.0 s

Zircolite는 병렬 워커(--no-parallel로 끌 수 있음)를 통해 다른 도구보다 메모리를 더 많이 사용하며, 규칙 세트가 서로 다르므로 탐지 건수는 비교할 수 없습니다. 메모리, 설정 및 재현 방법은 Benchmark를 참고하세요.

튜토리얼, 참고 자료 및 관련 프로젝트

이전 버전을 대상으로 작성된 튜토리얼:

참고 자료:

Zircolite는 KAPE와 Velociraptor 내에서도 실행됩니다.

라이선스

카테고리