La team digital.security au SPLUNK Boss Of The SOC Paris !

Filtrer par catégorie :

digital.security au Splunk BOTS
 
Pour cette première participation, les experts de digital.security avaient la double ambition de participer et .... de terminer à une place honorable.
 
Le challenge annoncé par les organisateurs était clair : "Vous souhaitez tester vos compétences face à d'autres Ninjas de la sécurité ? Rejoignez-nous au Boss of the SOC France".
 
Afin de mettre toutes les chances de notre côté, Cédric NOBLANC un collègue Econocom et fondateur éminent de la communauté Splunk FR était parmi nous.

Lors de la compétition, étaient mis à disposition des challengers un serveur de scoring et un serveur d'investigation, ainsi que les données de logs représentant 5 cas d'usages classiques que nous retrouvons dans notre exploitation quotidienne en tant qu'analystes de SOC : menace interne, attaques web, ransomware/malware, APT et fraude.



Chaque équipe disposait d'une instance Splunk Enterprise, Splunk Enterprise Security, et devait résoudre les différentes questions posées sur une durée de 3 heures.
 
Même si une expertise inforensique permettait de trouver quelques flags, des notions de Splunk SPL (Search Processing Language) et des connaissances sur les diverses sources de données externes (firewall, OS logs, DNS, etc…) étaient clairement un plus pour espérer sortir du lot.


 

C'est parti !

L'environnement du challenge était très complet et la pression a commencé dès les premières minutes où certaines équipes scoraient déjà les premiers flags !
A notre disposition beaucoup d'informations à prendre en compte : Examen des incidents, position de sécurité, ainsi qu'une vision globale de l'infrastructure de la société fictive FROTHLY.

 


 

Les deux synthèses Examen des incidents et Position de sécurité délivrées par Splunk Enterprise Security, ainsi que la page d’alerte du FBI liée au scénario d’APT, étaient clairement un plus pour nous guider dans le dédale des logs et ... commencer à scorer :)

 




 
Examens des incidents et Position de sécurité




 

Scénario Ransomware/Malware

Un exemple de scénario à notre disposition concernait un supposé ransomware ... à nous de jouer !
 
Scenario 3 - Ransomware/Malware (3XX)
 
As with any company in 2017, Frothly is dealing with the ongoing annoyance of ransomware. Recently, their Marketing intern, Mallory Kraeusen, caused a significant loss to Frothly Corporate because of her “bad choices” according to Kevin Lagerfield. Alice’s goal in this scenario is to determine the scope of the ransomware infection and its initial ingress vector. Also, if at all possible, Alice should come up with a way of reversing the damage the ransomware did to recover the critical files it encrypted.
Unfortunately, it appears Kevin is the pot calling the kettle black. He believes Mallory has been undermining him to upper management and has targeted one of her systems in order to determine if this is true. Alice needs to figure out what he did in order to provide some evidence for HR. "




 

Quelques requêtes SPL

Voici quelques exemples de requêtes SPL ayant permis de répondre à des questions allant de 100 à 1500 points.

Interprétation TTL d'une réponse DNS

Dans le feu du challenge, nous allions passer à côté d’éléments importants de la question, en effet car la requête suivante donne les informations ...
index=* sourcetype="stream:dns" www.brewertalk.com query="www.brewertalk.com" | stats max(ttl{})
... mais nous retourne le TTL des demandes et réponse DNS alors que la suivante ...
index=* sourcetype="stream:dns" query="www.brewertalk.com" answer="*" | stats max(ttl)
nous donnera les logs avec un champ réponse et nous permettra de scorer nos premiers points !

total de traffic sur une machine - question 102

Grâce à Splunk Enterprise Security (ES) il a été possible d’identifier facilement le nom de machine / IP de la machine de l’utilisatrice et nous avons pu par la suite chercher dans les logs le total du trafic web :
index=* src_ip="10.0.2.101" OR dst_ip="10.0.2.101" sourcetype="stream:http" site=" <http://www.berkbeer.com/> www.berkbeer.com" |eval totalbytes=(bytes_in+bytes_out)/1024 | stats sum(totalbytes) sum(bytes) by src            
 
      
Avec src_ip et dst_ip les informations issues de ES. La fonction eval ensuite qui calcule le total pour chaque transaction des données échangées entre le client et le serveur en Kilobytes. Enfin le stats qui affiche le total du trafic depuis la machine d'Amber.
Nb : Si l’on avait utilisé la fonction roud() avec un arrondi strict, la réponse était fausse, car retournait 807KB alors qu’avec un arrondi à un chiffre après la virgule le résultat était 806,2KB. La bonne réponse était 806.


astuce base64 decode

Une question cruciale était de retrouver - pour les besoins de l'enquête - à quel endroit l'utilisateur va aller faire du shopping ^^
index=* sourcetype="stream:smtp" maxneckb3ard@gmail.com |base64 field="content_body{}" action=decode mode=append |table sender, receiver content_body{}      
Et au final nous pouvions lire les emails pour trouver le Mall en question avec l’astuce de la SPL suivante permettant de décoder le base64 qui peut être présent dans le champ content_body :
base64 field="content_body{}" action=decode mode=append
Note : Si vous n’avez pas de connaissance du langage Splunk SPL, des cours en ligne existent comme le « Splunk Fundamentals 1 » par exemple.
 
La bataille fût très disputée comme en témoigne le dashboard des réponses aux questions en fonction du temps.
 




Finir dans le TOP 10 : Done !

Finalement après 3 courtes heures de CTF et en ayant laissé loin devant les deux équipes FlyingSOC et AcidBitchez, l'équipe digital.security / Econocom termine 8ème !


Bravo aux gagnants et un grand merci à l'équipe Splunk pour l'organisation de cette édition 2018.
Rendez-vous pour la prochaine plus motivés que jamais !