Nous avons décidé d’examiner certaines des menaces de sécurité des applications mobiles les plus courantes et les meilleures pratiques sécurisées à suivre lors du développement de votre propre application mobile.
Selon le Check Point 2021 Cyber Security Report , 46% des entreprises ont vu au moins un employé télécharger une application mobile présentant de graves problèmes de sécurité.
1. Utilisation inappropriée de la plate-forme de développement
Les plates-formes iOS et Android sont chacune livrées avec des fonctionnalités et des outils de développement qui fournissent des contrôles de sécurité standard. L’une des plus grandes vulnérabilités et menaces des applications mobiles provient du fait que ces outils sont soit mal utilisés, soit complètement ignorés.
Si un développeur crée une application sans bien comprendre la plate-forme, son application est susceptible de présenter un certain nombre de failles de sécurité. En connaissant les outils et leurs contrôles de sécurité, les développeurs seront bien préparés pour suivre les meilleures pratiques de sécurité des applications mobiles.
Voici trois exemples d’utilisation inappropriée de la plate-forme :
Sécurité des applications mobiles : Pour Android et iOS
Les deux plates-formes offrent aux développeurs des moyens d’implémenter correctement les contrôles d’autorisation. Ne pas le faire peut rendre une application particulièrement vulnérable au piratage.
iOS uniquement
Les appareils iOS utilisent un trousseau pour stocker des informations sensibles, qui peuvent être exploitées si elles ne sont pas implémentées correctement.
Android uniquement
De même, les développeurs Android doivent utiliser la suite de tests de compatibilité pour assurer la compatibilité entre tous les composants de l’application. De telles incompatibilités entraînent souvent des problèmes de sécurité. Le fait que Google soit à la tête d’Android ne dispenses pas de risque de sécurité comme nous avons pu le voir récemment avec le bug de l’échec de la mise à jour de Google.
Quoi qu’il en soit il est vrai que comme tout le développement d’application mobile à ses avantages et ces inconvénient il est important d’avoir tous les éléments à votre disposition avant de vous lancer.
Modélisation des menaces
Il convient également de mentionner que, quelle que soit la plate-forme sur laquelle un développeur travaille, la connaissance des risques et des solutions courants pour la sécurité des applications mobiles implique également la modélisation des menaces. Cela permet à l’équipe de cartographier les problèmes de sécurité de leur application afin de connaître les points faibles de la conception technique. Ils peuvent ensuite prendre un certain temps pour apprendre les commandes de la plate-forme et comprendre comment les mettre en œuvre.
2. Stockage de données dans les applications hors ligne
Il existe quatre principaux types d’applications à développer : les applications natives ; des applications Web; les hybrides, qui sont un peu des deux ; et les plus récents appelés applications Web progressives (PWA).
La plupart des applications mobiles peuvent fonctionner hors ligne, en particulier les applications progressives et les applications natives. Il existe de nombreux cas d’utilisation pour les applications mobiles qui le permettent, car cela permet aux gens de travailler hors ligne, puis de se reconnecter plus tard pour enregistrer ou télécharger des données.
Le problème pour un développeur est qu’il doit tout fournir pour que l’application fonctionne, sans connexion en ligne persistante. Généralement, sur une architecture client-serveur, l’utilisateur fait des requêtes dans l’application, et celles-ci retournent au serveur, qui traite les données et donne un résultat à l’utilisateur.
Les applications qui fonctionnent hors ligne doivent faire tout cela dans l’application, ce qui peut être l’une des principales vulnérabilités et menaces des applications mobiles. Cela signifie qu’un attaquant dispose de la base de code complète, plutôt que du code le plus critique pour la sécurité (couvrant des éléments tels que l’authentification et l’autorisation) côté serveur.
Les mêmes solutions s’appliquent à la fois aux applications en ligne et hors ligne, mais c’est encore plus important pour le travail hors ligne. Les problèmes courants sont liés au stockage des données sur l’application. Par exemple, si un utilisateur de l’application n’a pas de mot de passe sur son téléphone et qu’il perd son téléphone, un attaquant peut alors accéder à la base de données.
Il peut y avoir une authentification intégrée, mais si les données ne sont pas stockées correctement, il peut y avoir d’autres moyens de les contourner. Il est essentiel de stocker correctement les informations d’identification et autres informations sensibles dans une base de données cryptée.
3. Communication non sécurisée
Les meilleures pratiques typiques de sécurité des applications mobiles impliquent le chiffrement de la communication entre l’application et le serveur. Cela crée un canal sécurisé qui garantit qu’aucune donnée n’est falsifiée ou interceptée en transit.
L’une des vulnérabilités et menaces typiques des applications mobiles vient d’un développeur qui néglige un aspect de cette communication de données qu’il considère comme sans importance et qui ne parvient pas à le chiffrer. Ensuite, il s’avère avec le recul que c’était important après tout !
Idéalement, toutes les informations communiquées entre l’application et le serveur seraient cryptées à l’aide d’algorithmes appropriés et de cryptages puissants pour garantir que le cryptage ne peut pas être rompu.
La solution consiste à mettre en œuvre des contrôles standard de l’industrie – souvent spécifiés par les outils et systèmes mentionnés au point un ci-dessus. Un exemple est de ne pas se fier uniquement à la cryptographie symétrique avec des clés codées en dur comme seule méthode de cryptage.
Ces normes de l’industrie sont en constante évolution, et rester à jour avec elles n’est pas une mince affaire. C’est l’une des principales raisons de travailler avec une société de logiciels spécialisée comme la nôtre.
4. Ingénierie inverse
Une autre menace importante pour la sécurité mobile et les meilleures pratiques à couvrir ici sont le danger de l’ingénierie inverse – et comment s’en protéger.
Avec les applications mobiles, une grande partie de la base de code est entre les mains de l’utilisateur. Les attaquants utiliseront des outils spécifiques (par exemple, IDA Pro) pour désélectionner le code dans le but d’apprendre comment il fonctionne et de comprendre comment exploiter certaines de ces fonctionnalités.
Par exemple, les systèmes d’authentification sont vraiment un moyen pour une application de demander à l’utilisateur « êtes-vous qui vous prétendez être ? » Si l’utilisateur ne peut pas fournir les informations d’identification appropriées, l’authentification échoue. Si, toutefois, un attaquant peut faire de l’ingénierie inverse sur une application, il peut contourner cela, lui permettant de dire « oui, je le suis » et de déverrouiller cette partie de l’application mobile. Cela fait de l’ingénierie inverse l’un des plus grands risques pour la sécurité des applications mobiles.
Il existe plusieurs façons de résoudre ce problème. L’une utilise des techniques d’obscurcissement sur du code accessible au public pour le rendre impossible à déchiffrer pour les attaquants. Beaucoup d’autres dépendent de la plate-forme utilisée pour créer l’application, car les outils utilisés pour désosser une application vulnérable feront partie de cet écosystème.
Cela nous ramène en effet au premier point concernant la connaissance de la plateforme et de ses outils. Les développeurs qui le feront seront les mieux placés pour protéger leurs applications contre la menace de sécurité importante que pose l’ingénierie inverse.
5. Code de mauvaise qualité
Le code de qualité est toujours écrit dans un souci de sécurité. Un code de mauvaise qualité est plus susceptible de créer le contexte optimal pour l’exploitation des vulnérabilités. En d’autres termes : plus la qualité du code est mauvaise, plus il y a de vulnérabilités potentielles et plus il est facile pour un attaquant d’accéder à des parties de l’application auxquelles il ne devrait pas pouvoir accéder.
Deux exemples de risques et de solutions courants pour la sécurité des applications mobiles concernant la qualité du code consistent à s’assurer que l’application est correctement signée avec un certificat de sécurité valide et à publier l’application en mode de publication plutôt qu’en mode de débogage.
La solution globale pour la qualité du code consiste cependant à mettre en œuvre des pratiques de codage sécurisées telles que définies par OWASP , qui a été fondée pour aider les développeurs à écrire du code sécurisé et est considérée comme une norme de l’industrie très appréciée.
Des applications sécurisées conçues en fonction de vos besoins
Chez Osmova, nous suivons toutes les meilleures pratiques de sécurité des applications mobiles mentionnées ci-dessus, y compris le respect des directives de sécurité standard de l’industrie pour l’écriture de code sécurisé.
Si vous avez besoin d’une application mobile sécurisée conçue pour votre entreprise, visitez notre site d’agence web . Pour plus de tranquillité d’esprit et le meilleur de la sécurité des applications.