Fuite d’informations sous Mac OS X

Magazine
Marque
MISC
Numéro
65
Mois de parution
janvier 2013
Spécialité(s)


Résumé

À partir d'une analyse passive distante sans compte ou à partir d'un accès physique avec ou sans compte utilisateur, quelles informations critiques peuvent être extraites d'un système Mac OS X dans le cadre d'une attaque réelle ou d'une investigation numérique ?Cet article illustre, de manière crescendo, les différentes fuites d'informations accessibles pouvant être exploitées sur votre système.


Body

1. Introduction

Le système Mac OS X a été conçu pour répondre aux besoins des particuliers en automatisant un nombre important de tâches quotidiennes et d’administration. Avec Mac OS X, tout est plus facile et convivial que sur les autres systèmes d’exploitation. Mais est-il pour autant plus sécurisé ? Aujourd’hui, Mac OS X est de plus en plus présent dans les entreprises. Pouvons-nous avoir confiance en ce système au point de l'accepter dans le système d’informations de notre entreprise ? Est-ce qu’une configuration par défaut suffit à protéger les données des utilisateurs d’une éventuelle fuite d’informations lorsqu’un attaquant l’a prise comme cible ?

Finalement, les moyens d'accès offerts par défaut sur Mac OS X suffisent-ils à extraire les données les plus sensibles lors d'une analyse forensique ?

2. Fuite d’informations depuis un accès « simple » utilisateur

2.1. Obtention des droits utilisateur avant tout…

En effet, avant de pouvoir profiter des accès d’un utilisateur standard, il faut pouvoir les acquérir.

Plusieurs vecteurs d’attaques s’offrent à un attaquant selon le contexte (accès physique à la machine victime, accès distant, etc.).

Depuis un accès distant, un attaquant peut tout d’abord tenter d’exploiter simultanément la faille humaine et technique dans le but d’installer aux dépens de la victime un programme malveillant. Un exemple très récent exploitant ces deux aspects et qui a fait la une des médias est le malware Flashback. Celui-ci exploite notamment une faille Java qu’Apple a mis un certain temps à corriger. Java n’est évidemment pas un cas à part et les logiciels tiers tels que Safari, Quicktime ou encore iTunes sont souvent des cibles privilégiées des pirates.

En ce qui concerne l’exploitation de ces failles, le site exploit-db.com ou encore la plateforme d’exploitation Metasploit facilite grandement cette opération en proposant des outils ou des scripts conçus spécifiquement à cet effet.

Le nombre d’exploits conçus contre les plateformes Mac OS X est encore limité par rapport à Windows :

- 145 pour Windows depuis 2011 et 15, depuis 2003, se basant sur des failles des protocoles natifs SMB et Netbios ;

- 36 pour Mac OS X depuis 2003, dont 8 seulement se basant sur des failles des protocoles natifs (AppleFileServer, mDNSResponder, etc.).

Cependant, Mac OS X étant de plus en plus étudié par des chercheurs en sécurité, ces chiffres devraient grossir de manière significative dans les années à venir.

Pour limiter l’exploitation de vulnérabilités publiées, la recherche automatique des mises à jour système doit être activée afin d’alerter l’utilisateur qu’un éventuel patch de sécurité a été publié. Ce paramètre peut être configuré via le menu Préférences système > Mise à jour logicielle. Le système Mac OS X dispose d’un pare-feu (filtrage des flux entrants uniquement) qu'il est vivement conseillé d’activer par le menu Préférences système > Securité > Coupe-feu

D’autre part, depuis un accès distant, un attaquant peut tenter d’exploiter les services ouverts tels que ceux d’administration (SSH, Bureau à Distance, etc.) et de partage (FTP, HTTP, iTunes, etc.). Par défaut, lorsque ces services sont activés, il suffit à un attaquant d'être sur le même réseau local que sa victime et d’écouter les trames réseau mDNS (inclus dans le protocole Bonjour) pour identifier les services démarrés sur la machine de la victime. Ainsi, l’attaquant obtient d’une part les services disponibles de manière passive (sans lancer un scan de port) et d’autre part des informations intéressantes telles que le nom de l’utilisateur ou le login utilisé selon le service.

 

