Kratos Minifilter 是一个 Windows 内核驱动(FLTMGR.SYS),专为实时勒索软件检测和文件 I/O 缓解而构建。它拦截底层 IRP,以即时阻止未经授权的大规模加密和诱饵触发。
Kratos 是一个研究型 Windows 文件系统微过滤器,构建在 Microsoft 的过滤器管理器(fltmgr.sys)之上。
Kratos 不依赖恶意软件特征码,而是探索如何通过在 Windows 内核内部直接观察文件系统行为来检测勒索软件。
该项目展示了安全驱动如何:
Kratos 并非旨在成为商业杀毒软件。
其主要目标是理解现代端点检测与响应(EDR)产品如何在 Windows 内核内部实现行为式勒索软件检测。
Kratos 结合了三个独立的检测层。
每次写入操作都会被采样。
Kratos 不调用内核中不可用的浮点函数,而是使用预计算查找表。
检测器识别:
一旦确认勒索软件,Kratos 会从可执行文件计算一个 64 位 FNV-1a 指纹。
该指纹存储在:
HKLM\SOFTWARE\Kratos\Blacklist
未来的执行会在勒索软件开始加密文件之前被阻止。
与基于文件名的黑名单不同,指纹识别能够经受:
以下是 Kratos(我正在开发的抗勒索软件微过滤器驱动)这次 Ring 0 清除行动的精确时间顺序,根据内核日志重建——其中包含关于虚拟机监控程序共享文件夹的意外转折:
1. 投放勒索信(静默通过) DarkSide 首先生成其 .txt 勒索信。由于文本文件产生低熵和标准 I/O 模式,Kratos 不会触发任何警报。 这是有意的架构选择:对合法文本编辑器和办公软件零误报。
2. 行为突破(客户机 VM) 恶意软件转入破坏阶段,以 .27efa0d1 扩展名针对桌面文件。 在 3 次可疑重命名(一个 ZIP 压缩包和 2 张 PNG 图片)之后,语法分析结合高熵将威胁评分推过临界阈值(\ge 80)。 行动:Kratos 拒绝 I/O(STATUS_ACCESS_DENIED),终止进程(PID 6412),采样 PE 头的前 4096 字节,并将其 FNV-1a 哈希(07BACD78B04E01D9)注册到内核黑名单中。
3. 跨边界攻击:拯救 HOST 系统! 第二个线程(PID 5236)冲入 HarddiskVolume5 上的 blog-security-main 目录。 转折点:该卷直接映射到虚拟机监控程序共享文件夹,而该文件夹连接到 HOST 物理驱动器。DarkSide 正试图进行客户机到主机的横向感染。 结果:Kratos 挂载到所有卷上,在仅 2 个文件(about.html 和一个网页)之后拦截了重命名。该进程被立即终止,完整保留了基于主机的项目。
4. 最后一击:O(1) 免疫 该二进制文件发起第三次启动尝试(PID 704)。 就在 PreCreate 回调中,Kratos 对 PE 头进行哈希,匹配到黑名单指纹,并从源头扼杀执行:0 个文件被触碰。
受影响的用户文件:共 5 个(客户机 3 个,通过共享文件夹影响主机 2 个)。
客户机到主机横向感染:在 VM 内部从 Ring 0 完全阻止。
响应时间:微秒级(定点 LUT 熵计算,零浮点运算)
主动防御:重新执行时 FNV-1a 指纹识别有效率为 100%。

图:Kratos 对抗 DarkSide