
Erkennt Prozessinjektion und Speichermanipulation, die von Malware verwendet werden. Findet RWX-Bereiche, Shellcode-Muster, API-Hooks, Thread-Entführung und Process-Hollowing. Entwickelt in Rust für Geschwindigkeit. Beinhaltet CLI- und TUI-Schnittstellen.
Ghost ist ein Tool zur Erkennung von Prozessinjektionen, geschrieben in Rust. Es überwacht laufende Prozesse und versucht verdächtige Aktivitäten wie Code-Injektion, Speichermanipulation und andere Tricks zu erkennen, die Malware zur Tarnung verwendet.
Die Grundidee ist einfach: Prozesse scannen und nach merkwürdigen Speichermustern, gehookten Funktionen, Shellcode und anderen Anzeichen für Manipulationen suchen. Es funktioniert unter Windows, Linux und macOS (wobei der Windows-Support derzeit am vollständigsten ist).
Einige der Dinge, die es erkennen kann:
Es ordnet erkannte Verhaltensweisen auch dem MITRE ATT&CK-Framework zu, was bei der Dokumentation von Bedrohungen oder der Erstellung von Berichten hilfreich ist.



Sie benötigen Rust (Version 1.70 oder neuer). Dann:
cargo build --release
Unter Windows werden auch die MSVC-Build-Tools benötigt. Linux benötigt grundlegende Entwicklerwerkzeuge (gcc, etc.). macOS benötigt die Xcode-Befehlszeilentools.
Es gibt zwei Oberflächen: ein Befehlszeilentool und eine interaktive Terminal-Benutzeroberfläche (TUI).
CLI:
# Alle Prozesse scannen
cargo run --bin ghost-cli --release
# Einen bestimmten Prozess ansteuern
cargo run --bin ghost-cli --release -- --pid 1234
# Ergebnisse als JSON ausgeben
cargo run --bin ghost-cli --release -- --format json
# Konfigurationsdatei verwenden
cargo run --bin ghost-cli --release -- --config ghost.toml
# Kontinuierlicher Überwachungsmodus
cargo run --bin ghost-cli --release -- --watch
# Überwachung mit benutzerdefiniertem Intervall (10 Sekunden)
cargo run --bin ghost-cli --release -- --watch --interval 10
TUI:
cargo run --bin ghost-tui --release
Das TUI bietet ein Dashboard mit Live-Statistiken, Erkennungsverlauf und Sie können mit Tastenkombinationen navigieren (Tab zum Wechseln der Ansichten, Q zum Beenden).
Ghost unterstützt Tab-Vervollständigung für Bash, Zsh, Fish, PowerShell und Elvish.
# Vervollständigungen für Ihre Shell generieren
ghost completions bash > /etc/bash_completion.d/ghost
ghost completions zsh > ~/.zfunc/_ghost
ghost completions fish > ~/.config/fish/completions/ghost.fish
# Oder das Installationsskript verwenden
./completions/install.sh
Siehe completions/README.md für detaillierte Installationsanweisungen.
Ghost unterstützt optionale Funktionen, die während des Builds aktiviert werden können:
# YARA-Regel-Scanning (erfordert libyara)
cargo build --features yara-scanning
# Neuronale ML-Integration (erfordert Python und trainierte Modelle)
cargo build --features neural-ml
# eBPF-Erkennung (nur Linux, derzeit Stub-Implementierung)
cargo build --features ebpf-detection
Hinweis: ML-Funktionen erfordern trainierte Modelle, um zu funktionieren. Siehe ghost_ml/README.md für Trainingsanweisungen.
Sie können das Verhalten mit einer TOML-Konfigurationsdatei anpassen. Schauen Sie sich examples/ghost.toml als Ausgangspunkt an. Sie können bestimmte Erkennungsmethoden aktivieren/deaktivieren, Vertrauensschwellenwerte festlegen, Systemprozesse überspringen und die Scanhäufigkeit steuern.
Beispiel für einen Konfigurationsausschnitt:
shellcode_detection = true
hollowing_detection = true
hook_detection = true
confidence_threshold = 0.3
skip_system_processes = true
scan_interval_ms = 2000
Standardmäßig begrenzt Ghost die Ausgabe auf 10 Indikatoren pro Erkennung und entfernt Duplikate ähnlicher Funde. Bei großen Scans können Sie die Ausgabe weiter reduzieren:
Befehlszeilenoptionen:
# Zusammenfassungsmodus – gibt Statistiken statt vollständiger Details aus
ghost-cli --summary
# Indikatoren pro Erkennung begrenzen
ghost-cli --max-indicators 5
# Nur bösartige Erkennungen melden
ghost-cli --min-threat-level malicious
# Für minimale Ausgabe kombinieren
ghost-cli --summary --quiet
Konfigurationsdatei:
[output]
verbosity = "minimal" # minimal, normal oder verbose
max_indicators_per_detection = 5
min_threat_level = "suspicious"
deduplicate_indicators = true
summary_mode = true
Dies ist nützlich beim Scannen vieler Prozesse oder beim Ausführen einer kontinuierlichen Überwachung, bei der Ausgabedateien sonst zu groß werden würden.
Der Watch-Modus ermöglicht es Ihnen, Ihr System kontinuierlich zu überwachen, ohne manuell Scans durchführen zu müssen. Es ist nützlich, um Injektionsversuche zu erfassen, während sie stattfinden.
# Überwachung starten (Standard: 5-Sekunden-Intervall)
ghost-cli --watch
# Benutzerdefiniertes Intervall
ghost-cli --watch --interval 10
# Bestimmten Prozess überwachen
ghost-cli --watch --pid 1234
# Stiller Modus – nur bei neuen Erkennungen alarmieren
ghost-cli --watch --quiet
Im Watch-Modus zeigt Ghost:
Beispielausgabe:
[14:32:15] Scan #1: sauber (142 Prozesse, 89ms)
[14:32:20] Scan #2: 2 NEUE Erkennungen! (2 gesamt, 142 Prozesse, 91ms)
[MALICIOUS] suspicious.exe (PID: 4521) - 87% Konfidenz
[SUSPICIOUS] helper.dll (PID: 2201) - 54% Konfidenz
[14:32:25] Scan #3: 2 bekannte Bedrohungen (142 Prozesse, 88ms)
Der Baseline-Modus erfasst eine Momentaufnahme des aktuellen Systemzustands. Spätere Scans können mit dieser Baseline verglichen werden, um Änderungen zu erkennen – nützlich, um neue Bedrohungen zu finden, ohne sich durch bekannte Probleme zu kämpfen.
# Aktuellen Zustand als Baseline speichern
ghost-cli --save-baseline baseline.json
# Später: Mit Baseline vergleichen
ghost-cli --baseline baseline.json
# Mit Watch-Modus kombinieren
ghost-cli --watch --baseline baseline.json
Beim Vergleich mit einer Baseline meldet Ghost:
Beispielausgabe:
3 Änderungen zur Baseline:
Neue Bedrohungen (1):
injector.exe (PID: 8821) - Bösartig
Hochgestufte Bedrohungen (1):
helper.dll (PID: 2201): Verdächtig -> Bösartig