
Kratos es un controlador Minifilter de alto rendimiento para el sistema de archivos de Windows diseñado para detectar, bloquear e inmunizar permanentemente
Proyecto de Investigación de Seguridad Defensiva — Controlador minifilter de Windows desarrollado en C++ para la detección y neutralización en tiempo real de ransomware a nivel de núcleo (Ring 0).
Kratos (Kratos.sys) es un controlador minifilter de Windows que opera en la altitud 425342 (nivel Antivirus) a través del Filter Manager (fltmgr.sys). A diferencia de las soluciones antivirus basadas en firmas estáticas, Kratos adopta un enfoque puramente conductual:
| Objetivo | Resultado |
|---|---|
| Archivos Afectados (Primera Ejecución) | < 5 |
| Archivos Afectados (Reejecuciones) | 0 |
| Tasa de Falsos Positivos | 0% (Después de Ajuste) |
| Compatibilidad |
Modo Usuario
│
▼
Filter Manager (fltmgr.sys) ← Altitud 425342
│
▼
┌─────────────────────────────────────────────────────┐
│ KRATOS.SYS │
│ │
│ IRP_MJ_CREATE → Inicialización de contextos │
│ IRP_MJ_WRITE → Análisis entrópico │
│ IRP_MJ_READ → Conteo de relación L/E │
│ IRP_MJ_SET_INFORMATION → Detección de Eliminación/Cambio de Nombre│
│ │
│ RTL_AVL_TABLE → KS_PROCESS_CONTEXT por PID │
│ FLT_FILE_CONTEXT → Entropía + estado por archivo │
└─────────────────────────────────────────────────────┘
│
▼
NTFS / ReFS
Kratos distingue entre eliminaciones de archivos valiosos (.docx, .pdf, .jpg...) y eliminaciones de archivos de sistema/caché usando KS_IsValuableFile():
Cálculo mediante una LUT precalculada (KratosEntropyLUT512) — evita el uso de log2(), que no está disponible en modo kernel. Muestra de 512 bytes por operación de escritura.
.tmp con entropía ≥ 7.5/8 bitsInnovación principal: en lugar de una lista negra de extensiones maliciosas, Kratos utiliza una lista blanca de extensiones legítimas.
Original extension is valuable? YES
New extension is recognized? NO
→ SUSPECT — regardless of the extension chosen
ValuableDeleteCount > 10 → +10 pts
RenameToSuspicious > 2 → +40 pts
HighEntropyWrites > 3 → +40 pts
RansomNoteCreated → +60 pts
ShadowCopyDeleted → +75 pts
Puntuación ≥ 60 → ADVERTENCIA
Puntuación ≥ 80 → CRÍTICO + Matar + Lista negra
Una vez detectado el ransomware, Kratos calcula su hash FNV-1a de 64 bits en los primeros 4096 bytes del ejecutable (Cabecera PE + inicio del código) y lo persiste en el registro:
\Registry\Machine\SOFTWARE\Kratos\Blacklist
└── 1F81F13004B5B920 = "C:\Users\...\Hercule.exe"
Cada vez que se crea un proceso, ProcessNotifyCallback verifica la lista negra antes de cualquier ejecución. El proceso se bloquea mediante CreationStatus = STATUS_ACCESS_DENIED.
Resistencia al cambio de nombre: el hash FNV-1a es idéntico independientemente del nombre del archivo (Hercule-AES.exe, HERCUL~1.EXE, chrome.exe...).
Protección contra suplantación: Los procesos incluidos en la lista blanca se validan mediante Nombre Esperado + Ruta:
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
Modifique g_LegitExtensions[] en KratosDetection.cpp para ajustar las extensiones consideradas legítimas después de un cambio de nombre.
Modifique g_TrustedProcesses[] para agregar procesos legítimos con su ruta esperada:
{ "myapp.exe", L"\\Program Files\\MyApp\\" },
Modifique KS_EvaluateThreatScore() en KratosDetection.cpp para ajustar los umbrales de ADVERTENCIA/CRÍTICO según su entorno.
⚠️ Este controlador se desarrolla dentro de un marco de investigación de seguridad defensiva.
- El uso está estrictamente reservado para entornos de prueba aislados (VMs sin acceso a la red)
- Cualquier despliegue en un sistema de producción se realiza bajo la única responsabilidad del usuario
- El autor declina toda responsabilidad por cualquier daño resultante del uso inadecuado
- Modificar este controlador para eludir sistemas de seguridad sin autorización es ilegal
| NTFS / ReFS |