Dans le premier épisode d'une série de billets destinés à traiter certaines des principales vulnérabilités répertoriées dans le dernier Top 10 mobile de l'OWASP, nous nous penchons sur les menaces liées à l'utilisation incorrecte des informations d'identification.

Après tout, aucun fabricant d'applications mobiles ne souhaite être pointé du doigt pour cela, comme l'a été le propriétaire d'une application de système de contrôle d'accès résidentiel intelligent bien connu. Cette grande entreprise a fini par faire les frais des avertissements de l'Agence américaine pour la cybersécurité et la sécurité des infrastructures (CISA) et des clarifications ultérieures qui ont été publiées à la suite de ces avertissements.

Afin de mettre l'accent sur les spécificités des différentes vulnérabilités répertoriées par l'OWASP et d'aider les développeurs d'applications mobiles à protéger leurs applications contre l'utilisation inappropriée d'informations d'identification, voici quelques suggestions à prendre en compte :

1. Éviter simplement de coder en dur les informations d'identification

Le codage en dur d'informations sensibles telles que les clés d'API, les mots de passe ou les clés de chiffrement directement dans le code source ou les fichiers de configuration d'une application n'est pas seulement fortement déconseillé, il est également à proscrire dans la mesure du possible. 

Ces identifiants, une fois intégrés dans l'application, deviennent extrêmement difficiles à modifier et posent un risque de sécurité important s'ils sont découverts. La ligne directrice de l'OWASP pour le stockage des données, si elles sont stockées localement, est de les chiffrer à l'aide d'une clé dérivée des identifiants de connexion de l'utilisateur. 

Ne stockez pas les mots de passe des utilisateurs sur l'appareil. Utilisez plutôt des jetons spécifiques à l'appareil qui peuvent être révoqués. Évitez d'utiliser des valeurs falsifiables, comme les identifiants des appareils, pour l'authentification. Si possible, utilisez des coffres-forts sécurisés ou un système de gestion des clés pour stocker les informations d'identification. L'application des solutions de clé de passage offertes par les plateformes mobiles modernes est un bon moyen d'y parvenir. 

Ces systèmes permettent de gérer les informations d'identification sans modifier le code de l'application mobile, ou alors les changements sont minimes pour assurer l'application de la loi.

2. Utiliser l'obscurcissement du code et crypter les données sensibles

Il est fortement recommandé aux développeurs d'utiliser techniques d'obscurcissement du code et des chaînes de caractères pour rendre le code extrêmement difficile à comprendre et à désosser.

Si le code et les données sont transformés pour être obscurcis et partiellement cryptés, les attaques et le vol de la propriété intellectuelle deviennent beaucoup plus difficiles, à condition que les technologies commerciales d'obscurcissement appropriées soient utilisées. technologies d'obscurcissement commerciales appropriées. Les technologies disponibles gratuitement n'offrent souvent pas une obscurcissement complet. Lorsque l'obscurcissement est appliqué correctement, les voleurs n'investissent pas leur temps et passent tout simplement à la cible potentielle suivante.

Pour que l'obscurcissement soit pleinement efficace, il doit être accompagné d'une protection en cours d'exécution telle que anti-tamperingl'anti-débogage et l'anti-crochetage, ainsi que des contrôles environnementaux comme la protection contre l'émulation et l'enracinement, car toutes ces protections supplémentaires couvrent les vecteurs d'attaque que l'obscurcissement seul laissera encore ouverts.

3. Déshabillez votre binaire

Une recommandation très élémentaire consiste à supprimer les informations de débogage avant de publier le binaire. Ces informations aideraient les attaquants à inverser, instrumenter et modifier facilement un produit logiciel. 

4. Toujours obtenir le paquet complet

Lors de l'application de la protection des applications, il convient d'utiliser toute une série de technologies de protection en réseau avec une multitude d'approches de protection qui se couvrent toutes les unes les autres. Cela inclut l'obscurcissement, le cryptage, l'anti-débogage, l'anti-crochetage, l'anti-tampering, l'anti-rootage, l'anti-virtualisation et l'anti-levage. 

5. Utiliser une authentification forte

Une autre recommandation de base est d'utiliser une authentification forte lors de la connexion de l'application au serveur. Cela inclut l'utilisation de la dernière version de TLS et de TLS mutuellement authentifié avec rotation des certificats et des certificats individuels sur le client. 

Si mTLS n'est pas possible, utilisez une authentification forte basée sur les solutions de clé de passage mentionnées ou en utilisant des clés d'API tournantes et protégées localement.

6. Autres garanties possibles

Utiliser des mesures de sécurité comprenant la surveillance des superpositions d'écran ou d'autres abus de l'API d'accessibilité, qui sont utilisés par les attaquants pour voler les informations d'identification de l'utilisateur en affichant une fausse interface au-dessus de l'application légitime.

Pour les applications connectées, la protection contre les attaques de type "Man-in-the-Middle" (MiTM) est importante, et le mieux est d'utiliser des solutions qui épinglent les certificats et détectent activement les redirections et les proxys malveillants. 

Mettre à jour et corriger régulièrement l'application pour corriger les vulnérabilités connues et rester conforme aux meilleures pratiques et normes de sécuriténotamment celles d'organisations telles que l'OWASP.

En suivant les étapes suggérées, les développeurs d'applications mobiles peuvent améliorer de manière significative et puissante la sécurité de leurs applications mobiles et protéger les données sensibles des utilisateurs contre les menaces potentielles, en différenciant davantage non seulement leur application, mais aussi leur marque et leur entreprise en général. Le prochain épisode de notre liste de vulnérabilités de l'OWASP portera sur la sécurité inadéquate de la chaîne d'approvisionnement.