Skip to content

Latest commit

 

History

History
65 lines (44 loc) · 3.88 KB

honeypot.md

File metadata and controls

65 lines (44 loc) · 3.88 KB

Projet honeypot (assignment)

Ce projet vous permettra d'appliquer les notions présentées en cours.

Livrable

  • projet sur github avec sa documentation (markdown)
  • présentation/démo

Organisation

Vous travaillerez en petit groupe et devrez indiquer comment vous vous répartissez le travail. En pratique, vous travaillerez à plusieurs sur git, je vous conseille une méthodologie trunk based. En cas de souci, ohshitgit peut vous aider.

Qu'est-ce qu'un honeypot

C'est un leurre qui nous permettra d'observer des tentatives de connexion.

Le honeypot peut concerner :

  • des systèmes ouverts sur l'extérieur. Par exemple: partie admin d'un site wordpress, ou pour des systèmes industriels
  • des systèmes internes, pour détecter au plus tôt des intrusions. Le birding guide donne des exemples intéressants.

Ce qui existe:

  • awesome honeypot vous donnera une liste complète de honeypots existants (mais votre objectif est de concevoir votre propre honeypot).
  • des scanners (e.g. shodan) permettent aussi de détecter des actifs (serveurs, IoT) ouverts sur internet

Ce qui vous est demandé

Mettre en place un système pour l'observabilité de services ssh et http.
Exemple : honeypot ssh - vous pourriez par exemple tester l'impact du changement de port par défaut, sur les tentatives de connexion.

Il vous est demandé d'avoir une réflexion sur ce qui vous faites et donc d'expliciter le niveau de sécurité de vos services :

  • quelles vulnérabilités exposez-vous volontairement? Par exemple, grâce aux outils de configuration as code, vous pouvez exposer des containers avec des settings de sécurité différents, et voir ce qui se passe
  • et pouvoir killer vos services

Dans le cadre du honeypot, vous pourrez être amenés à déployer services vulnérables, par exemple:

  • Goof
  • de vieilles versions de wordpress
  • ou bien faire votre propres honeypots (ex: serveur ssh, portail de connexion OAuth2, etc.)
  • etc. mais veillez à logger ce qui se passe (et à protéger les secrets pour la communication avec le backend)

En plus des logs applicatifs, vous pourriez éventuellement analyser les flux réseau (optionnel).

Une partie de votre infrastructure (le backend de votre honeypot, pour analyser les logs) doit être sécurisée. Précisez comment et documentez votre architecture (par exemple avec draw.io).

Technologies conseillées

  • le choix du/des cloud que vous utilisez est libre (prenez un abonnement gratuit)
  • golang pour programmer vos honeypots et vos remontées d'alertes
  • github (et github actions)
  • containers (et éventuellement technologies de scan associées)
  • déploiement CI/CD avec terraform. On vous suggère de regarder les ressources d'apprentissage
  • configuration avec starlark
  • gestion de vos secrets avec vault et SOPS
  • gestion des logs avec fluentbit et prometheus
  • visualisation avec grafana - plus simple avec la stack décrite, mais wazuh donne des idées complémentaires

Ca sera donc aussi l'occasion d'apprendre à utiliser les technologies devsecops. Il vous faudra justifier les choix techniques.

Aller plus loin

En ouverture du projet, on pourra se poser la question de ce qu'est une bonne technologie d'observabilité. Que doit-on mettre dans des logs pour pouvoir prendre les bonnes actions ?