paint-brush
Dévoilement des vulnérabilités de sécurité dans les applications mobilespar@induction
1,539 lectures
1,539 lectures

Dévoilement des vulnérabilités de sécurité dans les applications mobiles

par Vision NP13m2023/06/01
Read on Terminal Reader

Trop long; Pour lire

Les applications mobiles sont confrontées à divers problèmes de sécurité et sont sensibles à différents types d'attaques en raison de leur utilisation généralisée et des précieuses données qu'elles traitent. Alors que les techniques de développement d'applications évoluent avec de nouveaux frameworks et méthodologies, les attaquants font également évoluer leurs techniques en permanence. Malgré la préférence pour les meilleures pratiques, les bogues dans les applications mobiles peuvent parfois passer inaperçus pendant longtemps. Les plates-formes comme Android et iOS ont historiquement présenté des risques de sécurité importants pour les applications mobiles.
featured image - Dévoilement des vulnérabilités de sécurité dans les applications mobiles
Vision NP HackerNoon profile picture
0-item
1-item

Dans le paysage numérique d'aujourd'hui, les appareils mobiles jouent un rôle important pour nous faciliter la vie.


Comme les processus de développement d'applications évoluent constamment, assurer la sécurité de tout type d'application mobile telle que hybride, blockchain ou native, est d'une importance primordiale. Les applications mobiles gèrent souvent des données utilisateur sensibles et interagissent avec divers services réseau qui pourraient en faire des cibles potentielles d'attaques malveillantes.


Parfois, une simple erreur dans un code permet aux attaquants de voler des données utilisateur sensibles, il est donc très important d'investir du temps lors du développement d'une application mobile.

Alors, les amis, ne nous précipitons pas dans le processus de codage ou de développement d'applications comme un taureau dans un magasin de porcelaine😁.


Mais parfois, malgré tous nos efforts, ces erreurs embêtantes ne reculent tout simplement pas. N'ayez pas peur ! Cet article est là pour vous sauver avec une collection de solutions de débogage qui feront trembler ces bogues persistants dans leurs démarrages virtuels.


📥Les principaux facteurs qui rendent les applications mobiles vulnérables aux attaques :

Malgré le maintien des meilleures pratiques, il arrive parfois que des bogues dans les applications mobiles restent longtemps inaperçus. Les applications mobiles sont confrontées à divers problèmes de sécurité et sont sensibles à différents types d'attaques en raison de leur utilisation généralisée et des précieuses données qu'elles traitent. Alors que les techniques de développement d'applications évoluent avec de nouveaux cadres et méthodologies, les attaquants font également constamment évoluer leurs techniques.


Alors que les développeurs d'applications mobiles s'efforcent de créer des applications innovantes et riches en fonctionnalités, les attaquants ou les cybercriminels saisissent l'opportunité d'exploiter les vulnérabilités et adaptent leurs stratégies pour cibler ces avancées.


⬇️Bugs dans les systèmes d'exploitation (OS) :

Il s'agit du facteur le plus crucial qui permet potentiellement aux attaquants de voler des données d'application en obtenant un accès non autorisé aux systèmes d'applications mobiles. Des plates-formes telles qu'Android et iOS ont historiquement affiché des risques de sécurité importants pour les applications mobiles. Par conséquent, se concentrer uniquement sur le développement d'applications et les techniques de débogage sans rester à jour sur les plates-formes sur lesquelles vous développez une application mobile s'avère moins efficace pour résoudre les problèmes de sécurité.


Voici quelques incidents notables :


⚠️ Stagefright (Android):

Le Vulnérabilité au trac a été découvert en 2015, affectant des millions d'appareils Android en permettant aux attaquants d'exploiter les failles du moteur de lecture multimédia. À cette époque, les attaquants utilisaient diverses méthodes, y compris des fichiers multimédias malveillants et des messages MMS spécialement conçus, pour exécuter des codes à distance dans les appareils et applications infectés.


⚠️ XcodeGhost (iOS):

