Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ThreatSentry-AI — ThreatSentry AI est un tableau de bord intelligent de chasse aux menaces qui exploite l'apprentissage automatique pour identifier et hiérarchiser de manière proactive les risques dans votre réseau. Il automatise le processus de collecte des informations sur les appareils, leur enrichissement avec des données de vulnérabilité et l'évaluation des niveaux de risque, permettant aux équipes de sécurité de se concentrer sur les menaces les plus critiques. | Kitploit
Outils/GitHubGitHub/eclipsemanic/threatsentry-ai
Outils DéfensifsReconnaissanceAnalyse des VulnérabilitésCollecte d'InformationsSécurité RéseauRenseignement sur les MenacesApprentissage AutomatiqueRéponse aux IncidentsAnalyse de Journaux
GitHubeclipsemanic/threatsentry-ai

ThreatSentry-AI

Voir le dépôt
11il y a 7 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

ThreatSentry AI est un tableau de bord intelligent de chasse aux menaces qui exploite l'apprentissage automatique pour identifier et hiérarchiser de manière proactive les risques dans votre réseau. Il automatise le processus de collecte des informations sur les appareils, leur enrichissement avec des données de vulnérabilité et l'évaluation des niveaux de risque, permettant aux équipes de sécurité de se concentrer sur les menaces les plus critiques.

Partager

ThreatSentry AI : Outil de chasse aux menaces piloté par IA

License: MIT Python Version Framework ML Stack Database

Automatisez la découverte d'actifs externes, enrichissez intelligemment avec des données multi-sources et exploitez l'apprentissage automatique d'ensemble pour prédire et prioriser les risques. Transformez la fatigue liée aux alertes en renseignements exploitables.

🚀 Énoncé de mission

ThreatSentry AI élimine la fatigue liée aux alertes de sécurité et permet une chasse aux menaces proactive grâce à une priorisation intelligente des risques. Il combine la découverte automatisée d'actifs, l'enrichissement de données multi-sources et l'apprentissage automatique avancé pour transformer les données brutes de sécurité en renseignements exploitables.


👨‍💻 Auteur et remerciements

Chef de projet : EclipseManic

Note de développement : Cette plateforme de sécurité d'entreprise complète a été conçue et développée par un seul développeur avec l'aide d'outils de développement IA pour la génération de code, l'optimisation et la documentation, démontrant la viabilité de l'ingénierie logicielle assistée par IA pour les systèmes complexes.


📋 Résumé exécutif

Les équipes de sécurité modernes sont confrontées à des défis sans précédent :

  • Fatigue liée aux alertes : Des milliers d'alertes quotidiennes avec des rapports signal/bruit rendant le tri manuel impossible
  • Données fragmentées : Contexte critique dispersé dans SIEM, CMDB, systèmes de correctifs et surveillance réseau
  • Posture réactive : Réagir aux menaces connues plutôt que de chasser les risques émergents
  • Contraintes de ressources : Budgets et personnel limités dans une infrastructure de plus en plus complexe

ThreatSentry AI résout ces problèmes via :

  1. Découverte automatisée d'actifs externes via l'API Shodan pour une visibilité continue
  2. Enrichissement intelligent multi-sources depuis NVD, systèmes internes et analyses comportementales
  3. Évaluation des risques basée sur le ML utilisant des modèles d'ensemble pour une priorisation précise des menaces
  4. Tableaux de bord prêts pour la direction pour des renseignements exploitables et une réponse rapide
  5. Alertes proactives qui révèlent les actifs à haut risque avant que les incidents ne se produisent

✨ Fonctionnalités principales

🤖 Moteur intelligent d'évaluation des risques

  • Modèle d'apprentissage automatique d'ensemble : Combine Random Forest, Gradient Boosting et Réseaux de neurones pour une classification robuste des risques
  • Analyse multi-facteurs : Évalue plus de 40 attributs de sécurité et métier au-delà des simples décomptes de vulnérabilités :
    • Contexte temporel : Durée d'exposition, retard de correctif, historique des incidents
    • Position réseau : Statut des services critiques, segment réseau, protection pare-feu
    • Signaux comportementaux : Échecs d'authentification, anomalies de trafic, historique de faux positifs
    • Impact sur la conformité : Sensibilité des données, exigences réglementaires, actifs critiques connectés
  • Score de confiance : Chaque prédiction inclut une métrique de confiance (0-1) pour que les analystes évaluent la fiabilité
  • Apprentissage continu : Le modèle se réentraîne automatiquement à intervalles configurables avec intégration des retours