1-mdns-requetes

Trace réseau indiquant le nom de l'utilisateur courant

Le login de l’utilisateur ayant été identifié, il ne reste à l’attaquant qu'à identifier le mot de passe associé. Des outils tels que Bonjour Browser [1] ou MDNSRecon [2] implémentent des fonctionnalités permettant d’identifier et classifier ces informations automatiquement.

Pour désactiver l’envoi de requêtes mDNS sur le réseau, vous pouvez modifier le fichier de configuration associé en lançant la commande suivante suivie d’un reboot :

defaults write /System/Library/LaunchDaemons/com.apple.mDNSResponder ProgramArguments -array "/usr/sbin/mDNSResponder" "-launchd" "-NoMulticastAdvertisements"

Depuis un accès physique, les actions possibles sur le système sont évidemment plus nombreuses. En effet, il est possible d’une part d’accéder directement au contenu du disque dur via son extraction, si celui-ci n’est évidemment pas chiffré. Une autre alternative est d'exploiter le fait que, par défaut, la session du premier utilisateur créé (administrateur de la machine) s’ouvre automatiquement sans saisir le mot de passe de l’utilisateur. Dans le cas où l’accès à la GUI est protégé par un nom d’utilisateur et un mot de passe, il reste évidemment la possibilité de tenter d'identifier un couple d’authentifiants valides pour entrer sur le système. Enfin, il n’est pas rare qu’un utilisateur s’absente quelques instants sans verrouiller sa machine …

Une dernière méthode pour obtenir un accès au système, présentée par la suite, consiste à exploiter les accès directs à la mémoire RAM.

2.2. Exemple de fuite de données techniques et personnelles

L’intérêt ici n’est évidemment pas de présenter toutes les informations accessibles via un simple compte utilisateur, mais uniquement des exemples de données pertinentes en termes de confidentialité, utiles pour une future élévation de privilèges et accessibles sans connaître nécessairement le mot de passe du compte utilisateur compromis.

 

Exemples de fuite de données techniques

 

Exemples de fuite de données personnelles

3. Fuite d’informations depuis un accès privilégié

3.1. Obtention des droits d’administration sur le système de fichiers avant tout…

Depuis un accès local et un accès utilisateur, le moyen probablement le plus simple est, à mon sens, d’exploiter le contenu du trousseau d’accès afin de tester tous les mots de passe identifiés sur les comptes ayant le privilège d’administration. La seconde solution est de rechercher au sein du système un éventuel mot de passe stocké dans un document, un script ou un classeur Excel. Une ultime solution est de tenter une élévation de privilèges à travers un exploit publié. Encore une fois, Metasploit et exploit-db.com facilitent cette opération en proposant des outils automatisés de compromission. En ce qui concerne les exploits permettant une élévation de privilèges, le constat est le même que pour les exploits distants : il n’existe que 44 exploits pour Mac OS X depuis 2003 (la moitié se basant sur une faille d’un logiciel tiers, l’autre moitié sur le système directement) contre 220 pour Windows depuis 2011 (la majorité se basant sur des failles de logiciels tiers).

Depuis un accès physique, aussi étonnant que cela puisse paraître, c’est une chose très simple à réaliser sous Mac OS X. En effet, plusieurs méthodes sont possibles.

La première consiste à activer le mode « Single » en appuyant sur les touches « ⌘ + S » au démarrage de la machine. L’attaquant obtient alors une invite de commande en root et sans mot de passe. À partir de cet accès, il est capable d’exécuter toutes les commandes d’administration désirées ainsi que d’extraire toutes les informations stockées sur le disque dur sauf si, bien évidemment, celui-ci a été partiellement ou intégralement chiffré.

