(Court) retour de Protektoid a la Nuit du hack 2018

Protektoid a la Nuit du hack 2018

La Nuit du hack s'est déroulée cette année à la Cité des Science de Paris, le 30 juin et le 1er juillet 2018.

Cette année encore, nous avons la chance de pouvoir présenter nos travaux et idées.

Nuit du hack 2018 : en général

Petite session nostalgie :  j'ai eu le plaisir d'assister à NDH 2 en 2004 à Toulouse. Apres un grand écart, cela a repris ces derniers années et pour ceux qui n'ont toujours pas assisté à une NDH (Ou LeHack l'année prochaine), c'est vraiment un événement à ne pas manquer.

Tout d'abord, c'est un événement qui reste fidèle à lui-même. Toujours les mêmes idées et principe, et surtout des orgas toujours aussi .... géniaux ! Certes, on trouve (désormais) énormément de conférences, workshops, etc. Mais la NDH reste un événement annuel particulier et unique.

Ensuite, c'est aussi un très bon "social-gathering", où on a l'occasion de rencontrer des personnes intéressantes.

Enfin, la NDH permet de "relancer la machine", avec des nouvelles idées après 24h non stop de discussions, conférences et wargame. Au sujet des wargames, n'hésitez pas à chercher des retours de ceux-ci, souvent très détaillés. Rien de mieux pour là encore apprendre des nouvelles idées / approches / techniques.

Et vive LeHack.

Nuit du hack 2018 : Virtualization In-app sous Android afin de maîtriser l'exécution des applications virtualisées 

Cette année, nous avons pu présenter nos "découvertes" sur la "Virtualization In-app" et plus exactement les aspects "comment cela fonctionne", "d'où ça vient" (pas de nous), "que peux-t-on faire avec" et "comment s'en protéger".

Le desriptif de la présentation était le suivant : 

La virtualisation "in-app", propre à Android et variants, permet aux développers de développer des applications souples et adaptées aux utilisateurs. Cette fonctionnalité permet en effet de fournir des fonctionnalités uniques et avancées, notamment par le fait que certains composants peuvent être spécifiques a un sous ensembles de terminaux (par chargement dynamique) ou que des librairies peuvent être simplement mises a jour sur la base de la configuration de chaque terminal.

D'un point de vue sécurité et notamment l'évolution des malwares, il est admis que la virtualisation in-app peut avoir des conséquences sur le virtualiseur mais aussi sur les applications virtualisées entre-elles. Des récentes études montrent qu'un virtualiseur avec des intentions malveillantes est un réel problème pour les applications qu'il virtualise. Cependant, nous considérons que le danger de la virtualisation dépasse le cadre des conséquences directes de la pure virtualisation, étant donné que la simple virtualisation permet en réalité de contourner la sécurité d'Android pour toutes les applications virtualisées, et ce sans payload/exploit apparent. Ce genre d'attaque ne reposent en effet sans aucune exploitation spécifique ou encore abus de permissions, même pour un terminal non rooté.

Nous montrerons durant la présentation a quel point il est simple de développer un environnement de virtualisation malveillant, capable de lancer des attaques avancées, ciblées et difficilement détectables. De telles attaques inclues le vol de données personnelle mais aussi la redirection de méthode système par live-patching de la structure ART en mémoire, afin de par exemple pouvoir écouter les communications réseaux, même si elles reposent sur SSL.

Notre présentation sera structurée de la manière suivante :

  • démonstration des conséquences de l’installation d'un virtualiseur "caché"
  • présentation du concept de patching mémoire sous Android et des techniques existantes
  • présentation du concept de virtualisation/proxification sous Android
  • présentation de notre approche pour combiner ces deux techniques au sein d'application anodines
  • analyse des applications existantes sur les différents stores Android

Les vidéos ne devraient pas tardées donc vous trouverez notre présentation sur la chaîne youtube https://www.youtube.com/c/Protektoid_com

Sur le forme, j'ai essayé de faire une présentation la plus générale possible afin de mettre en avant les problématiques de cette fonctionnalité. J'aurais certes pu détailler les aspects "patching" ou "virtualisation pure" mais ce sera pour une autre fois. En effet, trop de technique tue la diffusion de l'information et de toute façon, les 40 minutes étaient déjà atteintes avec une approche "générale". J’espère que la vidéo de la démo était assez claire. Le live sera pour une prochaine fois : présenter les effets de la virtualisation par USB, "piped via ffmpeg over adb" et une capture MTIM me semblaient un peu trop risqué pour cette fois-ci.

Sur le fond, la problématique de la virtualisation me semble malheureusement totalement sous-estimée. Pourquoi, allez savoir ... Peut être que les exigences initiales sont perçues comme trop fortes (installation du virtualiseur, détection de la virtualisation) ? Tout retour sur ce point serait le bienvenu vu que, de mon point de vue, les conséquences sont potentiellement .. grands, dirais-je.  Ce fut en tout cas un réel plaisir de présenter ce sujet, lequel est né des discussions post-conférence l'année dernière a la NDH XV !

Nuit du hack 2018 : after  - part 2

Suite aux différents échanges, il me semble important de publier différents whitepaper sur les sujets étudiés ces dernières années (tel celui présenté à la NDH XV et associé à la CVE-2018-9374  (https://source.android.com/security/overview/acknowledgements#june-2018). Ce sera l'un des objectifs de cet été 2018, notamment sur les aspects suivants : 

  1. permissions sous Android : modele, implémentation, évolution des états, controle des états et attaques
  2.  virtualisation et hooking sous Android : modele, implémentation, détection, attaques

Stay tuned.

article_photos
Extrait de la présentation
Comments