En 2015, une version malveillante de l'environnement de développement Xcode d'Apple, XcodeGhost , a été distribué en Chine. XcodeGhost a permis aux attaquants d'injecter et de propager du code malveillant dans les applications iOS créées à l'aide de la version compromise de Xcode.


⚠️ Dirty COW (noyau Linux):

Le Vulnérabilité sale COW a été découvert pour la première fois en 2016 et a affecté divers systèmes basés sur Linux, y compris les appareils Android. Les attaquants l'ont utilisé pour obtenir un accès écrit non autorisé aux mappages de mémoire en lecture seule dans le noyau Linux, leur permettant d'élever les privilèges et d'exécuter du code arbitraire.


⚠️ Strand Hogg 2.0 (Android) :

La vulnérabilité a été nommée StrandHogg 2.0 en raison de similitudes avec la vulnérabilité StrandHogg précédente et.

Source : Promon


⚠️Bug qui montrait que WhatsApp accédait au micro (Android) :

Il s'agit de l'incident le plus récent survenu en 2023 avec Android lorsque un bug de sécurité a été découvert dans Android qui a entraîné des indicateurs de confidentialité et des notifications incorrects dans le tableau de bord de confidentialité. Ce bogue permettait à WhatsApp d'accéder au microphone de l'appareil même lorsque l'application n'était pas utilisée. La faille compromettait la confidentialité des utilisateurs et soulevait des inquiétudes concernant l'enregistrement audio non autorisé.


✅Comment déboguer votre application

Le débogage d'une application lorsque le système d'exploitation (OS) sous-jacent tel qu'Android ou iOS lui-même présente des bogues peut être difficile. Cependant, voici quelques stratégies qui peuvent vous aider à traverser cette situation :


  • Reproduisez et isolez le problème pour confirmer si les bogues persistent dans le système d'exploitation ou dans votre application.
  • Essayez d'effectuer des recherches pour savoir si le rapport de bogue publié sur les sites/forums du fournisseur du système d'exploitation ou sur d'autres ressources correspond à votre cas. Si des solutions de contournement ou des correctifs temporaires fournis par le fournisseur du système d'exploitation ou la communauté sont présents, il sera utile de corriger les bogues immédiatement en tant que solution principale.
  • C'est un moyen très efficace d'analyser les journaux et les rapports de plantage pour détecter les bogues, ainsi, conserver des informations sur l'erreur ou le comportement inattendu et rechercher des modèles ou des indices qui peuvent vous aider à identifier la cause du problème. Faites attention aux messages d'erreur ou aux traces de pile qui peuvent indiquer des problèmes liés au système d'exploitation.
  • Si le bogue apparaît sur la version spécifique du système d'exploitation, essayez de tester votre application sur différentes versions pour déterminer s'il s'agit d'un nouveau problème produit en raison de la récente mise à jour du système d'exploitation.
  • Pour signaler un bogue du système d'exploitation, contactez les canaux ou les forums d'assistance aux développeurs du fournisseur du système d'exploitation. Fournissez des informations détaillées telles que les étapes de reproduction des bogues, les journaux et les rapports d'incident qui peuvent sensibiliser et accélérer la résolution des problèmes.
  • Implémentez des solutions de contournement temporaires dans votre application pour éviter l'impact du bogue du système d'exploitation. Cela peut inclure la désactivation de certaines fonctionnalités de l'application ou la modification du comportement de l'application pour éviter les scénarios problématiques. Communiquez clairement ces solutions de contournement aux utilisateurs de l'application jusqu'à ce qu'un correctif permanent soit disponible.
  • Soyez à jour avec les mises à jour du système d'exploitation et les rapports de correctifs.


⬇️Authentification faible :

Des mécanismes d'authentification mal gérés ou mis en œuvre, tels que des mots de passe faibles ou l'absence d'authentification multifacteur (MFA), peuvent rendre les applications mobiles vulnérables à un accès non autorisé (appelé attaque d'authentification) en permettant aux attaquants d'accéder à des comptes d'utilisateurs ou d'usurper l'identité d'utilisateurs légitimes.


✅Techniques de prévention :

