
BlockGuard هو وكيل لمنع فقدان البيانات (DLP) لنظام Windows يعترض ويتحكم في الوصول إلى الملفات على مستوى العملية. يضمن أن العمليات المصرح لها فقط — التي تم تحديدها بواسطة مسار الملف التنفيذي، التجزئة التشفيرية، توقيع Authenticode، ومستوى التكامل — يمكنها قراءة الملفات المحمية.
BlockGuard هو وكيل منع فقدان البيانات (DLP) لنظام Windows يعترض ويتحكم في الوصول إلى الملفات على مستوى العملية. يضمن أن العمليات المصرح لها فقط — التي يتم التعرف عليها من خلال مسار الملف القابل للتنفيذ، التجزئة التشفيرية، توقيع Authenticode، ومستوى السلامة — هي التي يمكنها قراءة الملفات المحمية. يتم رفض جميع العمليات الأخرى افتراضيًا على مستوى نواة نظام التشغيل عبر ACLs الخاصة بـ NTFS.
| الميزة | الوصف |
|---|---|
| ACLs افتراضية بالرفض | الملفات المحمية مقفلة عند بدء تشغيل الوكيل — يحتفظ SYSTEM والمسؤولون فقط بالوصول |
| مراقبة ETW في الوقت الفعلي | التقاط أحداث I/O للملفات على مستوى النواة عبر Event Tracing for Windows |
| التحقق من العملية بـ6 طبقات | مسار الملف القابل للتنفيذ، تجزئة SHA-256، توقيع Authenticode، SID المالك، مستوى السلامة، سلسلة العملية الأم |
| تشفير الملفات عبر DPAPI | الملفات المحمية مشفرة أثناء التخزين باستخدام Windows Data Protection API |
| الإلغاء التلقائي للوصول المؤقت | العمليات المصرح لها تحصل على منح ACL محددة زمنيًا تنتهي تلقائيًا |
| كشف التلاعب | فحوصات سلامة دورية تكتشف وتصحح تلقائيًا أي تعديلات على ACL |
| سجل تدقيق منظم | سجل تدقيق بتنسيق JSON لجميع محاولات الوصول (جاهز للتكامل مع SIEM) |
| خدمة ويندوز | تعمل كخدمة خلفية لنظام Windows تحت حساب NT AUTHORITY\SYSTEM |
يستخدم BlockGuard هندسة معيارية من ثلاث طبقات:``` ┌─────────────────────────────────────────────────────────────────┐ │ BlockGuard.Agent (Windows Service) │ │ Orchestrates all layers │ ├───────────────────┬─────────────────────┬───────────────────────┤ │ Layer 1 │ Layer 2 │ Layer 3 │ │ MONITORING │ POLICY & IDENTITY │ PROTECTION │ │ │ │ │ │ • ETW Kernel │ • Process Identity │ • DPAPI Encryption │ │ File Trace │ Validator (6 │ • Structured Audit │ │ • ACL Enforcer │ checks) │ Logger (JSON) │ │ (deny-by- │ • Policy Evaluator │ │ │ default) │ (AND-logic │ │ │ │ rules) │ │ │ │ • Identity Cache │ │ │ │ (LRU + TTL) │ │ └───────────────────┴─────────────────────┴───────────────────────┘
---
## 🖥️ واجهة إدارة المستخدم
يتضمن BlockGuard **تطبيق سطح مكتب WPF** لإدارة الملفات والمجلدات المحمية عبر واجهة مرئية — لا حاجة لتحرير `appsettings.json` يدويًا.
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/12349/51a9b7894117382666d869cee59860a33698f666133bd23c6b6cd48b225d942c.png" alt="واجهة BlockGuard" width="640" />
</p>
### الميزات
- **لوحة البيانات** — نظرة عامة على حالة الحماية (إجمالي الملفات، المجلدات، حالة التشفير)
- **الملفات المحمية** — إضافة/إزالة الملفات والمجلدات لحمايتها من وصول الذكاء الاصطناعي عبر مربعات حوار مستعرض الملفات
- **سجل النشاط** — سجل فوري لجميع تغييرات التكوين
- **الإعدادات** — عرض مسار ملف التكوين ومعلومات الوكيل
- **حالة الوكيل** — مؤشر مباشر يوضح ما إذا كانت خدمة وكيل BlockGuard قيد التشغيل
### كيفية تشغيل الواجهة```powershell
# From the project root
dotnet run --project src/BlockGuard.UI
ملاحظة: تقوم الواجهة بقراءة وكتابة
appsettings.jsonمن مشروع Agent. بعد حفظ التغييرات، أعد تشغيل خدمة BlockGuard Agent لكي تدخل حيز التنفيذ.
قبل تشغيل BlockGuard، تأكد من تثبيت ما يلي على جهاز Windows الخاص بك:
| المتطلب | الحد الأدنى للإصدار | أمر التحقق |
|---|---|---|
| نظام Windows | Windows 10 / Server 2019 | winver |
| .NET SDK | 9.0 | dotnet --version |
| صلاحيات المسؤول | مطلوبة | تشغيل الطرفية كمسؤول |
winget install Microsoft.DotNet.SDK.9
---
## 🚀 بداية سريعة
### 1. استنساخ المستودع```powershell
git clone [email protected]:m2l33k/BlockGuard.git
cd BlockGuard
dotnet restore BlockGuard.sln
### 3. بناء الحل```powershell
dotnet build BlockGuard.sln --configuration Release
يجب أن ترى:``` Build succeeded. 0 Warning(s) 0 Error(s)
### 4. تكوين المسارات المحمية والقواعد
قم بتعديل `src/BlockGuard.Agent/appsettings.json` لتحديد **الملفات التي يجب حمايتها** و **العمليات المصرح بها**:```json
{
"BlockGuard": {
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json"
],
"AuthorizedProcesses": [
{
"RuleName": "AI-Model-Inference-Engine",
"ExecutablePath": "C:\\Program Files\\MyAI\\inference.exe",
"MinimumIntegrityLevel": "Medium",
"RequireSignature": false
}
]
}
}
dotnet run --project src/BlockGuard.Agent
---
## ⚙️ الإعدادات
جميع الإعدادات موجودة في `src/BlockGuard.Agent/appsettings.json` ضمن قسم `"BlockGuard"`.
### المسارات المحمية
مصفوفة من الملفات أو المجلدات المراد حمايتها. تحمي المجلدات جميع الملفات بشكل متكرر.```json
"ProtectedPaths": [
"C:\\Secrets\\ai-model-keys",
"C:\\Secrets\\api-credentials.json",
"D:\\Confidential\\reports"
]
تحدد كل قاعدة المعايير التي يجب أن تطابقها عملية للحصول على الوصول. يجب مطابقة جميع الحقول غير الفارغة (منطق AND):
| الحقل | النوع | الوصف |
|---|---|---|
RuleName | string | اسم قابل للقراءة البشرية لهذه القاعدة (مستخدم في سجلات التدقيق) |
ExecutablePath | string? | المسار الكامل للملف التنفيذي المصرح به (غير حساس لحالة الأحرف) |
ExpectedFileHash | string? | تجزئة SHA-256 للملف التنفيذي (كشف العبث) |
ExpectedSignerSubject | string? | موضوع شهادة Authenticode (مثال: "CN=Contoso") |
MinimumIntegrityLevel | string | الحد الأدنى لمستوى سلامة Windows: Untrusted, Low, Medium, High, System |
RequireSignature | bool | إذا كان true، يجب أن يحتوي الملف التنفيذي على توقيع Authenticode صالح |