
Kratos est un pilote Minifilter haute performance du système de fichiers Windows conçu pour détecter, bloquer et immuniser en permanence.
Projet de Recherche en Sécurité Défensive — Pilote minifilter Windows développé en C++ pour la détection et la neutralisation en temps réel des ransomwares au niveau du noyau (Ring 0).
Kratos (Kratos.sys) est un pilote minifilter Windows opérant à l’altitude 425342 (niveau Anti-Virus) via le Filter Manager (fltmgr.sys). Contrairement aux antivirus basés sur des signatures statiques, Kratos adopte une approche purement comportementale :
| Objectif | Résultat |
|----------|----------|
| Fichiers affectés (première exécution) | < 5 |
| Fichiers affectés (réexécutions) | 0 |
| Taux de faux positifs | 0% (après réglage) |
| Compatibilité | NTFS / ReFS |
User-Mode
│
▼
Filter Manager (fltmgr.sys) ← Altitude 425342
│
▼
┌─────────────────────────────────────────────────────┐
│ KRATOS.SYS │
│ │
│ IRP_MJ_CREATE → Initialisation des contextes │
│ IRP_MJ_WRITE → Analyse entropique │
│ IRP_MJ_READ → Comptage du ratio R/W │
│ IRP_MJ_SET_INFORMATION → Détection Suppression/Renommage│
│ │
│ RTL_AVL_TABLE → KS_PROCESS_CONTEXT par PID │
│ FLT_FILE_CONTEXT → Entropie + état par fichier │
└─────────────────────────────────────────────────────┘
│
▼
NTFS / ReFS
Kratos distingue les suppressions de fichiers de valeur (.docx, .pdf, .jpg…) des suppressions de fichiers système/cache à l’aide de KS_IsValuableFile() :
Calcul via une LUT pré-calculée (KratosEntropyLUT512) — évite l’utilisation de log2(), indisponible en mode noyau. Échantillon de 512 octets par opération d’écriture.
.tmp avec entropie ≥ 7.5/8 bitsInnovation principale : au lieu d’une liste noire d’extensions malveillantes, Kratos utilise une liste blanche d’extensions légitimes.
L’extension originale est de valeur ? OUI
La nouvelle extension est reconnue ? NON
→ SUSPECT — quelle que soit l’extension choisie
Cette approche permet de détecter LockBit 3.0 (.xmjzh8q), BlackCat/ALPHV (aléatoire) et tout futur ransomware utilisant une extension inconnue.
ValuableDeleteCount > 10 → +10 pts
RenameToSuspicious > 2 → +40 pts
HighEntropyWrites > 3 → +40 pts
RansomNoteCreated → +60 pts
ShadowCopyDeleted → +75 pts
Score ≥ 60 → AVERTISSEMENT
Score ≥ 80 → CRITIQUE + Kill + Liste noire
Une fois le ransomware détecté, Kratos calcule son hachage FNV-1a 64 bits sur les 4096 premiers octets de l’exécutable (en-tête PE + début du code) et le persiste dans le registre :
\Registry\Machine\SOFTWARE\Kratos\Blacklist
└── 1F81F13004B5B920 = "C:\Users\...\Hercule.exe"
À chaque création de processus, ProcessNotifyCallback vérifie la liste noire avant toute exécution. Le processus est bloqué via CreationStatus = STATUS_ACCESS_DENIED.
Résistance au renommage : le hachage FNV-1a est identique quel que soit le nom du fichier (Hercule-AES.exe, HERCUL~1.EXE, chrome.exe…).
Protection contre l’usurpation : Les processus listés dans la liste blanche sont validés par Nom attendu + Chemin :
chrome.exe + \Program Files\Google\Chrome\Application\ → Légitime
chrome.exe + C:\Users\...\Desktop\ → IMPOSTEUR
# Ouvrir KratosMinifilter.sln dans Visual Studio
# Configuration : Debug ou Release / x64
# Build → Générer la solution
# Sur la VM cible — activer le mode test
bcdedit /set testsigning on
# Copier Kratos.sys et Kratos.inf
# Installer via le Gestionnaire de périphériques ou sc.exe
sc create Kratos type= kernel start= boot binPath= "C:\Kratos\Kratos.sys"
sc start Kratos
Modifiez g_LegitExtensions[] dans KratosDetection.cpp pour ajuster les extensions considérées comme légitimes après un renommage.
Modifiez g_TrustedProcesses[] pour ajouter des processus légitimes avec leur chemin attendu :
{ "myapp.exe", L"\\Program Files\\MyApp\\" },
Modifiez KS_EvaluateThreatScore() dans KratosDetection.cpp pour ajuster les seuils AVERTISSEMENT/CRITIQUE en fonction de votre environnement.
⚠️ Ce pilote est développé dans le cadre d’une recherche en sécurité défensive.
- L’utilisation est strictement réservée aux environnements de test isolés (VM sans accès réseau)
- Tout déploiement sur un système de production se fait sous l’entière responsabilité de l’utilisateur
- L’auteur décline toute responsabilité en cas de dommage résultant d’une utilisation inappropriée
- Modifier ce pilote pour contourner des systèmes de sécurité sans autorisation est illégal