Pour garantir une authentification sécurisée des applications mobiles, suivez ces instructions :


  • Faites correspondre les exigences d'authentification des applications mobiles avec leurs homologues Web en garantissant des facteurs d'authentification égaux ou plus forts pour les utilisateurs mobiles.
  • Découragez l'utilisation de codes PIN à 4 chiffres ou de nombres devinables tels que DOB pour les mots de passe d'authentification.
  • Évitez l'authentification des utilisateurs locaux car elle peut entraîner des vulnérabilités de contournement côté client, en particulier sur les appareils jailbreakés.
  • Lorsqu'une authentification hors ligne est nécessaire, effectuez des demandes d'authentification côté serveur et chargez les données d'application sur l'appareil uniquement après une authentification réussie.
  • Si le stockage de données côté client est nécessaire, cryptez les données à l'aide d'une clé de cryptage dérivée de manière sécurisée à partir des informations d'identification de connexion de l'utilisateur. Cela empêche l'accès non autorisé aux données stockées.
  • Implémentez l'authentification persistante (Remember Me) à l'aide de jetons d'authentification spécifiques à l'appareil qui peuvent être révoqués par l'utilisateur, protégeant contre l'accès non autorisé à partir d'appareils perdus ou volés.
  • Évitez d'utiliser des valeurs falsifiables telles que les identifiants d'appareils ou la géolocalisation pour l'authentification des utilisateurs.
  • Faites en sorte que l'authentification persistante soit activée plutôt qu'activée par défaut dans les applications mobiles.


⬇️Cryptage des données insuffisant et stockage des données non sécurisé :

Un mécanisme de cryptage mal géré pour les données sensibles stockées dans l'application ou pendant la transmission les rend vulnérables à l'interception, car les attaquants peuvent exploiter cette faiblesse pour accéder et manipuler les informations confidentielles de l'utilisateur. De plus, le processus de stockage de données sensibles sans mesures de sécurité appropriées augmente le risque de violation de données.


✅Techniques de prévention :


  • Utilisez des algorithmes de cryptage puissants comme AES (Advanced Encryption Standard) pour protéger les données sensibles des utilisateurs. Par exemple, le chiffrement des mots de passe des utilisateurs à l'aide d'un algorithme de hachage puissant tel que bcrypt ou PBKDF2 garantit que même si les mots de passe stockés sont compromis, ils sont extrêmement difficiles à déchiffrer.
  • Stockez les informations sensibles en toute sécurité en utilisant des mécanismes de stockage sécurisés spécifiques à la plate-forme. Par exemple, vous pouvez utiliser les services Keychain sur iOS fournis par le système d'exploitation pour stocker en toute sécurité les informations d'identification de l'utilisateur et d'autres données sensibles. Sur Android, le système Android Keystore offre une installation de stockage sécurisée.
  • Une communication non sécurisée avec des configurations SSL/TLS faibles conduit à plusieurs attaques basées sur le réseau telles que les attaques Man-in-the-Middle (MitM) où un attaquant intercepte et modifie la communication et les attaques par déni de service distribué (DDoS) qui submergent les serveurs de l'application avec un flot de demandes, provoquant des interruptions de service. Implémentez des protocoles comme HTTPS (HTTP Secure) pour crypter les données transmises entre l'application mobile et le serveur par exemple, une application e-commerce transmettant les détails de paiement des clients en toute sécurité via HTTPS assure la confidentialité des informations financières sensibles.
  • Pour éviter la perte de données en cas de vol ou de perte de l'appareil, vous pouvez activer la fonctionnalité d'effacement à distance pour permettre aux utilisateurs ou aux administrateurs d'effacer à distance les données sensibles stockées sur l'appareil. De plus, appliquez un chiffrement complet de l'appareil qui peut protéger les données même si l'appareil tombe entre des mains non autorisées.


⬇️Vulnérabilités dans les bibliothèques tierces :

Les applications mobiles utilisent fréquemment des bibliothèques et des frameworks tiers pour faciliter le processus de développement de l'application. Cependant, si ces types de bibliothèques présentent des vulnérabilités de sécurité connues ou ne sont pas régulièrement mises à jour, elles peuvent devenir des points d'entrée permettant aux attaquants d'exploiter et de compromettre la sécurité de l'application via un accès illégal au système de l'application.


