Conception UX et psychologie cognitive PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Design UX et psychologie cognitive

Les cyberattaques et le vol de données sont devenus si courants de nos jours, en particulier en ce qui concerne les applications mobiles. Par conséquent, les applications mobiles qui subissent des failles de sécurité peuvent subir des pertes financières. Avec de nombreux pirates qui cherchent à voler les données des clients, la sécurisation de ces applications est devenue la priorité numéro un des organisations et un sérieux défi pour les développeurs. Selon les récentes recherches de Gartner, Hype Cycle pour la sécurité des applications, les investissements dans la sécurité des applications vont plus que doubler au cours des prochaines années, passant de 6 milliards de dollars cette année à 13.7 milliards de dollars d'ici 2026. De plus, le rapport indique : « La sécurité des applications est désormais une priorité pour les développeurs et la sécurité professionnels, et l'accent est désormais mis sur les applications hébergées dans des clouds publics », il est crucial d'obtenir les composants fondamentaux de la sécurité DevOps corrects. Voici les 12 astuces pour sécuriser votre application mobile : 

1. Installez des applications à partir de sources fiables :

Il est courant que des applications Android soient republiées sur d'autres marchés ou que leurs APK et IPA soient disponibles en téléchargement. APK et IPA peuvent être téléchargés et installés à partir de divers endroits, notamment des sites Web, des services cloud, des lecteurs, des médias sociaux et des réseaux sociaux. Seuls le Play Store et l'App Store devraient être autorisés à installer des fichiers APK et IPA fiables. Pour empêcher l'utilisation de ces applications, nous devrions disposer d'une détection de vérification de la source (Play Store ou App Store) au démarrage de l'application.

Lire aussi https://andresand.medium.com/add-method-to-check-which-app-store-the-android-app-is-installed-from-or-if-its-sideloaded-c9f450a3d069

2. Détection racine :

Android : un attaquant pourrait lancer une application mobile sur un appareil rooté et accéder à la mémoire locale ou appeler des activités ou des intentions spécifiques pour effectuer des activités malveillantes dans l'application. 

iOS : les applications sur un appareil jailbreaké s'exécutent en tant que racine en dehors du bac à sable iOS. Cela peut permettre aux applications d'accéder à des données sensibles stockées dans d'autres applications ou d'installer des logiciels malveillants annulant la fonctionnalité de sandboxing. 

En savoir plus sur la détection de racine- https://owasp.org/www-project-mobile-top-10/2016-risks/m8-code-tampering

3. Stockage des données :

Les développeurs utilisent les préférences partagées et les valeurs par défaut de l'utilisateur pour stocker des paires clé-valeur telles que des jetons, des numéros de mobile, des e-mails, des valeurs booléennes, etc. De plus, lors de la création d'applications, les développeurs préfèrent les bases de données SQLite pour les données structurées. Il est recommandé de stocker toutes les données dans le format de cryptage afin qu'il soit difficile d'extraire les informations par des pirates.

4. Clés secrètes sécurisées :

Les clés d'API, les mots de passe et les jetons ne doivent pas être codés en dur dans le code. Il est recommandé d'utiliser différentes techniques pour stocker ces valeurs afin que les pirates ne puissent pas s'en tirer rapidement en altérant l'application. 

Voici un lien de référence : https://guides.codepath.com/android/Storing-Secret-Keys-in-Android

5. Obfuscation de code

Un attaquant peut décompiler le fichier APK et extraire le code source de l'application. Cela peut exposer à l'attaquant des informations sensibles stockées dans le code source de l'application, qui peuvent être utilisées pour effectuer des attaques personnalisées. 

Il est préférable d'obscurcir le code source pour empêcher toutes les informations sensibles contenues dans le code source.

6. Communication sécurisée :

Un attaquant peut effectuer des activités malveillantes pour tirer parti du niveau des attaques puisque toutes les communications se font sur des canaux non chiffrés. Utilisez donc toujours des URL HTTPS plutôt que des URL HTTP.

