
منصة لإدارة الثغرات الأمنية تقوم باستيراد تقارير الماسحات الضوئية، وتثريها بذكاء CISA KEV و Exploit-DB، وتوفر تقييماً سياقياً للمخاطر لتحديد أولويات المعالجة.
منصة شاملة لإدارة الثغرات الأمنية تقوم بتحليل تقارير المسح الأمني، وإثراء بيانات الثغرات بمعلومات الاستغلالات، وتقديم تقييم للمخاطر قابل للتنفيذ من أجل تحديد أولويات المعالجة.
*** استخدام عملية إثراء CVE في التحميل الأول قد يبطئ عملية التحميل، حيث سيحاول فقط إثراء الثغرات المرفوعة التي تم وضع علامة عليها كقابلة للاستغلال من مسحك، ولكن يمكن أن يختلف التوقيت بشكل كبير حسب حجم الملف المرفوع.***

توفر لوحة التحكم نظرة عامة سريعة على وضعك الأمني من خلال:
تصفح الثغرات وتصفيتها وفرزها حسب:

عرض تفصيلي يتضمن:

الخيار أ: استخدام المثبّت
node --version
npm --version
الخيار ب: استخدام إصدار Node ثابت (موصى به)
nvm install 22.12.0
nvm use 22.12.0
الخيار ج: استخدام winget (مدير حزم Windows)
winget install OpenJS.NodeJS.LTS
winget install Git.Git
الخيار د: استخدام Chocolatey
choco install nodejs-lts
choco install git
باستخدام Homebrew:
brew install node
brew install git
أو قم بتنزيل المثبّت من https://nodejs.org
تحقق من التثبيت:
node --version
npm --version
# استخدام مستودع NodeSource لأحدث إصدار LTS
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs git
# تحقق
node --version
npm --version
macOS / Linux:
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (موجه الأوامر):
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (PowerShell):
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
جميع المنصات:
npm run install:all
أو التثبيت يدويًا:
macOS / Linux:
npm install
cd server && npm install
cd ../client && npm install
cd ..
Windows (موجه الأوامر):
npm install
cd server && npm install
cd ..\client && npm install
cd ..
Windows (PowerShell):
npm install
cd server; npm install
cd ..\client; npm install
cd ..
ملاحظة (Windows): إذا واجهت أخطاء مع
better-sqlite3، قد تحتاج إلى تثبيت أدوات بناء Windows:npm install --global windows-build-toolsأو قم بتثبيت أدوات بناء Visual Studio مع عبء عمل "Desktop development with C++" من https://visualstudio.microsoft.com/visual-cpp-build-tools/
وضع التطوير (مع إعادة التحميل الفوري) — جميع المنصات:
npm run dev
يؤدي هذا إلى بدء خادم الخلفية (المنفذ 3000) وخادم الواجهة الأمامية للتطوير (المنفذ 5173).
وضع الإنتاج — جميع المنصات:
# بناء العميل
npm run build
# بدء الخادم
npm start
افتح متصفحك وانتقل إلى:
http://localhost:5173http://localhost:3000عند التشغيل الأول، يتم إنشاء حساب مسؤول افتراضي:
adminAdmin123!سيُطلب منك تغيير كلمة المرور هذه عند أول تسجيل دخول.
exploit-mapper/
├── client/ # الواجهة الأمامية React
│ ├── src/
│ │ ├── components/ # مكونات واجهة المستخدم القابلة لإعادة الاستخدام
│ │ ├── pages/ # مكونات الصفحات
│ │ └── App.jsx # المكون الرئيسي للتطبيق
│ ├── package.json
│ └── vite.config.js
├── server/ # الخلفية Express
│ ├── src/
│ │ ├── db/ # مخطط قاعدة البيانات والاتصال
│ │ ├── middleware/ # الوسائط الوسيطة للمصادقة
│ │ ├── routes/ # مسارات API
│ │ └── services/ # منطق الأعمال
│ ├── data/ # قاعدة بيانات SQLite (ملف .gitignore)
│ ├── uploads/ # تخزين مؤقت للتحميل (ملف .gitignore)
│ └── package.json
├── package.json # جذر الحزمة مع البرامج النصية
├── .gitignore
├── LICENSE
├── CONTRIBUTING.md
└── README.md
| الطريقة |
|---|
| الطريقة | نقطة النهاية | الوصف |
|---|---|---|
GET | /api/reports | قائمة التقارير المرفوعة |
GET | /api/reports/:id/export | تصدير التقرير |
يكتشف Exploit Mapper تلقائيًا الأعمدة من الماسحات الضوئية المختلفة ويقوم بتعيينها:
يقوم المحلل بتعيين أسماء الأعمدة الشائعة تلقائيًا:
درجة المخاطرة = درجة CVSS + التعديلات
التعديلات:
+0.5 إذا كانت ضمن CISA KEV (مستغلة بنشاط)
+0.3 إذا كان استغلال عام متاح
الإجمالي = (أقصى مخاطرة × 30%) + (متوسط المخاطرة × 40%) + (متوسط القابل للاستغلال × 20%) + (الكثافة × 10%)
في حالة وجود CISA KEV: اضرب في 1.05
قم بإنشاء ملف .env في دليل server/ (اختياري — راجع server/.env.example):
PORT=3000
NODE_ENV=production
SESSION_SECRET=your-secret-key
يستخدم Exploit Mapper SQLite للتخزين بدون تكوين. يتم إنشاء قاعدة البيانات تلقائيًا في server/data/exploit-mapper.db عند التشغيل الأول.
Windows:
netstat -ano | findstr :3000
taskkill /PID <pid> /F
macOS / Linux:
lsof -i :3000
kill -9 <pid>
تتطلب هذه الوحدة الأصلية أدوات بناء C++:
:: الخيار 1: التثبيت عبر npm
npm install --global windows-build-tools
:: الخيار 2: تثبيت أدوات بناء Visual Studio
:: قم بالتنزيل من https://visualstudio.microsoft.com/visual-cpp-build-tools/
:: حدد عبء عمل "Desktop development with C++"
بعد التثبيت، احذف node_modules وأعد التثبيت:
cd server
rmdir /s /q node_modules
npm install
تأكد من تشغيل مثيل واحد فقط من الخادم. على Windows:
tasklist | findstr node
taskkill /IM node.exe /F
على macOS / Linux:
pkill -f "node.*index.js"
.csv أو .xlsx أو .xlsإذا فشل concurrently، حاول تشغيل الخادم والعميل بشكل منفصل في نافذتين طرفيتين:
الطرفية 1 (الخادم):
cd server
npm run dev
الطرفية 2 (العميل):
cd client
npm run dev
راجع CONTRIBUTING.md للحصول على إرشادات مفصلة.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)هذا المشروع مرخص بموجب رخصة MIT — راجع ملف LICENSE للحصول على التفاصيل.
| الطريقة | نقطة النهاية | الوصف |
|---|
POST | /api/auth/login | تسجيل دخول المستخدم |
POST | /api/auth/logout | تسجيل خروج المستخدم |
GET | /api/auth/me | الحصول على المستخدم الحالي |
POST | /api/auth/change-password | تغيير كلمة المرور |
| الطريقة | نقطة النهاية | الوصف |
|---|
GET | /api/dashboard/summary | مقاييس لوحة التحكم |
GET | /api/dashboard/risk | تفصيل المخاطر |
GET | /api/dashboard/trends | الاتجاهات التاريخية |
GET | /api/dashboard/executive-summary | ملخص تنفيذي |
| الطريقة | نقطة النهاية | الوصف |
|---|
GET | /api/vulnerabilities | القائمة (مع التصفية/الترقيم) |
GET | /api/vulnerabilities/:id | تفاصيل الثغرة |
GET | /api/vulnerabilities/exploitable | القابلة للاستغلال فقط |
GET | /api/vulnerabilities/stats/summary | الإحصائيات |
PATCH | /api/vulnerabilities/:id | تحديث الحالة |
PATCH | /api/vulnerabilities | تحديث جماعي |
POST | /api/vulnerabilities/manual | إضافة إدخال يدوي |
DELETE | /api/vulnerabilities/:id | حذف إدخال يدوي |
| نقطة النهاية |
|---|
| الوصف |
|---|
GET | /api/devices | قائمة الأجهزة |
GET | /api/devices/:id | تفاصيل الجهاز |
PATCH | /api/devices/:id | تحديث معلومات الجهاز |
| الطريقة |
|---|
| نقطة النهاية |
|---|
| الوصف |
|---|
POST | /api/upload | تحميل تقرير الثغرات |
GET | /api/upload/info | إحصائيات التحميل |
DELETE | /api/upload/clear | مسح جميع البيانات |
| الماسح | طريقة الكشف |
|---|
| Arctic Wolf | أعمدة risk_id، asset_category |
| Nessus/Tenable | عمود plugin_id |
| Qualys | عمود qid |
| OpenVAS | عمود nvt |
| Nexpose/Rapid7 | معرف nexpose |
| CSV/Excel عام | مطابقة ذكية لأسماء الأعمدة |
| الحقل | أسماء الأعمدة المعترف بها |
|---|
| CVE | cve, cves, cve_id, vulnerability_id |
| العنوان | name, title, vulnerability, plugin_name |
| الوصف | description, synopsis, summary |
| الحل | solution, remediation, fix, recommendation |
| الشدة | severity, risk_severity, risk_level |
| درجة CVSS | cvss, cvss_score, cvssv3_score |
| المضيف | hostname, asset_name, host_name, fqdn |
| عنوان IP | ip_address, host_ip, asset_ip |
| المكون | الوزن | الوصف |
|---|
| أقصى درجة مخاطرة | 30% | أعلى درجة مخاطرة لثغرة واحدة |
| متوسط درجة المخاطرة | 40% | المتوسط عبر جميع الثغرات |
| متوسط المخاطرة للقابلة للاستغلال | 20% | متوسط الثغرات القابلة للاستغلال فقط |
| عامل الكثافة | 10% | log10(total_vulns + 1) x 3 (الحد الأقصى 10) |