Calculer la distance entre 2 points GPS avec Splunk

Splunk Logo

Salut à tous, ça fait une paye que je vous ai pas fait un peu de Splunk, non ? et récemment au taf j’ai trouvé 5 min pour réimplémenter une requête rigolote pour calculer la distance entre 2 points GPS avec Splunk.

Pour vous faire la genèse du truc, on supervise beaucoup nos connexions VPN depuis le confinement du printemps bizarrement :-). D’ailleurs dans mon article MISC de septembre, je vous ai mis une requête pour surveiller les doubles connexions simultanées d’un(des) utilisateur(s) , qui est également super pratique pour limiter les abus autour des connexions à distances dans un cadre de surcharge de vos passerelles.

Les logs VPN font vraiment parti des logs intéressants car ils ramènent l’analyse au « monde réel ». En effet, les VPNs sont souvent utilisés dans des situations de nomadisme ou de télétravail et combiné avec les informations de géolocalisation : ça fait des chocopics !

Du coup, je vous donne la requête « as-it » :

index=$vpn "Session started" OR "Session ended" | sort 0 user, _time  
| streamstats window=1 current=f values(_time) as last_time values(src_ip) as last_src_ip by user 
| where last_src_ip != src_ip AND _time - last_time < 8*60*60 
| 
Lire la suite

Docker et Portainer part 4 – Docker, OpenVPN et Splunk

Docker et Portainer

Salut à tous, dans le dernier TP on s’est penché sur la définition de plusieurs conteneur dans un Stack pour mettre en place un client Guacamole. Aujourd’hui on va regarder comment monter un serveur openvpn au travers de docker et superviser celui-là avec Splunk en faisant communiquer plusieurs stacks entres-elles, et comme d’habitude dans Portainer.

Rappel des articles de la série « Docker et Portainer » :

OpenVPN ?

OpenVPN est une technologie opensource de VPN. C’est pas forcément la plus répandue (plutôt du IPsec avec L2TP or IKEv2) mais il lui reste quelques avantages par rapport à du L2TP/IPsec :

  • Elle peut fonctionner
Lire la suite

Extraire un champs en JSON dans Splunk pour Gophish

Bonjour à tous, aujourd’hui j’ai du réaliser un rapport d’une campagne de phishing réalisée avec Gophish. Vous me connaissez, je suis pas du genre à aimer bosser dans Excel, du coup j’ai mis les résultats directement dans Splunk. Gophish est un super outil mais il a un format de log chelou a base de CSV avec du Json dedans. Du coup, on regarder rapidement comment extraire un champs en JSON dans Splunk. Alors je ne parle pas de log en format entièrement en JSON, hein, je parle bien d’évènements de « normaux » (syslog, CSV, texte, etc) avec un champs en JSON au milieu. Par exemple, un log raw de Gophish ressemble à ça :

7,jean.dupont@geekeries.org,2020-11-03T14:36:52Z,Clicked Link,"{""payload"":{""rid"":[""fKteVMb""]},""browser"":{""address"":""12.34.56.78"",""user-agent"":""Mozilla/5.0 (Linux; U; Android 11; fr-fr; Mi MIX 2S Build/QKQ1.191828.002) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3579.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/12.42.1-g""}}"

On voit bien ici que le dernier élément du CSV (colonne « details » d’un export raw de Gophish) est un bon gros JSON des familles. Du coup c’est pas idéal à extraire en field extraction classique avec le source type et transform dans Splunk puisque le Json change fortement en fonction du type d’évènement. Bref, c’est un peu relou. Par contre, en search … Lire la suite

Splunk certbot et Let’s Encrypt App

Splunk certbot et Let's Encrypt

Je continue un peu sur Splunk, ce coup-ci j’ai fait une TA Splunk certbot et Let’s Encrypt. J’en ai eu un peu marre de déboguer les enrôlements certbot sans Splunk. Donc comme la dernière fois, j’ai fait une TA supportant le format de log de certbot actuel (versions 0.28.0). J’ai appliqué la même démarche que pour VSFTPD et fail2ban avec le Splunk Add-on Builder.

CLI Packaging

A la nuance qu’au moment de publier, j’ai fait l’update vers Splunk 8 qui m’a cassé le Add-on Builder… du coup j’ai du terminer en mode fichier et faire mes dernières modifs en mode CLI et par exemple packager avec :

./splunk package app TA-certbot

TLDR, elle est où cette TA Splunk certbot et Let’s Encrypt ?

Comme d’habitude, vous la trouverez sur la Splunkbase :

https://splunkbase.splunk.com/app/4758/

Modification de Limits.conf

Notez qu’il y a un configuration spécifique pour cette app. La regex que j’utilise est « un peu violente » (cf. explications ci-dessous). Du coup pour quelle soit fonctionnelle, il se peut (mais à priori ça marche quand même sans) que vous deviez modifier votre fichier limits.conf et rajouter le stanza suivant :

[rex]
depth_limit = 100000

Ce réglages permet d’augmenter la récursivité … Lire la suite