Les systèmes informatiques et les ordinateurs n’ont pas l’apanage des failles de sécurité : les appareils et applications mobiles sont également très exposés aux cyberattaques. Certaines vulnérabilités sont plus fréquentes sur ce type d’environnement technique et il est nécessaire de les détecter, de la phase de création d’une application jusqu’à la fin de son cycle de vie.

I – La sécurité sous Android et iOS : deux salles, deux ambiances

Sur le marché des smartphones, deux systèmes d’exploitation prédominent : iOS et Android. En juin 2021, leur part de marché additionnée est de 99,9% sur le marché français.

Part de marché de Apple et Android par pays

Source : Apple or Android Nation? Statista

Ces deux systèmes d’exploitation ont leurs propres spécificités en matière de développement applicatif. En effet, là où les applications iOS sont principalement programmées sous le langage Objective-C, c’est Java qui est utilisé sur Android.

Il en va de même pour leur installation, leur paramétrage, l’environnement de programmation, la conception, le test et la gestion de la stratégie de cybersécurité.

II – Les principaux types de vulnérabilités sur les applications mobiles

Avant de dresser la liste des principales vulnérabilités observées sur les applications mobiles, il est important de rappeler qu’il existe deux catégories de failles sur ce type de logiciel : le comportement non désiré et la vulnérabilité.

Le comportement non désiré survient de façon inattendue en faisant des actions superflues en arrière-plan de l’application.

On parle de vulnérabilité lorsque la faille ne résulte pas d’un comportement de l’utilisateur mais de la structure même de l’application.

Vulnérabilité n°1 : absence d’un dispositif de détection de jailbreak

Le jailbreak, aussi appelé débridage ou déverrouillage, est un processus permettant à un utilisateur de contourner les restrictions de sécurité d’un système d’exploitation à sa racine. Cette méthode est particulièrement utilisée sous iOS pour télécharger des applications qui ne sont pas présentes sur le marché officiel (à l’image de Cydia, bien connue des « jailbreakers »).

Les applications exécutées dans un environnement déverrouillé demeurent plus vulnérables et il est nécessaire de prendre ce paramètre en compte lors du développement d’une application via des systèmes de détection de jailbreak.

Vulnérabilité n°2 : protection trop faible des protocoles de transport

Les protocoles de transport TPC (Transmission Control Protocol) et IP (Internet Protocol) ont pour but de transmettre des données d’une machine à l’autre.

Schéma pour sécuriser un IP

Source : Just how secure is the TCP/IP protocol?, BBC

Que ce soit sur le web ou sur une application, il est essentiel que les données qui circulent entre les différentes couches soient sécurisées. Sans cela, elles risquent d’être interceptées par des entités malveillantes. Pour sécuriser les protocoles de transport, la bonne pratique est la mise en place d’un procédé de chiffrement des données.

Vulnérabilité n°3 : rupture d’authentification

On parle de rupture d’authentification (ou broken authentification) lorsque l’attaquant compromet un système d’authentification en usurpant un mot de passe, un identifiant de session, une clé de connexion ou d’autres informations servant à la connexion. Cette violation fréquente se traduit par 3 types d’attaques : le bourrage d’identifiant (credential stuffing), l’accès par force brute (brute force access) et le détournement de session (session hijacking).

Les conséquences d’une rupture d’authentification peuvent être la violation de données, l’usurpation d’identité ou encore le détournement. Pour pallier ce problème, il convient de forcer l’utilisateur à créer des mots de passe complexes.

Vulnérabilité n°4 : absence ou invalidité de certificat de sécurisation

La sécurisation des applications passe également par un protocole d’encryptage. Le certificat SSL/TLS ne se limite pas aux sites Internet et concerne également les applications mobiles. Pourtant, de nombreux serveurs d’applications ne disposent pas d’un certificat SSL/TLS valide.

L’installation d’un certificat SSL/TLS sur son serveur est indispensable et assure que les données des utilisateurs, stockées et en transit, restent protégées et ne sont pas compromises.

Vulnérabilité n°5 : absence d’un procédé d’expiration

Une session correspond à la période au cours de laquelle un utilisateur est actif sur votre site ou application. Si le procédé d’expiration des sessions d’une application est insuffisant (parfois même inexistant), le compte de l’utilisateur est exposé aux attaques et à la violation de ses données personnelles.

Il est donc nécessaire de trouver un juste milieu entre l’UX (ne pas demander à l’utilisateur de se reconnecter pour rendre son expérience moins agréable) et la sécurité de l’application.

Vulnérabilité n°6 : mauvaise maîtrise de la désérialisation des données

En langage programmatique, la désérialisation des données est le fait d’extraire des données d’un flux et de les convertir dans un format utile à l’application. Les moteurs de désérialisation font souvent l’objet d’attaques. Pour éviter cela, il est essentiel de toujours vérifier la provenance des données et de ne pas accepter les objets sérialisés provenant de sources non approuvées.

Vulnérabilité n°7 : utilisation de composants connus pour leur vulnérabilité

Tous les composants, frameworks et API, ne se valent pas en matière de cybersécurité. Certaines API – même populaires – sont vulnérables aux cyberattaques, et il convient de s’assurer de leur fiabilité avant de les intégrer dans la structure de votre application.

Vulnérabilité n°8 : cybersécurité insuffisante

Lorsqu’une stratégie de cybersécurité existe dans l’organisation, la mise en production d’une application doit, au minimum, respecter les règles définies. Cependant, il peut arriver que la stratégie en place ne prévoie pas de règles propres aux applications, qu’elle soit imprécise ou incomplète. Il convient alors de définir le standard de sécurisation.

On peut par exemple prévoir de mettre en place un mobile backend. Il s’agit de mettre en place un espace intermédiaire entre les échanges de données concernant l’entreprise et la sécurisation côté client. Le mobile backend sera la seule porte d’accès des applications au système d’information. Il générera des alertes aux équipes IT en cas d’usage inapproprié et se connectera de façon vraiment sécurisée, par exemple via VPN, au système d’information des entreprises. On peut par exemple prévoir de mettre en place un mobile backend. Il s’agit de mettre en place un espace intermédiaire entre les échanges de données concernant l’entreprise et la sécurisation côté client. Le mobile backend sera la seule porte d’accès des applications au système d’information. Il générera des alertes aux équipes IT en cas d’usage inapproprié et se connectera de façon vraiment sécurisée, par exemple via VPN, au système d’information des entreprises.

Conclusion

Les applications mobiles n’échappent pas aux obligations croissantes de la cybersécurité. Pour en savoir plus sur le sujet, découvrez nos 5 bonnes pratiques pour sécuriser une application mobile.

Vous avez un projet d’application et souhaitez mettre toutes les chances de votre côté pour qu’elle soit sécurisée et performante ? Demandez des conseils à nos spécialistes en cybersécurité !

Contactez-nous

Partagez cet article !