🌐 Découverte automatisée d'actifs et fusion de renseignements

  • Intégration Shodan : Découverte continue des appareils exposés sur Internet avec prise en charge des requêtes avancées
    • Requêtes prédéfinies pour les scénarios courants (certificats SSL, services RDP, ICS/Modbus, etc.)
    • Prise en charge de requêtes personnalisées pour la chasse aux actifs spécifiques à l'organisation
  • Enrichissement NVD : Corrélation automatique des CVE à l'aide d'une analyse intelligente des bannières
    • Extraction de services de bannière prenant en charge plus de 14 types de produits (Apache, Nginx, MySQL, IIS, etc.)
    • Score CVSS et classification de sévérité
    • Empêche la perte de données : Met à jour les métriques CVE uniquement lorsque des vulnérabilités sont trouvées
  • Intégration des données internes (Architecture extensible pour votre environnement) :
    • Collecteur CMDB : Classification des actifs, niveaux de criticité, étiquettes de conformité
    • Collecteur SIEM : Métriques comportementales, schémas d'authentification, scores d'anomalie
    • Collecteur de gestion des correctifs : Actualité des correctifs, mises à jour manquantes, analyse du retard de correctif
    • Collecteur de surveillance réseau : Schémas de trafic, détection DDoS, scores d'anomalie
  • Base de données unifiée : SQLite avec plus de 40 colonnes indexées pour une interrogation et des rapports efficaces

📊 Tableau de bord exécutif et outils d'analyse

  • Interface graphique basée sur PyQt5 avec prise en charge des thèmes sombre/clair :
    • Visualisation en temps réel de la distribution des risques (graphiques à barres avec Matplotlib)
    • Tableau des appareils triable et filtrable avec indicateurs de risque codés par couleur
    • Filtre rapide par organisation, pays, niveau de risque
    • Recherche automatique dans les champs IP, Org, Pays, Risque
  • Inspection interactive des appareils :
    • Liste détaillée des vulnérabilités avec scores CVSS
    • Chronologie des vulnérabilités et suivi historique
    • Ventilation des facteurs de risque expliquant le score
  • Opérations en masse :
    • Déclencheurs d'analyse manuelle (enrichissement Shodan + NVD)
    • Import de données CSV/JSON avec validation de champ
    • Réentraînement du modèle avec métriques de performance
    • Envoi manuel d'alertes pour valider les configurations
  • Panneau d'analyse (Avancé) :
    • Tendances de distribution des risques
    • Analyse d'impact CVE
    • Métriques de vulnérabilité par organisation

📧 Alertes e-mail proactives

  • Intégration SendGrid : Notifications automatiques par e-mail HTML pour les actifs à haut risque
    • Déclenché immédiatement lors du changement d'étiquette de risque (Faible/Moyen → Élevé)
    • Empêche les alertes en double grâce au suivi du statut "notifié"
  • Contenu riche des alertes :
    • Résumé exécutif avec score de risque et confiance
    • Liste détaillée des vulnérabilités (top N par CVSS)
    • Ventilation des facteurs de risque pour le contexte de l'équipe de sécurité
    • Recommandations de correction exploitables
  • Configuration flexible : Définir les destinataires des alertes, les modèles d'e-mail et les conditions de déclenchement

Exemple d'e-mail d'alerte

![Modèle d'e-mail d'alerte de sécurité automatisé]

Capture d'écran 2026-01-10 160955

E-mail formaté en HTML avec résumé des risques, détails CVE et conseils de correction envoyé via SendGrid

📈 Transparence du modèle et amélioration continue

  • Suivi des performances :
    • Suivi de la précision à travers les époques d'entraînement
    • Matrice de confusion et rapports de classification
    • Analyse de l'importance des caractéristiques pour comprendre les décisions du modèle
    • Indicateurs de dérive des données
  • Boucle de rétroaction :
    • Corrections manuelles des étiquettes de risque par les analystes
    • Suivi des vrais positifs/faux positifs
    • Ajustements des poids du modèle basés sur les retours
    • Calendrier de réentraînement automatisé avec journalisation des métadonnées

