SecurityInsider
Le blog des experts sécurité Wavestone

La boîte à outils de Hacking Team : la caverne d'Ali Baba du pirate


Hacking Team, une entreprise italienne commercialisant des logiciels servant à l’espionnage et à la surveillance, a été victime d’un piratage massif. Le 5 juillet 2015, c’est en effet 400Go de données appartenant à l’entreprise qui ont été mis en ligne.
Parmi les informations rendues disponibles se trouvent des attaques jusque-là inconnues, des emails et documents internes exposant des informations commerciales et stratégiques de l’entreprise ou encore certains des outils que commercialise l’entreprise.
Ces révélations permettent de se donner une idée plus concrète de la technicité des attaques les plus avancées tout en levant un voile sur l’économie de l’offensive security.

L’analyse des éléments rendus publics lors de l’attaque permet la compréhension des techniques utilisées

Galileo – Un système de contrôle à distance d’une simplicité étonnante…

Les documents publiés révèlent de nombreuses informations sur le système de contrôle à distance Galileo proposé par Hacking Team. Les guides d’administration et d’utilisation de cet outil permettent notamment de mieux comprendre son fonctionnement et les compétences nécessaires à son utilisation.
L’objectif de cet outil, tel que décrit par les présentations de Hacking Team elle-même, est de permettre aux agences gouvernementales de pouvoir surveiller et collecter des preuves malgré des systèmes de chiffrement des flux de plus en plus utilisés.
Pour parvenir à ce résultat, Hacking Team utilise une méthode offensive qui consiste à déployer un agent sur l’appareil ciblé. Plusieurs méthodes de déploiement existent afin de permettre l’installation de l’agent, que ce soit à l’aide d’un accès physique ou de manière distante. Une fois déployé, cet agent pourra récupérer les informations de la cible, et cela même si les flux sont chiffrés puisqu’en étant implanté directement sur la machine de la cible, il intervient après le déchiffrement.
Figure 1 : Galileo, un outil d’espionnage basé sur des agents[1] à déployer sur les cibles

L’éventail des appareils et applications ciblées par Galileo est très large, et même si certaines difficultés peuvent être rencontrées pour des systèmes d’exploitation spécifiques, aucun d’eux n’est protégé contre les techniques de l’entreprise italienne.

Figure 2 : Slide de présentation des systèmes d’exploitation ciblés[2]image003.jpg

Figure 3 : Compromission de multiples systèmes[3]

Pour éviter la détection, l’agent déployé en premier lieu est un programme simple ayant de faibles chances de détection, et ayant pour seul but de déterminer l’état de sécurisation de la machine cible. En fonction des conclusions de ce premier agent, nommé « scout » dans la documentation, une évolution vers un agent plus complet sera effectuée afin d’exploiter les vulnérabilités détectées sur le système.
Deux versions de cette évolution existent d’après la documentation :
n  La version « soldier » : déployée sur les environnements n’étant pas totalement sécurisés, cette version ne permet la collecte que de certains types de preuves.
n  La version « elite » : déployée sur les environnements totalement sécurisés, elle permet la collecte de tous types de preuves.

Figure 4 : Interface de création des agents[4]

L’une des premières conclusions possibles à la vue des guides d’utilisation et d’administration est que l’outil est d’une simplicité d’usage étonnante. Aucune connaissance avancée en termes de sécurité informatique n’est nécessaire pour l’utiliser. De simples boutons permettent par exemple la configuration des agents.

Figure 5 : Interface de configuration des agents[5]

Les fonctionnalités de l’outil sont cependant très complètes. Elles sont à la fois orientées sur la récupération d’informations dans une optique de surveillance préventive, mais aussi sur l’obtention de preuves en tout genre.

Figure 6 : Récupération de preuves de différents formats[6]

Figure 7 : Exemple de récupération d’une conversation skype[7]

Il est également possible de configurer des actions à effectuer selon certains événements. Pour cela, il suffit de créer un graphique liant les événements de l’outil avec ceux du système. De nombreuses possibilités sont alors envisageables.

Figure 8 : Gestion des événements à l’aide d’un simple graphique[8]

Galileo propose également un système de géolocalisation accessible aux agents sur le terrain ainsi qu’une interface de construction automatique de graphiques de relations entre les cibles. Ces fonctionnalités, bien que relativement courante pour ce type de produit, sont généralement intégrées dans des outils séparés.

Figure 9 : Interface de création de graphique de relations entre les cibles[9]


Figure 10 : Interface de géolocalisation intégrée à Galileo[10]

