# Plugin GLPI SIEM-Wazuh [![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/siem-wazuh/glpi-plugin) [![GLPI](https://img.shields.io/badge/GLPI-10.0.x-green.svg)](https://glpi-project.org/) [![License](https://img.shields.io/badge/license-GPL%20v2%2B-orange.svg)](LICENSE) ## Description Le plugin SIEM-Wazuh permet l'intégration complète entre Wazuh (solution SIEM open source) et GLPI (système de gestion des services IT). Il permet de : - **Surveiller** automatiquement les serveurs Wazuh configurés - **Récupérer** les alertes de sécurité en temps réel - **Associer** automatiquement les alertes aux assets de l'inventaire GLPI - **Créer** automatiquement des tickets pour les incidents critiques - **Gérer** centralement la configuration depuis l'interface GLPI ## Fonctionnalités ### 🛡️ Surveillance Proactive - Synchronisation automatique des alertes Wazuh - Configuration de multiples serveurs Wazuh - Filtrage par niveau de règle et sévérité - Intervalle de synchronisation configurable ### 🔗 Intégration Assets - Association automatique alertes ↔ ordinateurs - Association automatique alertes ↔ équipements réseau - Correspondance par nom d'hôte et adresse IP - Onglets dédiés sur chaque asset ### 🎫 Gestion des Tickets - Création automatique de tickets GLPI - Configuration des types et catégories - Priorité automatique basée sur la sévérité - Assignation automatique configurables ### 🌍 Interface Multilingue Support complet pour : - 🇫🇷 Français - 🇬🇧 Anglais - 🇩🇪 Allemand - 🇪🇸 Espagnol - 🇮🇹 Italien - 🇵🇹 Portugais - 🇵🇱 Polonais ### ⚙️ Configuration Avancée - Interface de configuration intuitive - Gestion granulaire des droits utilisateur - Logs de débogage détaillés - Statistiques et tableaux de bord ## Prérequis ### Système - **GLPI** : Version 10.0.0 minimum - **PHP** : Version 7.4 minimum - **Extensions PHP** : curl, json, mbstring, openssl - **Base de données** : MySQL 5.7+ ou MariaDB 10.2+ ### Wazuh - **Wazuh Manager** : Version 4.0+ recommandée - **API Wazuh** : Accès avec authentification - **Wazuh Indexer** : Optionnel (pour requêtes avancées) ## Installation ### 1. Téléchargement ```bash cd /path/to/glpi/plugins/ wget https://github.com/siem-wazuh/glpi-plugin/releases/download/1.0.0/siem-wazuh-1.0.0.tar.gz tar -xzf siem-wazuh-1.0.0.tar.gz ``` ### 2. Installation via Interface GLPI 1. Se connecter en tant qu'administrateur GLPI 2. Aller dans **Configuration > Plugins** 3. Localiser le plugin "SIEM - Wazuh" 4. Cliquer sur **Installer** 5. Cliquer sur **Activer** ### 3. Configuration Initiale #### Configuration des Droits 1. **Administration > Profils** 2. Sélectionner le profil à configurer 3. Onglet **SIEM Wazuh Rights** 4. Attribuer les droits appropriés : - **Configuration** : Accès à la configuration - **Servers** : Gestion des serveurs Wazuh - **Alerts** : Consultation des alertes #### Ajout d'un Serveur Wazuh 1. **Administration > Serveurs Wazuh** 2. Cliquer sur **+** (Ajouter) 3. Remplir les informations : ``` Nom connexion: Serveur Wazuh Production URL Serveur Wazuh: https://wazuh-manager.domain.com Port API: 55000 Login API: wazuh Mot de passe API: [mot_de_passe_sécurisé] Intervalle de synchronisation: 300 (secondes) ``` 4. **Tester la connexion** 5. **Enregistrer** #### Configuration Générale 1. **Outils > Configuration SIEM Wazuh** 2. Configurer les paramètres selon vos besoins : - **Synchronisation automatique** : Activé - **Création automatique de tickets** : Activé - **Niveau de règle minimum** : 5 - **Rétention des alertes** : 90 jours ## Configuration ### Paramètres de Synchronisation | Paramètre | Description | Valeur par défaut | |-----------|-------------|-------------------| | `sync_enabled` | Active la synchronisation | `1` (Oui) | | `max_alerts_per_sync` | Maximum d'alertes par sync | `100` | | `min_rule_level` | Niveau minimum des règles | `5` | | `sync_interval` | Intervalle en secondes | `300` | ### Mapping des Assets Le plugin associe automatiquement les alertes aux assets GLPI : 1. **Par nom d'hôte** : `agent.name` → `computers.name` 2. **Par adresse IP** : `agent.ip` → `networkports.ip` 3. **Sensible à la casse** : Configurable 4. **Patterns à ignorer** : `localhost`, `127.0.0.1`, etc. ### Création de Tickets Les tickets sont créés automatiquement selon ces règles : | Niveau Règle | Sévérité | Priorité Ticket | |--------------|----------|-----------------| | 1-4 | Low | Très faible | | 5-6 | Low | Faible | | 7-9 | Medium | Moyenne | | 10-11 | High | Élevée | | 12+ | Critical | Très élevée | ## Utilisation ### Consultation des Alertes #### Sur les Assets - Aller sur un ordinateur ou équipement réseau - Cliquer sur l'onglet **"Alertes Wazuh"** - Consulter le résumé et la liste des alertes #### Vue Globale - **Outils > Configuration SIEM Wazuh** - Consulter les **statistiques générales** - Filtrer par serveur, sévérité, statut ### Actions Disponibles #### Sur les Alertes - ✅ **Marquer comme traitée** - ❌ **Ignorer l'alerte** - 🎫 **Créer un ticket manuellement** - 📊 **Exporter en CSV** #### Sur les Serveurs - 🔧 **Tester la connexion** - 🔄 **Synchroniser manuellement** - ⏯️ **Activer/Désactiver** - 📈 **Consulter les statistiques** ## Tâches Automatisées ### Cron Jobs Le plugin configure automatiquement deux tâches : ```bash # Synchronisation des alertes (toutes les 5 minutes) */5 * * * * php /path/to/glpi/front/cron.php --force=PluginSiemWazuhAlert-sync_alerts # Nettoyage des anciennes alertes (quotidien) 0 2 * * * php /path/to/glpi/front/cron.php --force=PluginSiemWazuhAlert-cleanup_old_alerts ``` ### Activation des Tâches 1. **Administration > Tâches automatiques** 2. Rechercher "Wazuh" 3. Activer les tâches 4. Configurer la fréquence si nécessaire ## Dépannage ### Problèmes Courants #### Connexion Échouée ``` Erreur: Connection failed: cURL error 7: Failed to connect ``` **Solutions :** - Vérifier l'URL et le port du serveur - Contrôler les règles de firewall - Tester depuis le serveur GLPI : `curl -k https://wazuh-server:55000` #### Authentification Échouée ``` Erreur: Authentication failed: 401 Unauthorized ``` **Solutions :** - Vérifier les identifiants API - Contrôler les permissions utilisateur Wazuh - Vérifier que l'utilisateur existe : `GET /security/users` #### Pas d'Alertes Synchronisées **Vérifications :** 1. Niveau de règle minimum trop élevé 2. Serveur inactif 3. Pas d'alertes récentes dans Wazuh 4. Erreurs dans les logs : **Debug & Logs** ### Logs de Débogage Activer le mode debug : 1. **Outils > Configuration SIEM Wazuh** 2. Onglet **Debug & Logs** 3. **Mode debug** : Activé 4. **Niveau de log** : Debug 5. Consulter la section **Logs récents** ### Support et Logs Système ```bash # Logs Apache/Nginx tail -f /var/log/apache2/error.log | grep -i wazuh # Logs PHP tail -f /var/log/php/error.log | grep -i wazuh # Logs GLPI tail -f /var/log/glpi/glpi.log | grep -i wazuh ``` ## API et Intégration ### Endpoints Disponibles Le plugin expose quelques endpoints pour intégration : ``` GET /plugins/siem-wazuh/ajax/sync_alerts.php?action=status POST /plugins/siem-wazuh/ajax/sync_alerts.php (sync) POST /plugins/siem-wazuh/ajax/test_connection.php ``` ### Webhooks Wazuh Pour recevoir les alertes en temps réel, configurez un webhook : ```xml webhook https://glpi.domain.com/plugins/siem-wazuh/webhook.php 7 100001,100002 json ``` ## Développement ### Structure du Plugin ``` plugins/siem-wazuh/ ├── README.md # Documentation ├── CHANGELOG.md # Historique des versions ├── LICENSE # Licence GPL v2+ ├── SIEM-Wazuh.xml # Descripteur plugin ├── setup.php # Configuration principale ├── hook.php # Installation/désinstallation ├── inc/ # Classes PHP │ ├── wazuhserver.class.php │ ├── wazuhalert.class.php │ ├── wazuhconfig.class.php │ ├── wazuhtab.class.php │ └── wazuhapi.class.php ├── front/ # Interface web │ ├── wazuhserver.php │ ├── wazuhserver.form.php │ └── wazuhconfig.php ├── ajax/ # Requêtes AJAX │ ├── test_connection.php │ └── sync_alerts.php ├── locales/ # Traductions │ ├── fr_FR.po │ ├── en_GB.po │ └── ... ├── css/ # Feuilles de style │ └── style.css ├── js/ # JavaScript │ └── wazuh.js ├── pics/ # Images │ └── wazuh-logo.png └── sql/ # Scripts SQL ├── install.sql └── uninstall.sql ``` ### Contribution 1. Fork le projet 2. Créer une branche feature (`git checkout -b feature/nouvelle-fonctionnalite`) 3. Commiter les modifications (`git commit -m 'Ajout nouvelle fonctionnalité'`) 4. Pousser sur la branche (`git push origin feature/nouvelle-fonctionnalite`) 5. Créer une Pull Request ## Licence Ce plugin est distribué sous licence **GPL v2+**. Voir le fichier [LICENSE](LICENSE) pour plus de détails. ## Support - 🐛 **Issues** : [GitHub Issues](https://github.com/siem-wazuh/glpi-plugin/issues) - 💬 **Discussions** : [GitHub Discussions](https://github.com/siem-wazuh/glpi-plugin/discussions) - 📧 **Email** : support@siem-wazuh.org - 📖 **Documentation** : [Wiki](https://github.com/siem-wazuh/glpi-plugin/wiki) ## Changelog ### Version 1.0.0 (2024-01-01) - 🎉 Version initiale - ✅ Support multiples serveurs Wazuh - ✅ Synchronisation automatique des alertes - ✅ Association avec assets GLPI - ✅ Création automatique de tickets - ✅ Interface multilingue (7 langues) - ✅ Gestion des droits utilisateur - ✅ API REST pour intégration - ✅ Logs de débogage complets --- **Made with ❤️ by the SIEM-Wazuh Team**