✅Techniques de prévention :

Pour éviter les vulnérabilités des bibliothèques tierces dans les applications mobiles, mettez à jour les bibliothèques vers la dernière version. Par exemple, la mise à jour régulière des bibliothèques populaires telles que Retrofit ou Firebase SDK garantit que toutes les vulnérabilités de sécurité signalées sont rapidement corrigées.


⬇️Validation d'entrée inadéquate :

Une validation insuffisante des entrées utilisateur peut entraîner diverses vulnérabilités de sécurité (telles que des attaques par injection SQL ou par script intersite (XSS) ). Les attaquants peuvent exploiter ces vulnérabilités pour manipuler le comportement des applications en leur faveur afin d'obtenir un accès non autorisé ou d'injecter du code malveillant.


✅Techniques de prévention :

Les développeurs doivent implémenter un nettoyage strict des entrées, des requêtes paramétrées, un codage de sortie et des techniques de liste blanche. La validation des expressions régulières et une combinaison de validation côté client et côté serveur doivent être utilisées pour éviter les problèmes.


⬇️Manque de gestion de session sécurisée :

Les sessions mal gérées d'une application peuvent rendre les applications mobiles vulnérables au piratage de session ou aux attaques de fixation de session. Les attaquants peuvent utiliser une gestion de session faible pour obtenir un accès non autorisé.


✅Techniques de prévention :

Préférez les étapes suivantes pour éviter les problèmes persistants :

  • Mettre en œuvre une génération de jetons de session forte,
  • Définissez des délais d'expiration de session appropriés,
  • Stocker les données de session en toute sécurité,
  • Utiliser des protocoles de communication sécurisés,
  • Régénérer les jetons de session lors de l'authentification, et
  • Appliquer des mécanismes de contrôle d'accès solides.


⬇️Obfuscation de code et rétro-ingénierie :

Les applications mobiles dépourvues de techniques d'obscurcissement du code sont vulnérables à l'ingénierie inverse où les attaquants peuvent analyser et comprendre le code source de l'application. Cela expose les failles de sécurité potentielles ou le trou de ver de l'application pour permettre aux attaquants de les exploiter à des fins malveillantes telles que la modification d'applications légitimes, leur reconditionnement avec des charges utiles de logiciels malveillants et leur distribution via des magasins d'applications non officiels ou des sites Web malveillants.


Voici quelques incidents notables à considérer :


⚠️Pokémon GO :

En 2016, Pokémon GO , un jeu de réalité augmentée populaire, a rencontré des problèmes liés à l'ingénierie inverse du code. Les attaquants ont rétro-conçu le code de l'application pour développer des applications tierces non autorisées qui offraient des avantages injustes tels que l'usurpation de GPS et le gameplay automatisé.


⚠️BankBot et Acecard :

Divers chevaux de Troie bancaires mobiles, tels que BankBot et Acecard, ont exploité l'ingénierie inverse du code pour compromettre les applications financières. BankBot a été identifié pour la première fois en 2017, tandis qu'Acecard est actif depuis 2014. effectuer des transactions frauduleuses.


✅Techniques de prévention :

Vous pouvez suivre les techniques pratiquement très efficaces pour empêcher les pirates de rétroconcevoir vos applications.


👉🏿Dans de nombreux cas, les applications mobiles sont principalement distribuées via des plates-formes officielles telles que Google PlayStore ou des magasins intégrés spécifiques à la plate-forme tels que GalaxyStore dans le cas des appareils Samsung. En utilisant cela, les développeurs peuvent implémenter une vérification pour vérifier la source d'installation de l'application et restreindre sa fonctionnalité si elle n'est pas installée via la plate-forme autorisée. Ceci peut être réalisé en utilisant une bibliothèque ou en implémentant une solution personnalisée qui vérifie la source d'installation et applique les restrictions en conséquence et implémente des cryptages de base de données solides.


