Image: Unsplash
Les appareils mobiles modernes sont très complexes et cela donne aux attaquants la possibilité de lancer des attaques. Tout, du Wi-Fi et Bluetooth au haut-parleur et au microphone, peut être utilisé pour jailbreaker votre smartphone .
Les analystes de Positive Technologies ont publié une étude des scénarios courants d'attaques sur les appareils et applications mobiles. Dans
notre article - les principaux points de ce document.
Comment les appareils mobiles et les applications sont attaqués
Il existe cinq scénarios d'attaque principaux. Parmi eux:
- Accès physique . Si le téléphone a été volé ou perdu, le propriétaire l'a donné au service ou l'a connecté à un faux chargeur USB - tout cela ouvre la possibilité d'une attaque.
- Application malveillante sur l'appareil . Parfois, de telles applications peuvent accéder à l'appareil même à partir de sources officielles, Google Play et l'App Store (pour Android , pour iOS ).
- Attaquant dans le canal de communication . En nous connectant à un Wi-Fi, un serveur proxy ou un VPN non fiables, nous devenons vulnérables aux attaques dans le canal de communication.
- Attaques à distance . Un attaquant peut agir à distance, en utilisant des serveurs d'applications mobiles ou d'autres services pour livrer un exploit.
- Attaques côté serveur . En dehors de tout le reste, on peut envisager des attaques côté serveur des applications mobiles, puisque dans ce cas l'attaquant n'a pas besoin d'accéder à l'appareil.
Parlons plus en détail de chacune des options et discutons des moyens possibles de se protéger contre de telles attaques.
Il existe plusieurs scénarios principaux d'attaques d'accès physique. En règle générale, ils impliquent l'accès d'une personne à un smartphone directement: cela se produit si l'appareil est volé, que le propriétaire l'a perdu ou l'a amené au service. Cependant, il existe également une méthode d'attaque assez inhabituelle, pour laquelle une station de charge malveillante est utilisée. Pensons-y.
La station de charge à laquelle vous connectez votre smartphone via USB peut ne pas être entièrement sûre. Pour les versions modernes du système d'exploitation Android et iOS, lors de la connexion d'un smartphone à un PC via USB, l'autorisation d'accéder à l'appareil est requise. Cependant, cela n'était pas obligatoire sur Android 4.0 et versions antérieures. En conséquence, lorsque de tels appareils sont connectés à des bornes de recharge compromises ou installées par des pirates, une opportunité d'attaque se présente. Son script pourrait ressembler à ceci:
- Android 4.0 USB.
- USB-.
- adb install malware.apk, .
- adb am start com.malware.app/.MainActivity .
- , root . , (, , ) , .
Tout d'abord, veillez à ne pas laisser votre téléphone et votre tablette sans surveillance dans les lieux publics. Assurez-vous de définir un mot de passe pour déverrouiller votre appareil ou d'activer la sécurité biométrique si possible. N'élevez pas les privilèges au statut administratif (jailbreak ou root), désactivez l'affichage des notifications sur l'écran verrouillé.
Attaques avec des applications malveillantes
Il existe plusieurs sources de telles applications:
- Boutiques d'applications officielles - Google Play et App Store. Rarement, mais même sur les marchés officiels, vous pouvez trouver une application malveillante qui peut nuire à vous et à vos données. Souvent, ces applications essaient d'obtenir plus d'installations avec des noms d'appâts tels que «Super Battery», «Turbo Browser» ou «Virus Cleaner 2019».
- (third-party appstore). Android- , apk- . iOS- Safari, , .
- USB-.
- Android- — Google Play Instant.
Lorsqu'elles sont installées sur un smartphone, en fonction des autorisations reçues, les applications malveillantes auront accès à certaines données stockées, microphone, caméra, géolocalisation, contacts, etc. Elles pourront également interagir avec d'autres applications installées via des mécanismes de communication interprocessus (IPC / XPC). Si les applications installées contiennent des vulnérabilités qui peuvent être exploitées via cette interaction, l'application malveillante peut en profiter. Cela est particulièrement vrai pour les appareils Android.
De plus, une application malveillante peut tenter d'obtenir des privilèges élevés dans le système en exploitant des vulnérabilités qui lui permettent d'obtenir des privilèges root ou de jailbreaker.
Comment se protéger
Pour vous protéger contre de telles attaques, il est recommandé d'éviter tout d'abord d'installer des applications provenant de sources non fiables. Les applications avec des noms suspects doivent également être installées avec prudence, même à partir des magasins d'applications officiels, car aucune vérification ne fonctionne parfaitement. Gardez votre système d'exploitation et vos applications à jour pour vous assurer qu'aucune vulnérabilité connue n'est attaquée.
Attaques de lien
Pour qu'un attaquant puisse opérer à partir du canal de communication, il doit effectuer une attaque d'intermédiaire, c'est-à-dire que tout le trafic transmis entre l'application mobile du client et le côté serveur passe par l'appareil de l'attaquant. Des vulnérabilités sont parfois rencontrées dans les applications qui permettent de telles attaques.
Par exemple, généralement lors de l'établissement d'une connexion sécurisée, l'application client vérifie l'authenticité du certificat du serveur et si ses paramètres correspondent à ceux du serveur. Cependant, parfois, les développeurs, pour plus de commodité, lorsqu'ils travaillent sur une application, désactivent ces vérifications, en oubliant de les réactiver dans la version finale. En conséquence, l'application accepte n'importe quel certificat de serveur pour établir une connexion sécurisée, y compris le certificat de l'attaquant.
Même si les certificats sont correctement vérifiés, l'attaquant a toujours une faille: sous un prétexte, forcer la victime à installer le certificat de l'attaquant en tant que certificat de confiance sur son appareil. De plus, si l'application elle-même fonctionne en toute sécurité avec le serveur, mais contient des liens vers des ressources tierces téléchargées via HTTP, cela constitue toujours une opportunité pour les attaques de phishing.
Si un attaquant parvient à prendre le contrôle du trafic entre l'application cliente et le serveur, cela lui donnera un certain nombre de possibilités:
- falsifier les réponses du serveur, par exemple pour usurper des détails bancaires ou de phishing
- remplacer les demandes des applications client, par exemple, modifier le montant du transfert et le compte du destinataire;
- intercepter les données, telles que les identifiants, les mots de passe, les mots de passe à usage unique, les données de carte bancaire, l'historique des transactions.
En conséquence, il apprend les identifiants et les mots de passe de la victime à partir de divers comptes et peut les utiliser pour voler des données et voler de l'argent.
Comment se protéger
Ne vous connectez pas à des points d'accès douteux, n'utilisez pas de serveurs proxy et VPN sur lesquels vous ne faites pas confiance à vos informations personnelles et bancaires. N'installez pas de certificats tiers sur l'appareil.
En règle générale, la plupart des messageries instantanées populaires et des applications de médias sociaux sont bien protégées contre de telles attaques; si, par exemple, l'une de ces applications refuse soudainement de fonctionner via la connexion Wi-Fi actuelle, cela peut signifier que ce point d'accès n'est pas sûr et il est préférable de se déconnecter pour ne pas mettre en danger d'autres applications, y compris votre banque mobile.
Attaques à distance
Certaines vulnérabilités des applications mobiles peuvent être exploitées à distance sans même nécessiter de contrôle sur le transfert de données entre l'application et le serveur. De nombreuses applications fournissent des fonctionnalités pour gérer des liens spéciaux, tels que myapp: //. Ces liens sont appelés liens profonds et fonctionnent à la fois sur Android et iOS. Cliquer sur un tel lien dans un navigateur, une application de messagerie ou un messager peut déclencher l'ouverture de l'application qui peut traiter ces liens. L'ensemble du lien, y compris les paramètres, sera transmis à l'application de gestionnaire. Si le gestionnaire de lien contient des vulnérabilités, alors pour les exploiter, il suffira de forcer la victime à suivre le lien malveillant.
De même, des liens plus familiers http: // et https: // peuvent être traités sur des appareils mobiles - ils peuvent être envoyés à l'application au lieu du navigateur, dans certains cas, cela peut se produire sans confirmation de l'utilisateur.
Pour les appareils Android, un clic sur le lien peut déclencher le téléchargement de l'appli instantanée, ce qui pourrait permettre l'exploitation à distance des vulnérabilités associées à l'installation d'une application malveillante.
Comment se protéger
Dans ce cas, l'installation en temps opportun des mises à jour des applications et du système d'exploitation est le seul moyen de vous protéger. Si vous ne parvenez pas à installer la mise à jour ou qu'elle n'a pas encore été publiée, vous pouvez temporairement arrêter d'utiliser l'application concernée: désinstallez-la de votre appareil ou déconnectez-vous simplement.
Attaques côté serveur
Pour attaquer un serveur d'applications mobiles, un attaquant, en règle générale, n'a besoin que d'étudier comment l'application cliente interagit avec le serveur et, sur la base des informations collectées sur les points d'entrée, tente de modifier les requêtes afin de détecter et d'exploiter les vulnérabilités.
Souvent, l'appareil du back-end d'une application mobile n'est pas différent d'une application Web. En règle générale, les serveurs d'applications mobiles sont encore plus simples et représentent souvent json- ou xml-api, ils fonctionnent rarement avec le balisage HTML et JavaScript, comme le font souvent les sites Web.
Si l'on compare les vulnérabilités des applications web et du back-end des applications mobiles, on constate que les vulnérabilités suivantes prévalent dans les applications mobiles:
- protection insuffisante contre les identifiants par force brute: 24% des applications Web et 58% des serveurs d'applications mobiles contiennent de telles vulnérabilités,
- erreurs de logique métier: 2% des applications Web et 33% des serveurs d'applications mobiles.
Nos recherches montrent que souvent les utilisateurs d'applications peuvent accéder aux données d'autres utilisateurs: aux numéros de carte, aux noms et prénoms, aux numéros de téléphone, etc. De plus, l'accès peut être fourni par erreur à la fois pour le compte d'un autre utilisateur et sans authentification du tout, ce qui est dû à la présence de faiblesses dans l'authentification et l'autorisation.
Comment se protéger
Dans ce cas, l'utilisateur moyen ne peut pas faire grand-chose. Cependant, vous pouvez atténuer les risques d'attaques de serveur en utilisant un mot de passe fort et en configurant une authentification à deux facteurs à l'aide de mots de passe à usage unique dans toutes les applications critiques qui font cela.
Pour minimiser la probabilité d'une attaque réussie sur une application mobile, ses développeurs doivent vérifier la faisabilité de chacun des scénarios décrits. Lors du développement, il est nécessaire de prendre en compte différents modèles d'intrus, et certaines mesures de protection doivent être prises au stade de la conception.
Une bonne recommandation pour les développeurs est de mettre en œuvre un cycle de vie de développement de la sécurité (SDL) et de revoir régulièrement la sécurité de l'application. De telles mesures aideront non seulement à identifier en temps opportun les menaces potentielles, mais augmenteront également le niveau de connaissance de la sécurité des développeurs, ce qui augmentera le niveau de sécurité des applications développées à long terme.
Publié par Nikolay Anisenya, chef du groupe de recherche sur la sécurité des applications mobiles chez Positive Technologies