
Kratos è un driver Minifilter del File System di Windows ad alte prestazioni progettato per rilevare, bloccare e immunizzare permanentemente
Progetto di Ricerca sulla Sicurezza Difensiva — Driver minifilter per Windows sviluppato in C++ per il rilevamento e la neutralizzazione in tempo reale dei ransomware a livello di kernel (Ring 0).
Kratos (Kratos.sys) è un driver minifilter per Windows che opera all'altitudine 425342 (livello Anti-Virus) tramite il Filter Manager (fltmgr.sys). A differenza delle soluzioni antivirus basate su firme statiche, Kratos adotta un approccio puramente comportamentale:
| Obiettivo | Risultato |
|-----------|-----------|
| File Colpiti (Prima Esecuzione) | < 5 |
| File Colpiti (Riesecuzioni) | 0 |
| Tasso di Falsi Positivi | 0% (Dopo la regolazione) |
| Compatibilità | 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 distingue tra eliminazioni di file di valore (.docx, .pdf, .jpg...) ed eliminazioni di file di sistema/cache utilizzando KS_IsValuableFile():
Calcolo tramite una LUT precalcolata (KratosEntropyLUT512) — evita l'uso di log2(), non disponibile in modalità kernel. Campione di 512 byte per operazione di scrittura.
.tmp con entropia ≥ 7,5/8 bitInnovazione principale: invece di una blacklist di estensioni dannose, Kratos utilizza una whitelist di estensioni legittime.
L'estensione originale è di valore? SÌ
La nuova estensione è riconosciuta? NO
→ SOSPETTO — indipendentemente dall'estensione scelta
Questo approccio può rilevare LockBit 3.0 (.xmjzh8q), BlackCat/ALPHV (casuale) e qualsiasi futuro ransomware che utilizzi un'estensione sconosciuta.
ValuableDeleteCount > 10 → +10 pts
RenameToSuspicious > 2 → +40 pts
HighEntropyWrites > 3 → +40 pts
RansomNoteCreated → +60 pts
ShadowCopyDeleted → +75 pts
Punteggio ≥ 60 → AVVISO
Punteggio ≥ 80 → CRITICO + Kill + Blacklist
Una volta rilevato il ransomware, Kratos calcola il suo hash FNV-1a a 64 bit sui primi 4096 byte dell'eseguibile (Intestazione PE + inizio del codice) e lo salva nel registro:
\Registry\Machine\SOFTWARE\Kratos\Blacklist
└── 1F81F13004B5B920 = "C:\Users\...\Hercule.exe"
Ogni volta che viene creato un processo, ProcessNotifyCallback controlla la blacklist prima di qualsiasi esecuzione. Il processo viene bloccato tramite CreationStatus = STATUS_ACCESS_DENIED.
Resistenza alla rinomina: l'hash FNV-1a è identico indipendentemente dal nome del file (Hercule-AES.exe, HERCUL~1.EXE, chrome.exe...).
Protezione contro lo spoofing: i processi nella whitelist vengono validati tramite Nome + Percorso Previsti:
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
Modificare g_LegitExtensions[] in KratosDetection.cpp per regolare le estensioni considerate legittime dopo una rinomina.
Modificare g_TrustedProcesses[] per aggiungere processi legittimi con il loro percorso previsto:
{ "myapp.exe", L"\\Program Files\\MyApp\\" },
Modificare KS_EvaluateThreatScore() in KratosDetection.cpp per regolare le soglie AVVISO/CRITICO in base al proprio ambiente.
⚠️ Questo driver è sviluppato nell'ambito di un progetto di ricerca sulla sicurezza difensiva.
- L'uso è strettamente riservato ad ambienti di test isolati (VM senza accesso alla rete)
- Qualsiasi implementazione su un sistema di produzione è effettuata sotto la esclusiva responsabilità dell'utente
- L'autore declina ogni responsabilità per eventuali danni derivanti da un uso improprio
- Modificare questo driver per eludere i sistemi di sicurezza senza autorizzazione è illegale