J’avais un chat qui adorait la crème glacée. Je crois que j’ai dû lui en donner quand il était encore chaton. Après cela, à chaque fois qu’il voyait quelqu’un manger une glace, il faisait tout son possible pour essayer de lui en voler. Et même si ce n’était pas un parfum qu’il appréciait particulièrement, il ne pouvait pas s’empêcher de tenter de voler la crème glacée.
Tout comme mon chat avec la glace, les malfaiteurs essaient constamment de voler les données des entreprises à des fins malveillantes. Et tout comme mon chat a exfiltré d’innombrables parfums de glace, on trouve toutes sortes de saveurs d’exfiltrations de données.
Et depuis peu, un nouveau parfum d’exfiltration de données a fait son apparition au rayon des surgelés.
Mnemonic Labs a récemment publié un article de preuve de concept très intéressant expliquant comment l’extension TLS SNI peut être utilisée pour exfiltrer des données. L’approche est très similaire à d’autres techniques plus sophistiquées d’exfiltration de données. Le travail de Mnemonic révèle que la méthode d’exfiltration par SNI réussit à contourner de nombreux contrôles de sécurité, ce qui m’a conduit à un petit exercice de détection dans Splunk.
Avant de nous y plonger, voici quelques informations sur le code de la preuve de conception de Mnemonic, issu de leur blog :
SNIcat est formé de deux composants distincts mais interdépendants :
Pour voir les informations SNI, j’utilise Zeek afin de capturer les données de transaction. Ensuite, j’injecte les données Zeek dans Splunk et, à l’aide de l’application Decrypt de Splunk, je parviens à décoder les données SNI encodées en Base32 (SNICat utilise l’encodage Base32 pour réaliser l’exfiltration).
Voici un résumé rapide des étapes que j’ai suivies et des recherches Splunk employées. Pour plus d’informations sur le code de Mnemonic, reportez-vous à l’article de blog ci-dessus.
La recherche suivante renvoie les différentes commandes SNICat passées dans le champ SNI et capturées via le décodeur SSL de Zeek, puis injectées dans Splunk. J’ai inclus une image montrant les événements capturés lorsque le serveur C2 SNICat exécute ses différentes fonctions.
index=main sourcetype="bro:ssl:json" | rex field=server_name "(?(LIST|LS|SIZE|LD|CB|CD|EX|ALIVE|EXIT|WHERE|finito)-[A-Za-z0-9]{16}\.)" | stats count by snicat
index=main sourcetype="bro:ssl:json"
| search server_name=*
| rex field=server_name "(?P^[A-Z2-7]+=*)"
| eval b32len=len(base32_encoded_sni)
| where b32len>10
| decrypt field=base32_encoded_sni b32() emit('base32_decoded_command')
| table base32_decoded_command base32_encoded_sni
La voici à nouveau, en gros plan pour le plaisir des yeux :
J’ajouterai sous peu la détection de SNICat à la Mise à jour de contenu de sécurité de Splunk Enterprise Security, mais en attendant, n’hésitez pas à utiliser les recherches ci-dessus.
Bon Splunking !
*Cet article est une traduction de celui initialement publié sur le blog Splunk anglais.
La plateforme Splunk élimine les obstacles qui séparent les données de l'action, pour donner aux équipes d'observabilité, d'IT et de sécurité les moyens de préserver la sécurité, la résilience et le pouvoir d'innovation de leur organisation.
Fondée en 2003, Splunk est une entreprise internationale. Ses plus de 7 500 employés, les Splunkers, ont déjà obtenu plus de 1 020 brevets à ce jour, et ses solutions sont disponibles dans 21 régions du monde. Ouverte et extensible, la plateforme de données Splunk prend en charge les données de tous les environnements pour donner à toutes les équipes d'une entreprise une visibilité complète et contextualisée sur l'ensemble des interactions et des processus métier. Splunk, une base solide pour vos données.