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

Zircolite v3.8.1

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

공유

EVTX, Auditd, Sysmon for Linux, XML, CSV 또는 JSONL/NDJSON 로그를 위한 독립형 SIGMA 기반 탐지 도구

python version

Zircolite는 Python 3로 작성된 독립형 도구로, SIGMA 규칙을 다음 로그에 사용할 수 있습니다:

  • MS Windows EVTX (EVTX, XML 및 JSONL 형식)
  • Auditd 로그
  • Sysmon for Linux
  • EVTXtract
  • CSV 및 XML 로그
  • JSON 배열 로그

주요 기능

  • 자동 로그 유형 감지: 매직 바이트, 콘텐츠 분석, 정규식 기반 폴백을 사용하여 로그 형식과 타임스탬프 필드를 자동으로 식별합니다. 대부분의 경우 형식 플래그를 지정할 필요가 없습니다.
  • 다중 입력 형식: EVTX, JSON Lines, JSON 배열, CSV, XML 등을 포함한 다양한 로그 형식을 지원합니다. 압축 또는 아카이브 로그(gzip, bzip2, ZIP, 7-Zip)를 지원하며, 암호화된 ZIP/7z에는 --archive-password를 사용하십시오.
  • 네이티브 Sigma 지원: Zircolite는 pySigma를 사용하여 변환함으로써 네이티브 Sigma 규칙(YAML)을 직접 사용할 수 있습니다.
  • SIGMA 백엔드: SIGMA 백엔드(SQLite)를 기반으로 하며, 내부적인 SIGMA-to-something 변환을 사용하지 않습니다.
  • 고급 로그 조작: 필드를 분할하고 변환을 적용하여 입력 로그를 조작할 수 있으므로 더 유연하고 강력한 로그 분석이 가능합니다.
  • 필드 변환: 처리 중 필드에 사용자 정의 Python 변환을 적용합니다 (예: Base64 디코딩, 16진수-ASCII 변환).
  • 유연한 내보내기: Zircolite는 Jinja 템플릿을 사용하여 JSON, CSV, JSONL, Splunk, Elastic, OpenSearch, Timesketch, SARIF, ATT&CK Navigator 등을 포함한 여러 형식으로 결과를 내보낼 수 있습니다.
  • 리치 터미널 출력: 감지 결과가 MITRE ATT&CK 기술 ID, ATT&CK 전술 히트맵, 규칙 커버리지 측정값, 클릭 가능한 출력 파일 링크와 함께 심각도 정렬 테이블로 표시됩니다.

Zircolite는 Python으로 직접 사용할 수 있습니다.

문서는 여기 (전용 사이트) 또는 여기 (저장소 디렉터리)에서 확인할 수 있습니다.

요구 사항 / 설치

이 프로젝트는 Python 3.10 이상에서 테스트되었습니다. 다음 명령으로 의존성을 설치하십시오: pip3 install -r requirements.txt.

의존성

  • 필수: orjson, xxhash, rich, rich-argparse, RestrictedPython, requests, urllib3, pySigma, evtx (pyevtx-rs), jinja2, lxml, chardet, psutil, pyyaml, py7zr
  • py7zr.7z 입력이 열릴 때만 가져오며, ZIP, gzip 및 bzip2는 표준 라이브러리를 사용합니다.

⚠️ 일부 시스템(Mac, ARM 등)에서는 evtx Python 라이브러리를 설치하려면 Rust와 Cargo가 필요할 수 있습니다.

빠른 시작

다른 사람들이 만든 (이전) 튜토리얼(EN, ES, FR)은 여기에서 확인하세요.

EVTX 파일

도움말은 다음 명령으로 확인할 수 있습니다:

python3 zircolite.py -h

EVTX 파일의 확장자가 ".evtx"인 경우:

# python3 zircolite.py --evtx <EVTX FOLDER or EVTX FILE> --ruleset <SIGMA RULESET> [--ruleset <OTHER RULESET>]
python3 zircolite.py --evtx sysmon.evtx --ruleset rules/rules_windows_merged.json

네이티브 Sigma 규칙 사용 (YAML)

네이티브 Sigma 규칙(YAML)을 직접 사용할 수 있습니다:

# Single YAML rule
python3 zircolite.py --evtx sample.evtx --ruleset path/to/rule.yml

# Directory of Sigma rules
python3 zircolite.py --evtx sample.evtx --ruleset ./sigma/rules/windows/process_creation

# With pySigma pipelines
python3 zircolite.py --evtx sample.evtx --ruleset rule.yml --pipeline sysmon --pipeline windows-logsources

기타 로그 형식

Zircolite는 대부분의 경우 로그 형식을 자동 감지하므로 명시적 형식 플래그는 선택 사항입니다:

# Auto-detection (recommended) - Zircolite identifies the format automatically
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json
python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json

