
Plateforme de gestion des vulnérabilités qui importe les rapports des scanners, les enrichit avec les renseignements de CISA KEV et d'Exploit-DB, et fournit une notation contextuelle des risques pour une correction priorisée.
Une plateforme complète de gestion des vulnérabilités qui analyse les rapports de scans de sécurité, enrichit les données de vulnérabilités avec des informations sur les exploits, et fournit une notation des risques exploitable pour une correction priorisée.
*** L’utilisation du processus d’enrichissement CVE lors du premier téléchargement peut ralentir le processus de téléchargement. Il ne tentera d’enrichir que les vulnérabilités téléchargées marquées comme exploitables dans vos scans, mais les temps peuvent varier considérablement en fonction de la taille du fichier téléchargé.***

Le tableau de bord offre une vue d’ensemble de votre posture de sécurité avec :
Parcourez, filtrez et triez les vulnérabilités par :

Vue détaillée incluant :

Option A : Utilisation de l’installateur
node --version
npm --version
Option B : Utilisation d’une version stable de Node (recommandé)
nvm install 22.12.0
nvm use 22.12.0
Option C : Avec winget (Gestionnaire de paquets Windows)
winget install OpenJS.NodeJS.LTS
winget install Git.Git
Option D : Avec Chocolatey
choco install nodejs-lts
choco install git
Avec Homebrew :
brew install node
brew install git
Ou téléchargez l’installateur depuis https://nodejs.org
Vérifiez l’installation :
node --version
npm --version
# Utilisation du dépôt NodeSource pour la dernière LTS
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs git
# Vérification
node --version
npm --version
macOS / Linux :
git clone https://github.com/jrokz2315/exploit-mapper.git
cd exploit-mapper
Windows (Invite de commandes) :
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
Toutes les plateformes :
npm run install:all
Ou installer manuellement :
macOS / Linux :
npm install
cd server && npm install
cd ../client && npm install
cd ..
Windows (Invite de commandes) :
npm install
cd server && npm install
cd ..\client && npm install
cd ..
Windows (PowerShell) :
npm install
cd server; npm install
cd ..\client; npm install
cd ..
Remarque (Windows) : Si vous rencontrez des erreurs avec
better-sqlite3, vous devrez peut-être installer les outils de construction Windows :npm install --global windows-build-toolsOu installez Visual Studio Build Tools avec la charge de travail « Développement Desktop en C++ » depuis https://visualstudio.microsoft.com/visual-cpp-build-tools/
Mode développement (avec rechargement à chaud) — toutes les plateformes :
npm run dev
Cela démarre à la fois le serveur backend (port 3000) et le serveur frontend de développement (port 5173).
Mode production — toutes les plateformes :
# Construire le client
npm run build
# Démarrer le serveur
npm start
Ouvrez votre navigateur et allez à :
http://localhost:5173http://localhost:3000Au premier lancement, un compte administrateur par défaut est créé :
adminAdmin123!Vous serez invité à changer ce mot de passe lors de la première connexion.
exploit-mapper/
├── client/ # Frontend React
│ ├── src/
│ │ ├── components/ # Composants UI réutilisables
│ │ ├── pages/ # Composants de page
│ │ └── App.jsx # Composant principal de l’application
│ ├── package.json
│ └── vite.config.js
├── server/ # Backend Express
│ ├── src/
│ │ ├── db/ # Schéma et connexion de la base de données
│ │ ├── middleware/ # Middleware d’authentification
│ │ ├── routes/ # Routes API
│ │ └── services/ # Logique métier
│ ├── data/ # Base de données SQLite (gitignored)
│ ├── uploads/ # Stockage temporaire des téléchargements (gitignored)
│ └── package.json
├── package.json # Package racine avec les scripts
├── .gitignore
├── LICENSE
├── CONTRIBUTING.md
└── README.md
| Méthode | Point d’accès | Description |
|---|---|---|
POST | /api/auth/login | Connexion utilisateur |
POST | /api/auth/logout | Déconnexion utilisateur |
GET | /api/auth/me | Obtenir l’utilisateur actuel |
POST | /api/auth/change-password | Changer le mot de passe |
| Méthode | Point d’accès | Description |
|---|---|---|
GET | /api/dashboard/summary | Métriques du tableau de bord |
GET | /api/dashboard/risk | Répartition des risques |
GET | /api/dashboard/trends | Tendances historiques |
GET | /api/dashboard/executive-summary | Résumé exécutif |
| Méthode | Point d’accès | Description |
|---|---|---|
GET | /api/vulnerabilities | Liste (avec filtrage/pagination) |
GET | /api/vulnerabilities/:id | Détails d’une vulnérabilité |
GET | /api/vulnerabilities/exploitable | Uniquement les exploitables |
GET | /api/vulnerabilities/stats/summary | Statistiques |
PATCH | /api/vulnerabilities/:id | Mettre à jour le statut |
PATCH | /api/vulnerabilities | Mise à jour en masse |
POST | /api/vulnerabilities/manual | Ajouter une entrée manuelle |
DELETE | /api/vulnerabilities/:id | Supprimer une entrée manuelle |
| Méthode | Point d’accès | Description |
|---|---|---|
GET | /api/devices | Lister les appareils |
GET | /api/devices/:id | Détails d’un appareil |
PATCH | /api/devices/:id | Mettre à jour les infos d’un appareil |
| Méthode | Point d’accès | Description |
|---|---|---|
POST | /api/upload | Télécharger un rapport de vulnérabilités |
GET | /api/upload/info | Statistiques des téléchargements |
DELETE | /api/upload/clear | Effacer toutes les données |
| Méthode | Point d’accès | Description |
|---|---|---|
GET | /api/reports | Lister les rapports téléchargés |
GET | /api/reports/:id/export | Exporter un rapport |
Exploit Mapper détecte et mappe automatiquement les colonnes de divers scanners de vulnérabilités :
| Scanner | Méthode de détection |
|---|---|
| Arctic Wolf | Colonnes risk_id, asset_category |
| Nessus/Tenable | Colonne plugin_id |
| Qualys | Colonne qid |
| OpenVAS | Colonne nvt |
| Nexpose/Rapid7 | Identifiant nexpose |
| CSV/Excel générique | Correspondance intelligente des noms de colonnes |
L’analyseur mappe automatiquement les noms de colonnes courants :
| Champ | Noms de colonnes reconnus |
|---|---|
| CVE | cve, cves, cve_id, vulnerability_id |
| Titre | name, title, vulnerability, plugin_name |
| Description | description, synopsis, summary |
| Solution | solution, remediation, fix, recommendation |
| Sévérité | severity, risk_severity, risk_level |
| Score CVSS | cvss, cvss_score, cvssv3_score |
| Hôte | hostname, asset_name, host_name, fqdn |
| Adresse IP | ip_address, host_ip, asset_ip |
Score de risque = Score CVSS + Ajustements
Ajustements :
+0,5 si dans le CISA KEV (activement exploité)
+0,3 si un exploit public est disponible
Global = (Risque max x 30%) + (Risque moyen x 40%) + (Moyenne exploitable x 20%) + (Densité x 10%)
Avec CISA KEV présent : multiplier par 1,05
| Composant | Pondération | Description |
|---|---|---|
| Score de risque max | 30 % | Risque le plus élevé d’une seule vulnérabilité |
| Score de risque moyen | 40 % | Moyenne sur toutes les vulnérabilités |
| Risque exploitable moyen | 20 % | Moyenne des vulnérabilités exploitables uniquement |
| Facteur de densité | 10 % | log10(total_vulns + 1) x 3 (max 10) |
Créez un fichier .env dans le répertoire server/ (facultatif — voir server/.env.example) :
PORT=3000
NODE_ENV=production
SESSION_SECRET=your-secret-key
Exploit Mapper utilise SQLite pour un stockage sans configuration. La base de données est automatiquement créée à l’emplacement server/data/exploit-mapper.db lors du premier lancement.
Windows :
netstat -ano | findstr :3000
taskkill /PID <pid> /F
macOS / Linux :
lsof -i :3000
kill -9 <pid>
Ce module natif nécessite les outils de construction C++ :
:: Option 1 : Installation via npm
npm install --global windows-build-tools
:: Option 2 : Installer Visual Studio Build Tools
:: Téléchargement depuis https://visualstudio.microsoft.com/visual-cpp-build-tools/
:: Sélectionner la charge de travail « Développement Desktop en C++ »
Après installation, supprimez node_modules et réinstallez :
cd server
rmdir /s /q node_modules
npm install
Assurez-vous qu’une seule instance du serveur est en cours d’exécution. Sur Windows :
tasklist | findstr node
taskkill /IM node.exe /F
Sur macOS / Linux :
pkill -f "node.*index.js"
.csv, .xlsx ou .xlsSi concurrently échoue, essayez d’exécuter le serveur et le client séparément dans deux fenêtres de terminal :
Terminal 1 (Serveur) :
cd server
npm run dev
Terminal 2 (Client) :
cd client
npm run dev
Consultez CONTRIBUTING.md pour des directives détaillées.
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.