En 2019, il y a déjà eu 200 milliards de téléchargements d’applications mobiles sur des téléphones ! La popularité des smartphones et leur sécurité relativement faible en ont fait une cible attrayante pour les attaquants.
Les téléphones cellulaires sont des émetteurs-récepteurs radio dans lesquels la voix est transmise par ondes radio. Les smartphones et les assistants numériques personnels (PDA) donnent aux utilisateurs un accès mobile au courrier électronique, à internet, à la navigation GPS, etc.
Mais bizarrement, la sécurité des smartphones n’a pas suivi le même rythme que la sécurité informatique traditionnelle.
Peut-être parce que, contrairement à ce qui se passe sur un PC, il est plus difficile de rentrer dans le coeur du système et d’accéder aux fichiers.
Les logiciels de sécurité techniques tels que les pare-feu, les antivirus et les applications de cryptage sont rares sur les téléphones mobiles : ces vulnérabilités constituent une porte d’entrée pour les pirates.
Les hackers, armés de matériel radio bon marché et de logiciels libres, peuvent compromettre votre téléphone portable, écouter vos conversations, intercepter vos données, utiliser votre numéro de téléphone pour passer des appels, le tout avec votre compte et sans que vous en soyez informé.
Une variété de vulnérabilités menacent les systèmes de nos téléphones portables, dont les Android. Examinons ici les plus grandes failles de vulnérabilité dans votre OS Android.
Les renseignements personnels qui restent présents dans les vieux téléphones que vous avez jetés
Les utilisateurs d’Android doivent savoir que les données disponibles sur leur téléphone telles que les photos, les messages, les enregistrements d’appels, l’historique et d’autres informations peuvent toujours être récupérées ou consultables par les utilisateurs malveillants.
Si vous vendez ou jetez votre vieux téléphone portable, prenez des précautions pour éviter sa récupération et son exploitation.
Ce point faible peut affecter la plu part des téléphones Android : Les pirates peuvent facilement extraire les informations personnelles qui restent présentes dans ces appareils en utilisant de simples outils de récupération de données.
→ Lire notre article : Comment récupérer ses données effacées par erreur ?
Le clonage : Des cyber-escrocs utilisant vos numéros de téléphone
En général, les téléphones Android ont besoin de l’autorisation de l’utilisateur avant de pouvoir passer un appel. Certains logiciels malveillants sont capables de lancer ou de terminer un appel, ou même de passer des appels vers des numéros de téléphone surtaxés sans avoir obtenu l’autorisation préalable de l’utilisateur.
Les pirates peuvent facilement utiliser ce bug pour composer un numéro particulier afin de pouvoir interférer avec les appels normaux, verrouiller la carte SIM, supprimer les données de votre téléphone, etc.
En utilisant le clonage, les pirates peuvent intercepter le numéro de série électronique du téléphone (ESN) et son numéro d’identification mobile (MIN) dans le but de programmer ces numéros dans un autre téléphone et le rendre identique au vôtre.
L’utilisation de fausses ID – une menace pour la sécurité des paiements mobiles
Les pirates peuvent créer une application malveillante qui imite une application Android fiable comme par exemple Adobe Flash.
Lorsque les utilisateurs utiliseront ces applications, elles fonctionneront furtivement sur leur mobile. De cette manière, le cybercriminel peut secrètement voler des numéros de compte, des mots de passe et d’autres informations privées.
Utiliser un Android comme émetteur récepteur
Les téléphones Android peuvent être transformés en microphones et en émetteurs pour écouter les conversations à proximité du téléphone. Cela peut se faire en transmettant une commande de maintenance sur le canal de contrôle du téléphone portable.
Cette commande place le téléphone cellulaire en « mode diagnostic » et permet ensuite de surveiller les conversations dans la zone immédiate du téléphone via le canal vocal. L’utilisateur ne sait pas que le téléphone est en mode diagnostic et que sa conversation est enregistrée par des pirates informatiques.
Les chiffres sur les vulnérabilités de nos téléphones mobiles en 2020
Des vulnérabilités à haut risque ont été trouvées dans 38 % des applications mobiles pour iOS et dans 43 % des applications Android.
La plupart des problèmes de sécurité se retrouvent sur les deux plates-formes. Le stockage de données non sécurisé est le problème le plus courant, que l’on retrouve dans 76 % des applications mobiles.
Les mots de passe, les renseignements financiers, les données personnelles et la correspondance sont également des sujets à haut risque.
Les pirates informatiques ont rarement besoin d’un accès physique à un smartphone pour voler ses données : 89 % des vulnérabilités peuvent être exploitées à l’aide de logiciels malveillants à distance.
La plupart des cas répertoriés mettent en cause des faiblesses dans les mécanismes de sécurité (respectivement 74% et 57% pour les applications iOS et Android, et 42% pour les composants côté serveur). Comme de telles vulnérabilités se glissent au cours de la phase de conception, leur correction nécessite d’importantes modifications du code.
Dans de nombreux cas, les risques sont le produit de plusieurs défaillances apparemment mineures dans diverses parties de l’application mobile. Pris ensemble, ces oublis peuvent avoir de graves conséquences, notamment des pertes financières pour les utilisateurs et des atteintes à la réputation du développeur.
De nombreuses cyberattaques reposent sur l’inattention des utilisateurs. L’escalade des privilèges ou le chargement latéral de logiciels peuvent ouvrir la voie à des attaques dommageables.
Comprendre le fonctionnement des applications mobiles pour mieux se protéger
Les applications mobiles sont à l’épicentre des tendances actuelles de développement. La plupart de ces applications ont une architecture client-serveur. Le client fonctionne sur le système d’exploitation, qui est le plus souvent Android ou iOS. Il est téléchargé sur l’appareil à partir des plates-formes Play STORE ou Apple STORE, où les développeurs publient leurs produits.
Du point de vue de l’utilisateur, le client installé sur le smartphone est l’application mobile. C’est ce avec quoi l’utilisateur interagit pour faire des achats, payer des factures ou lire des courriels. Mais en fait, il y a aussi un autre composant : le serveur, qui est hébergé par le développeur.
Le plus souvent, le composant côté serveur est une application internet qui interagit avec le client mobile au moyen d’une interface de programmation d’application (API). Nous pouvons donc considérer le serveur comme le composant le plus important. C’est là que l’information est stockée et traitée. Le serveur est également responsable de la synchronisation des données entre les appareils.
Les systèmes d’exploitation mobiles modernes sont dotés de divers mécanismes de sécurité. Par défaut, une application installée ne peut accéder qu’aux fichiers de ses propres répertoires sandbox, et les droits d’utilisateur n’autorisent pas la modification des fichiers système.
Néanmoins, les erreurs commises par les développeurs lors de la conception et de l’écriture du code entraînent des lacunes dans la protection et peuvent faire l’objet d’attaques.
Les contrôles de sécurité complets d’une application mobile comprennent la recherche de vulnérabilités dans le client et le serveur, ainsi que la transmission de données entre les deux.
Il y a donc plusieurs mécanismes de sécurité :
- les menaces côté client
- les menaces côté serveur
- les menaces dans la transmission des données entre les deux
Les vulnérabilités des applications mobiles
60% des vulnérabilités sont du côté client, c’est-à-dire entre les mains du consommateur. Le pire, c’est que 89% de ces vulnérabilités peuvent être exploitées sans accès physique, à distance !
Au total, 56% des vulnérabilités peuvent être exploitées sans droit d’administrateur, sans avoir besoin d’un téléphone jailbreaké ni rooté. Ces chiffres sont impressionnants.
Contrairement à la croyance, les applications Android et iOS possèdent toutes les deux des vulnérabilités critiques (43% pour Android, 38% pour iOS). Cette différence n’est pas significative. Environ 1/3 de toutes les vulnérabilités du côté client pour les deux plates-formes sont à haut risque.
→ Les failles de configuration
1/3 des vulnérabilités des applications mobiles Android proviennent de failles de configuration. Par exemple, l’attribut android:allowBackup est souvent défini sur « true » dans le code des applications. Ceci permet de créer une copie de sauvegarde des données de l’application lorsque l’appareil est connecté à un ordinateur. Cette faille peut être utilisée par un attaquant pour obtenir des données d’application même sur un périphérique non rooté.
♦ Recommandations pour les développeurs Android : Désactivez la sauvegarde de l’application en réglant la directive android:allowBackup sur « false ».
→ Quelles sont les données stockées par nos téléphones ?
Les appareils mobiles stockent des données telles que :
- la géolocalisation,
- les données personnelles,
- la correspondance,
- les justificatifs d’identité,
- les données financières,
…mais le stockage sécurisé de ces données est souvent négligé par les applications. Le stockage non sécurisé occupe la deuxième place dans le palmarès des vulnérabilités mobiles (76 % des applications sont touchées).
→ Les apps qui restent en arrière-plan
Les téléphones mobiles permettent de visualiser les applications récemment utilisées et de passer rapidement d’une application à l’autre.
Une fois que l’application passe en arrière-plan, l’OS capture un instantané de l’état actuel de l’application. L’accès direct à ces impressions d’écran n’est disponible que sur les périphériques racine. Il est important de s’assurer que les instantanés ne contiennent pas de données sensibles. Par exemple, si le propriétaire utilise une application bancaire, l’instantané peut contenir un numéro de carte. Ces instantanés peuvent être volés si l’appareil est infecté.
Les développeurs doivent donc utiliser une image de fond spéciale pour masquer les données sensibles sur l’écran de l’application. Cette astuce est à penser au moment du codage.
→ Le stockage du code PIN par votre appareil
De nombreuses applications mobiles utilisent un code PIN à quatre ou six chiffres pour l’authentification. Pour que le code que vous composez au clavier puisse déverrouiller votre téléphone, il faut bien qu’il soit comparé à un enregistrement du bon code.
Il existe plusieurs façons de mettre en œuvre la vérification du code PIN lorsque l’utilisateur se connecte. Effectuer cette vérification du côté client n’est pas sûr : cela nécessiterait que le code PIN soit stocké sur l’appareil mobile, ce qui augmenterait le risque d’une fuite. Ce genre de données d’authentification sont stockées de manière non sécurisée dans la moitié des applications mobiles.
Les codes PIN et les mots de passe doivent être vérifiés sur le serveur, en passant leurs informations d’identification sous forme cryptée (elles sont dites « hachées »). Les fonctions de hachage nécessitent un ensemble de caractères aléatoires pour augmenter la sécurité. Malheureusement, ce genre de données sensibles sont souvent mal sécurisées.
Les dispositifs modernes ont tendance à utiliser la biométrie (Touch ID ou Face ID) pour l’authentification dans les applications. Dans ce cas, le code PIN est enregistré sur l’appareil. Ce n’est acceptable que si le répertoire est bien crypté (Android appelle son coffre-fort à clés Keystore).
Les vulnérabilités côté serveur
Même s’ils ne sont pas les plus courants, les risques liés aux failles des serveurs demeurent possibles. 43 % des composants côté serveur ont un niveau de sécurité faible et 33 % contiennent des vulnérabilités critiques.
Les composants côté serveur contiennent des vulnérabilités dans les mécanismes de protection des applications. Je veux parler principalement de la mise en œuvre de l’authentification à deux facteurs.
Par exemple, si 2 requêtes identiques sont envoyées au serveur l’une après l’autre, avec un intervalle minimal entre elles, des mots de passe uniques sont envoyés à l’appareil de l’utilisateur à la fois comme notifications push et par SMS au numéro de téléphone lié. L’attaquant peut intercepter ces messages SMS et usurper l’identité de l’utilisateur légitime, par exemple en vidant son compte bancaire.
→ La communication client / serveur
La communication entre le client et le serveur peut également être vulnérable. Si le côté client communique avec le serveur par HTTP non sécurisé, un attaquant peut intercepter des données sensibles. Dans le cas d’une banque mobile, par exemple, toutes les informations de paiement seraient compromises. Pour éviter l’interception, utilisez le protocole sécurisé HTTPS. La connexion est ainsi sécurisée car toutes les données sont cryptées. L’appareil enregistre les certificats. Ces fichiers spéciaux indiquent au client le nom du serveur auquel il est censé envoyer les données.
Mais même avec HTTPS, la communication client-serveur n’est pas toujours sécurisée. Sur l’appareil, les certificats sont conservés dans un magasin utilisé par toutes les applications. Les logiciels malveillants peuvent installer un certificat racine sur le smartphone de la victime, auquel cas tous les certificats vérifiés avec le faux certificat racine seront considérés comme fiables. Ainsi, si la victime se connecte à un équipement réseau contrôlé par l’attaquant (par ex. un routeur Wi-Fi), l’attaquant serait capable d’effectuer une attaque.
Étapes pour protéger votre téléphone mobile Android
♦ Lors du choix de votre téléphone mobile, vérifiez d’abord ses caractéristiques de sécurité :
- Vérifiez qu’il possède des fonctions de cryptage de fichiers et la possibilité pour le fournisseur de retrouver l’appareil et d’effacer ses données en cas de perte ou de vol.
- Vérifiez ses fonctions d’authentification telles que les mots de passe pour accéder au périphérique.
♦ Organisez l’appareil de manière à le rendre plus sûr :
La plupart des smartphones offrent une fonction de verrouillage. Les utilisateurs doivent activer cette fonction pour protéger leur appareil. Activez le cryptage et le logiciel antivirus s’il existe.
♦ Configurez vos comptes internet :
De nombreux réseaux sociaux populaires offrent la possibilité d’utiliser des connexions cryptées telles que HTTPS (Hyper Text Transfer Protocol Secure) ou SSL (Secure Socket Layer) dans leurs paramètres. L’utilisateur peut utiliser cette fonction pour protéger son téléphone contre les pirates informatiques.
♦ Ne cliquez pas sur les liens envoyés dans les courriels ou messages douteux :
Cliquer sur ces liens peut mener à des activités malveillantes. → Je vous réfère à ces autres techniques pour préserver votre vie privée sur smartphone.
♦ Révélation du numéro de téléphone :
L’utilisateur doit bien réfléchir avant d’enregistrer son numéro de téléphone mobile sur les réseaux sociaux. Des attaquants peuvent facilement recueillir des renseignements comme le numéro de téléphone, l’adresse électronique, etc. sur ces sites web pour commettre des délits.
♦ Réfléchissez avant de stocker vos informations personnelles sur l’appareil :
Un attaquant pourrait obtenir ces informations stockées.
♦ Choisissez les bonnes applications :
Avant de sélectionner et d’installer une application, faites une petite recherche sur celle-ci. N’installez pas directement des lots d’applications qui pourraient contenir un cheval de Troie.
♦ Désactivez les interfaces lorsqu’elles ne sont pas utilisées :
Les interfaces telles que Bluetooth, infrarouge et Wi-Fi doivent être désactivées dans les lieux publics. Les criminels peuvent facilement détecter les vulnérabilités des logiciels qui utilisent ces interfaces.
Les mesures efficaces côté utilisateur
La vulnérabilité des données mobiles s’explique par un certain nombre de raisons, notamment de mauvaises pratiques de sécurité, une mauvaise formation des personnes responsables de la sécurité réseaux, et des logiciels de mauvaise qualité qui constituent une porte d’entrée pour les pirates.
Le problème le plus courant avec les applications mobiles est le stockage non sécurisé des données. L’information se retrouve ensuite entre les mains de pirates informatiques grâce à l’infection du téléphone par des logiciels malveillants. Les risques d’infection augmentent de manière exponentielle sur les périphériques disposant de privilèges d’administrateur (root ou jailbreak).
Mais les logiciels malveillants peuvent aussi faire grimper les privilèges par eux-mêmes. Une fois sur l’appareil de la victime, les logiciels malveillants peuvent demander l’autorisation d’accéder aux données de l’utilisateur et, une fois l’accès accordé, envoyer des données aux attaquants.
→ Le tri à faire dans vos applications mobiles
Soyez prudent lorsque les applications demandent un accès trop large aux fonctionnalités ou aux données. Si les permissions demandées semblent déraisonnables par rapport à l’utilisation prévue de l’application, ne les accordez pas.
Un smartphone peut facilement être perdu ou volé. Bien que les systèmes d’exploitation mobiles exigent la définition d’un mot de passe par défaut, certains utilisateurs choisissent de ne pas en avoir un. Dans ce cas, un attaquant ayant un accès physique à l’appareil peut le brancher à un ordinateur et utiliser des utilitaires spéciaux pour extraire des données sensibles de la mémoire de l’appareil.
Par exemple, si la création de sauvegarde est activée sous Android, les données de l’application peuvent être extraites d’une sauvegarde en utilisant Android Debug Bridge (ADB).
Avec les privilèges root, les données peuvent être extraites même lorsque les sauvegardes sont désactivées. Sur les périphériques Apple jailbreakés, les utilisateurs modifient rarement les informations d’identification SSH par défaut (root:alpine).
Un attaquant peut alors copier les données d’une application sur un ordinateur via SSH. Cette menace est particulièrement pertinente pour les téléphones d’entreprise utilisés par plusieurs employés qui connaissent le mot de passe de l’appareil.
→ Les mesures prises par Google et Apple
Pour se protéger contre les pirates informatiques, Google propose Google Play Protect pour analyser les applications présentes sur les appareils Android et sur Google Play.
Pour empêcher la distribution de logiciels malveillants via l’App Store, Apple effectue une analyse manuelle des applications des développeurs avant de les rendre disponibles au téléchargement.
→ Le tri fait par Apple dans son Store
L’analyse faite par Apple aide à réduire le nombre d’applications malveillantes, mais ne permet pas de toutes les détecter. Les logiciels malveillants peuvent même provenir des boutiques d’applications officielles. Les pirates ont réussi à télécharger 39 programmes malveillants sur l’App Store en utilisant XcodeGhost, une fausse version de l’environnement de développement Xcode. Un autre exemple est Anubis, un cheval de Troie bancaire qui a échappé avec succès aux contrôles de sécurité de Google Play et du système de sécurité Android.
♦ Recommandations pour les utilisateurs : Mettez à jour régulièrement votre système d’exploitation et vos applications. Si vous avez rooté ou jailbreaké votre périphérique, souvenez-vous que sa mise à jour automatique peut échouer.
→ Se méfier des attaques de phising
Les boutiques d’applications officielles ne sont qu’un moyen parmi d’autres pour les logiciels malveillants d’infecter un appareil. Même un smartphone flambant neuf peut contenir un code malveillant.
Par exemple, une attaque de développeur a entraîné la préinstallation de logiciels espions sur les smartphones Alcatel. Les dispositifs des utilisateurs ont été compromis avant même qu’ils n’aient été mis en marche pour la première fois.
Un autre exemple est TimpDoor, que les pirates distribuaient en envoyant aux victimes un SMS contenant un lien.
Pour prévenir les attaques, iOS interdit le téléchargement de logiciels à partir de sources autres que l’App Store. Mais il existe des moyens de contourner cette restriction. Il s’agit notamment de l’utilisation des propres certificats d’utilisateur et de la gestion des appareils mobiles (MDM). Pour ce faire, l’utilisateur doit confirmer manuellement que le certificat du développeur d’application est fiable et autoriser le téléchargement et l’installation de l’application à partir d’une source non fiable. Dans une attaque de phishing, les pirates peuvent réussir à convaincre l’utilisateur d’effectuer ces étapes. Pour vous en convaincre, lisez comment ils procèdent dans notre article évoquant le phising comme technique de piratage d’Instagram.
Les contrôles d’Apple eux-mêmes ne sont pas parfaits, à en juger par la distribution de logiciels malveillants tels que YiSpecter. La technique utilisée par les attaquants de YiSpecter était très simple. Un utilisateur a ouvert un lien infecté, confirmé l’installation d’un logiciel à l’extérieur de l’App Store, et l’appareil a été infecté. Une fois sur l’appareil de la victime, YiSpecter utilisait des API privées et téléchargeait automatiquement d’autres programmes pour voler des données personnelles.
♦ Recommandations pour les utilisateurs : N’ouvrez pas les liens reçus d’expéditeurs inconnus dans les SMS et les chats. Même si vous connaissez la personne qui vous propose une demande, restez vigilant. Ne confirmez jamais des demandes d’installation de logiciels tiers sur votre smartphone.
→ Se connecter à des ordinateurs fiables
L’une des autres façons d’installer des logiciels malveillants sur les appareils Apple consiste à télécharger des fichiers d’application (.ipa) sur l’ordinateur de la victime et les installer à l’aide du compte iCloud de la victime via une connexion USB. Cela implique de connaître l’identifiant Apple de la cible.
♦ Recommandations pour les utilisateurs : Ne connectez pas votre appareil à des PC ou des stations de charge non fiables. Les versions modernes des OS demandent à l’utilisateur de confirmer sa confiance. Ne confirmez jamais votre confiance si vous n’êtes pas sûr de la sécurité de l’ordinateur auquel vous connectez votre terminal.
Conclusion
Au final, la sécurité dépend en grande partie des utilisateurs.
Les propriétaires doivent assumer leur responsabilité de protéger les données qu’ils stockent dans les applications mobiles.
Mais les précautions à prendre par les utilisateurs ne seront pas suffisantes si les développeurs laissent autant de vulnérabilités dans les applications qu’ils codent !