
New releaseAug 6, 2026
certgraveyard_yara v2026.08.06
Automatisierte YARA-Regelgenerierung aus der Cert Central-Datenbank kompromittierter Zertifikate.
CertGraveyard YARA-Regelgenerator
Automatische YARA-Regelerstellung aus der Datenbank kompromittierter Zertifikate von CertGraveyard.
Funktionen
- 🔄 Tägliche Aktualisierungen: Prüft automatisch CertGraveyard auf neue kompromittierte Zertifikate
- 📝 YARA-Regelerstellung: Erstellt individuelle YARA-Regeln für jedes Zertifikat
- ✅ Validierung: Validiert alle Regeln mit yara-python
- 📦 Release-Verwaltung: Automatisierte Releases mit kombiniertem Regelsatz und ZIP-Archiv
- 📋 Änderungsprotokoll: Führt detailliertes Änderungsprotokoll aller Hinzufügungen und Änderungen
Schnellstart
Installation
# Clone the repository
git clone https://github.com/tjnel/certgraveyard_yara.git
cd certgraveyard_yara
# Install with UV
uv sync --all-extras
Verwendung
# Download latest CSV from CertGraveyard
cert-graveyard-yara download
# Check if CSV has changed
cert-graveyard-yara check-changed
# Generate YARA rules
cert-graveyard-yara generate
# Validate rules
cert-graveyard-yara validate --engine yara
# Create combined file and ZIP archive
cert-graveyard-yara combine
cert-graveyard-yara package
# Run full pipeline
cert-graveyard-yara run --all
Verwendung der generierten Regeln
Laden Sie die neueste Version herunter oder verwenden Sie die Regeln direkt:
# Scan with combined ruleset
yara rules/combined/MAL_Compromised_Cert_*.yara /path/to/scan
# Or use individual rules
yara rules/individual/*.yara /path/to/scan
Projektstruktur
cert-graveyard-yara/
├── .github/workflows/ # GitHub Actions
│ ├── daily-update.yml # Daily CSV check and rule generation
│ ├── ci.yml # PR validation and testing
│ └── release.yml # Release creation
├── src/cert_graveyard_yara/ # Source code
│ ├── __init__.py
│ ├── downloader.py # CSV download and caching
│ ├── parser.py # CSV parsing
│ ├── generator.py # YARA rule generation
│ ├── validator.py # Rule validation
│ ├── changelog.py # Changelog management
│ └── cli.py # Command-line interface
├── tests/ # Test suite
├── rules/
│ ├── individual/ # Individual YARA rule files
│ └── combined/ # Combined release files
├── data/ # CSV data and hash files
├── templates/ # Jinja2 templates
└── CHANGELOG.md
Format der generierten Regeln
Jede Regel folgt diesem Format:
import "pe"
rule MAL_Compromised_Cert_Emotet_DigiCert_0a_1b_2c_3d {
meta:
description = "Detects malware Emotet using compromised certificate..."
author = "TNEL (https://github.com/tjnel/certgraveyard_yara)"
reference = "https://certgraveyard.org"
hash = "a1b2c3d4..."
malware = "Emotet"
malware_type = "Trojan"
cert_issuer = "DigiCert SHA2 Assured ID Code Signing CA"
cert_serial = "0a:1b:2c:3d"
cert_valid_from = "2024-01-15"
cert_valid_to = "2025-01-15"
condition:
uint16(0) == 0x5a4d and
for any sig in pe.signatures : (
sig.issuer contains "DigiCert SHA2 Assured ID Code Signing CA" and
sig.serial == "0a:1b:2c:3d"
)
}
Entwicklung
Entwicklungsumgebung einrichten
# Install with dev dependencies
uv sync --all-extras
# Run linting
uv run ruff check src tests
# Run type checking
uv run mypy src
# Run tests
uv run pytest
Tests ausführen
# Run all tests with coverage
uv run pytest
# Run specific test file
uv run pytest tests/test_generator.py
# Run with verbose output
uv run pytest -v
CLI-Befehle
| Befehl | Beschreibung |
|---|---|
download | CSV von CertGraveyard herunterladen |
check-changed | Prüfen, ob CSV seit letztem Durchlauf geändert wurde |
generate | YARA-Regeln aus CSV generieren |
validate | YARA-Regeln validieren |
changelog | Änderungsprotokoll mit Änderungen aktualisieren |
combine | Kombinierte YARA-Datei erstellen |
package | ZIP-Archiv der Regeln erstellen |
run | Vollständige Pipeline ausführen |
Konfiguration
Umgebungsvariablen
| Variable | Beschreibung | Standard |
|---|---|---|
CERTGRAVEYARD_URL | CSV-Download-URL | https://certgraveyard.org/api/download_csv |
Lizenz
MIT-Lizenz – siehe LICENSE für Details.
Danksagungen
- CertGraveyard für die Bereitstellung der Datenbank kompromittierter Zertifikate
- YARA für die Mustererkennungs-Engine