L’outil proposé par Hacking Team est donc relativement complet tout en proposant une interface simple d’usage. D’un point de vue commercial, l’outil est proposé à des prix relativement accessibles pour des entreprises.
Il est en effet possible de disposer d’une version réduite de l’outil pour 220 k€, la version complète pouvant monter jusqu’à 500 k€. À cela s’ajoutent les agents, coutant 40k€ par plateforme[11]
Même si Hacking Team ne propose son outil qu’aux instances gouvernementales, il est légitime de penser que des outils similaires sont rendus accessibles par des vendeurs moins regardants. Les tarifs de l’entreprise italienne, ainsi que la facilité d’usage de l’outil, permettent alors d’imaginer la menace qui guette les entreprises.

… utilisant des attaques avancées

L’outil de l’entreprise italienne repose sur plusieurs vulnérabilités inconnues du grand public jusqu’à l’attaque. L’analyse des mails rendus disponibles permet alors de mieux déterminer les conditions d’acquisition de ces vulnérabilités. 
Sept nouvelles vulnérabilités (0-day) ont ainsi été découvertes, permettant de déterminer le niveau de technicité des attaques réalisables avec l’outil. Moins de 48 heures après la fuite des données d’Hacking Team, c’est en effet trois premières vulnérabilités qui sont découvertes, l’une concernant le système d’exploitation Windows alors que deux autres reposent sur le logiciel Adobe Flash Player.
Quelques jours plus tard, deux nouvelles vulnérabilités du logiciel Adobe Flash Player sont trouvées parmi les données de l’entreprise italienne. Puis, deux autres vulnérabilités, l’une concernant Internet Explorer et l’autre Microsoft Windows, sont découvertes à une semaine d’intervalle.
Entre temps, plusieurs techniques avancées utilisées par Hacking Team sont également découvertes.

Figure 11 : Timeline des événements liés à l’attaque de l’entreprise Hacking Team

7 juillet 2015
Les vulnérabilités découvertes le 7 juillet ont été détaillées dans un précédent article[12]. La première (CVE-2015-0349) a été immédiatement corrigée par l’éditeur Adobe, là où les deux autres ont pu être reprises dans différentes attaques détaillées dans la partie suivante.

10 juillet 2015
Les vulnérabilités du logiciel Adobe Flash Player trouvées ensuite ont mis plusieurs jours avant que l’éditeur ne fournisse des correctifs. La première, sous forme de preuve de concept (PoC) utilise une vulnérabilité de type Use-After-Free sur la méthode valueOf d’une instance de la classe TextLine qui permet de lancer un exécutable, comme le montre la preuve présente dans les documents exposés qui ouvre le programme calc.exe.

Figure 12 : Exploitation de la vulnérabilité CVE-2015-5122 pour ouvrir le programme calc.exe[13]

La seconde vulnérabilité du 10 juillet présente la même preuve de concept que la précédente. Cependant la technique utilisée pour parvenir au résultat diffère légèrement[14][15]. En effet, cette troisième vulnérabilité se base également sur la fonction valueOf, mais cette fois dans le cas d’une instance de la classe BitmapData. Le résultat obtenu lors de l’exploitation est alors le même que précédemment.

13 juillet 2015
Outre les vulnérabilités découvertes dans les documents de Hacking Team, des techniques avancées semblent être utilisée dans les outils de l’entreprise italienne. L’une d’elle est l’utilisation de rootkit UEFI BIOS. Cette technique consiste à intégrer la persistance de l’agent au niveau du BIOS afin de lui permettre de rester présent sur le système même après un formatage ou une réinstallation du système d’exploitation.
D’après les présentations fournies par Hacking Team, un accès physique est nécessaire pour permettre une telle persistance. Cependant, une installation à distance n’est pas à exclure[16].
La procédure d’installation du rootkit consiste à redémarrer le système via l’invite de commande UEFI, récupérer le BIOS initialement présent, y installer le rootkit puis le reflasher. Le rootkit sera alors exécuté lors des futurs démarrages du système et, si l’agent a été supprimé, il sera réinstallé.

Figure 13 : Programme permettant de réinstaller l’agent en cas de suppression

Cette technique extrêmement avancée est présente dans l’outil Galileo sous la forme d’une simple option. Il ne serait donc pas étonnant que des attaquants aient accès à des techniques similaires.

Alors que des éléments extraits des données d’Hacking Team relevaient déjà des attaques possibles sur les iPhones jailbreakés[17], notamment d’après les différentes licences disponibles, de nouvelles informations indiquent que l’ensemble des téléphones d’Apple sont vulnérables à une compromission.
La possession d’un certificat d’entreprise permet en effet à Hacking Team d’infecter des appareils sous iOS même si ceux-ci ne sont pas jailbreakés. Cependant l’application malveillante se doit de demander à l’utilisateur la permission pour accéder aux différentes données de l’utilisateur.

Figure 14 : Demande d’accès aux informations utilisateurs[18] 

