Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Zircolite — EVTX, Auditd 및 Linux용 Sysmon 로그를 위한 독립형 SIGMA 기반 탐지 도구 | Kitploit
도구/GitHubGitHub/wagga40/zircolite
ForensicsThreat IntelligenceIncident ResponseLog Analysis
GitHubwagga40/zircolite

Zircolite

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

저장소 보기
84111516일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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는 입력이 열릴 때만 가져오며, ZIP, gzip 및 bzip2는 표준 라이브러리를 사용합니다.

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

빠른 시작

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

EVTX 파일

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

root@kitploit:~
python3 zircolite.py -h

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

root@kitploit:~
# 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)을 직접 사용할 수 있습니다:

root@kitploit:~
# 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는 대부분의 경우 로그 형식을 자동 감지하므로 명시적 형식 플래그는 선택 사항입니다:

root@kitploit:~
# 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로 실행하기

root@kitploit:~
# 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를 기준으로 파일을 측정하고, 데이터베이스 모드(공유 데이터베이스 하나 또는 파일별 데이터베이스 하나)를 선택하며, 병렬 처리가 가치 있는지 결정합니다. 그런 다음 실행 중 메모리 압력에 맞춰 작업자 수를 조정합니다.

root@kitploit:~
python3 zircolite.py --evtx ./logs/ --ruleset rules/rules_windows_merged.json

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

YAML 구성 파일 사용

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

root@kitploit:~
# 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 구성을 참조하세요.

기본 규칙셋 업데이트

root@kitploit:~
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 변환을 제외하고는 기본적으로 꺼져 있습니다.
root@kitploit:~
split:
  Hashes:
    separator: ","
    equal: "="

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

문서

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

미니 GUI

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

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

감지 이벤트 타임라인

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

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

튜토리얼

  • 영어: Russ McRee는 자신의 블로그에 SIGMA와 Zircolite에 대한 상세한 튜토리얼을 게시했습니다.
  • 스페인어: César Marín은 여기에 스페인어 튜토리얼을 게시했습니다.
  • 프랑스어: IT-connect.fr는 Zircolite에 대한 광범위한 프랑스어 튜토리얼을 게시했습니다.
  • 프랑스어: IT-connect.fr는 Zircolite를 사용한 Hack the Box 챌린지 풀이도 게시했습니다.

참고 자료

  • Florian Roth는 2021년 10월 EU ATT&CK 워크숍에서 발표 중 자신의 SIGMA 명예의 전당에서 Zircolite를 언급했습니다.
  • Zircolite는 JSAC 2023에서 인용 및 발표되었습니다.
  • Zircolite는 여러 연구 논문에서 인용 및 사용되었습니다:
    • CIDRE 팀:
      • PWNJUTSU - 웹사이트
      • PWNJUTSU - 학술 논문
      • CERBERE: 레드 및 블루 팀 엔터테인먼트를 위한 사이버 보안 실습, 재현성
    • Universidad de la República:
      • MITRE ATT&CK 분류법을 사용한 공격자 프로파일링을 위한 프로세스 마이닝 기반 방법

라이선스

  • 프로젝트의 모든 코드는 GNU Lesser General Public License에 따라 라이선스가 부여됩니다.
  • evtx_dump는 MIT 라이선스입니다.
  • 규칙은 Detection Rule License (DRL) 1.0에 따라 제공됩니다.

도구 다운로드
.7z