
Kratos é um driver Minifilter de sistema de arquivos Windows de alto desempenho projetado para detectar, bloquear e imunizar permanentemente
Projeto de Pesquisa em Segurança Defensiva — Driver minifilter do Windows desenvolvido em C++ para detecção e neutralização em tempo real de ransomware no nível do kernel (Ring 0).
Kratos (Kratos.sys) é um driver minifilter do Windows operando na altitude 425342 (camada Anti-Vírus) através do Filter Manager (fltmgr.sys). Diferente de soluções antivírus baseadas em assinaturas estáticas, o Kratos adota uma abordagem puramente comportamental:
| Objetivo | Resultado |
|---|---|
| Arquivos Afetados (Primeira Execução) | < 5 |
| Arquivos Afetados (Reexecuções) | 0 |
| Taxa de Falsos Positivos | 0% (Após Ajustes) |
| Compatibilidade | 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 entre exclusões de arquivos valiosos (.docx, .pdf, .jpg...) e exclusões de arquivos do sistema/cache usando KS_IsValuableFile():
Cálculo via uma LUT pré-calculada (KratosEntropyLUT512) — evita o uso de log2(), que não está disponível em modo kernel. Amostra de 512 bytes por operação de escrita.
.tmp com entropia ≥ 7,5/8 bitsPrincipal inovação: em vez de uma lista negra de extensões maliciosas, Kratos usa uma lista branca de extensões legítimas.
Original extension is valuable? YES
New extension is recognized? NO
→ SUSPECT — regardless of the extension chosen
Essa abordagem pode detectar LockBit 3.0 (.xmjzh8q), BlackCat/ALPHV (aleatório) e qualquer ransomware futuro usando uma extensão desconhecida.
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
Uma vez detectado o ransomware, o Kratos calcula seu hash FNV-1a de 64 bits nos primeiros 4096 bytes do executável (Cabeçalho PE + início do código) e persiste no registro:
\Registry\Machine\SOFTWARE\Kratos\Blacklist
└── 1F81F13004B5B920 = "C:\Users\...\Hercule.exe"
Cada vez que um processo é criado, ProcessNotifyCallback verifica a lista negra antes de qualquer execução. O processo é bloqueado via CreationStatus = STATUS_ACCESS_DENIED.
Resistência a renomeação: o hash FNV-1a é idêntico independentemente do nome do arquivo (Hercule-AES.exe, HERCUL~1.EXE, chrome.exe...).
Proteção contra falsificação: Processos na lista branca são validados por Nome Esperado + Caminho:
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[] em KratosDetection.cpp para ajustar as extensões consideradas legítimas após uma renomeação.
Modifique g_TrustedProcesses[] para adicionar processos legítimos com seu caminho esperado:
{ "myapp.exe", L"\\Program Files\\MyApp\\" },
Modifique KS_EvaluateThreatScore() em KratosDetection.cpp para ajustar os limiares de AVISO/CRÍTICO de acordo com seu ambiente.
⚠️ Este driver é desenvolvido dentro de um framework de pesquisa em segurança defensiva.
- O uso é estritamente reservado para ambientes de teste isolados (VMs sem acesso à rede)
- Qualquer implantação em um sistema de produção é realizada sob a única responsabilidade do usuário
- O autor isenta-se de toda responsabilidade por qualquer dano resultante do uso inadequado
- Modificar este driver para contornar sistemas de segurança sem autorização é ilegal