14 juillet 2015
Une semaine après la sortie des premières vulnérabilités, c’est au tour du logiciel Internet Explorer de se voir exposé à une menace jusque-là inconnue. Cette vulnérabilité, qui est une fois encore de type Use-After-Free permet, selon la preuve de concept présente dans les documents d’Hacking Team, d’interrompre l’exécution d’Internet Explorer.

Figure 15 : Interruption d’internet explorer suite à l’utilisation de la CVE-2015-2425[19] 

En dehors de cette preuve de concept, une attaque consisterait à utiliser un JIT spray (un heap spray dans le cas d’une compilation just-in-time) afin d’injecter un shellcode dans l’espace mémoire libéré et utilisé lors de l’exploitation. Ce shellcode serait alors lancé dans le contexte du processus d’internet explorer, permettant à l’attaquant d’exécuter du code avec les privilèges de l’utilisateur authentifié au moment de l’attaque. Sur Windows 8.1 et suivants, il est à remarquer que les privilèges accordés à internet explorer étant faibles par défaut, il serait nécessaire d’utiliser une escalade de privilège en parallèle de cette attaque.

16 juillet 2015
Une autre démonstration des capacités de Hacking Team a été démontrée lorsqu’une application malveillante créée par l’entreprise s’est retrouvée sur le Google Play Store. La performance technique à noter n’est pas l’application en elle-même, mais plutôt la capacité à échapper aux contrôles automatiques de code présents sur la plateforme.
Pour parvenir à cela, l’application utilise une technologie de chargement dynamique du code. Le programme initial qui ne contient pas de code d’exploitation, n’est pas détecté par les contrôles effectués. Cependant, il va télécharger et exécuter du code malveillant depuis Internet. Ce code étant chargé directement sur l’application de l’utilisateur, et ce après la vérification de Google, il ne sera pas détecté.

Figure 16 : Programme permettant le chargement dynamique de code[20] 

20 juillet 2015
La dernière vulnérabilité rendue publique lors de l’attaque de Hacking Team concerne une fois encore le système d’exploitation Microsoft Windows. Elle permet une élévation de privilèges locale donnant la possibilité à un attaquant d’installer un malware sur le système ciblé sans qu’aucune notification n’apparaisse à l’utilisateur. L’attaquant peut lors prendre le contrôle du système compromis.

Figure 17 : Schéma d’exploitation de la CVE-2015-2426[21]

21 juillet 2015
Tout comme les appareils disposant d’iOS, les Android ne sont pas à l’abri d’une compromission. L’agent spécifique aux systèmes Android permet la récupération de nombreuses informations utilisateur, comme les mots de passe, les conversations via de nombreuses applications, ou encore la prise de captures d’écrans, photos, ou enregistrements par le microphone.
Pour déclencher de telles actions, les utilisateurs du produit vendu par Hacking Team n’ont besoin que d’un SMS spécialement formé. L’installation de l’agent, quant à elle, est également possible à distance à l’aide d’un SMS ou email contenant une URL qui, exécutée dans le navigateur par défaut d’Android, va exploiter des vulnérabilités permettant une escalade de privilège et le lancement de l’installation[22].
D’après les études faites à partir des emails présents dans les données exposées[23], Hacking Team a pu acquérir chacune de ces vulnérabilités pour une somme avoisinant les 40 k€, cette somme étant triplée en cas d’exclusivité. À ces prix, des attaquants organisés peuvent envisager d’acheter eux-mêmes les vulnérabilités, ayant ainsi accès au même niveau de technicité dans leurs attaques

Une réaction inégale face aux révélations

Les attaquants intègrent rapidement les exploits

La révélation des données de Hacking Team n’est pas restée inaperçue sur Internet, et les attaquants ont encore une fois fait preuve d’une grande vivacité pour tourner la situation à leur avantage.
À peine quelques heures après l’exposition d’une des premières vulnérabilités Flash (CVE-2015-5119), celle-ci est reprise et intégrée à différents exploits kits tels que Angler EK ou Neutrino EK.

Figure 18 : Utilisation de la CVE-2015-5119 par le malware Angler EK[24]

Des plugins Metasploit intègrent également rapidement la vulnérabilité, facilitant encore son utilisation.

Figure 19 : Utilisation de la CVE-2015-5119 à l’aide d’un module metasploit[25]

Quelques semaines plus tard, cette même vulnérabilité est utilisée par le groupe The Wekby APT dans une série d’attaques par hameçonnage visant des instances du gouvernement américain.

Figure 20 : Analyse du contenu des emails utilisés lors de l’attaque par hameçonnage[26] 

Les attaquants ont donc su réagir très vite lorsque les données ont été rendues publiques. Le détail fournit dans les informations de l’entreprise italienne n’y est sans doute pas étranger, mais la réactivité des groupes d’attaquants n’est pas à sous-estimer.

Les mises à jours de sécurité se font attendre

