Étude de cas : un système léger de détection d’intrusion avec OpenFaaS et PyTorch
Contexte
Une PME e-commerce hébergée sur un VPS Hetzner a observé une augmentation continue d’activités suspectes sur son serveur NGINX : tentatives de connexion par force brute, scans automatisés et accès à des chemins sensibles comme /admin
ou /wp-admin
.
Son équipe technique, composée de six développeurs et d’un administrateur système, a décidé de mettre en place un système de détection basé sur les journaux existants, sans ajouter de services externes complexes.
Objectifs Internes
- Détecter en temps réel les comportements anormaux dans les logs NGINX
- Éviter les solutions tierces fermées ou à facturation mensuelle
- Utiliser uniquement des conteneurs Docker et fonctions sans serveur
- Sauvegarder les événements suspects pour affiner le modèle dans le temps
- Réduire les alertes inutiles et limiter les faux positifs
Architecture Adoptée
Composant | Rôle |
---|---|
NGINX | Génération des journaux d’accès |
OpenFaaS | Fonction déclenchée par cron toutes les 5 min |
PyTorch | Modèle LSTM léger de détection d’anomalies |
JSONL | Format de sauvegarde des requêtes suspectes |
Détection avec PyTorch
Le modèle utilisé repose sur un réseau LSTM entraîné sur des séquences de journaux HTTP normaux et malveillants. L’objectif est de repérer des anomalies sans avoir besoin d’une signature fixe.
class LogAnomalyDetector(nn.Module):
...
Si la prédiction dépasse un certain seuil, la ligne est ajoutée à un fichier de log structuré :
{
"timestamp": "2025-08-04T23:34:59Z",
"score": 0.97,
"raw": "192.168.0.1 - - \"GET /wp-admin HTTP/1.1\" 404 162"
}
Résultats Obtenus
Avantage | Détail |
---|---|
Aucun service externe | Fonctionne uniquement sur le serveur Hetzner |
Capacité d’apprentissage | Le modèle s’améliore au fil des cycles de réentraînement |
Structure des données utile | Fichier JSONL prêt à l’emploi pour supervision |
Déploiement minimal | Aucun outil tiers requis, tout tient dans un conteneur |
Prochaines Étapes
- Ajouter des alertes Telegram en cas d’anomalie critique
- Intégrer une fonction de réentraînement automatique mensuelle
- Étendre la détection aux headers HTTP et aux POST body
Conclusion
Cette solution démontre qu’un petit acteur peut bâtir une sécurité intelligente avec des outils modernes, sans frais récurrents. En combinant PyTorch avec OpenFaaS, l’équipe a obtenu un système léger, transparent et capable de s’améliorer continuellement.
Vous cherchez à implémenter une architecture similaire ?
Table of Contents
- Contexte
- Objectifs Internes
- Architecture Adoptée
- Détection avec PyTorch
- Résultats Obtenus
- Prochaines Étapes
- Conclusion
Trending
Table of Contents
- Contexte
- Objectifs Internes
- Architecture Adoptée
- Détection avec PyTorch
- Résultats Obtenus
- Prochaines Étapes
- Conclusion