
ThreatSentry AI هي لوحة تحكم ذكية لصيد التهديدات تستخدم التعلم الآلي لتحديد المخاطر في شبكتك بشكل استباقي وتحديد أولوياتها. تعمل على أتمتة عملية جمع معلومات الأجهزة، وإثرائها ببيانات الثغرات الأمنية، وتقييم مستويات المخاطر، مما يمكّن فرق الأمن من التركيز على التهديدات الأكثر خطورة.
# ThreatSentry AI: أداة صيد التهديدات المدعومة بالذكاء الاصطناعي
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://www.qt.io/qt-for-python)
[](https://scikit-learn.org/)
[](https://www.sqlalchemy.org/)
> أتمتة اكتشاف الأصول الخارجية، وإثراء ذكي ببيانات متعددة المصادر، والاستفادة من التعلم الآلي الجماعي للتنبؤ بالمخاطر وترتيب أولوياتها. حوّل إرهاق التنبيهات إلى استخبارات قابلة للتنفيذ.
## 🚀 بيان المهمة
**ThreatSentry AI** تقضي على إرهاق تنبيهات الأمان وتُمكّن من صيد التهديدات الاستباقي من خلال ترتيب أولويات المخاطر الذكي. تجمع بين اكتشاف الأصول الآلي، وإثراء البيانات متعددة المصادر، والتعلم الآلي المتقدم لتحويل بيانات الأمان الخام إلى استخبارات قابلة للتنفيذ.
---
## 👨💻 المؤلف والإشادات
**قائد المشروع:** EclipseManic
**ملاحظة التطوير:** تم تصميم وتطوير منصة الأمان المؤسسية الشاملة هذه بواسطة مطور واحد بمساعدة أدوات تطوير الذكاء الاصطناعي لتوليد الكود وتحسينه وتوثيقه - مما يثبت جدوى هندسة البرمجيات المعززة بالذكاء الاصطناعي للأنظمة المعقدة.
---
## 📋 الملخص التنفيذي
تواجه فرق الأمان الحديثة تحديات غير مسبوقة:
- **إرهاق التنبيهات**: آلاف التنبيهات يوميًا مع نسب إشارة إلى ضوضاء تجعل المعالجة اليدوية مستحيلة
- **البيانات المجزأة**: سياق حاسم موزع عبر SIEM وCMDB وأنظمة التصحيح ومراقبة الشبكة
- **الوضع التفاعلي**: الاستجابة للتهديدات المعروفة بدلاً من صيد المخاطر الناشئة
- **قيود الموارد**: ميزانيات وأفراد محدودون في بنية تحتية متزايدة التعقيد
**ThreatSentry AI** تحل هذه المشكلات من خلال:
1. **اكتشاف الأصول الخارجية الآلي** عبر واجهة Shodan API للرؤية المستمرة
2. **الإثراء الذكي متعدد المصادر** من NVD والأنظمة الداخلية وتحليلات السلوك
3. **تسجيل المخاطر المدعوم بالتعلم الآلي** باستخدام نماذج جماعية لترتيب أولويات التهديدات بدقة
4. **لوحات تحكم تنفيذية جاهزة** لاستخبارات قابلة للتنفيذ واستجابة سريعة
5. **تنبيهات استباقية** تكشف الأصول عالية المخاطر قبل وقوع الحوادث
---
## ✨ الميزات الأساسية
### 🤖 محرك تسجيل المخاطر الذكي
- **نموذج التعلم الآلي الجماعي**: يجمع بين Random Forest وGradient Boosting والشبكات العصبية لتصنيف المخاطر بشكل قوي
- **تحليل متعدد العوامل**: يقيم أكثر من 40 سمة أمان وأعمال تتجاوز عدد الثغرات البسيطة:
- **السياق الزمني**: مدة التعرض، تأخير التصحيح، تاريخ الحوادث
- **الموقع الشبكي**: حالة الخدمة الحرجة، قطاع الشبكة، حماية جدار الحماية
- **الإشارات السلوكية**: فشل المصادقة، حالات الشذوذ في حركة المرور، تاريخ الإنذارات الكاذبة
- **تأثير الامتثال**: حساسية البيانات، المتطلبات التنظيمية، الأصول الحرجة المتصلة
- **تسجيل الثقة**: يتضمن كل تنبؤ مقياس ثقة (0-1) للمحللين لتقييم الموثوقية
- **التعلم المستمر**: يعاد تدريب النموذج تلقائيًا على فترات زمنية قابلة للتكوين مع دمج التغذية الراجعة
### 🌐 اكتشاف الأصول الآلي ودمج الاستخبارات
- **التكامل مع Shodan**: اكتشاف مستمر للأجهزة المتصلة بالإنترنت مع دعم الاستعلامات المتقدمة
- استعلامات مسبقة الإعداد لسيناريوهات شائعة (شهادات SSL، خدمات RDP، ICS/Modbus، إلخ.)
- دعم الاستعلامات المخصصة لصيد الأصول الخاص بالمؤسسة
- **إثراء NVD**: الربط التلقائي بـ CVE باستخدام تحليل لافتات ذكي
- استخراج خدمات اللافتات التي تدعم أكثر من 14 نوع منتج (Apache، Nginx، MySQL، IIS، إلخ.)
- تسجيل CVSS وتصنيف الشدة
- يمنع فقدان البيانات: يُحدث مقاييس CVE فقط عند العثور على ثغرات
- **تكامل البيانات الداخلية** (بنية قابلة للتوسع لبيئتك):
- **جامع CMDB**: تصنيف الأصول، مستويات الحرجة، علامات الامتثال
- **جامع SIEM**: المقاييس السلوكية، أنماط المصادقة، درجات الحالات الشاذة
- **جامع إدارة التصحيح**: حداثة التصحيحات، التحديثات المفقودة، تحليل تأخير التصحيح
- **جامع مراقبة الشبكة**: أنماط حركة المرور، كشف DDoS، درجات الحالات الشاذة
- **قاعدة بيانات موحدة**: SQLite مع أكثر من 40 عمودًا مفهرسًا للاستعلام وإعداد التقارير بكفاءة
### 📊 لوحة التحكم التنفيذية وأدوات التحليل
- **واجهة رسومية مبنية على PyQt5** مع دعم السمة الداكنة/الفاتحة:
- تصور توزيع المخاطر في الوقت الفعلي (مخططات أعمدة باستخدام Matplotlib)
- جدول أجهزة قابل للفرز والتصفية مع مؤشرات مخاطر ملونة
- تصفية سريعة حسب المؤسسة، البلد، مستوى المخاطرة
- بحث تلقائي عبر حقول IP، المؤسسة، البلد، المخاطرة
- **فحص تفاعلي للجهاز**:
- قائمة تفصيلية بالثغرات مع درجات CVSS
- الجدول الزمني للثغرات والتتبع التاريخي
- تحليل عوامل المخاطرة الذي يشرح التسجيل
- **العمليات الجماعية**:
- تشغيل عمليات المسح اليدوي (Shodan + إثراء NVD)
- استيراد بيانات CSV/JSON مع التحقق من الحقول
- إعادة تدريب النموذج مع مقاييس الأداء
- إرسال التنبيهات اليدوية للتحقق من التكوينات
- **لوحة التحليلات** (متقدم):
- اتجاهات توزيع المخاطر
- تحليل تأثير CVE
- مقاييس الثغرات حسب المؤسسة
### 📧 التنبيهات البريدية الاستباقية
- **التكامل مع SendGrid**: إشعارات بريد إلكتروني تلقائية بتنسيق HTML للأصول عالية المخاطر
- يتم تشغيلها فور تغيير تصنيف المخاطر (منخفض/متوسط → مرتفع)
- يمنع التنبيهات المكررة من خلال تتبع حالة "تم الإبلاغ"
- **محتوى تنبيه غني**:
- ملخص تنفيذي مع درجة المخاطرة والثقة
- قائمة تفصيلية بالثغرات (أعلى N حسب CVSS)
- تحليل عوامل المخاطرة لسياق فريق الأمان
- توصيات علاجية قابلة للتنفيذ
- **تكوين مرن**: تحديد مستلمي التنبيهات، قوالب البريد الإلكتروني، شروط التشغيل
#### عينة من بريد التنبيه
![قالب بريد تنبيه أمان آلي]
<img width="1494" height="1010" alt="لقطة شاشة 2026-01-10 160955" src="https://assets.kitploit.com/production/public/readmes/12691/c0657005c5d30b0fa011eae117dfdbf047e0e87b1568477dba27ffa7a1bb0c28.png" />
*بريد إلكتروني بتنسيق HTML يحتوي على ملخص المخاطر وتفاصيل CVE وإرشادات العلاج المرسلة عبر SendGrid*
### 📈 شفافية النموذج والتحسين المستمر
- **مراقبة الأداء**:
- تتبع الدقة عبر مراحل التدريب
- مصفوفة الارتباك وتقارير التصنيف
- تحليل أهمية الميزات لفهم قرارات النموذج
- مؤشرات كشف الانجراف في البيانات
- **حلقة التغذية الراجعة**:
- تصحيحات يدوية لتصنيف المخاطر من قبل المحللين
- تتبع الإيجابيات الحقيقية/الإيجابيات الكاذبة
- تعديلات أوزان النموذج بناءً على التغذية الراجعة
- جدول إعادة تدريب تلقائي مع تسجيل البيانات الوصفية
### ⚡ الأداء والموثوقية
- **محسّن للتوسع**:
- فهرسة قاعدة البيانات على أكثر من 5 أعمدة للاستعلامات دون ملي ثانية
- تخزين مؤقت للنتائج للبيانات التي يتم الوصول إليها بشكل متكرر (تسريع 28.7x)
- ترقيم الصفحات مع زر "تحميل المزيد" لمجموعات البيانات الكبيرة (50 صفًا في البداية + زيادات 50 صفًا)
- واجهة مستخدم غير مانعة للتفاعل مع خيوط العمل (QThread، ThreadPoolExecutor)
- **معالجة قوية للأخطاء**:
- منطق إعادة المحاولة بالتراجع الأسي لفشل API (Shodan، NVD، SendGrid)
- تدهور تدريجي إذا كانت الخدمات الاختيارية غير متاحة
- تسجيل شامل مع تدوير الملفات
- بنية إشارة/فتيل آمنة للخيوط تمنع حالات السباق
- **كفاءة في استخدام الذاكرة**:
- جمع القمامة بعد عرض المخططات
- علامات تبويب واجهة المستخدم المحملة بتكاسل لتقليل وقت بدء التشغيل
- مديري سياق الجلسة يضمنون التنظيف السليم
---
## � نظرة عامة مرئية
### لوحة التحكم الرئيسية
![لوحة تحكم ThreatSentry AI - واجهة صيد التهديدات الرئيسية]
<img width="1489" height="867" alt="لقطة شاشة 2026-01-10 153154" src="https://assets.kitploit.com/production/public/readmes/12691/4434b49605f7cf7633975817fe32996a292a1d7a8a0fceef3b195b24e4cf28a9.png" />
*تصور المخاطر في الوقت الفعلي مع جدول أجهزة قابل للفرز ومخطط أعمدة توزيع المخاطر*
### جدول تقييم مخاطر الأجهزة
![جدول الأجهزة مع مؤشرات المخاطر]
<img width="523" height="513" alt="image" src="https://assets.kitploit.com/production/public/readmes/12691/b9615c5023dfd7875549a0151d2dfe1ddb88bd99299f2a755c03207ed6553462.png" />
*قائمة الأجهزة القابلة للفرز والتصفية مع مستويات مخاطرة ملونة (أخضر=منخفض، أصفر=متوسط، أحمر=مرتفع)*
### لوحة التصفية المتقدمة
![مرشحات متقدمة - نطاق CVSS، المؤسسة، البلد، مستوى المخاطرة]
*عناصر تحكم تصفية قوية مع مرشحات نطاق CVSS والمؤسسة والبلد ومستوى المخاطرة + زر "مسح الكل"*
- **مرشح نطاق CVSS**: ضبط الحد الأدنى والحد الأقصى لدرجات CVSS (0-10) للتركيز على مستويات شدة محددة
- **مرشح المؤسسة**: تصفية سريعة حسب مؤسسة معينة من قائمة منسدلة تضم جميع المؤسسات في قاعدة البيانات الخاصة بك
- **مرشح البلد**: تصفية حسب الموقع الجغرافي لتحديد المخاطر الإقليمية
- **مرشح مستوى المخاطرة**: عرض الأجهزة عالية أو متوسطة أو منخفضة أو الكل للتحليل المركّز
- **زر مسح الكل**: إعادة تعيين جميع المرشحات بقيمة واحدة إلى القيم الافتراضية لعرض مجموعة البيانات الكاملة مرة أخرى
- **تطبيق المرشحات**: تطبيق جميع المرشحات المحددة فورًا مع انعكاس النتائج في الوقت الفعلي
### قدرة البحث في قاعدة البيانات بالكامل
![إدخال البحث - بحث متعدد الأعمدة عبر قاعدة البيانات بالكامل]
*بحث ذكي يغطي قاعدة بيانات الأجهزة بأكملها، وليس فقط الصفوف المعروضة حاليًا*
- **بحث شامل**: البحث عبر عناوين IP وأسماء المؤسسات والدول ومستويات المخاطرة
- **الكشف التلقائي عن IP**: يكتشف تلقائيًا تنسيق عنوان IP ويبحث وفقًا لذلك
- **تغطية قاعدة البيانات بالكامل**: تشمل نتائج البحث جميع الأجهزة في قاعدة البيانات، وليس فقط أول 50 صفًا
- **نتائج في الوقت الفعلي**: تأخير 300 مللي ثانية مع إلغاء الاستجابة دون تأثير على الأداء
- **التكامل مع ترقيم الصفحات**: نتائج البحث تحترم نظام ترقيم الصفحات للتحميل الفعال
### ترقيم الصفحات الذكي ودعم مجموعات البيانات الكبيرة
![زر تحميل المزيد - عناصر التحكم في ترقيم الصفحات]
*نظام ترقيم صفحات محسّن للتعامل مع آلاف الأجهزة بكفاءة*
- **عرض افتراضي 50 صفًا**: يتم تحميل لوحة التحكم مع أول 50 جهازًا للعرض السريع
- **التحميل التدريجي**: زر "تحميل المزيد (50 صفًا)" يسمح بالتحميل المتزايد دون انتهاء المهلة
- **كفاءة الذاكرة**: يعرض الصفوف المطلوبة فقط؛ لا يقوم أبدًا بتحميل مجموعة البيانات بأكملها في الذاكرة
- **أداء محسّن**: واجهة غير مانعة للتفاعل تمنع التجميد عند تحميل مجموعات البيانات الكبيرة
- **مؤشر الحالة**: يعرض "إظهار X من Y جهازًا" للشفافية حول إجمالي البيانات المتاحة
- **التكامل مع البحث**: تعمل مرشحات البحث بسلاسة مع ترقيم الصفحات للحصول على نتائج سريعة
### لوحة التحليلات وإعداد التقارير
![علامة تبويب التحليلات - اتجاهات المخاطر وتحليل CVE]
<img width="1494" height="651" alt="لقطة شاشة 2026-01-10 153300" src="https://assets.kitploit.com/production/public/readmes/12691/5ed600044786e56ec57a34f2eb31158b94385a447c089f38e40f570e7f97464e.png" />
*اتجاهات المخاطر التاريخية وتحليل الثغرات ومقاييس الأمان حسب المؤسسة*
### الأدوات والتكوين
![علامة تبويب الأدوات - حالة النموذج وتصدير البيانات]
<img width="1494" height="638" alt="لقطة شاشة 2026-01-10 153240" src="https://assets.kitploit.com/production/public/readmes/12691/0bfdbafa353305856901bb9d0837ddc35b0e553165a321972e0d6bb2390ecb78.png" />
*معلومات تدريب النموذج ومقاييس الأداء وتصدير البيانات وخيارات التصفية المتقدمة*
### إشعارات التنبيه البريدية
<img width="796" height="632" alt="لقطة شاشة 2026-01-10 153939" src="https://assets.kitploit.com/production/public/readmes/12691/2867d53260eaff60fa6db56e358a246c5ec08459ef47e2e52fae8c67fee879da.png" />
![بريد تنبيه أمان آلي]
*بريد إلكتروني بتنسيق HTML مع ملخص تنفيذي وتفاصيل الثغرات وإرشادات العلاج*
### سير عمل المسح اليدوي
![حوار تشغيل المسح]
<img width="505" height="152" alt="لقطة شاشة 2026-01-10 153710" src="https://assets.kitploit.com/production/public/readmes/12691/9e1de4ddbf1578f6bec48a5a1591e27ab9302401750cf4bc748240cd90d1c373.png" />
*تنفيذ Shodan + إثراء NVD مع تقارير الأخطاء التفصيلية ومؤشر التقدم*
---
## 🛠️ مجموعة التكنولوجيا
| الطبقة | التقنيات |
|--------|----------|
| **الخلفية** | Python 3.9+, SQLAlchemy ORM, APScheduler |
| **التعلم الآلي / الذكاء الاصطناعي** | Scikit-learn (Random Forest, Gradient Boosting, MLP), NumPy, Joblib |
| **الواجهة الأمامية** | PyQt5, Matplotlib, مدير السمات المخصص |
| **البيانات** | Pandas, NumPy, SQLite3 |
| **واجهات برمجة التطبيقات** | Shodan, NVDLib, SendGrid, Requests |
| **الأدوات المساعدة** | Python-dotenv, وحدة التسجيل, إدارة التكوين |
---
## 🏗️ الهندسة المعمارية وتدفق البيانات```
┌─────────────────────────────────────────────────────────────┐
│ ThreatSentry AI │
├─────────────────────────────────────────────────────────────┤
│ Scheduler (APScheduler) │
├──────────┬──────────────┬──────────────┬───────────┬─────────┤
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
Shodan NVD Lib CMDB SIEM Patch Network
Collector Collector Collector Collector Mgmt Monitor
│ │ │ │ │
└──────────────┴──────────────┴───────────┴─────────┘
│
▼
┌─────────────────┐
│ SQLite DB │
│ (40+ Columns) │
└────────┬────────┘
│
┌──────────────────┼──────────────────┐
▼ ▼ ▼
Feature Engine Model Training Predictions
│ │ │
└─────────┬───────┴──────────┬──────┘
▼ ▼
┌──────────────────────┐
│ Ensemble Model │
│ (RF + GB + MLP) │
└──────────┬───────────┘
│
┌────────────┼────────────┐
▼ ▼ ▼
PyQt5 GUI Email Alerts Analytics
```
### خط أنابيب معالجة البيانات
1. **مرحلة الاكتشاف** (فاصل زمني قابل للتكوين، الافتراضي 30 دقيقة)
- مسح Shodan باستعلامات قابلة للتكوين
- إثراء من NVD مع ربط CVE
- إثراء النظام الداخلي للسياق
2. **مرحلة التحليل**
- هندسة الميزات من 40+ سمة
- تنبؤ النموذج الجماعي (Random Forest 40% + Gradient Boosting 40% + MLP 20%)
- توليد تصنيف المخاطر (0=منخفض, 1=متوسط, 2=مرتفع)
- تسجيل الثقة
3. **مرحلة التنبيه**
- التحقق من الأصول الجديدة عالية المخاطر
- إنشاء وإرسال تنبيهات البريد الإلكتروني عبر SendGrid
- تحديث حالة الإشعار
4. **إعادة تدريب النموذج** (فاصل زمني قابل للتكوين، الافتراضي 60 دقيقة)
- تحميل جميع البيانات التاريخية
- استخراج الميزات
- تدريب النموذج الجماعي بأوزان فئات متوازنة
- التحقق من مقاييس الأداء
- حفظ البيانات الوصفية للتدقيق
---
## 📋 البدء
### المتطلبات الأساسية
- **Python**: 3.9 أو أحدث
- **مفاتيح API** (مطلوبة):
- مفتاح Shodan API (https://www.shodan.io/)
- مفتاح SendGrid API (https://sendgrid.com/) - لتنبيهات البريد الإلكتروني
- **مفاتيح API اختيارية** (لإثراء محسّن):
- نقطة نهاية CMDB وبيانات الاعتماد
- نقطة نهاية SIEM وبيانات الاعتماد
- نقطة نهاية نظام إدارة التصحيح وبيانات الاعتماد
- نقطة نهاية مراقبة الشبكة وبيانات الاعتماد
### التثبيت
#### الخطوة 1: استنساخ المستودع```bash
git clone https://github.com/EclipseManic/ThreatSentry-AI.git
cd ThreatSentry-AI
```
#### الخطوة 2: إنشاء بيئة افتراضية```bash
# On Windows
python -m venv .venv
.venv\Scripts\activate
# On macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
```
#### الخطوة 3: تثبيت التبعيات```bash
pip install -r requirements.txt
```
#### الخطوة الرابعة: تكوين البيئة
قم بإنشاء ملف `.env` في جذر المشروع:```bash
cp .env.example .env # If provided, or create new
```
حرر `.env` باستخدام بيانات اعتمادك:```ini
# Required - Threat Discovery
SHODAN_API_KEY=your_shodan_api_key_here
SHODAN_QUERY= # Leave empty to use presets
SHODAN_QUERY_EMPTY_TO_PRESET=True # Use preset queries when SHODAN_QUERY is empty
# Optional - Email Alerts
SENDGRID_API_KEY=your_sendgrid_key_here
[email protected] # Must be verified in SendGrid
[email protected],[email protected]
# Optional - Internal Enrichment (Implement in collectors/)
CMDB_API_ENDPOINT=https://cmdb.internal/api
CMDB_API_KEY=your_cmdb_key
SIEM_API_ENDPOINT=https://siem.internal/api
SIEM_API_KEY=your_siem_key
# Configuration
SCAN_INTERVAL_MINUTES=30 # How often to scan for new assets
RETRAIN_INTERVAL_MINUTES=60 # How often to retrain the model
MAX_SHODAN_RESULTS=50 # Results per Shodan query
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
# Paths (Optional)
SQLITE_PATH=data/db/threat_sentric_ai.db
MODEL_PATH=data/models/rf_model.pkl
LOG_FILE_PATH=data/logs/threat_sentric_ai.log
```
#### الخطوة 5: تهيئة قاعدة البيانات```bash
python -c "from data import init_db; init_db()"
```
#### الخطوة 6: تشغيل التطبيق```bash
python run.py
```
سيتم تشغيل لوحة التحكم مع تشغيل المجدول في الخلفية.
---
## 🚀 دليل الاستخدام
### نظرة عامة على مكونات لوحة التحكم
![واجهة لوحة التحكم الرئيسية مع جميع علامات التبويب]
*نظرة عامة، تحليلات، وأدوات علامات تبويب لتقييم شامل للتهديدات*
### 1. جدول الأجهزة والاكتشاف
![مرشحات المؤسسة والدولة مع قائمة الأجهزة]
*جدول أجهزة قابل للفرز مع مؤشرات مخاطر مرمزة بالألوان (أخضر=منخفض، أصفر=متوسط، أحمر=مرتفع)*
- **الترميز اللوني**: تقييم مرئي فوري للمخاطر
- **قابل للفرز/الفلترة**: انقر على رؤوس الأعمدة أو استخدم مرشح البحث السريع
- **تحديثات فورية**: يتم تحديث لوحة التحكم عند اكتشاف تهديدات جديدة
### 2. مخطط توزيع المخاطر
![مخطط شريطي لتوزيع المخاطر]
*تصور الوضع الأمني العام مع عدد الأجهزة حسب مستوى المخاطر*
- يظهر عدد الأجهزة عبر جميع فئات المخاطر
- يتم التحديث في الوقت الفعلي مع تغير تنبؤات النموذج
- يحدد النقاط الساخنة الأمنية التي تتطلب اهتمامًا فوريًا
### 3. أزرار الإجراءات الرئيسية
- **Scan Now**: تشغيل يدوي لإثراء Shodan + NVD مع تقارير مفصلة عن الأخطاء
- **Refresh**: تحديث لوحة التحكم من أحدث حالة لقاعدة البيانات
- **Upload Data**: استيراد مجمع لملفات CSV/JSON مع معلومات الأجهزة
- **Train Model**: إعادة تدريب يدوي للنموذج الجماعي بالبيانات الحالية
### الميزات المتقدمة
#### علامة تبويب التحليلات
![لوحة التحليلات - اتجاهات المخاطر والمقاييس]
- اتجاهات مخاطر مفصلة على مر الزمن مع تحليل تاريخي
- تحديد الخدمات الأكثر عرضة للثغرات
- مقاييس ومقارنات مخاطر حسب المؤسسة
- تحليل تأثير CVEs واتجاهات الثغرات
#### علامة تبويب الأدوات
 للإرشادات.
مجالات التحسين:
- إضافات إضافية لجمع البيانات (التكامل مع Nessus، Tenable، Qualys)
- واجهة Web API للوصول البرمجي
- دعم متعدد المستخدمين مع صلاحيات قائمة على الأدوار
- تصورات متقدمة (التكامل مع Grafana/ELK)
- دعم النشر على Kubernetes
---
## 📄 الترخيص
هذا المشروع مرخص بموجب رخصة MIT—اطّلع على ملف [LICENSE](https://github.com/eclipsemanic/threatsentry-ai/blob/main/LICENSE) للتفاصيل.
---
## 📞 الدعم والاتصال
- **المشكلات**: GitHub Issues لتقارير الأخطاء وطلبات الميزات
- **التوثيق**: راجع دليل [docs/](https://github.com/eclipsemanic/threatsentry-ai/blob/main/docs) للحصول على توثيق فني مفصل
- **البريد الإلكتروني**: معلومات المُشرِف في [CODE_OF_CONDUCT.md](https://github.com/eclipsemanic/threatsentry-ai/blob/main/CODE_OF_CONDUCT.md)
---
## 🙏 شكر وتقدير
- **Shodan**: لاكتشاف الأجهزة المتصلة بالإنترنت بشكل شامل
- **NVD/NIST**: للبيانات الموثوقة عن الثغرات
- **Scikit-learn**: مكتبات تعلم آلي قوية وتوثيقها
- **PyQt5**: إطار عمل واجهة مستخدم ممتاز
- **المجتمع**: جميع المساهمين والمستخدمين الذين قدموا ملاحظات
---
**صُنع بحب ❤️ بواسطة EclipseManic | تأمين بنية الغد التحتية اليوم**
pip install -r requirements.txt```
---
## 🔐 Configuration
### 1. Environment Variables (`.env` file)
Create a `.env` file in the root directory with the following structure:
```bash
# --- مفتاح Shodan API (مطلوب) ---
SHODAN_API_KEY="YOUR_SHODAN_API_KEY"
# --- تنبيهات البريد الإلكتروني عبر SendGrid (مطلوب) ---
SENDGRID_API_KEY="YOUR_SENDGRID_API_KEY"
SENDER_EMAIL="[email protected]"
ALERT_RECIPIENTS="[email protected],[email protected]"
# --- قاعدة البيانات ---
SQLITE_PATH="threat_sentric_ai.db"
# --- النموذج ---
MODEL_PATH="threatsentry_model.pkl"
# --- المجدول ---
SCAN_INTERVAL_MINUTES="30"
RETRAIN_INTERVAL_MINUTES="60"
RETRAIN_ON_SCHEDULE="True"
# --- التحكم في سلوك استعلام Shodan ---
SHODAN_QUERY=""
SHODAN_QUERY_EMPTY_TO_PRESET="True"
# --- التسجيل ---
LOG_LEVEL="INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL
# --- بيانات اعتماد النظام الداخلية (اختياري - أضف حسب الحاجة لمجمعاتك) ---
# CMDB_API_ENDPOINT="..."
# CMDB_API_KEY="..."
# SIEM_API_ENDPOINT="..."
# SIEM_API_KEY="..."
# PATCH_API_ENDPOINT="..."
# PATCH_API_KEY="..."
# NETWORK_MONITOR_ENDPOINT="..."
# NETWORK_MONITOR_KEY="..."```
> The app loads environment variables via `os.getenv()` in `config.py`.
> Never commit this file to version control.
---
## 🔍 Shodan Query Presets (`config.py`)
Modify the `SHODAN_QUERIES` dictionary to define your custom query presets:
```python
SHODAN_QUERIES = {
"default": "product:apache",
"org": 'org:"Your Company Name"',
"net": 'net:"123.45.67.0/24"',
"ssl": 'ssl:"yourcompany.com"',
"hostname": 'hostname:".yourcompany.com"',
"rdp": 'port:3389 "remote desktop"',
"mongodb": 'port:27017 "mongodb"',
"ics_modbus": 'port:502 "modbus"',
"vuln_example": 'vuln:CVE-2024-12345',
"http_login": 'http.title:"Login" org:"Your Company"'
}```
If `SHODAN_QUERY` in `.env` is empty **and** `SHODAN_QUERY_EMPTY_TO_PRESET=True`,
the scheduler will automatically cycle through these presets.
---
## 🧠 Implementing Internal Collectors
> ⚠️ **Important:** The internal collectors (`cmdb_collector.py`, `siem_collector.py`, `patch_collector.py`, `network_monitor_collector.py`) are **placeholders**.
> Replace the placeholder logic with real integrations to your systems.
You’ll need to:
- Fetch internal data using APIs, databases, or SDKs.
- Map fetched data to the `Device` model attributes.
- Update the database session with this enriched information.
Without these integrations, the model will lack context for accurate predictions.
---
## 🧪 Running the Application
### (Optional) Generate Initial Training Data
```bash
python scripts/generate_realistic_training_data.py --count 1000```
Creates `scripts/my_training_data.json`.
You can upload this file through the GUI’s **Upload** option to initialize training data.
### Launch the Application
```bash
python run.py```
The GUI will open and the scheduler will start scanning, enriching, and predicting automatically.
---
## ⚡ Quick Demo with Generated Data
1. Complete installation (steps 1–3).
2. Set up your `.env` file (even with placeholder keys).
3. Optionally adjust Shodan presets in `config.py`.
4. Generate data:
```bash
python scripts/generate_realistic_training_data.py --count 500 ```
5. Launch the app:
```bash
python run.py ```
6. In the GUI:
- Select **Upload** → Choose `scripts/my_training_data.json`
- Click **Refresh** to view populated device data and risk levels.
---
## 🛠️ Scripts and Usage Guide
| Script | Description |
|--------|--------------|
| **run.py** | Main entry point. Starts DB, scheduler, and GUI. |
| **scheduler.py** | Handles periodic scanning, enrichment, prediction, and retraining. |
| **scripts/generate_realistic_training_data.py** | Generates realistic training data for testing or bootstrapping. |
| **scripts/clear_db_enhanced.py** | Interactively clean database or reset notification flags. |
| **scripts/reset_db.py** | Completely resets the database. Use with caution. |
### Example Commands
```bash
# إنشاء 1000 سجل
python scripts/generate_realistic_training_data.py --count 1000
# عرض خيارات التنظيف
python scripts/clear_db_enhanced.py --help
# حذف جميع الأجهزة والثغرات
python scripts/clear_db_enhanced.py --delete-devices --delete-vulns
# إعادة تعيين علامة الإشعار
python scripts/clear_db_enhanced.py --reset-notified
# إعادة تعيين كاملة خطيرة
python scripts/reset_db.py```
---
## 💬 Feedback & Suggestions
This project was developed by **EclipseManic**.
While code contributions are currently closed, your **feedback and bug reports** are highly appreciated.
Please open an [Issue](https://github.com/EclipseManic/ThreatSentry-AI/issues) to share your thoughts or report a problem.
---
## 📄 License
This project is licensed under the **MIT License**.
See the [LICENSE](https://github.com/eclipsemanic/threatsentry-ai/blob/main/LICENSE) file for details.