351 lines
10 KiB
Markdown
351 lines
10 KiB
Markdown
# Plugin GLPI SIEM-Wazuh
|
|
|
|
[](https://github.com/siem-wazuh/glpi-plugin)
|
|
[](https://glpi-project.org/)
|
|
[](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
|
|
<!-- /var/ossec/etc/ossec.conf -->
|
|
<integration>
|
|
<name>webhook</name>
|
|
<hook_url>https://glpi.domain.com/plugins/siem-wazuh/webhook.php</hook_url>
|
|
<level>7</level>
|
|
<rule_id>100001,100002</rule_id>
|
|
<alert_format>json</alert_format>
|
|
</integration>
|
|
```
|
|
|
|
## 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** |