Files
SIEM---Wazuh/README.md
2025-08-27 21:17:28 +02:00

351 lines
10 KiB
Markdown

# 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
<!-- /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**