7. Épinglage SSL :

L'épinglage de certificat permet aux applications mobiles de restreindre la communication uniquement aux serveurs avec un certificat valide correspondant à la valeur attendue (épingle). L'épinglage garantit que aucune donnée réseau n'est compromise même si un utilisateur est amené à installer un certificat racine malveillant sur son appareil mobile. Toute application qui épingle ses certificats contrecarrerait de telles tentatives de phishing en refusant de transmettre des données via une connexion compromise

Se il vous plaît se référer: 

https://owasp.org/www-community/controls/Certificate_and_Public_Key_Pinning

8. Sécurisez les données de demande et de réponse de l'API

La pratique standard consiste à utiliser HTTPS pour la protection de base des appels d'API REST. Les informations envoyées au serveur ou reçues du serveur peuvent être encore cryptées avec AES, etc. avoir une autre couche de protection contre votre cryptage.

9. Authentification sécurisée des applications mobiles :

Dans le cas où une application n'attribue pas de jetons de session distincts et complexes après la connexion à un utilisateur, un attaquant peut effectuer un hameçonnage afin d'inciter la victime à utiliser un jeton généré sur mesure fourni par l'attaquant et contourner facilement la page de connexion avec la session capturée. en utilisant une attaque MiTM.

i) Attribuer un jeton de session distinct et complexe à un utilisateur chaque fois qu'il se connecte avec succès à l'application. 

ii) Mettre fin à la durée de vie de la session immédiatement après la déconnexion. 

iii) N'utilisez pas le même jeton de session pour deux adresses IP ou plus. 

iv) Limiter le délai d'expiration pour chaque jeton de session.

10. Autoriser la sauvegarde 

Interdire aux utilisateurs de sauvegarder une application si elle contient des données sensibles. Ayant accès aux fichiers de sauvegarde (c'est-à-dire lorsque android:allowBackup="true"), il est possible de modifier/lire le contenu d'une application même sur un appareil non rooté. Il est donc recommandé de définir allow backup sur false. 

11. Restreindre l'accès aux écrans d'applications Android à partir d'autres applications

Idéalement, vos activités ne doivent pas prévoir l'ouverture d'autres services ou applications. Rendez-le vrai uniquement lorsque vous avez une exigence spécifique pour accéder à vos écrans flottants à partir d'autres applications, sinon passez à android:exported= "faux"

12. Restreindre l'installation de packages à partir de l'application Android

REQUEST_INSTALL_PACKAGES l'autorisation permet aux applications de installer de nouveaux packages sur l'appareil d'un utilisateur. Nous nous engageons à prévenir les abus sur la plate-forme Android et à protéger les utilisateurs des applications qui se mettent à jour automatiquement en utilisant une méthode autre que le mécanisme de mise à jour de Google Play ou qui téléchargent des fichiers APK nuisibles.

Conclusion: 

Les applications mobiles sont devenues plus personnalisées que jamais avec des tas de données personnelles des clients qui y sont stockées chaque jour. Afin de renforcer la confiance et la fidélité des utilisateurs et d'éviter des pertes financières et d'informations d'identification importantes pour les entreprises, il est désormais crucial de s'assurer que l'application est sécurisée pour l'utilisateur. Suivre les listes de contrôle de sécurité des applications mobiles mentionnées ci-dessus aidera certainement à empêcher les pirates de pirater l'application.

About the Author:

Raviteja Aketi est ingénieur logiciel senior chez Mantra Labs. Il possède une vaste expérience des projets B2B. Raviteja aime explorer les nouvelles technologies, regarder des films et passer du temps avec sa famille et ses amis.

Lisez notre dernier blog : Implémentation d'une architecture propre avec Nest.JS

Des connaissances qui valent la peine d'être livrées dans votre boîte de réception

Horodatage:

Plus de Laboratoires de mantras