Une alternative est d’utiliser le mode « Target » d’Apple (qui consiste à transformer le Mac en un disque Firewire via « T »), de démarrer le système sur un système tiers tel qu’une clé USB ou le PXE (via  « ⌥ »)  ou encore d’utiliser le mode Recovery  (via « ⌘ + R ») disponible depuis Lion. Dans les trois cas, un accès au système de fichiers est possible sans restriction. D’autre part, Apple propose même dans le DVD d’installation une option de reset de mot de passe... sans commentaire.

Ces options de démarrage sont évidemment très utiles lors d'une analyse forensique nécessitant un accès au disque dur, mais peuvent cependant être exploitées à des fins malicieuses par un pirate.

Pour restreindre l’accès à des données sensibles, il est conseillé de chiffrer le répertoire utilisateur (sous Snow Leopard, avec FileVault, lors de la création d’un nouveau compte via le menu Préférences système > Comptes > + > Activer la protection FileVault) ou tout le disque dur (sous Lion, uniquement avec FileVault 2, via le menu Préférences système > Securité » > FileVault).

Pour empêcher l’utilisation de ces différents moyens d’accès, il faut définir un mot de passe à l’EFI (équivalent au BIOS en plus perfectionné) en utilisant l’outil Setregproptool disponible dans les packages sources d’installation de Mac OS X [5] ou depuis le mode « Recovery (Lion) » via le menu Utilitaires > Utilitaire de mot de passe du programme interne. Cependant, un moyen de contourner cette protection existe. En effet, il suffit de modifier la configuration matérielle (ex : changement de la taille d'une barrette de mémoire vive) pour que le mot de passe soit réinitialisé…

Une dernière alternative pour obtenir des droits root, un peu plus complexe à mettre en œuvre et présentée par la suite, consiste à exploiter les accès directs à la mémoire RAM.

3.2. Exemple de fuite de données techniques et personnelles

Évidemment, toutes les informations accessibles depuis un accès utilisateur et précédemment présentées sont également accessibles depuis un accès root avec en option la possibilité de cibler un utilisateur spécifique ou tous les utilisateurs du système. Des exemples de fuite d’informations depuis un accès root sont présentés dans le tableau ci-dessous.

 

Exemple de fuites d'informations depuis un accès privilégié

Les droits « root » sur un système Mac OS X permettent également d’extraire le contenu de la mémoire vive. Ce sujet est traité dans la section suivante.

4. Compromission et fuite d’informations depuis un accès à la mémoire RAM

4.1. Obtention d’une image de mémoire RAM

La mémoire RAM contient un nombre impressionnant de données sensibles souvent non inscrites sur le disque dur qui peuvent s'avérer très utiles tant lors d'une analyse forensique que lors d'un test d'intrusion.

Depuis un accès root à la machine, contrairement aux systèmes Linux classiques où il est possible d’accéder à la mémoire RAM à travers « /proc/kcore » ou « /dev/mem », sous Mac OS X cet accès n’est pas natif. Il est nécessaire d’installer un pilote pour pouvoir accéder au périphérique tant convoité… Des outils tels que MacMemoryReader [10] et MacMemoryze [11] permettent notamment d’automatiser ce processus et d’extraire au final une image brute de la mémoire RAM.

Depuis un accès physique, si la machine cible intègre un périphérique Firewire ou Thunderbolt (la majorité des Macbook actuels), l'accès direct à la mémoire RAM (accès DMA) est possible, et ce, quel que soit l’état de la machine (en veille, session, verrouillée, session ouverte, etc). Il suffit simplement à l’attaquant de connecter un câble Firewire entre sa machine et celle de la victime et de simuler un média de stockage Firewire (il est nécessaire d'utiliser un convertisseur Thunderbolt-Firewire si l'interface Thunderbolt est exploitée). L’accès en lecture à la mémoire RAM est alors possible depuis sa propre machine et à travers le câble Firewire. La bibliothèque Python libforensic1394[12] facilite grandement l’implémentation de scripts permettant de réaliser cette opération.

Une preuve de concept, sud0.MemDump.py, permettant d'extraire le contenu de la mémoire RAM à travers les accès DMA, est notamment disponible [13].

Pour empêcher l’utilisation des accès DMA, un moyen radical est de désactiver le pilote responsable de la prise en charge du périphérique Firewire via la commande suivante :

sudo kextunload /System/Library/Extensions/IOFireWireFamily.kext/Contents/PlugIns/AppleFWOHCI.kext

4.2. Fuite de données techniques et personnelles

Ci-dessous sont présentés des exemples de données accessibles ainsi que les signatures possibles pour les identifier rapidement. L’utilisation de ces signatures nécessite tout d’abord d’extraire les chaînes de caractères de l’image brute extraite, via par exemple la commande strings.

 

Exemple de fuites d'informations à travers la mémoire RAM

4.3. Contournement de la GUI d'authentification

Les interfaces Firewire et Thunderbolt permettent, comme indiqué précédemment, d’accéder en lecture à la mémoire RAM. L’accès en écriture est également possible par ce biais et permet d’une part de contourner l’authentification GUI de Mac OS X et d’autre part d’élever ses privilèges pour devenir root via la commande sudo.

Ces moyens d'accès sont notamment implémentées au sein de l’outil Inception [18], qui se base sur des signatures fixes (selon les versions) pour patcher directement en mémoire RAM les bibliothèques responsables de l’authentification.

 

11-bypass_RAM

Contournement de la GUI Mac OS X en quelques secondes

Ainsi, quel que soit l’état de la machine (session verrouillée, machine éteinte, machine sortant de veille, etc.), il est possible d’obtenir en quelques secondes (entre 15 et 30 secondes) un accès root via un simple câble Firewire… Cela peut notamment être très utile dans le cas d'une analyse forensique lorsqu'aucun authentifiant de la machine à inspecter n'est connu.

Toutefois, les nouvelles versions de Mac OS X (à partir de Lion 10.7.2), bloquent l’accès aux ports DMA dans certains cas, notamment lorsque Filevault est activé (système démarré, ouverture de session par liste d'utilisateurs, etc.). Plusieurs études complètes ont notamment été réalisées sur ce sujet [19] [20].

5. Fuite d'informations depuis Google

Aussi étonnant que cela puisse paraître, une recherche rapide sur Google en mode GHDB vous permettra d’identifier de nombreux serveurs ouverts en Directory Listing et stockant tout le répertoire d’un utilisateur Mac OS X, soit des documents personnels, des emails, des rendez-vous et… le trousseau d’accès de l’utilisateur.

Ainsi, pour exemple, 20 minutes suffisent à identifier un fichier trousseau d’accès « login.keychain », trouver le mot de passe associé, accéder au mot de passe d’un second trousseau d’accès (1Passwd.keychain), ouvrir ce dernier, identifier des mots de passe, ma foi, assez sympathiques (Facebook, Gmail, Twitter, Paypal, Amazon, etc.). En 20 minutes, il est ainsi possible de générer une fuite d’informations conséquentes pour un utilisateur ou une entreprise, et cela, sans difficulté technique particulière et sans utiliser de 0-day…

5.1. Pac4Mac, « Plug And Check for Mac OS X »

Pour ceux qui souhaiteront vérifier de manière automatisée le niveau de sécurité de leur système, sachez qu'un framework de Forensic, Pac4Mac, est en cours de conception et devrait être prochainement publié sur le site de XMCO [21].

Pac4Mac est un outil portable (d'où le « Plug » s'il est mis sur une clé USB) codé en Python capable d'automatiser la recherche de données sensibles sur Mac OS X et d'identifier les fuites d'informations possibles selon la configuration du système et les privilèges acquis. Pac4Mac intègre également des fonctionnalités d'analyse post-intrusive et de recherche rapide des traces d'une potentielle compromission. Le détail des possibilités offertes par l'outil peut être représenté sous cette forme :

 

13-Pac4Mac_menu

Fonctions intégrées dans Pac4Mac

Pour des raisons de performance, Pac4Mac n'intègre pas d'interface graphique et se lance via le Terminal.

 

14-Pac4Mac_launch

 

Conclusion

À la question « Est-ce qu’une configuration par défaut suffit à protéger les utilisateurs d’une éventuelle fuite d’informations », la réponse est bien évidemment « non ». Comme vous avez pu le constater, les possibilités offertes par un attaquant sont nombreuses et cela est plutôt effrayant. D'autre part, une investigation numérique menée sur un système Mac OS X se révèle être très simple à mener étant donné les nombreux accès natifs configurés par défaut. Malheureusement, ces derniers peuvent être exploités à des fins malveillantes par des pirates dont leur but est d'extraire des informations sensibles.

Il est par contre important de noter que tous les risques présentés en termes de fuite d’informations peuvent être largement résorbés en suivant les bonnes pratiques de sécurisation d’un système Mac OS X [22] [23]. Après un durcissement du système, le niveau de sécurité de Mac OS X est presque aussi bon que celui d’un système Windows 7 configuré par défaut. Eh oui, contrairement à beaucoup de rumeurs, Mac n’est pas plus sécurisé que Windows 7 en termes de fuites d’informations, il l’est en fait beaucoup moins…

Remerciements

Yannick Hamon et Nicolas Ruff pour leurs relectures et précieux conseils.

Cécile, Camille et Arthur pour leur patience et pour ce qu'ils m'apportent tous les jours...

Références

[1] Bonjour Browser : http://itunes.apple.com/fr/app/discovery-bonjour-browser/id305441017?mt=8

[2] MDNSRecon : https://github.com/darkoperator/MDNSRecon

[3] Juuso : https://github.com/juuso/keychaindump

[4] CCleaner : http://itunes.apple.com/fr/app/ccleaner/id499268461?mt=12

[5] Setregproptool : https://jamfnation.jamfsoftware.com/article.html?id=58

[6] ml2john.py : https://github.com/claudioandre/magnum-jumbo

[7] CrowbarKC : https://www.georgestarcher.com/?p=233

[8] Passware Kit : http://www.lostpassword.com/kit-enterprise.htm/

[9] CrowbarDMG : https://www.georgestarcher.com/?page_id=256

[10] MacMemoryReader : http://cybermarshal.com/index.php/cyber-marshal-utilities/mac-memory-reader

[11] MacMemoryze : http://www.mandiant.com/resources/download/mac-memoryze-1.0trade

[12] libforensic1394 : https://freddie.witherden.org/tools/libforensic1394/

[13] PoC sud0.MemDump.py : http://dl.dropbox.com/u/31995154/HackMACOS-PUB/tools/sud0.MemDump.py

[14] Video exploitation Firewire : http://sud0man.blogspot.fr/2011/12/video-exploit-firewire-access-against.html

[15] Aeskeyfind : https://citp.princeton.edu/research/memory/code/

[16] RAM_Web_Cred-0.1.py : https://dl.dropbox.com/u/31995154/HackMACOS-PUB/tools/RAM_Web_Cred-0.1.py

[17] RAM_MacOSx_Cred-0.1.py : https://dl.dropbox.com/u/31995154/HackMACOS-PUB/tools/RAM_MacOSx_Cred-0.1.py

[18] Inception : http://www.breaknenter.org/projects/inception/

[19] Acquisition de la RAM sous Lion : http://inc.frameloss.org/wp-content/uploads/2011/09/Lion-Memory-Acquisition.pdf

[20] Complément d'étude concernant le mode « User Mode Switching » : http://www.frameloss.org/2011/09/18/firewire-attacks-against-mac-os-lion-filevault-2-encryption/

[21] Site de XMCO : http://www.xmco.fr

[22] Présentation GsDays 2012 : http://sud0man.blogspot.fr/2012/04/hackmacosx-gsdays-2012.html

[23] Bonnes pratiques : http://www.securelist.com/en/blog/208193448/10_Simple_Tips_for_Boosting_The_Security_Of_Your_Mac

 



Article rédigé par

4 articles

Par le(s) même(s) auteur(s)

Chipsec, un outil pour les tests de conformité des firmwares

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Spécialité(s)
Résumé

La vérification qu'une plateforme PC est correctement configurée pour limiter l'exposition de celle-ci est fastidieuse et complexe si elle est effectuée manuellement. L'outil Chipsec permet de faciliter grandement ces opérations, tant par son support des différents modes d'accès que par celui des différentes plateformes. Cet article présente son fonctionnement interne et son utilisation à des fins de tests de conformité.

Recherche d'indices de compromission sur iOS

Magazine
Marque
MISC
HS n°
Numéro
10
Mois de parution
octobre 2014
Spécialité(s)
Résumé

Cet article est une introduction à l’investigation numérique de terminaux Apple iOS. L'objectif est d’infirmer ou confirmer la compromission du terminal par un programme malveillant. Dans les différents exemples, nous partons du principe que le terminal à analyser est fourni volontairement par la victime et donc que l'éventuel mot de passe protégeant le terminal est connu. D’autre part, les thèmes relatifs à l’analyse des éléments de la chaîne de démarrage du terminal (BootRom, LLB, iBoot, etc.) ainsi que le code exécuté sur la puce radio (Baseband) ne seront pas abordés, leur complexité d’analyse nécessitant un article à eux seuls.

Les derniers articles Premiums

Les derniers articles Premium

Bun.js : l’alternative à Node.js pour un développement plus rapide

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Dans l’univers du développement backend, Node.js domine depuis plus de dix ans. Mais un nouveau concurrent fait de plus en plus parler de lui, il s’agit de Bun.js. Ce runtime se distingue par ses performances améliorées, sa grande simplicité et une expérience développeur repensée. Peut-il rivaliser avec Node.js et changer les standards du développement JavaScript ?

PostgreSQL au centre de votre SI avec PostgREST

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Dans un système d’information, il devient de plus en plus important d’avoir la possibilité d’échanger des données entre applications. Ce passage au stade de l’interopérabilité est généralement confié à des services web autorisant la mise en œuvre d’un couplage faible entre composants. C’est justement ce que permet de faire PostgREST pour les bases de données PostgreSQL.

La place de l’Intelligence Artificielle dans les entreprises

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’intelligence artificielle est en train de redéfinir le paysage professionnel. De l’automatisation des tâches répétitives à la cybersécurité, en passant par l’analyse des données, l’IA s’immisce dans tous les aspects de l’entreprise moderne. Toutefois, cette révolution technologique soulève des questions éthiques et sociétales, notamment sur l’avenir des emplois. Cet article se penche sur l’évolution de l’IA, ses applications variées, et les enjeux qu’elle engendre dans le monde du travail.

Petit guide d’outils open source pour le télétravail

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Ah le Covid ! Si en cette période de nombreux cas resurgissent, ce n’est rien comparé aux vagues que nous avons connues en 2020 et 2021. Ce fléau a contraint une large partie de la population à faire ce que tout le monde connaît sous le nom de télétravail. Nous avons dû changer nos habitudes et avons dû apprendre à utiliser de nombreux outils collaboratifs, de visioconférence, etc., dont tout le monde n’était pas habitué. Dans cet article, nous passons en revue quelques outils open source utiles pour le travail à la maison. En effet, pour les adeptes du costume en haut et du pyjama en bas, la communauté open source s’est démenée pour proposer des alternatives aux outils propriétaires et payants.

Les listes de lecture

11 article(s) - ajoutée le 01/07/2020
Clé de voûte d'une infrastructure Windows, Active Directory est l'une des cibles les plus appréciées des attaquants. Les articles regroupés dans cette liste vous permettront de découvrir l'état de la menace, les attaques et, bien sûr, les contre-mesures.
8 article(s) - ajoutée le 13/10/2020
Découvrez les méthodologies d'analyse de la sécurité des terminaux mobiles au travers d'exemples concrets sur Android et iOS.
10 article(s) - ajoutée le 13/10/2020
Vous retrouverez ici un ensemble d'articles sur les usages contemporains de la cryptographie (whitebox, courbes elliptiques, embarqué, post-quantique), qu'il s'agisse de rechercher des vulnérabilités ou simplement comprendre les fondamentaux du domaine.
Voir les 70 listes de lecture

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous