DataDome

Les 9 plus grands risques de sécurité des applications mobiles et comment les prévenir

Table des matières

Les appareils mobiles ne sont pas de simples petits ordinateurs personnels, ils diffèrent radicalement des autres appareils, tant sur le plan matériel que sur le plan logiciel. De ce fait, les risques de sécurité sur mobile peuvent être radicalement différents de ceux rencontrés sur les ordinateurs portables ou de bureau. C’est pourquoi la protection des applications mobiles est importante.

Lorsque nous parlons d’appareils mobiles, nous entendons généralement les smartphones : des dispositifs qui peuvent se connecter à Internet et installer des logiciels sous forme d’applications. Presque 80% de la population mondiale possède un smartphone, et le nombre de téléchargements d’applications ne cesse d’augmenter chaque année (230 milliards en 2021 !). Si votre entreprise possède une application, vous devez comprendre les vulnérabilités uniques en matière de sécurité des smartphones et des applications mobiles.

Les problèmes de sécurité des applications mobiles en un coup d’œil :

  1. Protection API insuffisante
  2. Contrôles faibles côté serveur
  3. Injections côté client
  4. Stockage de données sensibles non sécurisé
  5. Mots de passe ou clés codés en dur
  6. Sécurité du code source médiocre
  7. Fuite de données sensibles
  8. Transmission de données non sécurisée
  9. Journalisation et surveillance inadéquates

Comment la sécurité des applications mobiles diffère-t-elle de la protection des sites web ?

Sécuriser une application mobile est totalement différent de sécuriser un site web, une application web, ou même une application logicielle pour ordinateurs portables ou de bureau. Après tout, les développeurs mobiles doivent travailler dans les contraintes du système d’exploitation d’un smartphone (iOS ou Android) et de la boutique d’applications sur laquelle ils souhaitent publier l’application (nommée App Store pour iOS et Google Play pour Android).

C’est pourquoi de nombreux développeurs se concentrent exclusivement sur les applications mobiles. Ils sont développeurs mobiles ; ils ne programment pas en HTML, CSS, ou JavaScript classique. Au lieu de cela, ils programment en Java ou Kotlin pour Android, Swift pour iOS, ou React Native s’ils veulent coder dans un seul langage de programmation pour les deux systèmes d’exploitation. Le processus de développement d’une application est radicalement différent de celui d’un site web ou d’une application web.

C’est également au cours de ce processus que commencent la plupart des problèmes de sécurité des applications mobiles. Même un petit oubli dans le code d’un développeur peut amener un pirate, un fraudeur ou un cybercriminel à pénétrer dans votre application pour voler des données ou prendre le contrôle du compte d’un utilisateur.

9 risques de sécurité des applications mobiles en 2023

Il est bien trop facile de négliger la sécurité des applications mobiles. Les entreprises veulent lancer des applications rapidement et les équipes de développement sont souvent en sous-effectif et surchargées. La sécurité devient une réflexion secondaire, même si cela ne devrait pas être le cas. Si vous voulez protéger la réputation et les revenus de votre entreprise, vous devez prêter une attention particulière aux 9 risques de sécurité suivants concernant les applications mobiles.

Protection insuffisante de l’API

Si vous développez une application, il est presque certain que vous utiliserez au moins une API. Une API pour application mobile permet à une application d’obtenir des données d’une autre application. Par exemple, c’est ce qui permet à un site de réservation de voyages de prendre des informations provenant d’une grande variété d’hôtels et de compagnies aériennes pour les assembler de manière organisée. Dans un autre exemple, c’est ce qui permet à Google Maps d’afficher des itinéraires vers un lieu. La plupart des applications modernes s’appuient sur des API pour une grande partie de leurs fonctionnalités.

De nombreux développeurs oublient de protéger leurs API. Ils supposent que les acteurs malveillants ne les trouveront pas intéressantes, mais c’est le contraire qui est vrai. Les API fournissent un accès à des informations stables et structurées, ce qui est exactement ce que les acteurs malveillants recherchent. Ils vont inverser la conception de votre application pour découvrir quelles API votre application utilise, exécuter votre application avec un émulateur, ou utiliser une ferme mobile afin de trouver des points d’accès.

Comment prévenir une protection insuffisante de l’API ?

Comme pour de nombreuses menaces de cette liste, les plus grands dangers d’exploitation viennent des bots malveillants. En général, les bots n’ont aucune raison d’utiliser votre API, donc lorsqu’ils le font, ce n’est pas bon signe. Une solution de protection contre les bots spécifiquement adaptée aux applications mobiles saura comment détecter les bots et pourra bloquer les mauvais tout en laissant passer les bons.

Contrôles faibles côté serveur

Les applications mobiles modernes ont à la fois un côté client et un côté serveur. Le côté client est ce que l’utilisateur voit. C’est l’interface utilisateur, avec tout son éclat et sa fonctionnalité. Mais pour que tout fonctionne, le côté client dépend du côté serveur, qui est responsable de s’assurer que tout fonctionne correctement. Le client et le serveur communiquent généralement par le biais d’une API.

Les vulnérabilités côté serveur sont courantes et facilement exploitables via l’API souvent non sécurisée. Elles peuvent inclure des failles de logique de code, des règles d’authentification faibles, une gestion de session médiocre, des configurations de serveur non sécurisées, des vulnérabilités de contrôle d’accès, et plus encore. Il y en a trop pour les énumérer, mais elles se classent généralement en deux catégories : les vulnérabilités de code ou les vulnérabilités de configuration.

Comment prévenir les contrôles faibles côté serveur ?

Comme le côté client d’une application communique avec son côté serveur via une API, vous pouvez bloquer de nombreuses menaces en supprimant la capacité des scripts automatisés à accéder à votre API. Bien que cela n’empêche pas les menaces manuelles et ne corrige pas non plus les vulnérabilités côté serveur, cela empêchera au moins votre application d’être très facilement exploitable.

Injections côté client

Une des manières dont un attaquant peut essayer de pénétrer dans votre application est d’envoyer des données inhabituelles qui conduisent à un accès non autorisé. Ces données sont généralement manipulées de telle manière que votre application les interprète comme du code exécutable. Par exemple, une base de données SQL mobile peut être ciblée par un attaquant qui insère une requête créative dans laquelle il reçoit des données privées d’autres utilisateurs.

Les injections SQL ne sont qu’une forme d’injection côté client. Une autre forme est appelée Inclusion de Fichier Local, où l’attaquant télécharge un fichier exécutable que votre application lit et exécute, ce qui peut conduire à un crash de votre application ou à l’exposition de données sensibles.

Comment prévenir les injections côté client ?

L’une des méthodes les plus efficaces pour prévenir les injections côté client est à travers des validations d’entrée appropriées, c’est-à-dire vérifier toutes les données entrantes (y compris celles provenant de partenaires, régulateurs et fournisseurs) pour s’assurer qu’elles se situent dans les limites raisonnables de ce qui est attendu. Une validation d’entrée appropriée peut signifier :

  • la mise en œuvre d’une vérification de la plage des valeurs minimales et maximales pour les données et la longueur d’une chaîne de caractères ;
  • ajouter une vérification des expressions rationnelles qui évite les caractères génériques tels que “.” ou “*” ;
  • aemander une correspondance exacte si les options de données d’entrée sont fixes ;
  • autoriser uniquement les données d’entrée provenant d’un tableau de valeurs autorisées.

Stockage non sécurisé de données sensibles

Les applications mobiles, y compris les applications bancaires, stockent souvent des données sensibles localement. Cela signifie que votre code PIN, numéros de carte de crédit, mots de passe, détails de connexion, et plus encore sont simplement stockés quelque part sur votre smartphone. Ce qui est pire, c’est qu’ils sont souvent stockés de manière non sécurisée. Si une personne techniquement compétente accède à votre appareil (à distance ou non), elle peut trouver et prendre toutes ces données.

Les données sensibles locales sont souvent stockées de manière non sécurisée en raison d’un chiffrement inadéquat. Certaines applications mobiles ne chiffrent pas du tout les données locales, ce qui est la pire des infractions. D’autres applications mobiles chiffrent les données locales mais ne stockent pas correctement les clés de chiffrement, ou elles utilisent des protocoles de chiffrement personnalisés qui ne sont pas considérés comme sûrs.

Comment prévenir le stockage de données sensibles non sécurisé ?

Les données au repos doivent être correctement chiffrées, avec un protocole de chiffrement solide considéré depuis longtemps comme sûr par la communauté de la cybersécurité. N’essayez pas de faire quelque chose de fantaisiste avec un protocole personnalisé. Il y a beaucoup plus de chances que vous fassiez une erreur et que vous exposiez accidentellement des données locales sensibles au lieu de les protéger correctement.

Mots de passe ou clés codés en dur

C’est l’une des erreurs les plus élémentaires, mais elle se produit encore. Les développeurs codent souvent en dur les mots de passe, les clés API ou les clés OAuth pour simplifier la mise en œuvre, le support ou le débogage d’une application. Cela signifie que ces mots de passe ou clés sont explicitement écrits quelque part dans le code. Lorsque ces valeurs codées en dur sont découvertes par un pirate qui a effectué une rétro-ingénierie de votre application, vous vous exposez à toutes sortes d’exploitations.

Comment prévenir les mots de passe ou clés codés en dur ?

Les développeurs codent les mots de passe en dur pour se faciliter la vie, donc fournissez-leur une solution de gestion de mots de passe qui stocke de manière sécurisée leurs mots de passe ou clés pour eux, afin qu’ils n’aient pas à coder en dur des valeurs sensibles. De plus, effectuez des scans fréquents à la recherche de mots de passe codés en dur, et si vous en trouvez un dans une application en direct avant que quelqu’un d’autre ne le fasse, corrigez immédiatement le problème pour que personne ne puisse l’exploiter.

Mauvaise sécurité du code source

Le code source de votre application est ce qui la fait fonctionner. Ce sont les éléments constitutifs. Si vous ne sécurisez pas votre code source, vous donnez votre avantage concurrentiel — votre protocole intellectuel — gratuitement. De plus, le code source coexiste souvent avec des clés API ou de chiffrement, des jetons d’authentification, des mots de passe d’utilisateurs et d’autres données sensibles que vous ne voulez pas voir exploitées.

Lorsque nous parlons de code source, nous ne voulons pas dire seulement votre code source. Nous entendons tout le code source que vous utilisez, ce qui peut inclure du code provenant de tiers tels que des partenaires ou des fournisseurs ou même du code open source simple. Si une partie de ce code est non sécurisée, votre application est à risque.

Comment prévenir une mauvaise sécurité du code source ?

Vous pouvez prévenir le code source non sécurisé avec des outils de test de sécurité d’application mobile qui scannent fréquemment ou même en continu votre code source à la recherche de vulnérabilités. Ces outils peuvent prendre en charge la majeure partie du travail de révision du code, même si vous devez toujours procéder à des révisions manuelles du code pour détecter les vulnérabilités. En outre, vous devez stocker votre code source en toute sécurité et n’en donner l’accès qu’aux personnes qui en ont absolument besoin, et à personne d’autre.

Fuite de données sensibles

La fuite de données signifie exposer des données sensibles en ligne, soit accidentellement, soit intentionnellement. C’est ce qui est arrivé à la populaire application mobile de stationnement Parkmobile lorsqu’une vulnérabilité dans un logiciel tiers a conduit à une fuite de données exposant les e-mails, dates de naissance, numéros de plaques d’immatriculation, numéros de téléphone de 21 millions d’utilisateurs.

Parfois, ces fuites se produisent involontairement. Par exemple, Firebase est l’une des solutions de stockage de données les plus populaires pour les applications Android, mais elle est souvent mal configurée. Toute personne connaissant l’URL appropriée pour une application construite avec Firebase peut facilement accéder aux bases de données de cette application, provoquant ainsi la fuite de données sensibles des utilisateurs.

Comment prévenir les fuites de données sensibles ?

L’une des manières de prévenir les fuites de données sensibles est d’empêcher la mise en cache des données. Ne stockez pas les données dans le cache, car les attaquants peuvent utiliser ces données pour essayer de pénétrer dans le compte d’un utilisateur. Les utilisateurs peuvent nettoyer le cache manuellement ou les développeurs peuvent simplement décider de ne pas stocker de données sensibles dans le cache. Cela peut être un peu plus contraignant pour les utilisateurs, mais cela rend l’application nettement plus sécurisée.

Transmission de données non sécurisée

Nous avons précédemment dit que les données non chiffrées ou mal chiffrées au repos ne sont pas sécurisées, il ne devrait donc pas être surprenant que les données non chiffrées ou mal chiffrées en transit ne le soient pas non plus. Il n’est pas trop complexe pour un attaquant d’intercepter des données lorsqu’elles transitent via le wifi (en particulier les wifi publics non sécurisés) ou le réseau de l’opérateur mobile d’un appareil.

Bien que les données en transit soient souvent chiffrées, elles sont également souvent mal configurées, ou les clés sont mal gérées, ou les développeurs utilisent un algorithme de chiffrement personnalisé qui n’est pas aussi sécurisé que les algorithmes modernes. Essentiellement les mêmes problèmes que pour les données non chiffrées ou mal chiffrées au repos, sauf que les pirates y accèdent par différents canaux.

Comment prévenir la transmission de données non sécurisée ?

Utilisez les protocoles SSL ou TLS pour transmettre des données. Mieux encore, chiffrez les données avant de les envoyer via SSL ou TLS, afin qu’il y ait une seconde couche de sécurité en cas de vulnérabilité dans le protocole SSL ou TLS. En outre, protégez les données en transit contre les attaques d’interception du réseau grâce à une validation et une authentification appropriées des certificats.

Journalisation et suivi inadéquats

Une fois votre application lancée, vous voulez savoir comment elle se comporte. Vous voulez comprendre quand des problèmes apparaissent, afin de pouvoir réagir à temps sans trop perturber l’expérience utilisateur. Mais si vous n’avez pas mis en place des systèmes de journalisation et de surveillance adéquats, vous ne pourrez pas faire tout cela. Au contraire, vous resterez dans l’ignorance, avec des lacunes en matière d’information qui ne vous permettront pas de vous défendre contre les incidents de sécurité.

Comment prévenir la journalisation et le suivi inadéquats ?

La solution est de mettre en œuvre ou de créer un système qui enregistrera et surveillera toutes les variables importantes de votre application. Cela comprend le temps de lancement, le temps de réponse de l’UI, les pannes, la consommation de batterie, la consommation de données, mais aussi l’activité inhabituelle, les tentatives de connexion échouées et autres menaces de sécurité.

Améliorer la sécurité des applications mobiles avec DataDome

Les menaces les plus avancées sont automatisées. Les attaquants n’ont pas le temps de scanner manuellement chaque application à la recherche de faiblesses, ils utilisent donc des bots. DataDome protège vos applications mobiles et vos API contre ces bots avec son logiciel de blocage de bots à la pointe de la technologie. Le logiciel protège à la fois côté serveur et côté client, grâce à un petit module API côté serveur et une intégration SDK côté client particulièrement légère.

De plus, le code de DataDome est obscurci, ce qui signifie que les attaquants ne peuvent pas inverser la conception du logiciel pour comprendre comment il fonctionne. Le logiciel vous permet également de configurer des règles personnalisées que vous pouvez appliquer à des points d’extrémité spécifiques, et il surveille le type et la quantité de menaces de bots entrants. Si vous voulez voir par vous-même comment cela fonctionne, planifiez une démonstration du produit en direct dès aujourd’hui.

FAQ sur la sécurité des applications mobiles

Quelles sont les vulnérabilités des applications mobiles ?

Les vulnérabilités des applications mobiles sont des faiblesses dans votre application mobile que les attaquants peuvent utiliser pour exploiter des données, frustrer vos utilisateurs ou casser votre application. La sécurité des applications mobiles est souvent négligée et, en conséquence, de nombreuses applications mobiles sont des cibles faciles pour les pirates, les criminels et les fraudeurs. Les vulnérabilités des applications mobiles incluent les mots de passe codés en dur, les données sensibles non sécurisées en transit ou au repos, les injections côté client et les contrôles faibles côté serveur.

Quels sont les effets négatifs des vulnérabilités des applications mobiles ?

La plupart des entreprises se soucient beaucoup de la sécurité des sites web ou des applications web, mais elles n’étendent pas ce soin à leurs applications mobiles. En conséquence, les applications mobiles laissent souvent échapper des données ou rendent terriblement facile pour les pirates, fraudeurs et cybercriminels d’exploiter des données. Cela peut conduire à des account takeovers et à des fraudes de paiement pour l’utilisateur, et à une perte de revenus, des dommages à la réputation et des amendes pour violation de la confidentialité des données pour l’entreprise.

Quel est le niveau de sécurité des applications mobiles ?

De nombreuses applications mobiles ne sont pas très sécurisées. Les entreprises accordent souvent beaucoup de soin à sécuriser leurs sites web ou applications web tout en négligeant leurs applications mobiles. C’est pourquoi les applications mobiles sont des vecteurs d’attaque populaires pour les pirates, fraudeurs et cybercriminels sophistiqués. Cependant, si vous faites l’effort de sécuriser vos applications mobiles, vous vous démarquerez de ceux qui ne le font pas.