Black Hat 2015 : les services cloud sous le feu des hackers
Imperva constate que les jetons (« tokens ») exploités par les services de stockage en ligne pour faciliter l’authentification représentent un filon pour les pirates. Explications.
Interception de données dans les machines virtuelles, fragilité des interfaces de programmation logicielles (API), exploitation massive d’instances GPU pour casser des clés de chiffrement… Les hackers auront fait le tour du cloud dans le cadre de la conférence Black Hat USA 2015, organisée du 1er au 6 août à Las Vegas.
La démonstration d’Imperva a suscité une attention particulière, essentiellement en raison du nombre d’individus potentiellement concernés : tous ceux qui utilisent au moins un service de stockage en ligne parmi Box, Dropbox, Google Drive et OneDrive*.
L’attaque en question est d’autant plus dangereuse qu’elle est difficilement détectable, aussi bien par l’humain que par les outils de sécurité informatique. Et pour cause : elle s’appuie sur du code déjà installé et sur des canaux de communication déjà ouverts.
Les pirates n’ont, dans l’absolu, qu’à exécuter une charge utile sur la machine qu’ils visent, puis à reconfigurer quelques paramètres : pas besoin de voler l’identifiant et le mot de passe utilisés pour se connecter aux services cloud.
Au coeur de cette attaque qualifiée de MITC (« Man-In-The-Cloud »), le client logiciel qui fonctionne en arrière-plan pour détecter tous les fichiers ajoutés dans le(s) dossier(s) synchronisé(s) en ligne.
Demander à l’utilisateur de s’authentifier à chaque modification serait trop fastidieux. Si bien que la machine prend le relais grâce à un jeton – token – stocké dans un fichier (pour Dropbox), dans le registre (pour Google Drive) ou encore dans le gestionnaire d’identités de Windows (pour OneDrive et Box).
Pile ou face ?
Sur ces quatre services, seul Dropbox repose sur un système d’authentification propriétaire. Les trois autres sont fondés sur le standard OAuth 2.0, avec lequel chaque machine liée à un compte cloud est considérée comme une « application » (ce qui a une importance pour la suite de la démonstration).
Les experts d’Imperva se sont aperçus que le jeton n’était pas lié à la machine sur lequel il a été créé. Il suffit donc de le dérober et de le déposer sur une autre machine pour prendre le contrôle d’un compte.
Un outil a été développé à cet effet. Baptisé Switcher, il est généralement transmis à la victime par e-mail (phishing) ou en passant par un lien malveillant, notamment sur les réseaux sociaux.
Switcher implante d’abord, sur les machines qu’il infecte, un jeton créé par les pirates. Il copie ensuite celui de la victime dans le dossier synchronisé pour pouvoir le récupérer… et l’utiliser sur des postes contrôlés par leurs soins. Une fois leur forfait commis, ils peuvent passer par Switcher pour remettre en place le jeton original et ainsi effacer toute trace.
Ces manoeuvres sont difficiles à repérer : les services cloud étudiés par Imperva ne sont pas conçus pour relever les activités suspectes de synchronisation.
Dès lors, c’est portes ouvertes : le cybercriminel peut modifier tous les fichiers présents dans le dossier de synchronisation ; que ce soit en ajoutant des scripts dans les PDF ou des macros piégées dans les documents Word.
On peut même aller plus loin en montant une porte dérobée qui permet de maintenir la connexion à distance. Par exemple en planifiant des tâches, ce qui force le client de synchronisation à rester actif en permanence.
Parfums variés
Le cas de Google Drive – consultable en pages 9 et 10 du rapport d’Imperva – est riche en enseignements. Tout commence par la localisation du jeton, dissimulé dans le registre, à l’entrée HKEY_CURRENT_USER\Software\Google\Drive.
Il est chiffré grâce à la fonction CryptProtectData intégrée dans la bibliothèque Crypt32.dll. Pour le déchiffrer, il suffit de réaliser l’opération inverse en passant par la commande CryptUnprotectData.
Autre élément important : le fichier sync_config.dbx, qui contient des informations telles que l’adresse e-mail de l’utilisateur, le chemin du répertoire synchronisé… et le numéro de version de l’application. Une donnée importante, car le jeton pirate doit être créé avec la même mouture de Google Drive que celle installée sur la machine ciblée.
La détection de l’attaque est rendue complexe par le fait que Google Drive assimile chaque nouvel appareil synchronisé à une application tierce… et n’enregistre donc pas sa localisation. La meilleure solution reste de modifier le mot de passe du compte, ce qui révoque tous les jetons associés.
Avec Dropbox (pages 10-11), il faut se pencher sur la valeur host_id inscrite dans le fichier SQLite config.dbx (sync_config.db pour les anciennes versions), facilement déchiffrable en récupérant la clé dans le registre Windows – Imperva utilise un script Python pour cela.
Le pirate modifie ensuite host_id avec une valeur associée à un compte qu’il contrôle, met le host_id de l’utilisateur sur sa propre machine et peut commencer à manipuler des fichiers.
Dropbox a récemment renforcé sa sécurité sur ce point. Chaque connexion produit désormais un nouveau host_id associé uniquement à la machine sur laquelle il a été produit.
* Versions testées : Dropbox 3.6.8, Box 4.0.6477, Google Drive 1.18.7821.2489, OneDrive 17.3.5860.0512.
Crédit image : faithie – Shutterstock.com