# Explicit format flags (override auto-detection)
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json --auditd
python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json --sysmon4linux
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --jsononly
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --json-array
python3 zircolite.py --events <CSV_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --csv-input
python3 zircolite.py --events <XML_FOLDER_OR_FILE> --ruleset rules/rules_windows_merged.json --xml-input
  • --events 인자는 파일 또는 폴더가 될 수 있습니다. 폴더인 경우 현재 폴더와 하위 폴더의 모든 로그 파일이 선택됩니다 (--no-recursion으로 비활성화 가능).
  • 파일 선택에 사용할 사용자 정의 glob 패턴을 지정하려면 --file-pattern을 사용하십시오.
  • 자동 형식 감지를 비활성화하려면 --no-auto-detect를 사용하십시오.

[!TIP] 도구를 사용해 보려면 EVTX-ATTACK-SAMPLES로 테스트할 수 있습니다 (EVTX 파일).

Docker로 실행하기

# Pull the Docker image
docker pull wagga40/zircolite:latest
# If your logs and rules are in a specific directory
docker run --rm --tty \
    -v $PWD:/case/input:ro \
    -v $PWD:/case/output \
    wagga40/zircolite:latest \
    -e /case/input \
    -o /case/output/detected_events.json \
    -r /case/input/a_sigma_rule.yml
  • $PWD를 로그와 규칙/규칙셋이 저장된 디렉터리(절대 경로만)로 바꾸십시오.

자동 처리 최적화

여러 파일이 주어지면 Zircolite는 사용 가능한 RAM과 CPU를 기준으로 파일을 측정하고, 데이터베이스 모드(공유 데이터베이스 하나 또는 파일별 데이터베이스 하나)를 선택하며, 병렬 처리가 가치 있는지 결정합니다. 그런 다음 실행 중 메모리 압력에 맞춰 작업자 수를 조정합니다.

python3 zircolite.py --evtx ./logs/ --ruleset rules/rules_windows_merged.json

--no-auto-mode, --unified-db(모든 파일에 대해 하나의 데이터베이스, 교차 파일 상관 규칙에 필요), --no-parallel 또는 --parallel-workers N으로 이러한 설정을 재정의할 수 있습니다. 선택 방식은 자동 처리 최적화를 참조하세요.

YAML 구성 파일 사용

복잡하거나 반복적인 분석 워크플로우의 경우 YAML 구성 파일을 사용하십시오:

# Generate a fully commented configuration file
python3 zircolite.py --generate-config my_config.yaml

# Run with it
python3 zircolite.py --yaml-config my_config.yaml

# CLI arguments override the file
python3 zircolite.py --yaml-config my_config.yaml --evtx ./other_logs/

생성된 파일은 지원되는 모든 키를 문서화합니다. config/zircolite_example.yaml은 실행 예시입니다. 병합 규칙과 YAML에 해당하는 옵션이 없는 항목은 YAML 구성을 참조하세요.

기본 규칙셋 업데이트

python3 zircolite.py -U

또는 Task (go-task)를 사용하는 경우 프로젝트 루트에서 task update-rules를 실행하여 Zircolite-Rules-v2에서 규칙을 업데이트하십시오. 다른 작업(Docker 빌드, 정리 등)은 docs를 참조하세요.

[!IMPORTANT]
이 규칙셋은 기본 상태의 Zircolite를 사용할 수 있도록 제공되지만, 규칙이 시끄럽거나 느릴 수 있으므로 자체 규칙셋을 생성해야 합니다. 이 자동 업데이트 규칙셋은 전용 저장소에서 제공됩니다: Zircolite-Rules-v2.

필드 분할 및 변환

두 가지 구성 기능이 이벤트를 수집할 때 형태를 변환하며, 둘 다 config/config.yaml에 있습니다:

  • 필드 분할은 압축된 키-값 필드를 쿼리 가능한 필드로 변환합니다. Sysmon의 Hashes 필드(SHA1=abc123,MD5=def456,SHA256=789xyz)는 별도의 SHA1, MD5, SHA256 필드가 되어 규칙이 해시를 직접 매칭할 수 있습니다.
  • 필드 변환은 필드 값에 샌드박스 처리된 Python을 실행합니다 — base64 명령줄 디코딩, IOC 추출, LOLBins 플래그 지정 등 — 결과를 원래 필드를 대체하지 않고 새 필드에 쓸 수 있습니다. Zircolite는 11개 카테고리에 걸쳐 55개의 변환을 기본 제공하며, 두 개의 auditd 변환을 제외하고는 기본적으로 꺼져 있습니다.
split:
  Hashes:
    separator: ","
    equal: "="

전체 구성, Zircolite가 기본 제공하는 변환, 자체 변환을 테스트하는 방법은 필드 분할필드 변환을 참조하세요.

문서

전체 문서는 여기에서 확인할 수 있습니다.

미니 GUI

미니 GUI는 완전히 오프라인으로 사용할 수 있습니다. 결과를 표시하고 검색할 수 있습니다. --package 옵션으로 미니 GUI "패키지"를 자동 생성할 수 있습니다. 출력 디렉터리를 지정하려면 --package-dir을 사용하십시오. 미니 GUI 사용 방법은 여기 문서를 참조하세요.

MITRE ATT&CK® 기술 및 심각도 수준별 감지 이벤트

감지 이벤트 타임라인

매트릭스에 표시된 MITRE ATT&CK® 기술별 감지 이벤트

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

튜토리얼

참고 자료


라이선스


카테고리