Les éditeurs visés par les CVE exposées par l’attaque sur Hacking Team ont maintenant corrigé leurs produits. Cependant, leur réaction, bien que relativement rapide, reste beaucoup plus longue que celle des attaquants.
La première vulnérabilité Flash est corrigée dès le 8 juillet alors que les suivantes se font attendre à tel point que Mozilla décidera le 13 juillet de bloquer la fonctionnalité Flash sur son navigateur en attendant la sortie des correctifs. Moins de 24 heures après, les correctifs seront finalement publiés.
Quelques semaines plus tard, un outil visant à se protéger d’une surveillance telle que pratiquée par Hacking Team est rendu public. Son nom : Detekt. Cet outil permet de vérifier la présence des outils d’Hacking Team sur un système donné.

Figure 21 : Détection des agents de Hacking Team par l’outil Detekt[27]

Les réactions, bien que relativement rapides, ne rivalisent donc pas avec celles des attaquants, ce qui donne lieu à des objections sans appel. Le responsable de la sécurité des systèmes d’informations Facebook, Alex Stamos, a par exemple appelé l’éditeur de Flash à arrêter la commercialisation de son logiciel[28].

Conclusion

Bien que nécessaires pour se protéger de la majorité des attaques, les mesures de protection classiques ne sont plus suffisantes contre des attaques aussi sophistiquées.
De manière générale, face à l’évolution des menaces et des attaquants, il est aujourd’hui nécessaire de changer de posture. Partant du constat qu’il est impossible d’empêcher toutes les attaques de réussir, il s’agit d’allier une protection avancée des périmètres les plus sensibles et une forte capacité de détection et de réaction aux attaques.

Sources
[1] Source : Documentation de l’outil Galileo présente dans les données volées à Hacking Team
[2] Source : Présentation technique de l’outil Galileo par Hacking Team
[3] Source : Guide d’utilisation destiné aux techniciens pour l’outil Galileo
[4] Source : Guide d’utilisation destiné aux techniciens pour l’outil Galileo
[5] Source : Guide d’utilisation destiné aux techniciens pour l’outil Galileo
[6] Source : Guide d’utilisation destiné aux analystes pour l’outil Galileo
[7] Source : Guide d’utilisation destiné aux analystes pour l’outil Galileo
[8] Source : Guide d’utilisation destiné aux techniciens pour l’outil Galileo
[9] Source : Guide d’utilisation destiné aux analystes pour l’outil Galileo
[10] Source : Guide d’utilisation destiné aux analystes pour l’outil Galileo
[11] Source : https://drive.google.com/file/d/0B2q69Ncu9Fp_TF9XeFF3VFUwa2s/view?pli=1
[12] http://www.securityinsider-solucom.fr/2015/07/lattaque-sur-hacking-team-permet-la.html
[13] Source : https://twitter.com/dummys1337/status/619590820396707841/photo/1
[14] http://securityaffairs.co/wordpress/38574/cyber-crime/hacking-team-cve-2015-5123.html
[15] http://blog.trendmicro.com/trendlabs-security-intelligence/new-zero-day-vulnerability-cve-2015-5123-in-adobe-flash-emerges-from-hacking-team-leak/
[16] http://blog.trendmicro.com/trendlabs-security-intelligence/hacking-team-uses-uefi-bios-rootkit-to-keep-rcs-9-agent-in-target-systems/
[17] http://www.macworld.com/article/2944712/hacking-team-hack-reveals-why-you-shouldnt-jailbreak-your-iphone.html
[18] https://blog.lookout.com/blog/2015/07/10/hacking-team/
[19] http://blog.trendmicro.com/trendlabs-security-intelligence/gifts-from-hacking-team-continue-ie-zero-day-added-to-mix/
[20] Source : http://blog.trendmicro.com/trendlabs-security-intelligence/fake-news-app-in-hacking-team-dump-designed-to-bypass-google-play/
[21] Source : http://blog.trendmicro.com/trendlabs-security-intelligence/hacking-team-leak-uncovers-another-windows-zero-day-ms-releases-patch/
[22] http://blog.trendmicro.com/trendlabs-security-intelligence/hacking-team-rcsandroid-spying-tool-listens-to-calls-roots-devices-to-get-in/
[23] https://tsyrklevich.net/2015/07/22/hacking-team-0day-market/
[24] Source : http://forensicblogs.com/tag/angler-ek/
[25] Source : http://www.rapid7.com/db/modules/exploit/multi/browser/adobe_flash_hacking_team_uaf
[26] http://www.volexity.com/blog/?p=158
[27] Source : https://resistsurveillance.org/
[28] https://twitter.com/alexstamos/status/620306643360706561

Nicolas DAUBRESSE & Vincent NGUYEN

Aucun commentaire:

Enregistrer un commentaire