category

DatabaseMachine learningKuberneteseCommerceCloudWeb Application

É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

ComposantRôle
NGINXGénération des journaux d’accès
OpenFaaSFonction déclenchée par cron toutes les 5 min
PyTorchModèle LSTM léger de détection d’anomalies
JSONLFormat 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

AvantageDétail
Aucun service externeFonctionne uniquement sur le serveur Hetzner
Capacité d’apprentissageLe modèle s’améliore au fil des cycles de réentraînement
Structure des données utileFichier JSONL prêt à l’emploi pour supervision
Déploiement minimalAucun 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

Comparatif des bases de données serverless : Oracle, Azure, Redshift et AuroraOrchestration de Spark sur AWS EMR avec Apache Airflow — L’approche Low-OpsConstruire des clusters Kubernetes résilients avec Portworx Community EditionIntégrer Shopify dans une Application Web Next.js ReactPipelines de Données Haute Performance avec ClickHouse, PostgreSQL et CouchDB sur VPS