Comment les développeurs de logiciels peuvent créer des applications mobiles en toute sécurité et rapidement
9 min readLes applications mobiles offrent de grandes opportunités aux entreprises à l’ère numérique. Selon les recherches de Statista, revenus internationaux des applications mobiles atteindra 935 milliards de dollars d’ici 2023, contre 365 milliards de dollars en 2018.
Cependant, le processus de création d’applications mobiles est considérablement différent du processus de développement de logiciels d’entreprise. Pour commencer, les applications mobiles sont généralement natif du cloud, conçu pour une gamme de systèmes d’exploitation et d’appareils différents, et dépendant des microservices back-end Android et iOS.
Dans le même temps, les développeurs de logiciels subissent souvent des pressions pour créer des applications mobiles de manière sécurisée et rapide. Mais comment peuvent-ils faire ces choses tout en tenant compte des exigences uniques des applications mobiles ?
Aujourd’hui, les applications mobiles jouent un rôle important dans les entreprises de tous les secteurs. Mais lorsqu’elles sont laissées vulnérables aux problèmes de sécurité et par la suite violées par des cybercriminels, les entreprises peuvent faire face à une perturbation majeure de leurs opérations quotidiennes.
« L’application mobile n’est pas moins importante que tout autre composant de votre entreprise, et les failles de sécurité les plus difficiles à détecter pourraient avoir un impact désastreux », déclare Olexandr Leuschenko, responsable du mobile chez Ciklum.
“L’issue de sécurité dans le développement d’applications mobiles est souvent sous-estimé, et les équipes d’ingénierie peuvent s’appuyer sur les niveaux de protection standard fournis par Apple et Google. En réalité, cependant, il est de la responsabilité des développeurs de sécuriser les applications qu’ils construisent.
L’avis de Leuschenko est que les développeurs de logiciels devraient prendre des mesures pour sécuriser les applications mobiles au début de leur développement. En particulier, il recommande aux développeurs d’intégrer des évaluations de sécurité dans le cycle de vie du développement logiciel, de suivre les principes de sécurité établis et d’utiliser des solutions dont l’efficacité est prouvée.
« Au minimum, les développeurs doivent suivre les règles de sécurité les plus simples : masquer le code, désactiver JavaScript dans les vues Web à moins que cela ne soit explicitement requis, ne pas stocker d’informations sensibles en texte brut et ne pas valider d’informations sensibles dans le VCS. [version control system],” il ajoute.
Alexandre Leuschenko, Ciklum
Ce point de vue est soutenu par le spécialiste de la sécurité d’ESET, Jake Moore, qui affirme que les développeurs peuvent prolonger la protection s’ils s’assurent que les fonctions de l’application sont sécurisées dès les premiers stades du développement. Mais il admet qu’il est difficile d’améliorer la sécurité des applications mobiles en raison du grand nombre de plates-formes et de systèmes d’exploitation actuellement disponibles.
En outre, Moore souligne que la sécurité des applications mobiles peut être problématique pour les développeurs car le matériel téléphonique vieillit rapidement. « L’authentification multifacteur, par exemple, est un moyen simple d’aider à protéger les titulaires de compte contre les accès malveillants sur toutes les plateformes, quel que soit l’appareil », dit-il.
Lors de la création d’applications mobiles, les développeurs doivent également mettre en œuvre des mesures de protection pour protéger les données des utilisateurs, explique Moore. « Les données gérées par l’application doivent être stockées de manière à ce que seuls les utilisateurs autorisés puissent y accéder », ajoute-t-il. « Le chiffrement aide à essayer de réduire les accès non autorisés et peut être intégré à l’application, quelle que soit la génération. Toutes les données sécurisées dans le cloud nécessitent une protection robuste, mais ne sont pas définies par le développement de l’application.
Moore dit que les tests sont une autre partie vitale du processus de développement d’applications mobiles, mais avertit que les développeurs peuvent avoir du mal avec cela lorsqu’ils traitent avec plusieurs générations de matériel et de systèmes d’exploitation. “Sécurité zéro confiance est également une méthode de sécurité solide qui suppose que rien sur un réseau n’est sécurisé », dit-il. « Par conséquent, seul le plus petit nombre d’autorisations est accordé à un utilisateur ou à une machine, et uniquement en cas de besoin, aidant à se protéger. »
Répondre à l’évolution des besoins des utilisateurs
Les exigences de développement d’applications mobiles changent radicalement en raison des différents besoins des utilisateurs, selon Amit Sharma, ingénieur en sécurité chez Synopsys Software Integrity Group. « Pour réagir à l’écosystème mobile en constante évolution – y compris le matériel, les plates-formes, les systèmes d’exploitation, etc. – la communauté de développement se concentre sur les bibliothèques natives qui peuvent être utilisées pour rationaliser leur travail », dit-il.
“L’automatisation est la clé pour répondre aux besoins du marché. Les technologies cloud natives jouent un rôle crucial dans la faisabilité d’y parvenir. Les développeurs ont désormais le luxe de lancer et de tester simultanément leurs applications sur différentes plates-formes, offrant ainsi une plus grande évolutivité et fiabilité. De plus, un développement et un déploiement rapides des logiciels sont nécessaires.
Si les organisations doivent s’assurer que la sécurité est intégrée dès le début du développement d’applications mobiles, Sharma dit qu’il est essentiel d’éduquer la communauté de développement sur les directives de codage sécurisé et d’encourager les développeurs à effectuer des tests réguliers dans toutes les phases du processus de développement.
« Avec l’utilisation intensive de bibliothèques tierces dans le domaine mobile, il doit y avoir des contrôles sur les risques inhérents à une application », dit-il. « Des analyses régulières pour vérifier les risques dans les bibliothèques tierces et les obligations de licence sont indispensables pour être intactes avec les procédures de conformité sur les plates-formes, les systèmes d’exploitation, etc.
Les interfaces de programmation d’applications (API) développées pour la communication back-end sont un autre défi à surmonter et doivent être testées du point de vue de la sécurité, explique Sharma. « Utiliser des mécanismes cryptographiques pour garder les données sécurisées au repos ainsi qu’en transit devrait également être envisagée », dit-il. « L’examen des autorisations contribuant à l’idée de confiance zéro est un bon moyen d’avancer dans le sens du développement d’applications sécurisées. Être conscient, c’est être en sécurité.
Réduire les charges de sécurité du développement d’applications mobiles
La prise en charge de plusieurs versions de système d’exploitation et d’appareils est une tâche ardue pour les développeurs d’applications, admet Sean Wright, responsable de la sécurité des applications chez Immersive Labs. Cependant, il souligne que les nouvelles frameworks de développement d’applications mobiles comme Cordova peut alléger ce fardeau.
« Le cadre finit par faire abstraction de la plupart de ces difficultés », dit-il. « Cela permet aux développeurs d’avoir essentiellement besoin de ne maintenir qu’une seule application en termes de code source. Cependant, veiller à ce que ce cadre soit tenu à jour est essentiel pour garantir la sécurité de l’application.
Wright note comment Android et iOS ont parcouru un long chemin pour garantir que les développeurs créent des applications sécurisées pour leurs plates-formes respectives. « Un bon exemple est TLS [transport layer security],” il dit. « Les versions ultérieures des deux systèmes d’exploitation mobiles gèrent la majeure partie de la complexité, telle que la validation des certificats, aidant à activer des applications plus sécurisées.
Le développement d’applications mobiles en toute sécurité ne s’écarte pas de manière significative des applications Web, déclare Wright. « Vous devez toujours suivre les meilleures pratiques, telles que le chiffrement au repos et en transit, utiliser des bibliothèques et des cadres appropriés dans la mesure du possible et, surtout, vous assurer que des tests de sécurité appropriés sont effectués sur les versions publiées des applications mobiles », dit-il.
« Il existe en effet de nombreuses similitudes entre les applications mobiles et les applications Web modernes. L’application interagit via des API pour obtenir et traiter les données utilisées par l’application.
Pratiquer le développement d’applications mobiles sécurisées
Développeurs à 1Mot de passe considérer la sécurité et la confidentialité comme des éléments fondamentaux de l’ensemble du processus de développement d’applications. “Ils déterminent comment nous concevons nos applications, quelles fonctionnalités nous implémentons et comment nous les implémentons”, explique Michael Verde, responsable de l’équipe de développement Android chez 1Password.
1Password pratique l’approche de sécurité en profondeur, protégeant la communication avec son serveur grâce à l’utilisation de plusieurs couches de cryptage. « Nous utilisons des couches de protection similaires dans nos applications en tirant parti des fonctionnalités de sécurité des plates-formes sur lesquelles elles sont déployées : frameworks cryptographiques, sandboxing, environnements d’exécution de confiance et plus encore », dit-il. « Nous construisons également nos applications en couches, en veillant à ce que les informations les plus sensibles ne soient traitées que par les couches les plus internes des applications. »
Michael Verde, 1Password
Une autre façon pour 1Password de développer des applications mobiles sécurisées est de concevoir des fonctionnalités faciles à comprendre et difficiles à utiliser à mauvais escient. « Chaque fois qu’il y a des compromis entre sécurité et commodité, nous privilégions la sécurité et donnons à nos clients le choix d’activer les fonctionnalités de commodité qui leur conviennent », déclare Verde.
« Nous utilisons une base de code commune comme fondement de nos applications pour garantir que les voies les plus sensibles de notre code sont robustes et mises en œuvre de la même manière dans chaque application. La centralisation de ce code nous aide à nous prémunir contre les pièges courants, tels que l’enregistrement de données sensibles ou d’informations personnellement identifiables. Et surtout, cela permet à notre équipe de sécurité d’examiner facilement toutes les modifications apportées. »
En plus de s’assurer que les applications mobiles sont sécurisées et que les cybercriminels ne peuvent pas les violer, les entreprises doivent également publier des applications rapidement pour satisfaire leurs clients et rester en tête de la concurrence. Len Welter, chef de produit mondial pour l’application mobile Bloomberg Professional, déclare : « Au cours des dernières années, nous avons investi dans notre infrastructure et nos plateformes mobiles dans le but particulier d’accélérer le développement de notre application mobile Bloomberg Professional, le tout sans sacrifier les performances. ou les expériences utilisateur natives iOS/Android.
Bloomberg est en mesure de libérer L’application change rapidement grâce à son propre kit de développement logiciel mobile (SDK), explique Welter. « Le Mobile SDK crée un petit ensemble de composants performants, bien testés et réutilisables qui s’exécutent nativement sur Android et iOS », dit-il. « Cela permet à l’interface utilisateur – et à la logique métier sous-jacente – de rester cohérentes, même lorsque les exigences métier changent.
« Nous pouvons désormais mettre à jour rapidement notre application pour répondre à la demande des clients. Notre SDK mobile nous a permis d’expédier des fonctionnalités relativement complexes à iOS et Android en quelques jours ou semaines, plutôt qu’en mois, ainsi qu’à une augmentation de près de 50 % de l’utilisation de notre application mobile pendant la pandémie. »
Les applications mobiles sont aujourd’hui très importantes pour de nombreuses entreprises. Mais ce qui est clair, c’est que le développement d’applications mobiles est un processus complexe comprenant de nombreux facteurs différents que les développeurs doivent comprendre. Ils doivent notamment s’assurer que les applications mobiles sont sécurisées et déployées le plus rapidement possible. Il est juste de dire que ce sont des conditions préalables au développement réussi d’applications mobiles.