
🐍 Hochleistungs-, multithreaded YARA & IOC Scanner

Eine Neufassung von Loki in Rust. Hochleistungsfähiger, multithread-fähiger YARA- & IOC-Scanner in einer einzigen Binärdatei.
Status: Beta. Funktioniert, aber noch in aktiver Entwicklung.
Das Scannen des Prozessspeichers unter macOS erfolgt nach bestem Wissen und erfordert in der Regel Debugging-Berechtigungen oder erhöhte Privilegien. Ohne diese scannt Loki-RS weiterhin Dateien, kann aber die meisten Prozessspeicher nicht auslesen. Verwenden Sie --no-procs, um das Prozessscannen bei Bedarf zu überspringen.
Unter Linux überspringt Loki-RS gerätegestützte und kernel-spezifische Prozesszuordnungen, bevor es /proc/<pid>/mem liest. Dies vermeidet bekannte Instabilitäten mit einigen treiberverwalteten VMAs, während normales anonymes, Heap/Stack- und reguläres dateigestütztes Speicherscannen erhalten bleibt. Sollten dennoch umgebungsspezifische Probleme auftreten, verwenden Sie --no-procs, um das Prozessscannen zu deaktivieren.
Laden Sie die vorkompilierte Binärdatei für Ihre Plattform von der Releases-Seite herunter.
# Entpacken
tar -xzvf loki-linux-*.tar.gz
cd loki-linux-*
# Signaturen aktualisieren (empfohlen)
./loki-util update
# Ausführen
sudo ./loki --help
Signaturen werden mit der Veröffentlichung mitgeliefert, veralten aber schnell. Führen Sie loki-util update aus, um die neuesten YARA-Forge-Kernregeln abzurufen.
Loki-RS verwendet YARA Forge als Standard-Signaturquelle. Loki-RS wird mit dem Core-Regelsatz ausgeliefert und aktualisiert diesen (hohe Genauigkeit, niedrige Fehlalarmrate, für Leistung optimiert). Wenn Sie eine breitere Abdeckung benötigen, können Sie die erweiterten oder vollständigen Sätze von YARA Forge einwechseln.
IOC-Dateien in signatures/iocs/ werden weiterhin als optionale lokale/benutzerdefinierte Inhalte unterstützt.
# Grundlegendes Scannen (TUI standardmäßig aktiviert)
sudo ./loki
# Bestimmten Ordner scannen
sudo ./loki --folder /tmp
# TUI deaktivieren, standardmäßige Befehlszeilenausgabe verwenden
sudo ./loki --no-tui
# Ein gemountetes Image scannen (Prozessscannen überspringen, alle Kerne nutzen)
sudo ./loki --no-procs --folder ~/image1 --threads 0
# Langsames und vorsichtiges Scannen (niedrigeres CPU-Limit, einzelner Thread)
sudo ./loki --cpu-limit 60 --threads 1
# Scannen und Logs an entfernten Syslog senden
sudo ./loki --remote syslog-host.internal:514 --remote-proto udp


| Option | Standard | Beschreibung |
|---|---|---|
-f, --folder <PFAD> | / | Zu scannender Ordner. Pfade mit Leerzeichen in Anführungszeichen setzen, z.B. -f "J:\SteamLibrary\steamapps\common\SpaceCraft beta" |
| Option | Standard | Beschreibung |
|---|---|---|
--no-procs | false | Prozessspeicher-Scannen überspringen |
--no-fs | false | Dateisystem-Scannen überspringen |
--no-archive | false | Scannen in Archiven (ZIP) überspringen |
--scan-all-drives | false | Alle Laufwerke scannen, einschließlich gemounteter/Netzwerk-/Cloud-Laufwerke |
--scan-all-files | false | Alle Dateien unabhängig von Erweiterung/Typ scannen |
| Option | Standard | Beschreibung |
|---|---|---|
-l, --log <DATEI> | auto | Logdatei im Klartext |
--no-log | false | Klartext-Logausgabe deaktivieren |
-j, --jsonl <DATEI> | auto | JSONL-Ausgabedatei |
--no-jsonl | false | JSONL-Ausgabe deaktivieren |
--no-html | false | HTML-Berichtserstellung deaktivieren |
--no-tui | false | TUI deaktivieren, standardmäßige Befehlszeilenausgabe verwenden |
-r, --remote <HOST:PORT> | keine | Remote-Syslog-Ziel |
-p, --remote-proto <PROTO> | udp | Remote-Protokoll (udp/tcp) |
--remote-format <FMT> | syslog | Remote-Format (syslog/json) |
| Option | Standard | Beschreibung |
|---|---|---|
--alert-level <SCORE> | 80 | Bewertungsschwellenwert für ALARM |
--warning-level <SCORE> | 60 | Bewertungsschwellenwert für WARNUNG |
--notice-level <SCORE> | 40 | Bewertungsschwellenwert für HINWEIS |
--max-reasons <NUM> | 2 | Maximale Anzahl an Übereinstimmungsgründen pro Fund |
-m, --max-file-size <BYTES> | 64000000 | Maximale Dateigröße zum Scannen (64 MB) |
--yara-timeout <SEKUNDEN> | 10 | Maximale YARA-Scanzeit pro Datei oder Prozessspeicherpuffer (Minimum: 1 Sekunde) |
-c, --cpu-limit <PROZENT> | 100 | CPU-Auslastungsgrenze (1-100) |
--threads <ANZAHL> | -2 | Anzahl der Threads (0=alle, -1=alle-1, -2=alle-2) |
| Option | Standard | Beschreibung |
|---|---|---|
--version | - | Version anzeigen und beenden |
-d, --debug | false | Debug-Ausgabe anzeigen |
--trace | false | Ausführliche Trace-Ausgabe anzeigen |
--show-access-errors | false | Datei-/Prozesszugriffsfehler anzeigen |
Loki-RS bietet mehrere Mechanismen zum Ausschließen von Dateien und Ordnern aus Scans.
Standardmäßig schließt Loki-RS automatisch Folgendes aus:
Systemverzeichnisse (Linux/macOS):
/proc, /dev, /sys/kernel/debug, /sys/kernel/slab, /sys/kernel/tracing, /sys/devices/run, /var/runCloud-Speicherverzeichnisse (sofern nicht --scan-all-drives verwendet wird):
Netzwerk- und gemountete Laufwerke (sofern nicht --scan-all-drives verwendet wird):
/media, /volumesProgrammverzeichnis:
| Option | Beschreibung |
|---|---|
--scan-all-drives | Gemountete Laufwerke, Netzwerklaufwerke und Cloud-Speicher einbeziehen |
--scan-all-files | Alle Dateien unabhängig von Dateityp/-erweiterung scannen (standardmäßig werden nur relevante Dateitypen gescannt) |
-m, --max-file-size <BYTES> | Dateien überspringen, die größer als diese Größe sind (Standard: 64 MB) |
--no-procs | Prozessspeicher-Scannen vollständig überspringen |
--no-fs | Dateisystem-Scannen vollständig überspringen |
--no-archive | Scannen in Archivdateien (ZIP) überspringen |
Sie können bekannte gute Dateien anhand ihres Hashs ausschließen. Dies ist nützlich, um legitime Dateien auf eine Whitelist zu setzen, die Fehlalarme auslösen.