⚡ Performance et fiabilité

  • Optimisé pour le passage à l'échelle :
    • Indexation de la base de données sur 5+ colonnes pour des requêtes inférieures à la milliseconde
    • Mise en cache des résultats pour les données fréquemment consultées (accélération 28,7x)
    • Pagination avec "Load More" pour les grands ensembles de données (50 lignes initiales + incréments de 50 lignes)
    • Interface non bloquante avec threads de travail (QThread, ThreadPoolExecutor)
  • Gestion robuste des erreurs :
    • Logique de nouvelle tentative avec backoff exponentiel pour les échecs d'API (Shodan, NVD, SendGrid)
    • Dégradation gracieuse si les services optionnels sont indisponibles
    • Journalisation complète avec rotation des fichiers
    • Architecture signal/slot thread-safe empêche les conditions de concurrence
  • Efficace en mémoire :
    • Nettoyage de la mémoire après le rendu des graphiques
    • Onglets d'interface chargés paresseusement pour réduire le temps de démarrage
    • Les gestionnaires de contexte de session assurent un nettoyage approprié

� Aperçu visuel

Tableau de bord principal

![Tableau de bord ThreatSentry AI - Interface principale de chasse aux menaces]

Capture d'écran 2026-01-10 153154

Visualisation en temps réel des risques avec tableau des appareils triable et graphique à barres de distribution des risques

Tableau d'évaluation des risques des appareils

![Tableau des appareils avec indicateurs de risque]

Capture d'écran 2026-01-10 153154

Liste des appareils triable et filtrable avec niveaux de risque codés par couleur (Vert=Faible, Jaune=Moyen, Rouge=Élevé)

Panneau de filtrage avancé

![Filtres avancés - Plage CVSS, Organisation, Pays, Niveau de risque]

Contrôles de filtrage puissants avec filtres de plage CVSS, organisation, pays et niveau de risque + bouton "Tout effacer"

  • Filtre de plage CVSS : Ajuster les scores CVSS minimum et maximum (0-10) pour se concentrer sur des niveaux de sévérité spécifiques
  • Filtre d'organisation : Filtre rapide par organisation spécifique depuis une liste déroulante de toutes les organisations de votre base de données
  • Filtre de pays : Filtrer par emplacement géographique pour identifier les risques régionaux
  • Filtre de niveau de risque : Afficher uniquement les appareils Élevé, Moyen, Faible ou Tous pour une analyse ciblée
  • Bouton Tout effacer : Réinitialisation en un clic de tous les filtres aux valeurs par défaut pour revoir l'ensemble des données
  • Appliquer les filtres : Appliquer instantanément tous les filtres sélectionnés avec des résultats reflétés en temps réel

Capacité de recherche dans toute la base de données

![Entrée de recherche - Recherche multi-colonnes dans toute la base de données]

Recherche intelligente qui couvre l'ensemble de la base de données des appareils, pas seulement les lignes actuellement affichées

  • Recherche complète : Recherche sur les adresses IP, les noms d'organisation, les pays et les niveaux de risque
  • Détection automatique d'IP : Détecte automatiquement le format d'adresse IP et recherche en conséquence
  • Couverture complète de la base de données : Les résultats de recherche incluent TOUS les appareils de la base de données, sans se limiter aux 50 premières lignes
  • Résultats en temps réel : Délai anti-rebond de 300 ms pour une recherche réactive sans impact sur les performances
  • Intégration de la pagination : Les résultats de recherche respectent le système de pagination pour un chargement efficace

Pagination intelligente et prise en charge des grands ensembles de données

![Bouton Load More - Contrôles de pagination]

Système de pagination optimisé pour gérer efficacement des milliers d'appareils

  • Affichage par défaut de 50 lignes : Le tableau de bord se charge avec les 50 premiers appareils pour un rendu rapide
  • Chargement progressif : Le bouton "Load More (50 rows)" permet un chargement incrémentiel sans délai d'attente
  • Efficace en mémoire : Affiche uniquement les lignes demandées ; ne charge jamais l'ensemble des données en mémoire
  • Performances optimisées : L'interface non bloquante empêche le gel lors du chargement de grands ensembles de données
  • Indicateur de statut : Affiche "Affichage de X sur Y appareils" pour la transparence sur les données totales disponibles
  • Intégration de la recherche : Les filtres de recherche fonctionnent de manière transparente avec la pagination pour des résultats rapides

