SecurityInsider
Le blog des experts sécurité Wavestone

Introduction au Software Defined Radio (SDR)


L’utilisation accrue d’objets sans-fil (téléphone, objet connecté, casque audio, télécommande, …) et la mise à disposition d’antennes bon marché favorisent l’étude des signaux radio. Les deux premiers articles de cette série visent à introduire les composants de la radio-logicielle (SDR) et de l’étude des ondes radio. D’autres articles seront ensuite publiés avec pour objectif d’évaluer la sécurité de l’utilisation d’un objet sans-fil.

Définition

Jusqu’à très récemment, il était plus rapide d’utiliser un matériel dédié pour réaliser une tâche ; c’est dans ce contexte que la radio s’est développée. Aujourd’hui, la puissance des calculateurs des ordinateurs permet de traiter une large quantité de données (plusieurs millions par secondes) et donc de traiter les signaux radio efficacement.
Si les briques de traitement du signal (dont la modulation/démodulation) peuvent être aujourd’hui déportés sur un ordinateur, la fonctionnalité de réception (ou d’émission) nécessite toujours un matériel dédié. Plusieurs définitions existent pour le terme de « radio-logicielle » ou SDR an anglais (Software Defined Radio), nous proposons la suivante :
Outils permettant de réceptionner ou d’émettre un signal qui sera par la suite traité par logiciel.
Le matériel nécessaire pour faire du SDR (« antenne SDR ») est donc composé au minimum des éléments suivants :
  • Une antenne avec des capacités en réception et/ou transmission.
  • Un convertisseur Analogique-Numérique (DAC) et/ou Numérique-Analogique (NAC). Il constitue l’interface entre le domaine électromagnétique (analogique) et informatique (numérique).
  • Dans certains cas, l’antenne peut embarquer des filtres et amplificateurs pour faciliter le travail du logiciel.


Le RTL-SDR, l’avènement du SDR bon marché

Une bonne « antenne SDR » doit être capable de scanner un large spectre de fréquences (de quelques MHz à plusieurs GHz) avec une bonne précision d’acquisition. Plusieurs produits existent (RTL-SDR, HackRF, LimeSDR, USRP, …) et offrent des possibilités variées (fréquences, réception/émission simultanées, gain, …) il convient donc de bien choisir son matériel.
Notre cabinet s’est doté d’un USRP, la référence des antennes SDR, pour réceptionner et émettre des signaux sur un large spectre de fréquence. 

Nous l’avons dit, le socle informatique est désormais capable de gérer un grand nombre de données, mais ce n’est pas cette évolution qui est pas à l’origine de la popularisation du SDR. L’avènement de la télévision numérique (DVB-T TV) permet de visionner la télévision numérique sur ordinateur à l’aide d’une clef USB. Sa production en masse permet de diminuer les couts de fabrication et de vente de la RTL2832U qui la compose.


Des personnes ont réussi à interagir avec la puce RTL2832U de ces antennes USB afin de mettre en avant des fonctionnalités des SDR sur ces équipements rendant accessible la radio-logicielle à tous.

Des exemples de logiciels

Comme son nom l’indique, un SDR peut être manipulé par un logiciel pour réceptionner ou émettre des données sans fil. La liste suivante vise à donner un aperçu des logiciels existant et les besoins auxquels ils répondent.

GNU Radio : le couteau suisse du SDR

GNU Radio est un outil qui détaille, à l’aide de blocs de programme, les différentes étapes pour moduler ou démoduler un signal. Les étapes les plus courantes dans le traitement des signaux (FFT, resampling, diagrammes, …) sont déjà implémentés et il est possible de faire interagir des blocs entre eux pour produire un programme qui sera capable, par exemple, d’écouter la radio sur son ordinateur.

Inspectrum et Baudline : visualiser le signal

Dans un premier temps, l’étude d’un signal consiste à le caractériser ; c’est-à-dire à identifier sa fréquence et son type de modulation. Une représentation des composantes (amplitude, fréquence et phase) d’un signal au court du temps est donc nécessaire. Les deux outils Inspectrum et Baudline répondent à ce besoin. Baudline permet aussi la collecte du signal.

rtl_sdr

