Rechercher

Tout savoir sur le pentest sur smartphone

33% des entreprises admettent avoir connu une attaque via smartphone en 2018[1]. Une situation qui les poussent à davantage protéger leur flotte mobile. Première étape de cette sécurisation : le pentest.

Iheb Kaabi, pentester chez Orange Cyberdefense, nous fait découvrir les bases de ces tests d’intrusion.

Pentest : les spécificités du mobile

Selon une étude publiée par Hootsuite et We are Social en 2019, sur 60,42 millions d’internautes français, 74% surfent sur le web via leurs mobiles. Le trafic Internet passe donc aujourd’hui plus par nos téléphones que par nos PC.

Les smartphones plus vulnérables aux intrusions que les PC

Alors qu’ils contiennent un grand nombre de données sensibles, les smartphones sont pourtant plus exposés aux risques cyber que les ordinateurs. La plupart du temps, les systèmes d’exploitation ne sont pas mis à jour par les utilisateurs. En 2018, 57% des mobiles Android utilisés à des fins professionnelles utilisaient un système d’exploitation au moins deux versions plus anciennes que celle actuellement disponible. Cela représente potentiellement 507 vulnérabilités non “patchées” par mobile[2]. Plus de la moitié d’entre elles sont jugées critiques par les experts[3]. Sur iOS, même constat : 67% des utilisateurs professionnels disposent d’une version datant de moins de six mois, ce qui représente une moyenne de 17 vulnérabilités[4] par téléphone. Parmi elles, trois sont considérées critiques.

Il faut également savoir qu’il existe un temps de latence entre les mises à jour d’Android et celles proposées par les constructeurs et les opérateurs (dans le cas des téléphones “simlockés“), qui doivent les adapter à leur modèle. Cela peut prendre parfois entre deux et trois mois. Ainsi, un mobile sera toujours moins à jour qu’un PC.

Par ailleurs, après trois ou quatre ans d’utilisation, certains patchs ne sont tout simplement plus supportés par les appareils, qui restent, jusqu’au rachat d’un nouveau smartphone, dépourvus des dernières sécurités mises en place.

Sécurité du mobile : une lente prise de conscience des risques

C’est un fait : les utilisateurs ont tendance à beaucoup moins sécuriser leur mobile que leur PC. Les PIN et mots de passe restent encore assez simples et les modèles de mots de passe sont encore trop faciles à saisir. Par ailleurs, les users ont tendance à installer des applications sans vraiment être vigilants et surtout à accepter un nombre trop grand d’autorisations.

Les constructeurs en ont conscience et essayent de compenser ces mauvaises pratiques en renforçant la sécurité des smartphones qu’ils vendent. Aujourd’hui, les modèles de téléphones sont en réalité très bien sécurisés et donc difficiles à forcer. Ce sont vraiment les usages qui pêchent.

Pentest sur smartphones : outils et techniques

En règle générale, les entreprises nous demandent de tester les applications qu’elles développent et/ou les téléphones de leur flotte mobile.

Tester une application mobile

Un pentest sur une app mobile ressemble de très près à celui d’un client très lourd : il y a une partie locale (stock de fichiers, logs, binaire[5] installé, exécution, utilisation de la mémoire…) et une partie web. Pour la partie web, nous nous servons d’outils classiques comme des proxies ou des analyseurs de trafic réseau, du reverse engineering (rétro-ingénierie en français) utilisé pour la partie locale, pour désassembler et comprendre le binaire[5] de l’application.

Pour la partie spécifique iOS ou Android, il existe des outils dédiés aux penetration tests des mobiles, notamment des logiciels permettant de faire du dynamic patching. Il s’agit de modifications “à la volée” des comportements d’une app : nous ciblons la partie locale et modifions l’application pendant qu’elle est en train de tourner. Cela nous permet de contourner la sécurité mise en place par le développeur.

Auditer techniquement un téléphone

Lorsque nous auditons un smartphone, il nous faut trouver le mot de passe, le PIN ou pousser l’utilisateur à installer une app vérolée pour obtenir un accès à distance. Parfois, nous utilisons des techniques de social engineering, mais seulement si cela est adapté aux besoins du client et s’il a au préalable donné son accord pour l’utilisation de ce genre de méthodes.

Le plus important pour un pentester – et donc un cybercriminel – reste de récupérer le mot de passe du téléphone. Sans cette première étape, il est en réalité extrêmement difficile d’avoir accès aux données d’un smartphone. Une fois que nous sommes entrés dans le téléphone, nous pouvons par exemple nous connecter à la messagerie, récupérer des mails, là où se trouvent un volume considérables d’informations importantes.

En général, qu’il s’agisse d’auditer un mobile ou une application, nous partons en mode black box, c’est-à-dire avec un minimum d’informations. Nous devons donc connaître les spécificités de chaque version. Par exemple, entre iOS 12 et iOS 13, il existe des différences majeures.

Se former au pentest mobile

Pour se former au pentest sur mobile, il est conseillé d’avoir des bases en sécurité applicative et de bien comprendre les modèles de sécurité d’Android et iOS, d’abord de manière théorique puis de passer rapidement à la mise en pratique. Pour ce faire, il existe des applications de tests très bien réalisées : une fois installées, le but est de réussir à les attaquer.

Les versions évoluant très rapidement, Internet reste une mine d’or pour s’auto-former ou se mettre à jour.

Eviter les cyberattaques sur smartphone : conseils d’un hacker éthique

Trop d’utilisateurs ne sont pas conscients des attaques qu’ils peuvent subir sur leur mobile ou des techniques de sécurité pour s’en prémunir. Voici quelques conseils :

  • Choisir un PIN et un mot de passe robuste : rien qu’avec cette protection, le mobile reste très protégé, le système d’exploitation gérant tout le reste de la sécurité.
  • Ne pas installer n’importe quoi : il faut lire les commentaires, regarder les notes et n’installer une app que lorsque c’est nécessaire, à partir d’une source de confiance.
  • Vérifier les permissions des applications et n’accorder que celles qui sont importantes : les versions récentes d’Android et d’iOS permettent d’accepter les permissions de manière granulaire (par exemple : autoriser l’accès aux fichiers mais pas à la caméra).
  • Ne pas se connecter aux WiFi publics.
  • Effectuer toutes les mises à jour requises.
  • Utiliser un antivirus et le lancer pour voir si des malwares ont été installés et pouvoir s’en débarrasser.
  • Vérifier la configuration du téléphone : il existe un mode débogage, conçu pour les développeurs, qui autorise le mobile à donner accès à un très grand nombre d’informations normalement sécurisées. Une fois ce mode activé, un cybercriminel peut pénétrer le téléphone, même s’il est verrouillé.

Notes

[1]Mobile Security Index 2019, Verizon

[2]Wandera, 2018

[3]Common vulnerability scoring system, CVSS scale, https://nvd.nist.gov/vuln-metrics/cvss

[4]IBM MasS360 Mobile Metrics

[5]binaire : fichier écrit en « langage machine ». C’est ce que le système d’exploitation lit et exécute. N’étant pas humainement lisible (symboles et des caractères spéciaux), le processus de rétro-ingénierie permet de le ramener à un format tangible (comme du code source par exemple) pour l’analyser et le comprendre.