Trapster
19 janvier 2025

Intégrer Trapster sur ELK

blog

Qu'est-ce que le format CEF?

Le CEF est un moyen normalisé d'enregistrer et de recevoir des journaux de sécurité (syslog). Parce que le CEF est normalisée, vous pouvez l'utiliser pour collecter et traiter des données provenant de nombreuses sources différentes.

Trapster utilise le format CEF pour transmettre les événements via SYSLOG. Il est également possible de traiter les événements provenant de votre tableau de bord via des webhooks, qui peuvent s'intégrer dans des systèmes déjà en place. 

CEF vous permet d’analyser l’origine des attaques ou les systèmes cibles par les attaquants, ainsi que de corréler les évènements entres les machines pour mieux comprendre comment une attaque s'est propagée. 

Cet article présente comment intégrer Trapster sur ELK, en utilisant SYSLOG et le format CEF.

Les journaux typique d’CEF utilisant le format suivant : 

CEF:Version | Device Vendor | Device Product | Device Version | deviceEventClassId |Name | Severity | Extension 

  • CEF: Version ~ La version de CEF peut être 0 ou 1

  • Device Vendor (ici Ballpoint)

  • Device Product ~ le produit vendu - donc ici c’est Trapster

  • Device Version ~ La version actuelle du produit

  • DeviceEventClassId ~ un identifiant unique pour chaque type d'évènement : On mettre ici le Protocol avec lequel l’attaquant a interagi, comme VNC ou FTP

  • Name ~ une phrase lisible par l'homme pour décrire l'événement donc ici vous pouvez voir le type d’attaque comme ‘login’

  • Severity: la sévérité est toujours un chiffre entre 0 et 10 ou un mot comme low, medium, high, et Very-high

  • Extention: Ici, nous pouvons inclure toute autre information pertinente comme la source ip, un message plus clair pour décrire l'évènement, ou le modèle d’os que vous avez choisi pour votre Trapster 

Pour mieux comprendre, voici un exemple de ce que vous pourriez voir de la part de Trapster, y compris d'où vient l'attaque, le protocole utilisé, et le type d'attaque. Vous verrez les mêmes informations que sur votre dashboard :
<128> CEF:1|Ballpoint|Trapster|v1.0|VNC|login|10|src=157.171.84.63 dst=122.251.101.180 msg=Login attempt on VNC 

Intégration avec ELK (Elasticsearch, Logstash, Kibana)

ELK intégre les briques Elasticsearch, Kibana, Beats et Logstash pour traiter vos journaux syslog CEF. Il est très largement utilisé car il permet de collecter et de visualiser facilement des données.

Le tableau de bord Trapster peut envoyer des journaux via Syslog en UDP ou en TCP. Il suffit de nous transmettre l’adresse IP et le port de votre installation ELK.

Format CEF

Il faut ajouter le plugin CEF afin de traiter les journaux sur ELK. Vous pouvez trouver le plugin open source ici: https://github.com/logstash-plugins/logstash-codec-cef

Si votre logstash se trouve dans un container docker, vous pouvez installer ce plugin via Dockerfile. Ajouter la ligne “RUN logstash-plugin install logstash-codec-cef" a votre fichier dans docker-elk > logstash > Dockerfile pour l’installer et redémarrer votre docker.

Docker compose logstash

Maintenant que vous avez le plugin vous pouvez specifier le formatage de logstash. Allez dans docker-elk > logstash > pipeline > logstash.conf et ajouter la configuration suivante : 

Configuration Logstash

  • Codec : Pour filtrer correctement les journaux CEF 

  • Port : pour spécifier le port ouvert, ici vous devez mettre votre port que vous avez décidé avant, mais vous pouvez utiliser le même port pour UDP et TCP 

Configuration de Kibana

Sur votre page Kibana, vous devez maintenant voir les journaux capturés. Sur votre page de paramètres sur Trapster, vous pouvez envoyer un message de test pour vous assurer que tout fonctionne. Si non, assurez-vous que votre réseau est correctement configuré pour que Logstash puisse recevoir des évènements.

Kibana ELK

Cependant, vous pouvez voir que les données ne sont pas correctement traitées au format CEF dans kibana, parce que kibana ne sait pas qu’il est au format CEF. 

Pour indiquer à kibana comment analyser les données il faut créer un data view. En ligne, vous pouvez voir beaucoup de références aux "index patterns", l’ancien nom des "data views". 

Dans "Management > Kibana > Data Views" vous pouvez créer un data view avec le nom que vous voulez.

Sélectionner le index pattern comme avec le nom cef-logs-* correspondant au format que vous avez donné plus tôt dans logstash.conf pour indexer vos données 

Après dans "Analytics > Discover", vous pouvez désormais sélectionner votre "data view". Avec kibana, vous pouvez facilement visualiser les données et créer des "charts" pour voir lequel de vos trapsters reçoit le plus de trafique.

Data view ELK

Ou encore, d’où les attaques proviennent : Vous pouvez aussi créer des alertes pour des évènements spécifique dans "Security > Alerts". 

Ici vous pouvez décider de recevoir des alertes s'il y a un évènement avec une certaine IP ou avec un niveau de sévérité supérieur a un certain montant.

Data view ELK