Panneau d'analyse et de reporting

![Onglet Analyses - Tendances des risques et analyse CVE]

Capture d'écran 2026-01-10 153300

Tendances historiques des risques, analyse des vulnérabilités et métriques de sécurité par organisation

Outils et configuration

![Onglet Outils - Statut du modèle et export de données]

Capture d'écran 2026-01-10 153240

Informations sur l'entraînement du modèle, métriques de performance, export de données et options de filtrage avancées

Notifications d'alertes par e-mail

Capture d'écran 2026-01-10 153939

![E-mail d'alerte de sécurité automatisé]

E-mail formaté en HTML avec résumé exécutif, détails des vulnérabilités et conseils de correction

Flux de travail d'analyse manuelle

![Boîte de dialogue de déclenchement d'analyse]

Capture d'écran 2026-01-10 153710

Exécuter l'enrichissement Shodan + NVD avec rapport d'erreur détaillé et indication de progression


🛠️ Pile technologique

CoucheTechnologies
BackendPython 3.9+, SQLAlchemy ORM, APScheduler
ML/AIScikit-learn (Random Forest, Gradient Boosting, MLP), NumPy, Joblib
FrontendPyQt5, Matplotlib, Custom theme manager
DonnéesPandas, NumPy, SQLite3
APIShodan, NVDLib, SendGrid, Requests
UtilitairesPython-dotenv, Logging module, Config management

🏗️ Architecture et flux de données```

┌─────────────────────────────────────────────────────────────┐ │ ThreatSentry AI │ ├─────────────────────────────────────────────────────────────┤ │ Scheduler (APScheduler) │ ├──────────┬──────────────┬──────────────┬───────────┬─────────┤ │ │ │ │ │ │ ▼ ▼ ▼ ▼ ▼ ▼ Shodan NVD Lib CMDB SIEM Patch Network Collector Collector Collector Collector Mgmt Monitor

root@kitploit:~
      │              │              │           │         │
      └──────────────┴──────────────┴───────────┴─────────┘
                       │
                       ▼
              ┌─────────────────┐
              │   SQLite DB     │
              │  (40+ Columns)  │
              └────────┬────────┘
                       │
    ┌──────────────────┼──────────────────┐
    ▼                  ▼                  ▼

Feature Engine Model Training Predictions │ │ │ └─────────┬───────┴──────────┬──────┘ ▼ ▼ ┌──────────────────────┐ │ Ensemble Model │ │ (RF + GB + MLP) │ └──────────┬───────────┘ │ ┌────────────┼────────────┐ ▼ ▼ ▼ PyQt5 GUI Email Alerts Analytics

root@kitploit:~
### Pipeline de Traitement des Données

1. **Phase de Découverte** (Intervalle configurable, par défaut 30 min)
   - Scan Shodan avec requêtes configurables
   - Enrichissement NVD avec corrélation CVE
   - Enrichissement du système interne pour le contexte

2. **Phase d'Analyse**
   - Ingénierie des caractéristiques à partir de 40+ attributs
   - Prédiction du modèle d'ensemble (Random Forest 40% + Gradient Boosting 40% + MLP 20%)
   - Génération d'étiquettes de risque (0=Faible, 1=Moyen, 2=Élevé)
   - Score de confiance

3. **Phase d'Alerte**
   - Vérification des nouveaux actifs à haut risque
   - Génération et envoi d'alertes par e-mail via SendGrid
   - Mise à jour du statut de notification

4. **Réentraînement du Modèle** (Intervalle configurable, par défaut 60 min)
   - Chargement de toutes les données historiques
   - Extraction des caractéristiques
   - Entraînement de l'ensemble avec des poids de classe équilibrés
   - Validation des métriques de performance
   - Sauvegarde des métadonnées pour audit

---

## 📋 Pour Commencer

### Prérequis
- **Python** : 3.9 ou ultérieur
- **Clés API** (requises) :
  - Clé API Shodan (https://www.shodan.io/)
  - Clé API SendGrid (https://sendgrid.com/) - pour les alertes par e-mail
- **Clés API Optionnelles** (pour un enrichissement amélioré) :
  - Point de terminaison et identifiants CMDB
  - Point de terminaison et identifiants SIEM
  - Point de terminaison et identifiants du système de gestion des correctifs
  - Point de terminaison et identifiants de supervision réseau

### Installation

#### Étape 1 : Cloner le Dépôt```bash
git clone https://github.com/EclipseManic/ThreatSentry-AI.git
cd ThreatSentry-AI

Étape 2 : Créer un environnement virtuel```bash

On Windows

python -m venv .venv .venv\Scripts\activate

On macOS/Linux

python3 -m venv .venv source .venv/bin/activate

root@kitploit:~
#### Étape 3: Installer les dépendances```bash
pip install -r requirements.txt

Étape 4: Configurer l'environnement

Créez un fichier .env dans la racine du projet:```bash cp .env.example .env # If provided, or create new

root@kitploit:~
Modifiez `.env` avec vos identifiants:```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

Étape 5 : Initialiser la base de données```bash

python -c "from data import init_db; init_db()"

root@kitploit:~
#### Étape 6 : Exécuter l'application```bash
python run.py

Le tableau de bord se lancera avec le planificateur s'exécutant en arrière-plan.


🚀 Guide d'utilisation

Aperçu des composants du tableau de bord

![Interface principale du tableau de bord avec tous les onglets] Onglets Aperçu, Analyses et Outils pour une évaluation complète des menaces

1. Tableau des appareils et découverte

![Filtres par organisation et pays avec liste d'appareils] Tableau d'appareils triable avec indicateurs de risque codés par couleur (Vert=Faible, Jaune=Moyen, Rouge=Élevé)

  • Code couleur: Évaluation visuelle instantanée des risques
  • Triable/Filtrable: Cliquez sur les en-têtes de colonnes ou utilisez le filtre rapide pour une recherche rapide
  • Mises à jour en temps réel: Le tableau de bord se rafraîchit à mesure que de nouvelles menaces sont détectées

2. Graphique de répartition des risques

![Graphique à barres de répartition des risques] Visualisation de la posture de sécurité globale avec le nombre d'appareils par niveau de risque

  • Affiche le nombre d'appareils dans toutes les catégories de risque
  • Se met à jour en temps réel lorsque les prédictions du modèle changent
  • Identifie les points chauds de sécurité nécessitant une attention immédiate

3. Boutons d'action clés

  • Analyser maintenant: Déclencher manuellement l'enrichissement Shodan + NVD avec un rapport d'erreurs détaillé
  • Actualiser: Mettre à jour le tableau de bord à partir de l'état le plus récent de la base de données
  • Importer des données: Importer en masse des CSV/JSON avec les informations des appareils
  • Entraîner le modèle: Ré-entraîner manuellement le modèle d'ensemble avec les données actuelles

Fonctionnalités avancées

Onglet Analyses

![Panneau d'analyses - Tendances et métriques des risques]

  • Tendances détaillées des risques dans le temps avec analyse historique
  • Identification des principaux services vulnérables
  • Métriques et comparaisons des risques par organisation
  • Analyse d'impact des CVE et tendances des vulnérabilités

Onglet Outils

![Panneau d'outils - Statut du modèle et export

  • Statut du modèle et informations d'entraînement

Configuration

Requêtes prédéfinies (Modifier core/config.py)```python

SHODAN_QUERIES = { "default": "product:apache", "web_apps": "http.title:"login" org:"Your Company"", "database": "port:27017 OR port:3306", "iot": "device:camera OR device:printer", "rdp": "port:3389", "vpn": "port:500 OR port:1194" }

root@kitploit:~
#### Collecteurs internes personnalisés
Implémenter dans le répertoire `collectors/` :
1. Copier le modèle depuis un collecteur existant
2. Mettre à jour la méthode `_collect()` avec vos appels API
3. Retourner les données d'enrichissement
4. Enregistrer dans le planificateur (`core/scheduler.py`)

#### Personnalisation des alertes par e-mail
Modifier `alerts/email_alerts.py` :
- Modifier le modèle HTML pour des e-mails personnalisés
- Ajouter des descriptions personnalisées des facteurs de risque
- Ajuster les recommandations de correction

---

## 📊 Modèle de données

### Table des appareils (40+ colonnes)```
Core Identifiers:  ip, org, country, first_seen, last_seen
Vulnerability:     cve_count, max_cvss, vulnerabilities (rel)
Security Metrics:  auth_failures_24h, traffic_anomaly_score, patch_lag_days
Risk Assessment:   risk_label, risk_score, confidence_score
Context:          network_segment, service_category, is_critical_service
Compliance:       compliance_requirements, data_sensitivity_level
Historical:       incident_history_count, last_compromise_date, false_positive_count
Alerting:         notified, alert_history

Tableau des Vulnérabilités```

Linked to Device: device_id (FK) CVE Info: cve_id, cvss, summary

root@kitploit:~
---

## 🔄 Exemples de flux de travail

### Scénario 1 : Chasse aux menaces quotidienne
1. Ouvrir le tableau de bord → Examiner les appareils à risque élevé (rouge)
2. Cliquer sur un appareil → Voir la liste détaillée des CVE
3. Noter l'organisation et le type d'infrastructure
4. Recouper avec le SIEM pour les activités suspectes récentes
5. Prioriser la correction en fonction de la criticité et du retard de correctif

### Scénario 2 : Réponse aux incidents
1. Recevoir une alerte concernant un nouvel appareil à haut risque
2. Le tableau de bord affiche les détails de la vulnérabilité et les facteurs de risque
3. Vérifier l'onglet Gestion des actifs → Voir si l'appareil est connu
4. Envoyer une alerte manuelle à l'équipe SOC d'astreinte
5. Après correction, le tableau de bord se met à jour automatiquement lorsque Shodan reflète les changements

### Scénario 3 : Rapports de risques
1. Aller dans l'onglet Analyses
2. Exporter les graphiques de répartition des risques et de tendance
3. Identifier les points chauds de risque organisationnel
4. Générer une feuille de route de correction
5. Suivre la progression dans le temps avec des réexportations périodiques

---

## 🔧 Dépannage

### Problèmes courants

#### Problème : "Clé API Shodan invalide" (403 Interdit)
- **Solution** : Vérifier la clé API Shodan dans le fichier `.env`. Le tableau de bord affichera une erreur mais continuera à traiter
- **Remarque** : L'enrichissement NVD ne s'exécutera pas (évite la perte de données en cas d'échec de l'API)

#### Problème : "Aucune CVE trouvée pour l'appareil"
- **Solution** : Vérifier l'extraction de la bannière. Modifier la liste des mots-clés dans `collectors/nvd_collector.py`
- **Prévention** : Enrichissement manuel via l'import CSV pour définir les données CVE manuellement

#### Problème : "Confiance du modèle trop faible"
- **Solution** : Réentraîner avec plus de données étiquetées. Fournir des retours sur les appareils mal classifiés
- **Prévention** : Utiliser le système de retour pour améliorer la qualité des données d'entraînement

#### Problème : Les alertes par e-mail ne s'envoient pas
- **Solution** : Vérifier la clé API SendGrid et l'adresse e-mail de l'expéditeur vérifiée
- **Vérification** : Variable d'environnement `ENABLE_EMAIL_ALERTS` définie sur True

#### Problème : Base de données verrouillée ou requêtes lentes
- **Solution** : S'assurer que les index sont créés (init_db() le fait)
- **Vérification** : Pas de connexions dupliquées à la base de données (rafraîchissement de l'interface uniquement, pas d'écriture constante)

---

## 🛡️ Considérations de sécurité

1. **Gestion des clés API** : Utiliser des variables d'environnement, ne jamais commiter `.env` dans Git
2. **Sécurité de la base de données** : SQLite adapté pour un seul utilisateur ; migrer vers PostgreSQL pour plusieurs utilisateurs
3. **Sécurité réseau** : Exécuter sur un réseau de confiance ; mettre en œuvre la segmentation du réseau si l'API est exposée
4. **Confidentialité des données** : Configurer la rotation des journaux pour limiter l'espace disque. Mettre en œuvre des politiques de conservation des données
5. **Journalisation d'audit** : Toutes les décisions du modèle sont journalisées avec les valeurs des caractéristiques pour l'auditabilité

---

## 📈 Conseils d'optimisation des performances

| Problème | Solution |
|----------|----------|
| Chargement lent du tableau de bord | Augmenter la taille de la pagination dans la configuration |
| CPU élevé pendant l'entraînement | Réduire `n_estimators` dans `model/advanced_model.py` |
| Utilisation mémoire élevée | Activer le nettoyage des journaux, réduire la résolution des graphiques |
| Analyses Shodan lentes | Réduire `MAX_SHODAN_RESULTS`, utiliser des requêtes plus spécifiques |
| Enrichissement NVD lent | Mettre en œuvre la mise en cache de l'API, réduire l'extraction des mots-clés de produits |

---

## 🤝 Contribution

Les contributions sont les bienvenues ! Veuillez consulter [CONTRIBUTING.md](https://raw.githubusercontent.com/eclipsemanic/threatsentry-ai/HEAD/CONTRIBUTING.md) pour les directives.

Domaines d'amélioration :
- Implémentations de collecteurs supplémentaires (intégration Nessus, Tenable, Qualys)
- API Web pour un accès programmatique
- Prise en charge multi-utilisateur avec contrôle d'accès basé sur les rôles
- Visualisation avancée (intégration Grafana/ELK)
- Prise en charge du déploiement Kubernetes

---

## 📄 Licence

Ce projet est sous licence MIT — voir le fichier [LICENSE](https://github.com/eclipsemanic/threatsentry-ai/blob/main/LICENSE) pour les détails.

---

## 📞 Support et contact

- **Problèmes** : GitHub Issues pour les rapports de bogues et les demandes de fonctionnalités
- **Documentation** : Voir le répertoire [docs/](https://github.com/eclipsemanic/threatsentry-ai/blob/main/docs) pour la documentation technique détaillée
- **Email** : Informations du responsable dans [CODE_OF_CONDUCT.md](https://github.com/eclipsemanic/threatsentry-ai/blob/main/CODE_OF_CONDUCT.md)

---

## 🙏 Remerciements

- **Shodan** : Pour la découverte complète des appareils exposés sur Internet
- **NVD/NIST** : Pour les données de vulnérabilité faisant autorité
- **Scikit-learn** : Bibliothèques ML robustes et documentation
- **PyQt5** : Excellent framework d'interface graphique
- **Communauté** : Tous les contributeurs et utilisateurs fournissant des retours

---

**Fait avec ❤️ par EclipseManic | Sécuriser l'infrastructure de demain aujourd'hui**
pip install -r requirements.txt```

---

## 🔐 Configuration

### 1. Environment Variables (`.env` file)
Create a `.env` file in the root directory with the following structure:

```bash
# --- Clé API Shodan (Obligatoire) ---
SHODAN_API_KEY="YOUR_SHODAN_API_KEY"

# --- Alertes e-mail SendGrid (Obligatoire) ---
SENDGRID_API_KEY="YOUR_SENDGRID_API_KEY"
SENDER_EMAIL="[email protected]"
ALERT_RECIPIENTS="[email protected],[email protected]"

# --- Base de données ---
SQLITE_PATH="threat_sentric_ai.db"

# --- Modèle ---
MODEL_PATH="threatsentry_model.pkl"

# --- Planificateur ---
SCAN_INTERVAL_MINUTES="30"
RETRAIN_INTERVAL_MINUTES="60"
RETRAIN_ON_SCHEDULE="True"

# --- Contrôle du comportement des requêtes Shodan ---
SHODAN_QUERY=""
SHODAN_QUERY_EMPTY_TO_PRESET="True"

# --- Journalisation ---
LOG_LEVEL="INFO" # DEBUG, INFO, WARNING, ERROR, CRITICAL

# --- Informations d'identification internes du système (Optionnel - Ajoutez selon les besoins de vos collecteurs) ---
# 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
# Générer 1000 enregistrements
python scripts/generate_realistic_training_data.py --count 1000

# Afficher les options de nettoyage
python scripts/clear_db_enhanced.py --help

# Supprimer tous les appareils et vulnérabilités
python scripts/clear_db_enhanced.py --delete-devices --delete-vulns

# Réinitialiser le drapeau notifié
python scripts/clear_db_enhanced.py --reset-notified

# Réinitialisation complète dangereuse
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.
Télécharger l’outil