Un honeypot SSH permet de simuler un serveur vulnérable et d'attirer les attaquants afin d'analyser leurs tactiques. Cowrie, écrite en Python, offre un honeypot SSH/Telnet complet, tandis que la stack ELK (Elasticsearch, Logstash, Kibana) permet de centraliser et visualiser les logs pour une réponse rapide.
Prérequis
- Serveur Linux (Debian, Ubuntu, Rocky, AlmaLinux) dédié
- Docker et Docker Compose installés
- 4 GB RAM minimum
- Accès root ou sudo
Déploiement de Cowrie en Docker
Clonage du dépôt officiel
git clone https://github.com/cowrie/cowrie.git /opt/cowrie
cd /opt/cowrie
Configuration de base
Copiez le fichier de configuration exemple :
cp etc/cowrie.cfg.dist etc/cowrie.cfg
Éditez etc/cowrie.cfg
pour ajuster :
[ssh]
port (par défaut 2222)- chemin des logs (par défaut
var/log/cowrie
)
Déploiement via Docker Compose
Créez un fichier docker-compose.yml
:
version: '3.7'
services:
cowrie:
image: cowrie/cowrie:latest
container_name: cowrie
ports:
- "2222:2222"
volumes:
- ./etc:/cowrie/etc
- ./var/lib/cowrie:/cowrie/var/lib/cowrie
- ./var/log/cowrie:/cowrie/var/log/cowrie
restart: always
Lancez Cowrie :
docker-compose up -d
Centralisation des logs avec ELK
Déploiement de la stack ELK
Créer un dossier elk
et un docker-compose.yml
:
version: '3.7'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
environment:
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata:/usr/share/elasticsearch/data
logstash:
image: docker.elastic.co/logstash/logstash:7.17.0
volumes:
- ./logstash/pipeline:/usr/share/logstash/pipeline
kibana:
image: docker.elastic.co/kibana/kibana:7.17.0
ports:
- "5601:5601"
volumes:
esdata:
Configuration de Logstash pour Cowrie
Dans elk/logstash/pipeline/cowrie.conf
:
input {
file {
path => "/opt/cowrie/var/log/cowrie/cowrie.json"
start_position => "beginning"
sincedb_path => "/dev/null"
codec => "json"
}
}
filter {
date { match => ["timestamp", "ISO8601"] }
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
index => "cowrie-%{+YYYY.MM.dd}"
}
}
Lancer la stack
cd elk
docker-compose up -d
Visualisation dans Kibana
- Accédez à
http://<IP_SERVEUR>:5601
- Créez un index pattern
cowrie-*
- Explorez les données sous Discover
- Créez des dashboards pour suivre tentatives de connexion, commandes exécutées, IP sources
Conclusion
Avec Cowrie et la stack ELK, vous disposez d'un honeypot SSH performant, capable de collecter et visualiser les tactiques des attaquants en temps réel. C'est un outil essentiel pour renforcer votre posture sécurité et comprendre les menaces.