
Kratos ist ein leistungsstarker Windows-Dateisystem-Minifilter-Treiber, der entwickelt wurde, um zu erkennen, zu blockieren und dauerhaft zu immunisieren
Defensives Sicherheitsforschungsprojekt — Windows-Minifilter-Treiber, entwickelt in C++ zur Echtzeiterkennung und Neutralisierung von Ransomware auf Kernel-Ebene (Ring 0).
Kratos (Kratos.sys) ist ein Windows-Minifilter-Treiber, der auf der Höhe 425342 (Anti-Virus-Stufe) über den Filter-Manager (fltmgr.sys) arbeitet. Im Gegensatz zu statischen signaturbasierten Antivirenlösungen verfolgt Kratos einen rein verhaltensbasierten Ansatz:
| Ziel | Ergebnis |
|---|---|
| Betroffene Dateien (Erster Lauf) | < 5 |
| Betroffene Dateien (Wiederholungen) | 0 |
| Falsch-Positiv-Rate | 0% (nach Optimierung) |
| Kompatibilität | NTFS / ReFS |
User-Mode
│
▼
Filter Manager (fltmgr.sys) ← Altitude 425342
│
▼
┌─────────────────────────────────────────────────────┐
│ KRATOS.SYS │
│ │
│ IRP_MJ_CREATE → Initializing contexts │
│ IRP_MJ_WRITE → Entropic analysis │
│ IRP_MJ_READ → R/W ratio counting │
│ IRP_MJ_SET_INFORMATION → Delete/Rename Detection │
│ │
│ RTL_AVL_TABLE → KS_PROCESS_CONTEXT per PID │
│ FLT_FILE_CONTEXT → Entropy + state per file │
└─────────────────────────────────────────────────────┘
│
▼
NTFS / ReFS
Kratos unterscheidet zwischen Löschungen von wertvollen Dateien (.docx, .pdf, .jpg...) und Löschungen von System-/Cache-Dateien mit KS_IsValuableFile():
Berechnung über eine vorberechnete LUT (KratosEntropyLUT512) — vermeidet die Verwendung von log2(), das im Kernel-Modus nicht verfügbar ist. 512-Byte-Stichprobe pro Schreibvorgang.
.tmp-Datei mit Entropie ≥ 7,5/8 BitHauptinnovation: Anstelle einer Blacklist bösartiger Erweiterungen verwendet Kratos eine Whitelist legitimer Erweiterungen.
Original extension is valuable? YES
New extension is recognized? NO
→ SUSPECT — regardless of the extension chosen
Dieser Ansatz kann LockBit 3.0 (.xmjzh8q), BlackCat/ALPHV (zufällig) und jede zukünftige Ransomware mit unbekannter Erweiterung erkennen.
ValuableDeleteCount > 10 → +10 pts
RenameToSuspicious > 2 → +40 pts
HighEntropyWrites > 3 → +40 pts
RansomNoteCreated → +60 pts
ShadowCopyDeleted → +75 pts
Score ≥ 60 → WARNING
Score ≥ 80 → CRITICAL + Kill + Blacklist
Sobald Ransomware erkannt wird, berechnet Kratos seinen 64-Bit-FNV-1a-Hash auf den ersten 4096 Bytes der ausführbaren Datei (PE-Header + Code-Anfang) und speichert ihn in der Registry:
\Registry\Machine\SOFTWARE\Kratos\Blacklist
└── 1F81F13004B5B920 = "C:\Users\...\Hercule.exe"
Jedes Mal, wenn ein Prozess erstellt wird, überprüft ProcessNotifyCallback die Blacklist vor jeder Ausführung. Der Prozess wird über CreationStatus = STATUS_ACCESS_DENIED blockiert.
Umbenennungsresistenz: Der FNV-1a-Hash ist unabhängig vom Dateinamen identisch (Hercule-AES.exe, HERCUL~1.EXE, chrome.exe...).
Schutz vor Spoofing: Whitelist-Prozesse werden durch Erwarteter Name + Pfad validiert:
chrome.exe + \Program Files\Google\Chrome\Application\ → Legitimate
chrome.exe + C:\Users\...\Desktop\ → IMPOSTOR
# Open KratosMinifilter.sln in Visual Studio
# Configuration: Debug or Release / x64
# Build → Build Solution
# On the target VM — enable test mode
bcdedit /set testsigning on
# Copy Kratos.sys and Kratos.inf
# Install via Device Manager or sc.exe
sc create Kratos type= kernel start= boot binPath= "C:\Kratos\Kratos.sys"
sc start Kratos
Ändern Sie g_LegitExtensions[] in KratosDetection.cpp, um die Erweiterungen anzupassen, die nach einer Umbenennung als legitim gelten.
Ändern Sie g_TrustedProcesses[], um legitime Prozesse mit ihrem erwarteten Pfad hinzuzufügen:
{ "myapp.exe", L"\\Program Files\\MyApp\\" },
Ändern Sie KS_EvaluateThreatScore() in KratosDetection.cpp, um die WARNING/CRITICAL-Schwellenwerte an Ihre Umgebung anzupassen.
⚠️ Dieser Treiber wurde im Rahmen defensiver Sicherheitsforschung entwickelt.
- Die Verwendung ist streng auf isolierte Testumgebungen beschränkt (VMs ohne Netzwerkzugriff)
- Jede Bereitstellung in einem Produktionssystem erfolgt in alleiniger Verantwortung des Benutzers
- Der Autor lehnt jegliche Haftung für Schäden ab, die durch unsachgemäße Verwendung entstehen
- Die Änderung dieses Treibers, um Sicherheitssysteme ohne Autorisierung zu umgehen, ist illegal