
كراتوس هو برنامج تشغيل Minifilter لنظام ملفات Windows عالي الأداء مصمم لاكتشاف ومنع وتحصين دائم
مشروع بحث أمني دفاعي — برنامج تشغيل مينيفلتر لويندوز مطور بلغة ++C للكشف في الوقت الفعلي وتحييد برامج الفدية على مستوى النواة (Ring 0).
كراتوس (Kratos.sys) هو برنامج تشغيل مينيفلتر لويندوز يعمل على ارتفاع 425342 (طبقة مضاد الفيروسات) عبر مدير الفلاتر (fltmgr.sys). على عكس حلول مكافحة الفيروسات القائمة على التوقيعات الثابتة، يتبنى كراتوس نهجًا سلوكيًا بحتًا:
| الهدف | النتيجة |
|---|---|
| الملفات المتأثرة (التشغيل الأول) | < 5 |
| الملفات المتأثرة (إعادة التشغيل) | 0 |
| معدل الإيجابيات الكاذبة | 0% (بعد الضبط) |
| التوافق | 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
يميز كراتوس بين حذف الملفات القيمة (.docx, .pdf, .jpg...) وحذف ملفات النظام/ذاكرة التخزين المؤقت باستخدام KS_IsValuableFile():
الحساب عبر جدول بحث مُحسوب مسبقًا (KratosEntropyLUT512) — يتجنب استخدام log2()، وهو غير متاح في وضع النواة. عينة بحجم 512 بايت لكل عملية كتابة.
.tmp جديد مع إنتروبي ≥ 7.5/8 بتالابتكار الرئيسي: بدلاً من قائمة سوداء للامتدادات الخبيثة، يستخدم كراتوس قائمة بيضاء للامتدادات المشروعة.
Original extension is valuable? YES
New extension is recognized? NO
→ SUSPECT — regardless of the extension chosen
يمكن لهذا النهج اكتشاف LockBit 3.0 (.xmjzh8q)، وBlackCat/ALPHV (عشوائي) وأي برنامج فدية مستقبلي يستخدم امتدادًا غير معروف.
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
بمجرد اكتشاف برنامج فدية، يقوم كراتوس بحساب هاش FNV-1a بطول 64 بت على أول 4096 بايت من الملف التنفيذي (رأس PE + بداية الكود) ويحفظه في السجل:
\Registry\Machine\SOFTWARE\Kratos\Blacklist
└── 1F81F13004B5B920 = "C:\Users\...\Hercule.exe"
في كل مرة يتم فيها إنشاء عملية، يتحقق ProcessNotifyCallback من القائمة السوداء قبل أي تنفيذ. يتم حظر العملية عبر CreationStatus = STATUS_ACCESS_DENIED.
مقاومة إعادة التسمية: هاش FNV-1a متطابق بغض النظر عن اسم الملف (Hercule-AES.exe, HERCUL~1.EXE, chrome.exe...).
الحماية من الانتحال: يتم التحقق من العمليات المدرجة في القائمة البيضاء بواسطة الاسم المتوقع + المسار:
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
قم بتعديل g_LegitExtensions[] في KratosDetection.cpp لضبط الامتدادات التي تُعتبر مشروعة بعد إعادة التسمية.
قم بتعديل g_TrustedProcesses[] لإضافة عمليات مشروعة مع مسارها المتوقع:
{ "myapp.exe", L"\\Program Files\\MyApp\\" },
قم بتعديل KS_EvaluateThreatScore() في KratosDetection.cpp لضبط عتبات التحذير/الحرج حسب بيئتك.
⚠️ تم تطوير هذا البرنامج في إطار البحث الأمني الدفاعي.
- الاستخدام مخصص بشكل صارم لبيئات الاختبار المعزولة (أجهزة افتراضية بدون وصول للشبكة)
- أي نشر على نظام إنتاج يتم على مسؤولية المستخدم وحده
- يخلي المؤلف مسؤوليته عن أي ضرر ناتج عن سوء الاستخدام
- تعديل هذا البرنامج لتجاوز أنظمة الأمن دون إذن غير قانوني