Dans la série des nouvelles menaces pour une application, voici le danger des API dans le paysage moderne. Les API (Application Programming Interface) représentent aujourd’hui, des outils incontournables dans le paysage contemporain du développement d’applis mobiles.
Il s’agit d’une passerelle qui permet aux applications de communiquer entre elles même lorsqu’elles proviennent de différents développeurs. De ce fait, les API font partie intégrante de l’évaluation et de la gestion des risques liés à l’exploitation d’une appli mobile.
Pourtant, la menace potentielle liée à des failles à ce niveau est encore sous-évaluée dans certains cercles.
Découvrez dans les lignes qui suivent, en quoi une API peut menacer la sécurité d’une application mobile et comment s’en protéger.
Les enjeux de sécurité face aux risques API
Entre les mains de la mauvaise personne une API mal configurée peut se transformer en porte d’entrée pour lancer des attaques potentiellement catastrophiques. En fait, si vous développez une application aujourd’hui, il est presque certain que vous en utilisez au moins une.
Selon les normes actuelles, l’API est un outil quasi incontournable dans la création d’une expérience utilisateur qualitative. C’est notamment grâce à elle qu’une application est en mesure de reprendre automatiquement à son compte, les données collectées par une autre application. Grâce à cela par exemple, vous pouvez vous enregistrer sur une appli en utilisant votre compte Google, Facebook, etc.
C’est ce qui permet également à une appli de réservation de voyage d’offrir à chaque utilisateur, une interface rassemblant de manière ordonnée, une grande variété d’hôtels et de compagnies aériennes.
En règle générale, la plupart des applications mobiles modernes intègrent des API pour de nombreuses fonctionnalités. Dans un environnement où l’interconnectivité est désormais une exigence quasi basique, les exemples sont légion.
Et comme toujours dans le domaine de la tech, toute solution grand public crée un marché de grande valeur. Par ricochet, cela attire toujours l’attention de hackers qui ne lésinent pas sur les moyens permettant d’en exploiter les moindres failles.
Implémentation d’API : évaluer le niveau de risque
Depuis plusieurs années déjà, le modèle économique des applications mobiles et autres logiciels a vu le paradigme de l’industrie de services s’ériger en norme. Ainsi, la plupart des entreprises ont désormais recours à des solutions dématérialisées basées sur le cloud pour déployer leurs propres produits.
Les développeurs ont donc adopté massivement l’utilisation d’API car cela permet des gains de temps considérables pour créer une application. D’une part, les API internes permettent de connecter plus aisément des microservices voire d’autres applications. De l’autre côté, les API externes facilitent l’exploitation de ressources extérieures à l’environnement de l’appli.
Cela dit, aujourd’hui encore, nombreux sont les développeurs qui ne savent ni comment sécuriser leurs API, ni comment les documenter proprement. Or la différence entre une API documentée et une qui ne l’est pas peut être cruciale dans la mise en place d’un protocole de sécurité adapté.
Le ver dans le fruit
La documentation d’une API signifie que l’outil a été officiellement décrit, enregistré et identifié dans un inventaire qui en rend la gestion et la sécurisation plus faciles.
Par contre une API non documentée est un outil qui participe activement au fonctionnement de l’application sans pour autant avoir fait l’objet d’une documentation en bonne et due forme. Autrement dit, cette API existe de fait mais son but, ses fonctionnalités et ses protocoles de sécurité ne sont pas formellement explicités par ses créateurs.
Aussi connus sous le nom de shadow API, elles sont souvent créées ou utilisées par les développeurs pour des besoins ponctuels en interne ou pour parer à un besoin urgent et finissent par être oubliées dans le système en fin de développement.
En règle générale, ce type d’API ne dispose pas des protocoles d’accès et d’authentification appropriés et représente un risque réel de fuite de données sensibles. Une API non documentée est potentiellement un point d’entrée pour un hacker motivé.
Dans un registre relativement similaire, on retrouve également les API Zombies. L’API Zombie est créée lorsque le développeur implémente une nouvelle version lors d’une mise à jour sans préalablement décommissionner la précédente.
C’est une pratique à laquelle ces derniers ont parfois recours pour s’assurer que l’expérience utilisateur ne soit pas profondément impactée en cas de problème avec la nouvelle version.
Mais comme vous vous en doutez probablement, cette ancienne version demeure toujours active avec des accès non documentés qui peuvent potentiellement représenter une faille de sécurité.
La gestion des risques de failles en lien avec les API est extrêmement complexe en l’absence d’outils de test de sécurité adéquats et de l’implémentation des meilleures pratiques en la matière.
Sécuriser correctement votre API sur le marché moderne
En raison du rôle de passerelle que jouent les API dans l’interconnectivité de services, leur fonctionnalité implique de très fréquents transferts de données. Autrement dit, une capacité réelle à effectuer des requêtes serveur pour accéder à des informations sensibles.
Dans le cas où une attaque de hacker réussirait à exploiter ce canal, la liste des conséquences est extrêmement longue. Parmi les plus notables on peut citer :
- La fuite de données sensibles comme des informations bancaires, des clés de cryptage, des infos d’identification, etc.
- Un dysfonctionnement de services critiques qui pourrait bloquer l’accès aux utilisateurs ou pire, rediriger certaines opérations sensibles.
- Un sévère dommage à la réputation de votre entreprise qui en prendra sûrement un coup. Les grosses entreprises ont généralement des moyens marketing qui leur permettent de limiter les dégâts et de rattraper le coup assez vite auprès des consommateurs. Mais pour les structures plus modestes, ce type d’accident peut remettre en question leur survie.
Dans l’actuel paysage de la programmation, la plupart des développeurs se servent de pare-feu d’application web (WAF) et de passerelles API pour protéger les applications. Cela dit, il s’agit bien souvent de mesures de sécurité qui ne sont pas toujours appliquées à l’ensemble de l’appli sans parler de l’inexorable menace des API non documentées.
Pour apporter une réponse adéquate à la menace, la sécurité des API devrait être intégrée dans le SDLC (cycle de vie du développement logiciel). Les vulnérabilités doivent ainsi être recherchées de façon systématique notamment via une inspection de code source à l’aide de tests statiques avancés de sécurité des applications (SAST).
Les Meilleures pratiques pour gérer les risques liés à la sécurité de l’API
La réalisation d’un inventaire précis des API fonctionnelles dans votre application est l’un des principaux défis de la sécurité vue sous cet angle. Autrement dit, la première étape pour éliminer ce facteur de risque consiste à maîtriser toutes les API impliquées dans le fonctionnement de l’appli. Qui fait quoi et où se situe chacune d’elles dans l’écosystème.
Pour ce faire, il existe de nombreux outils de test qui permettent de vérifier les points cruciaux suivants :
- Découverte et Inventaire des API : Analyser le code source et la documentation afin d’identifier et d’inventorier chaque API, qu’elle soit documentée ou cachée. Ensuite procéder à la détection des vulnérabilités API afin de hiérarchiser les mesures correctives en fonction du risque commercial réel.
- Analyse de la documentation des API : Analyser automatiquement la documentation des API et la comparer avec l’inventaire global pour découvrir les divergences de données et les API non documentées.
- Journal des mises à jour de l’API : Consulter l’historique des modifications apportées aux API pour découvrir quand et comment les risques ont été introduits.
- Tests dynamiques de sécurité des applications (DAST) : Les DAST permettent d’identifier les API zombies et fantômes en testant le code dans des applications réelles.
La solution intégrale Apptree
Il est évident que seule l’implémentation d’une solution de suivi robuste et continue, permet à l’entreprise de garantir que la porte de l’API soit toujours fermée aux hackers. Cela dit, c’est une tâche minutieuse qui nécessite l’intervention de mains expertes pour garantir la fiabilité du système.
Toutefois, dans le contexte de ressources limitées qui est souvent celui des petites et moyennes entreprises, le recrutement de spécialistes spécifiquement dédiés à cette tâche est très probablement hors de propos.
De même, le recours à des prestations de services externes de façon ponctuelle peut également se révéler onéreux en fin de course. D’autant plus que les coûts initiaux pour le développement d’une application mobile sont déjà conséquents lorsque vous faites appel à des programmeurs professionnels.
Somme toute, la création d’une application sécurisée et fiable peut sembler hors de portée des entreprises de taille modeste en termes de budget.
C’est à ce niveau que les solutions permettant de créer une application mobile “no code” sont particulièrement adaptées. En optant pour un fournisseur sérieux, vous garantissez non seulement une sortie extrêmement rapide du produit, mais aussi le fait que celui-ci soit déployé dans un environnement contrôlé.
C’est notamment à travers des protocoles de sécurité stricts et un contrôle qualité d’exception qu’Apptree permet aux entreprises de toutes tailles, d’offrir une expérience mobile de qualité sans passer par la phase développement.
Aujourd’hui, Apptree se présente en tant que référence du marché européen des applications avec des solutions dont les niveaux de polyvalence et de scalabilité permettent de faire du sur mesure selon les besoins réels de chaque entreprise.