Ce projet vous permettra d'appliquer les notions présentées en cours.
- projet sur github avec sa documentation (markdown)
- présentation/démo
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.
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
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).
- 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.
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 ?