Un SDR fournit à l’ordinateur un flux continu (stream) de nombres complexes caractérisant le signal. Il est possible d’enregistrer le signal dans un fichier pour ensuite l’étudier.
Nous prenons ici l’exemple du RTL-SDR mais chaque antenne nécessite une suite de logiciels pour les échanges antenne-ordinateur. GNU-Radio offre une interface pour ne pas avoir à installer chaque logiciel. Néanmoins, pour réaliser quelques tests, il peut être intéressant d’avoir le pilote de son SDR installé sur son poste. Par exemple, pour le RTL-SDR, le blog rtl-sdr.com (https://www.rtl-sdr.com/rtl-sdr-quick-start-guide/) décrit les étapes à suivre pour installer les logiciels sur Windows.
Il est maintenant possible d’enregistrer une fréquence donnée à l’aide la commande suivante :
rtl_sdr -f <freq> -s 2000000 fichier.sortie.cu8

Le fichier de sortie (fichier.sortie.cu8) est une suite de nombres complexes encodée sur 8 bits. L’extension cu8 (« Complex 8-bit unsigned integer samples ») est comprise directement dans Inspectrum .

Quelques cas d’école

Comme il est facile de se procurer un SDR à bas coût, une pléthore de logiciels ont été développé pour écouter et visualiser les données. 
Parmi les logiciels incontournables, nous présentons dump1090 qui donne la position des avions en temps réel et le système RDS pour écouter et obtenir des informations sur les chaines radio.

Dump1090 : positionner les avions

Salvatore Sanfilippo (Antirez), le développeur de Redis, a développé un outil, Dump1090 , qui permet de visualiser les informations des signaux radio « ADS-B ». Ces signaux sont utilisés dans l’aviation pour signaler la position GPS des avions sur un fréquence de 1090 MHz. À l’aide de son outil, il est donc possible pour un amateur équipé d’un RTL-SDR de repérer facilement les avions autour de lui.
Une fois l’outil installé, il suffit de lancer la commande suivante :
./dump1090 --interactive --net

Et d’ouvrir son navigateur sur :
http://localhost:8000

Depuis nos locaux de La Défense, il est possible de voir les avions dans le ciel parisien.

Radio Data System : informations sur une radio FM

Le Radio Data System (RDS) est un service proposé par les radios FM pour fournir aux utilisateurs des informations sur la radio qu’ils écoutent : nom, messages textuels ou encore d’autres fréquence d’écoute.
Pour consulter ces informations, nous allons installer une extension de GNU-radio : https://github.com/bastibl/gr-rds
Une fois celle-ci installée, il convient de démarrer gnu-radio à l’aide de la commande suivante :
gnuradio-companion apps/rds_rx.grc

Ensuite, l’interface proposée permet de positionner la fréquence du SDR et ainsi d’écouter la radio et de lire les information RDS.


C’est grâce à ce système que les radios diffusent le nom de la chanson actuellement en écoute.

Pour aller plus loin

Notre prochain article présentera les premières étapes de caractérisation d’un signal, l’identification de sa fréquence et son type de modulation. Ensuite, nous pourrons continuer l’analyse pour savoir comment démoduler des signaux et s’intéresser à leur sécurité.

CERT-W : Retours sur l'actualité de la semaine du 26 février au 4 mars 2018


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 par Vincent DEPERIERS, une Introduction au Software Defined Radio (SDR).

Veille cybercriminalité

5 méthodes pour trouver des machines sur lesquelles des processus tournent en tant qu'admin de domaine

L'identification de processus lancés avec des privilèges administrateur du domaine est la première étape dans l'impersonification de tels droits. NetSpi présente dans cet article 5 méthodes pour identifier ces processus.

L'impact des mises à jour Windows 10 dans l'investigation forensic

Lors de l'installation des mises à jour majeures de Windows 10, la date d'installation est réinitialisée et les journaux supprimés, ce qui peut avoir un lourd impact dans une investigation forensic.

2,4 millions d'utilisateurs ajoutés à la liste des victimes de la brèche Equifax

Equifax, victime d'une faille de sécurité majeure en 2017, avait annoncé le vol des données personnelles de plus de 145 millions de ses utilisateurs. 2,4 millions d'utilisateurs qui n'avaient pas encore été identifiés viennent s'ajouter à la liste des victimes.

Veille vulnérabilité

Microsoft a publié une nouvelle mise à jour de sécurité pour lutter contre la vulnérabilité Spectre

La mise à jour qui touche le microcode est cependant réservée aux machines Windows 10 disposant de la version Fall Creator Update ou les Windows Server Core avec Skylake.

Une vulnérabilité affecte les SSO basés sur SAML

Une vulnérabilité touche certaines implémentations du langage SAML. Cette vulnérabilité affecte la manière dont sont traités les commentaires XML lors du calcul de la signature.

HP a corrigé une vulnérabilité dans son outil d'administration à distance nommé Integrated Light-Out 3

La vulnérabilité corrigée permet à un attaquant à distance non authentifié de réaliser un déni de service sur les serveurs qui utilisent l'outil.

Indicateurs de la semaine

Le leak de la semaine - 23 000 certificats SSL du vendeur Trustico révoqués après leur publication

Suite au retrait prévu de certaines Autorités de Certification Symantec des magasins de confiance, la société de revente de certificats Trustico a souhaité procéder à la révocation de quelques 50.000 certificats. Afin de prouver à la société Digicert que les certificats avaient été compromis, le CEO de Trustico a envoyé par email les 23.000 clés privées associés à ces certificats, ce qui a eu pour effet de provoquer leur révocation sous 24h.

L'attaque de la semaine - Github victime de la plus grosse attaque par déni de service distribué (DDoS) jamais rencontrée

Ce 28 février, Github a subi une attaque DDoS dont le traffic est monté jusqu'à 1,35 Tbps. Cette attaque repose sur l'exploitation du protocole Memcached, qui fournit des services de mise en cache à destination des applications web.

Suivi des versions

Produits
Version actuelle
Adobe Flash Player
Adobe Acrobat Reader DC
Java
Mozilla Firefox
Google Chrome
VirtualBox
CCleaner

Nicolas DAUBRESSE

CERT-W : Retours sur l'actualité de la semaine du 19 au 25 février


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 !

Veille cybercriminalité

MWR Labs propose une méthode de découverte de chemins de compromission au sein d'un environnement Active Directory via les GPO

Sources :

Comment tirer parti des images de démarrage PXE lors de tests d'intrusion dans un environnement Windows

Sources :

La banque centrale russe révèle que 6 millions de dollars ont été volés via des attaques sur le réseau SWIFT de banques russes en 2017

Sources :

Akamai publie son rapport trimestriel sur les principales attaques Web et révèle que plus de 30 % des tentatives d'authentification sont malveillantes

Sources :

Le SI des organisateurs des Jeux Olympiques de Pyeongchang a été la cible d'un malware ayant entrainé différents dénis de service

Sources :

Kaspersky fait une synthèse des attaques ayant visé les institutions financières en 2017

Sources :

Veille vulnérabilité

Des vulnérabilités critiques découvertes dans l'implémentation SAML de produits populaires

Sources :

DuoSecurity publie l'outil CloudMapper permettant une visualisation simple des actifs liés à un compte AWS

Sources :

PentestPartners détaille comment intercepter les flux Bluetooth issus d'une application mobile avec l'outil d'instrumentation Frida

Sources :

Red Hat détaille comment Oracle a entrepris de corriger l'exploitation de failles liées à l'exécution de code sérialisé

Sources :

Comment bruteforcer un volume chiffré au moyen de la solution Linux Full Disk Encryption (LUKS) avec Hashcat

Sources :

L'éditeur de solution d'analyse forensics Cellebrite révèle être en mesure de déverrouiller les terminaux Apple sous iOS 11

Sources :

Des centaines de milliers de serveurs Memcached accessibles sur Internet récemment utilisés pour des attaques DDoS

Sources :

Indicateurs de la semaine

Le leak de la semaine - RiskBasedSecurity publie son étude autour des fuites d'information et en recense au total 5 200 pour l'année 2017

Sources :

L'attaque de la semaine - Une tentative de vol de 2 millions de dollars via le système SWIFT d'une banque indienne échoue

Sources :

Suivi des versions

Produits
Version actuelle
Adobe Flash Player
Adobe Acrobat Reader DC
Java
Mozilla Firefox
Google Chrome
VirtualBox
CCleaner

Thomas DEBIZE

KRACK : Retours sur la vulnérabilité qui a perturbé la sécurité des réseaux Wifi


Introduction

Le premier protocole historiquement utilisé pour sécuriser les réseaux wifi était WEP. Devant les nombreuses vulnérabilités trouvées, un protocole plus sécurisé a vu le jour en 2004 : WPA2, respectant la norme 802.11i. Depuis 2004, aucune faille n’a été trouvée sur le protocole même. Mieux, le protocole WPA2 a été prouvé formellement comme étant sécurisé.

Malgré cela, le 16 Octobre 2017, des vulnérabilités sur le protocole WPA2 accompagnées d’une preuve de concept (« KRACK ») ont été publiées. En effet une vulnérabilité dans les 4-handshake échangés lors de la connexion d’un client à un point d’accès wifi a été trouvé. Ces handshakes permettent la négociation de la clef de chiffrement utilisée pour la sécurisation des échanges sur le réseau wifi. Selon le protocole utilisé pour la protection des données sur le réseau un attaquant peut au moins déchiffrer les données transitant sur le réseau et au mieux forger lui-même des paquets.


Rappel sur le wifi

Généralités

Le wifi est un protocole de communication sans fil local régi par un ensemble de normes (normes IEEE 802.11) qui ont évoluées au fur et à mesure du temps. Ces évolutions concernent aussi les moyens mis en place pour sécuriser l’utilisation de ces réseaux. Les trois protocoles de sécurisation du Wifi sont les suivants :
  • WEP, fait partie de la norme 802.11 ratifiée en 1999
  • WPA respecte en grande partie la norme 802.11i et a été mis en place afin de remplacer le WEP en attendant que la norme 802.11i soit terminée
  • WPA2 respecte tous les éléments obligatoires de la norme 802.11i

Le protocole le plus répandu est WPA2 mais WPA n’a pas totalement disparu. Ces deux protocoles utilisent différents algorithmes de chiffrement pour protéger les données transitant sur le réseau : TKIP (WPA), AES-CCM ou AES-GCM (WPA2).


Focus sur les algorithmes de chiffrement utilisés

Le chiffrement par WPA-TKIP n’était qu’une solution temporaire remédiant à nombre de vulnérabilités de WEP et mis en place en attendant la solution finale qui était WPA2-CCM. Bien que cette dernière solution soit la plus utilisée, le chiffrement WPA2-GCM respecte une norme plus récente et il est attendu que son implémentation soit de plus en plus respectée dans les années à venir.
Le chiffrement WPA-TKIP est un chiffrement par flot basé sur RC4 et l’intégrité des messages est contrôlé par un algorithme appelé Michael.

Les deux autres algorithmes de chiffrements sont des algorithmes opérant par bloc et respectant le même mode d’opération : un chiffrement basé sur un compteur, c’est-à-dire que la clef utilisée pour chiffrer chaque bloc est calculé en fonction d’une clef et d’un compteur (un nombre aléatoire différent pour chaque chiffrement de bloc). Ainsi le même texte clair peut être chiffré deux fois sans donner le même texte chiffré.



L’intégrité des messages est vérifiée à l’aide de CBC-MAC pour WPA-CCM et par GMAC pour WPA-GCM.

4-way handshake

Lors d’une connexion d’un client à un point d’accès Wi-Fi sécurisé, quatre messages Handshakes sont échangées et différentes clefs de chiffrements sont créés :



L’échange des quatre handshakes se fait après la demande d’authentification du client au point d’accès wifi et est initié par ce dernier.

Les deux premiers messages du handshake permettent l’échange des deux nonce (un nonce calculé par le point d’accès wifi et le deuxième calculé par le client) nécessaires à la négociation de la clef de chiffrement qui va être utilisée tout au long de la session pour les messages unicast : la clef PTK (Pairwise Transient Key). 

Le troisième handshake permet de communiquer la clef GTK (Group Temporal Key), chiffrée avec la clef PTK, et utilisée pour les messages broadcast et multicast. A la suite de ce handshake le client finalise la négociation des clefs de chiffrement en envoyant un dernier handshake et en installant la clef PTK. A la réception du handshake 4 le point d’accès wifi installe à son tour la clef PTK.

Le premier handshake est le seul message dont l’intégrité n’est pas vérifiée. L’intégrité des handshakes 2,3 et 4 est vérifiée grâce au paramètre MIC (Message Integrity Check). 

KRACK

L’attaque a été découverte par deux chercheurs, Mathy VANHOEF et Frank PIESSENS, qui ont rédigé un papier intitulé « Key Reinstallation Atacks : Forcing Nonce Reuse in WPA2. »

Principe de l’attaque

Le principe de l’attaque est d’intercepter les requêtes lors du 4-way handshake entre le client et le point d’accès. En bloquant le handshake 4, le client va installer la PTK et commencer à envoyer des paquets chiffrés. Néanmoins le point d’accès n’ayant jamais eu confirmation de la réception du handshake 3 par le client, le handshake 3 sera renvoyé et la clé PTK sera réinstallé sur le poste du client :


La réinstallation de la clé PTK va mener à la réinitialisation du vecteur d’initialisation utilisé dans les différents chiffrements. 

Or, pour reprendre les terminologies utilisées lors du paragraphe « Focus sur les algorithmes de chiffrement utilisés », le vecteur d’initialisation est utilisé comme base du compteur. C’est-à-dire que c’est à partir du vecteur d’initialisation que les valeurs du compteur vont être générées. En réinitialisant le vecteur d’initialisation à la même valeur, le compteur va prendre deux fois la même valeur. Ainsi en réalisant un XOR entre le Msg4 (encadré en noir ci-dessus) et le Msg4 chiffré (encadré en rouge ci-dessus), on obtient la clef de chiffrement utilisé pour le message « Data » (encadré en violet).

Exploitation

Néanmoins cette attaque, dans les conditions présentées ci-dessus, reste assez théorique. En effet sans le Msg4 non chiffré (encadré en noir) il serait impossible de retrouver la clef de chiffrement et donc de retrouver le message « Data » en clair. Le nombre de paquet qu’il est donc possible de déchiffrer est très limité.
C’est dans le cas de l’utilisation du logiciel wpa_supplicant (version 2.4 et versions suivantes) que l’attaque se révèle redoutablement efficace. En effet le client va alors réinstaller une PTK nulle permettant alors à un attaquant de déchiffrer tout les paquets comme démontré dans le PoC (« proof of concept ») KRACK.
Des patchs pour wpa_supplicant sont maintenant disponibles.

Conclusion

La probabilité qu’un attaquant puisse exploiter cette vulnérabilité pour accéder à des informations sensibles reste assez faible (en dehors de wpa_supplicant), bien que la probabilité ne soit pas nulle. Il faut bien entendu mettre ces systèmes à jour aussi minime que soit le risque.
Néanmoins l’intérêt de la découverte de cette faille ne réside pas seulement dans son aspect pratique mais aussi dans ce qu’elle nous apprend. Deux leçons principales peuvent être tirées de la découverte de cette vulnérabilité. La première est l’échec de test unitaire en sécurité : le handshake et les protocoles de chiffrement sont prouvés sécurisés. Néanmoins la combinaison des deux ne l’est pas. La deuxième est qu’une manière efficace d’éprouver la sécurité en informatique est de rendre les ressources opensource. Comme le remarque justement Matthew Green sur son blog (https://blog.cryptographyengineering.com/2017/10/16/falling-through-the-kracks/), les standards IEEE sont difficiles d’accès même pour les chercheurs. Ce qui explique qu’il ait fallu pratiquement 14 ans pour découvrir la vulnérabilité.

Le standard WPA3, plus sécurisé, est en cours de rédaction et promet quatre nouvelles fonctionnalités dont une protection robuste même en cas de mot de passe faible.


Florian DESMONS

Sources

Wi-Fi Alliance. Technical Note: Removal of TKIP from Wi-Fi Devices, March 2015.

CERT-W : Retours sur l'actualité de la semaine du 12 au 18 février 2018


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 par Florian DESMONS sur la vulnérabilité KRACK.

Veille cybercriminalité

Des cybercriminels utilisent Google Adwords pour dérober des millions de dollars en Bitcoin

Un groupe de cybercriminels basé en Ukraine a utilisé Google Adword pour faire référencer des sites malveillants liés au Bitcoin. Pour cela, les recherches contenant les mots clés "blockchain" ou encore "bitcoin wallet" retournaient des sites contenant du phishing dans le but de récupérer les porte-monnaies électroniques (wallet). Au travers de cette campagne, nommée Coinhoarder, le groupe aurait dérobé l'équivalent de millions de dollars en Bitcoin (valeur sujette à évolution pendant la rédaction de cette article !).

Des récompenses de plus en plus élevées

Google indique sur son blog qu'il a versé 2.9 millions de dollars en 2017 dans le cadre de son programme de Bug Bounty, valeur qui est inférieure à celle de 2016. L'entreprise américaine annonce aussi sur son blog qu'elle va rehausser les primes sur certaines technologies.
Zerodium, une entreprise spécialisée dans la collecte de vulnérabiltiés, a aussi indiqué qu'elle augmentait les primes pour les vulnérabiltiés d'élévation de privilèges locale sur le socle Linux.

Exploitation active de la vulnérabilité touchant les produits Cisco ASA

Cedric Halbronn a présenté un PoC permettant d'exploiter une vulnérabilité critique (CVE-2018-0101) les composants Cisco Adaptive Security Appliance (ASA) qui permet d'obtenir un contrôle complet du système. Depuis, cette vulnérabilité est activement exploitée dans le but de causer des dénis de service sur les équipements réseaux. La base de code utilisée pourrait par la suite être utilisée pour prendre le contrôle de ces mêmes équipements. Il est donc recommander de mettre à jour au plus vite les équipements.

Des scientifiques arrêtés pour avoir miné de la cryptomonnaie dans un centre nucléaire

Des chercheurs du centre nucléaire Russe où première bombe atomique Russe a été créée, ont été arrêtés pour avoir miner de la cryptomonnaie sur les supercalculateurs (d'une puissance de 1-petaflop) du centre. Ils ont été identifiés lorsque les machines de simulation de tests nucléaires ont tenté de se connecter à Internet.

Veille vulnerabilite

Un caractère indien fait planter les applications Apple

Sur certaines versions des systèmes d'Apple (Mac, iPhone et iWatch), le caractère indien "Telegu" fait planter les applications (iMessage, WhatsApp, ...). Cela peut aussi faire planter le système si une notification contenant le caractère est affichée. Apple a publié un patch correctif sur ses appareils afin de corriger le bug.

Une vulnérabilité critique découverte dans l'application Télégram

La société russe Kaspersky a découvert une vulnérabilité dans l'application de messagerie Telegram reposant sur l'utilisation du caractère unicode de superposition de langages ("right to left override"). Ce caractère permet d'adapter l'affichage d'un texte pour les langues lisant de gauche à droite ou de droite à gauche.
Un attaquant peut tromper sa victime en inversant une partie du nom d'un programme malveillant affichant ainsi le nom d'un programme légitime. Par exemple, "photo_high_resgnp.js" devient "photo_high_ressj.png"

Microsoft corrige dans le Patch Tuesday de février une cinquantaine de vulnérabilités dont quatorze jugées critiques

Microsot a publié mardi 13 février une pléthore de patchs de sécurité sur une cinquantaine de vulnérabiltiés impactant les produits Windows, IE/Edge, Office et le lecteur Flash. Parmi les plus critiques deux vulnérabiltiés, CVE-2018-0850 et CVE-2018-0852, sur la messagerie Outlook permettent, respectivement, une élévation de privilèges et une exécution de code à distance lors de la lecture d'un mail.

Indicateurs de la semaine

Le leak de la semaine - Les données de clients de Western Union compromises

Western-Union a envoyé à certains de ses clients une lettre indiquant que la sauvegarde d'une base de données hébergée chez un tiers a été compromise. L'entreprise a indiqué qu'ils n'ont constaté aucune utilisation des données volée pour le moment et qu'ils ont contacté la police afin de mener des investigations.

L'exploit de la semaine - Une vulnérabilité de LibreOffice permet de lire les fichiers de la machine

Une vulnérabiltié de la suite bureautique LibreOffice permet de lire des fichiers à distance. Le logiciel est compatible avec des fonctions de la suite Microsoft Office et notamment "COM.MICROSOFT.WEBSERVICE". Sur les produits de Microsoft, cette fonction permet de lire uniquement des fichiers distants, il n'est donc pas possible de lire les fichiers locaux ("file://"). En revanche, sur les versions antérieures à 5.4.5 et 6.0.1 de LibreOffice, cette restriction n'est pas implémentée, permettant donc à une feuille de calculs de lire des fichiers du poste. Des détails sur l'exploitation de cette vulnérabiltié sont disponibles sur le Github pointé en annexe.

L'attaque de la semaine - Exécution de commande sous KDE Plasma en branchant une clef USB

Un bulletin de sécurité publié par KDE indique que lorsque que l'on insère une clef USB avec comme nom les caractères d'exécution de commandes "inline" ("``" ou "$()") alors, celle-ci est exécutée ! Cette vulnérabiltié, CVE-2018-6791, est jugée comme critique et est corrigée dans la dernière version de KDE (5.12.0).

Suivi des versions

Produits
Version actuelle
Adobe Flash Player
Adobe Acrobat Reader DC
Java
Mozilla Firefox
Google Chrome
VirtualBox
CCleaner

Vincent DEPERIERS

Utilisation des métadonnées de réplication, quand les journaux font défaut


Introduction aux données de réplication de l’Active Directory

Au sein d’un domaine Active Directory se trouvent généralement plusieurs contrôleurs de domaine qui nécessitent de disposer des mêmes informations. Pour parvenir à cela, l’Active Directory dispose d’un mécanisme de réplication qui permet, entre autres, de propager un changement depuis un contrôleur de domaine vers les autres. 
Dans son processus de réplication, l’Active Directory utilise des USN (Update Sequence Number) pour déterminer l’état des contrôleurs de domaines. Ces USN représentent un compteur stocké dans la base de données de l’Active Directory, qui est incrémenté à chaque changement de cette base au niveau d’un contrôleur de domaine. Chaque contrôleur de domaine dispose alors d’un USN qui lui est propre.
Lorsqu’un changement d’une information de l’Active Directory intervient sur un contrôleur de domaine, deux cas peuvent se présenter :
  • L’information modifiée n’est pas une information répliquée entre les différents contrôleurs de domaines. C’est le cas de l’ensemble des attributs de l’Active Directory qui disposent du flag FLAG_ATTR_NOT_REPLICATED[1] comme par exemple l’attribut « BadPwdCount » qui tient compte du nombre de tentatives de connexion échouées :


    Dans ce cas, le contrôleur de domaine effectue la modification dans sa propre base de données, mais ne transmet rien aux autres contrôleurs de domaine.

  • L’information modifiée nécessite une réplication entre les différents contrôleurs de domaines. Dans ce cas, le contrôleur de domaine qui a reçu le changement utilise le modèle de réplication de l’Active Directory pour transmettre le changement aux autres contrôleurs du domaine. Ce modèle de réplication ne sera pas détaillé dans cet article, mais permet la diffusion des évolutions à l’ensemble des contrôleurs d’un domaine en limitant le trafic nécessaire et en assurant la gestion des collisions (en cas de changement d’un même attribut sur différents contrôleurs sur une fenêtre de temps réduite).
Le processus de réplication utilise des métadonnées qui sont conservées sous la forme de deux attributs distincts : msDS-ReplAttributeMetaData[2] et msDS-ReplValueMetaData[3]. msDS-ReplAttributeMetaData est utilisé pour les changements effectués sur les attributs non linkés de l’Active Directory alors que msDS-ReplValueMetaData est réservé aux attributs linkés.
Les attributs linkés ont été introduits dans l’Active Directory à partir du niveau fonctionnel Windows Server 2003. Ce sont en fait des paires d’attributs dont la valeur de l’un est basée sur celle de l’autre. C’est par exemple le cas des attributs member d’un groupe et memberof de l’utilisateur.

Quel intérêt pour l’investigation ?

En tant qu’analyste forensic qui intervient suite à un incident de sécurité, le premier réflexe pour permettre d’identifier les actions malveillantes ayant eu lieu au sein d’un Active Directory est l’utilisation des journaux d’événements. Mais que faire si ceux-ci n’étaient pas activés au moment de l’attaque ? Ou si l’attaquant est parvenu à supprimer les journaux générés par ses actions, comme le permet un outil comme mimikatz[4] ?
Dans de telles situations, il est possible d’utiliser les données de réplication pour obtenir une vision partielle des actions des attaquants. En effet, d’après le fonctionnement des données de réplication, toute modification d’un attribut de l’Active Directory aboutit à la création d’une donnée de réplication contenant différentes informations pouvant être utile pour une investigation. 
Dans le cas d’un attribut non linké, et donc d’une métadonnée de type msDS-ReplAttributeMetaData, les informations stockées sont la version, qui correspond au nombre de changements de l’attribut depuis sa création, la date à laquelle a été effectuée la modification, l’USN correspondant au changement pour le contrôleur de domaine qui a initié la réplication, l’USN correspondant au changement pour le contrôleur de domaine sur lequel est récupéré la métadonnée, ainsi que l’UUID et le DN du contrôleur de domaine ayant initié le changement :


Pour les attributs linkés, les métadonnées de réplication, cette fois de type msDS-ReplValueMetaData, vont également stocker des informations sur les attributs liés à l’attribut en question. Les métadonnées de réplication vont alors conserver des informations sur chacune des propriétés de l’attribut lié, y compris pour les valeurs précédentes. Dans l’exemple de l’attribut member, les données de réplication conserveront donc à la fois des informations sur les membres actuels du groupe, mais également sur les utilisateurs ayant été membres mais ne l’étant plus :


A un instant donné, il est alors possible grâce à ces données de déterminer la date de dernière modification d’un attribut, ainsi que le nombre de fois où il a été modifié depuis sa création. Ces données, bien que semblant très limitées, peuvent alors servir à identifier différents scénarios d’attaque.

Elévation de privilèges par ajout dans un groupe

L’un des cas où les données de réplication offrent les meilleurs résultats est l’identification d’un scénario où l’attaquant s’est ajouté, puis supprimé d’un groupe, comme par exemple le groupe « Admins du domaine ». 
En effet, au sein d’un Active Directory, les groupes possèdent une propriété « member » qui liste les utilisateurs appartenant au groupe. L’ajout d’un utilisateur dans un groupe va alors incrémenter l’USN de son attribut « member » de 1, celui-ci ayant été modifié. De même, le retrait de l’utilisateur incrémentera également cet USN de 1. 
Etant donné ces propriétés, deux conclusions sont possibles :

  • Les utilisateurs ayant un USN impair sont membres du groupe (chose qu’il est directement possible de voir dans la valeur de l’attribut « member »), et la date de dernier ajout de l’utilisateur au sein du groupe est celle de l’USN ;
  • Les utilisateurs ayant un USN pair ont appartenu au groupe, mais n’en font plus parti depuis la date de l’USN. 
C’est donc dans le second cas que se retrouverait le compte d’un attaquant s’étant ajouté au groupe « Admins de domaine » pour réaliser des actions malveillantes, puis supprimé du groupe. Il est alors possible de créer un script récupérant les utilisateurs ayant été ajoutés ou supprimés d’un groupe après une date donnée (seule la date de premier et de dernier changement étant conservés, il ne serait pas fiable de limiter la recherche à une date maximale) :



Targeted Kerberoasting

Le kerberoasting est une technique qui exploite le processus d’authentification Kerberos pour permettre à un attaquant de récupérer le mot de passe d’un compte de service (comprendre « compte disposant d’un Service Principal Name »). Le principe de cette attaque est que, comme le montre le schéma suivant, lors d’une demande d’authentification à un service par un utilisateur, le KDC utilise le hash NTLM du compte de service pour chiffrer le TGS renvoyé à l’utilisateur. Dans ce processus, la légitimité de l’utilisateur à accéder au service n’est pas vérifiée, et n’importe quel utilisateur peut donc obtenir le TGS.



Il est alors possible pour l’attaquant d’effectuer une tentative de cassage du hash NTLM du compte de service en tentant de déchiffrer le TGS à partir de hashs successifs.
Supposons maintenant qu’un attaquant soit parvenu à récupérer des privilèges maximums sur un objet utilisateur, à savoir des privilèges de type GenericAll[5], qui donne notamment le droit de modifier le mot de passe du compte, ou encore de modifier les propriétés de l’objet Active Directory associé au compte. Pour usurper l’identité du compte en question, l’attaquant pourrait donc réinitialiser le mot de passe du compte avec une valeur qu’il choisit, et se connecter à l’aide de ce nouveau mot de passe. Néanmoins, une telle attaque serait rapidement détectée par l’utilisateur légitime du compte, qui ne parviendrait plus à se connecter avec son mot de passe habituel.
Une possibilité plus intéressante pour l’attaquant serait alors d’ajouter un Service Principal Name (SPN) au compte de ciblé, puis d’exécuter une attaque de type kerberoasting. C’est ce qu’on appelle le targeted kerberoasting.
La majorité des utilisateurs d’un domaine n’étant jamais supposée avoir de SPN, une telle attaque peut assez simplement être détectée si ce SPN n’est pas supprimé. Si par contre ce SPN est supprimé par l’attaquant une fois l’attaque effectuée, il reste toujours possible d’utiliser les données de réplication ! 
En effet, l’ajout ou la suppression d’un SPN sont des événements répliqués au sein de l’Active Directory, et génèrent donc des métadonnées de réplication de type msDS-ReplAttributeMetaData :


Il est alors possible de créer un script récupérant les comptes du domaine dont l’attribut SPN a été modifié depuis une date donnée, comptes qui sont donc des victimes potentielles d’une attaque de type targeted kerberoasting. 

Bruteforce d’un compte par blocage successif

Un scénario d’attaque par bruteforce pouvant être utilisé par un attaquant au sein d’un Active Directory ne disposant d’aucune alerte est la réalisation de tentatives de connexion en dehors des heures d’utilisation du compte, et ce jusqu’au blocage du compte.
Lors du blocage d’un compte, un flag LOCKOUT[6] est positionné sur l’attribut userAccountControl d’un utilisateur. Cet attribué étant répliqué entre les différents contrôleurs de domaine, des données de réplication de type msDS-ReplAttributeMetaData sont alors générées. Il est alors possible de créer un script permettant d’identifier les comptes du domaine ayant un numéro de version important dans les données de réplication de cet attribut, ce qui pourrait annoncer un tel bruteforce :


Il est cependant à noter que l’attribut userAccountControl dispose de plusieurs autres flags dont la modification entrainerait également la génération de données de réplication, indissociable des précédentes, comme par exemple pour le flag PASSWORD_EXPIRED. Cependant, cet attribut n’est généralement pas amené à évoluer grandement, et un très grand nombre de changements reste un indicateur relativement fiable d’un bruteforce.
Un autre point à noter est qu’en limitant les tentatives de connexion pour éviter le blocage du compte, un attaquant serait invisible à cette méthode d’investigation. 


Conclusion

Bien que n’apportant pas une vision aussi complète que les journaux d’événements, les données de réplication peuvent donc être une source d’information non négligeable pour une investigation forensic dans un Active Directory. 
Il est cependant à noter que des techniques permettant la modification des données de réplication pourraient exister[7], la confiance accordée aux informations obtenues grâce à celles-ci ne doit donc pas être aveugle.


Nicolas DAUBRESSE

Sources :