👉🏿Des techniques telles que renommer les variables et les méthodes, supprimer les informations de débogage et ajouter des extraits de code factices peuvent aider à prévenir les tentatives d'ingénierie inverse. Par exemple, des outils comme ProGuard ou DexGuard peuvent être utilisés pour obscurcir les applications Android tandis que les développeurs iOS peuvent préférer des outils comme SwiftShield ou Obfuscator-LLVM. Dans le cas d'Android, vous pouvez le faire en impliquant ce qui suit dans votre fichier app/build.gradle avec vos règles dans le fichier proguard-rules.pro .

 android { buildTypes { getByName("release") { // Enables code shrinking, obfuscation, and optimization for only // your project's release build type. Make sure to use a build // variant with `isDebuggable=false`. isMinifyEnabled = true // Enables resource shrinking, which is performed by the // Android Gradle plugin. isShrinkResources = true // Includes the default ProGuard rules files that are packaged with // the Android Gradle plugin. To learn more, go to the section about // R8 configuration files. proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } ... }

Source du code : plate-forme de développeurs Android


👉🏿Intégrez des mécanismes anti-falsification dans l'application pour détecter et empêcher les modifications d'exécution. Mettez en œuvre la vérification de la somme de contrôle, les contrôles d'intégrité et la signature de code pour identifier les modifications non autorisées et vous protéger contre la falsification du code. Des services tels que Google Play Protect et la vérification de signature de code de l'App Store fournissent des mesures anti-falsification intégrées pour la distribution des applications.


👉🏿Intégrez des solutions RASP qui surveillent activement le comportement d'exécution de l'application et détectent les attaques potentielles ou les tentatives de falsification. Des outils comme App-Ray, iXGuard de GuardSquare ou App Threat Intelligence d'Arxan fournissent des fonctionnalités de protection d'exécution qui détectent et atténuent les vulnérabilités d'exécution et les activités non autorisées.


👉🏿Mettez en œuvre des mécanismes de détection root/jailbreak pour identifier si l'application s'exécute sur un appareil compromis. Des bibliothèques telles que RootBeer ou SafetyNet API pour Android et Jailbreak Detection Library pour iOS peuvent être intégrées pour détecter l'état root ou jailbreak. Lors de la détection, l'application peut prendre les mesures appropriées, telles que restreindre les fonctionnalités ou afficher des avertissements pour prévenir les risques de sécurité potentiels.


⬇️Défauts du matériel ou des processeurs :

Imaginez que vous ayez développé une application avancée en privilégiant toutes les mesures ou normes de sécurité mais que l'application soit distribuée sur des appareils présentant des failles remarquables dans leurs ressources matérielles et leurs processeurs, quelle serait l'efficacité de vos efforts dans ce cas ? Eh bien, jetez un œil aux incidents passés remarquables suivants qui nous enseignent les leçons.


⚠️Vulnérabilités Qualcomm Snapdragon (2018):

Plusieurs vulnérabilités ont été découvertes dans les chipsets Qualcomm Snapdragon qui sont largement utilisés dans les appareils Android. La bonne nouvelle est qu'il était déjà résolu mais jusque-là, ces vulnérabilités permettaient aux attaquants d'obtenir un accès root, de contourner les mesures de sécurité et d'exécuter du code arbitraire. En exploitant ces failles, les attaquants pourraient compromettre la sécurité des applications mobiles exécutées sur des appareils équipés des puces Snapdragon concernées.


⚠️18 vulnérabilités Zero-Day dans les chipsets Samsung Exynos (découvertes entre fin 2022 et début 2023) :

Entre fin 2022 et début 2023, le projet zéro de Google (une équipe renommée de chasse aux bogues du jour zéro) a découvert et divulgué 18 vulnérabilités zero-day dans les chipsets Exynos de Samsung qui sont largement utilisés dans les appareils mobiles, les appareils portables et les voitures. Parmi ces vulnérabilités, quatre ont été jugées particulièrement graves car elles facilitaient l'exécution de code à distance (RCE) d'Internet vers la bande de base.


✅Plusieurs mesures de sécurité peuvent être mises en place comme suit :

  • Restez à jour avec les derniers correctifs de sécurité et mises à jour du micrologiciel fournis par les fabricants de matériel ou de processeur.
  • Mettez en place des contrôles d'autorisation efficaces dans les applications mobiles et confirmez que les applications ne demandent que les autorisations nécessaires pour les fonctionnalités prévues.
  • Implémentez des solutions MDM car les outils MDM offrent des fonctionnalités telles que l'application de politiques de sécurité, le contrôle des installations d'applications et l'effacement à distance des appareils en cas de perte ou de vol.
  • Ajustez les solides mécanismes de surveillance de la sécurité pour détecter et répondre rapidement aux incidents de sécurité potentiels. Surveillez le comportement des appareils et des applications pour détecter les anomalies et mettez en œuvre des plans de réponse aux incidents pour atténuer et traiter toute faille de sécurité.

Défis de la sécurité des applications mobiles :

Le rythme rapide des progrès technologiques dans le développement d'applications mobiles ouvre de nouvelles voies aux attaquants pour exploiter les failles de sécurité. Voici quelques défis notables :


  • Le rythme rapide des progrès technologiques dans le développement d'applications mobiles crée des défis pour suivre les menaces de sécurité émergentes et les techniques d'attaque, car les attaquants s'adaptent également en permanence et trouvent de nouvelles façons d'exploiter les faiblesses de sécurité dans les applications mobiles.
  • La diversité des appareils mobiles, des systèmes d'exploitation et des versions ajoute de la complexité à la sécurité des applications mobiles.
  • Les appareils mobiles sont souvent confrontés à des retards dans la réception des mises à jour du système d'exploitation en raison de la fragmentation de l'écosystème qui oblige un grand nombre d'appareils à exécuter des versions logicielles obsolètes pouvant contenir des vulnérabilités connues.
  • Les applications mobiles gèrent de grandes quantités de données utilisateur personnelles et sensibles qui soulèvent des problèmes de confidentialité.

Exemple d'image


💡Le débogage d'applications mobiles est une activité enrichissante :

Le débogage d'applications mobiles est une activité amusante, engageante et enrichissante qui vous permet d'améliorer vos compétences en matière de développement et de sécurité d'applications. Il vous permet non seulement de créer des applications avancées et sécurisées, mais offre également la possibilité de déboguer des applications existantes pour diverses entreprises qui vous permettent de gagner un revenu intéressant.


En utilisant votre expertise dans le débogage d'applications mobiles, vous pouvez fournir des services précieux aux organisations, identifier et résoudre les problèmes de sécurité dans leurs applications et contribuer à leur succès. De plus, participer à des programmes de primes de bogues et à des projets de débogage indépendants comme Google ( Programme de récompense de vulnérabilité Google (VRP) ) ou Pomme ( Prime de sécurité Apple ) peut encore augmenter vos revenus. Alors, entrez dans le monde passionnant du débogage d'applications mobiles où vos compétences et votre passion peuvent conduire à la fois à une croissance personnelle et à des récompenses financières.

Conclusion:

Des pratiques de codage sécurisées tout au long du processus de développement sont essentielles pour minimiser les problèmes de sécurité graves dans les applications mobiles. Bien que le débogage de la sécurité des applications puisse être une tâche difficile en raison de l'évolution des techniques d'attaque, il est essentiel de hiérarchiser les meilleures pratiques et de rester informé des informations et des normes à jour pour protéger les données et la confidentialité des utilisateurs. Il est important de savoir que les plates-formes d'applications sous-jacentes telles qu'Android ou iOS, ainsi que les appareils, peuvent présenter des vulnérabilités. Il est donc nécessaire d'utiliser les stratégies de débogage et les mesures de sécurité les mieux adaptées pour maintenir les applications à jour.


Le débogage mobile n'est pas limité aux développeurs ; même en tant qu'utilisateur, vous pouvez contribuer à protéger des millions d'utilisateurs dans le monde. De plus, le débogage mobile peut présenter des opportunités de gagner de l'argent.