
🐍 Scanneur YARA et IOC haute performance, multi-thread

Une réécriture de Loki en Rust. Scanner YARA et IOC hautes performances, multi-threadé, en un seul binaire.
Statut : Bêta. Fonctionne, mais toujours en développement actif.
L'analyse de la mémoire des processus sur macOS est au mieux et nécessite généralement des droits de débogage ou des privilèges élevés. Sans ceux-ci, Loki-RS analysera toujours les fichiers mais ne pourra pas lire la plupart de la mémoire des processus. Utilisez --no-procs pour ignorer l'analyse des processus si nécessaire.
Sous Linux, Loki-RS ignore les mappages de processus adossés à des périphériques et spéciaux du noyau avant de lire /proc/<pid>/mem. Cela évite l'instabilité connue avec certaines VMA gérées par des pilotes tout en préservant l'analyse normale de la mémoire anonyme, du tas/pile et des fichiers classiques. Si vous rencontrez toujours des problèmes spécifiques à l'environnement, utilisez --no-procs pour désactiver l'analyse des processus.
Téléchargez le binaire précompilé pour votre plateforme depuis la Page des versions.
# Extraction
tar -xzvf loki-linux-*.tar.gz
cd loki-linux-*
# Mise à jour des signatures (recommandé)
./loki-util update
# Exécution
sudo ./loki --help
Les signatures sont livrées avec la version mais deviennent rapidement obsolètes. Exécutez loki-util update pour récupérer les dernières règles YARA-Forge Core.
Loki-RS utilise YARA Forge comme source de signatures par défaut. Loki-RS est livré et mis à jour avec l'ensemble de règles Core (haute précision, faible taux de faux positifs, optimisé pour les performances). Si vous avez besoin d'une couverture plus large, vous pouvez échanger avec les ensembles Extended ou Full de YARA Forge.
Les fichiers IOC dans signatures/iocs/ restent pris en charge en tant que contenu local/personnalisé optionnel.
# Analyse de base (TUI activée par défaut)
sudo ./loki
# Analyser un dossier spécifique
sudo ./loki --folder /tmp
# Désactiver la TUI, utiliser la sortie standard en ligne de commande
sudo ./loki --no-tui
# Analyser une image montée (ignorer l'analyse des processus, utiliser tous les cœurs)
sudo ./loki --no-procs --folder ~/image1 --threads 0
# Analyse lente et prudente (limite CPU basse, un seul thread)
sudo ./loki --cpu-limit 60 --threads 1
# Analyser et envoyer les journaux à un syslog distant
sudo ./loki --remote syslog-host.internal:514 --remote-proto udp


| Option | Défaut | Description |
|---|---|---|
-f, --folder <CHEMIN> | / | Dossier à analyser. Mettez entre guillemets les chemins contenant des espaces, ex. -f "J:\SteamLibrary\steamapps\common\SpaceCraft beta" |
| Option | Défaut | Description |
|---|---|---|
--no-procs | false | Ignorer l'analyse de la mémoire des processus |
--no-fs | false | Ignorer l'analyse du système de fichiers |
--no-archive | false | Ignorer l'analyse dans les archives (ZIP) |
--scan-all-drives | false | Analyser tous les lecteurs y compris montés/réseau/cloud |
--scan-all-files | false | Analyser tous les fichiers indépendamment de l'extension/type |
| Option | Défaut | Description |
|---|---|---|
-l, --log <FICHIER> | auto | Fichier journal en texte brut |
--no-log | false | Désactiver la sortie journal en texte brut |
-j, --jsonl <FICHIER> | auto | Fichier de sortie JSONL |
--no-jsonl | false | Désactiver la sortie JSONL |
--no-html | false | Désactiver la génération de rapport HTML |
--no-tui | false | Désactiver la TUI, utiliser la sortie standard en ligne de commande |
-r, --remote <HÔTE:PORT> | none | Destination syslog distante |
-p, --remote-proto <PROTO> | udp | Protocole distant (udp/tcp) |
--remote-format <FORMAT> | syslog | Format distant (syslog/json) |
| Option | Défaut | Description |
|---|---|---|
--alert-level <SCORE> | 80 | Seuil de score pour ALERTE |
--warning-level <SCORE> | 60 | Seuil de score pour AVERTISSEMENT |
--notice-level <SCORE> | 40 | Seuil de score pour AVIS |
--max-reasons <N> | 2 | Nombre max de raisons de correspondance à afficher par résultat |
-m, --max-file-size <OCTETS> | 64000000 | Taille de fichier maximale à analyser (64 Mo) |
--yara-timeout <SECONDES> | 10 | Temps d'analyse YARA maximum pour chaque fichier ou tampon mémoire de processus (minimum : 1 seconde) |
-c, --cpu-limit <POURCENT> | 100 | Limite d'utilisation CPU (1-100) |
--threads <N> | -2 | Nombre de threads (0=tous, -1=tous-1, -2=tous-2) |
| Option | Défaut | Description |
|---|---|---|
--version | - | Afficher la version et quitter |
-d, --debug | false | Afficher les sorties de débogage |
--trace | false | Afficher les sorties de trace détaillées |
--show-access-errors | false | Afficher les erreurs d'accès aux fichiers/processus |
Loki-RS fournit plusieurs mécanismes pour exclure des fichiers et dossiers des analyses.
Par défaut, Loki-RS exclut automatiquement :
Répertoires système (Linux/macOS) :
/proc, /dev, /sys/kernel/debug, /sys/kernel/slab, /sys/kernel/tracing, /sys/devices/run, /var/runRépertoires de stockage cloud (sauf si --scan-all-drives est utilisé) :
Lecteurs réseau et montés (sauf si --scan-all-drives est utilisé) :
/media, /volumesRépertoire du programme :
| Option | Description |
|---|---|
--scan-all-drives | Inclure les lecteurs montés, les lecteurs réseau et le stockage cloud |
--scan-all-files | Analyser tous les fichiers indépendamment du type/extension (par défaut, seuls les types de fichiers pertinents sont analysés) |
-m, --max-file-size <OCTETS> | Ignorer les fichiers plus grands que cette taille (par défaut : 64 Mo) |
--no-procs | Ignorer complètement l'analyse de la mémoire des processus |
--no-fs | Ignorer complètement l'analyse du système de fichiers |
--no-archive | Ignorer l'analyse dans les fichiers archives (ZIP) |