paint-brush
Le problème croissant des API Zombie et votre surface d’attaque accruepar@dejenerate
1,968 lectures
1,968 lectures

Le problème croissant des API Zombie et votre surface d’attaque accrue

par Jennifer7m2024/06/01
Read on Terminal Reader

Trop long; Pour lire

Une API zombie est une infrastructure oubliée et négligée qui reste disponible. Les pirates pourraient trouver un point final en effectuant une ingénierie inverse du code, en examinant des référentiels open source ou en effectuant un « fuzzing ». Sans surveillance, un attaquant pourrait récupérer des données pendant des mois sans aucune limitation ni limitation de débit.
featured image - Le problème croissant des API Zombie et votre surface d’attaque accrue
Jennifer HackerNoon profile picture
0-item

Proposer une API aux clients augmente vos revenus, mais cela élargit également votre surface d'attaque. Les entreprises peuvent proposer une API qui peut être intégrée à des applications tierces pour faciliter le développement. Par exemple, l'intégration des médias sociaux dans une application permet aux clients de discuter d'un produit sans alourdir les coûts de votre équipe de développement. L'entreprise de médias sociaux gagne en trafic et en visibilité, et le client gagne en facilité de développement tout en ajoutant des fonctionnalités à son application.


Bien qu'une API soit bénéfique pour le marketing et les revenus, l'ajout d'API et de points de terminaison élargit votre surface d'attaque. Avoir une API constitue un risque supplémentaire qui peut être géré, mais tous les points de terminaison doivent être strictement surveillés et sécurisés. La plupart des administrateurs conviennent que les API doivent être surveillées, mais un environnement commercial en évolution rapide avec de nombreuses mises à jour et déploiements pourrait se retrouver à perdre la trace des API et à ajouter sans le savoir un risque de cybersécurité appelé « API zombies ».

Qu'est-ce qu'une API Zombies ?

Une API zombie est (en termes simples) une infrastructure oubliée et négligée qui reste disponible, mais les organisations ignorent son existence. Les API Zombie peuvent être créées dans des environnements petits ou grands, mais elles le sont souvent dans des environnements où les ressources informatiques sont créées sans que des procédures strictes de provisionnement et de documentation soient mises en place. Le contrôle des modifications permet d'éviter les situations d'API zombies, mais des déploiements ou des configurations d'urgence effectués pour corriger une erreur critique spécifique peuvent également se produire.


Dans un environnement automatisé, les ressources cloud sont souvent déployées avec le code d'application. L’avantage est que les développeurs et les opérationnels n’ont plus besoin de penser à déployer le matériel et à le configurer manuellement. L'automatisation du déploiement de logiciels réduit les incidents dus à des erreurs de configuration ou évite tout problème dans lequel les développeurs oublient d'inclure des demandes de provisionnement de ressources pour prendre en charge leurs applications.


Dans certains environnements, les développeurs ont accès à leurs propres serveurs de test. Ces serveurs pourraient être accessibles sur l'Internet public afin que les développeurs puissent tester du nouveau code. Un serveur de test API peut être disponible sur l'Internet public et les développeurs peuvent penser qu'il ne sera pas détecté sans être publié.


Les API Zombie peuvent être créées de nombreuses manières avec leurs propres cas extrêmes, même avec les procédures de contrôle des modifications les plus strictes. Qu'elles résultent d'erreurs ou d'une erreur d'orientation, les API zombies sont une forme de informatique fantôme cela peut être particulièrement dangereux pour la protection des données. Sans surveillance, un attaquant pourrait récupérer des données pendant des mois sans aucune limitation ni limitation de débit. Toute recherche de vulnérabilités ou leur exploitation ne serait pas enregistrée, de sorte que les analyses de cybersécurité classiques n'informeraient pas les administrateurs d'un trafic anormal.

Comment les pirates informatiques trouvent-ils les API Zombies ?

Tout comme les nombreuses façons de créer une API zombie en fonction de la situation, il en va de même pour la recherche d'une API zombie. Les pirates pourraient trouver un point final en procédant à l’ingénierie inverse du code, en examinant des référentiels open source ou grâce à un concept appelé « fuzzing ». Le fuzzing est un type de découverte dans lequel des scripts sont écrits pour effectuer des requêtes sur les noms de points de terminaison d'API courants. Par exemple, il est courant qu'un point de terminaison d'API utilisé pour l'authentification ait un point de terminaison nommé « /login » ou « /authenticate » ou quelque chose de similaire. Des requêtes sont adressées à différents noms de points de terminaison courants sur votre infrastructure pour découvrir les points de terminaison.


La découverte à partir de référentiels open source est courante. Les référentiels open source sont également vulnérables à la divulgation de secrets, ce qui signifie que les développeurs peuvent oublier de supprimer les références aux clés privées, aux informations d'authentification et à d'autres données privées. Les références aux points de terminaison de l'API sont également disponibles pour la découverte et seront examinées pour détecter toute vulnérabilité. Si votre organisation ne connaît pas les points de terminaison référencés dans le code, ils peuvent alors être sondés sans aucune atténuation ni limitation de débit.


Une API zombie n'est pas toujours vulnérable aux exploits de bogues. Par exemple, l’exploitation des vulnérabilités d’injection SQL pourrait entraîner la divulgation d’informations sensibles, mais certains points finaux sont correctement codés avec une résilience contre les menaces. Dans une situation d'API zombie, l'API peut fonctionner normalement, mais elle peut être utilisée pour collecter des données sans aucune limitation. Il est possible que le point final présente une erreur de logique métier qui pourrait être exploitée, mais sans surveillance, toute activité suspecte ne serait pas détectée.

Violations de données réelles provenant des API Zombie

Un bon exemple d'une API fonctionnant normalement mais utilisée pour énumérer discrètement des données est la Incident de JustDial . JustDial est l'un des plus grands annuaires locaux d'Inde, avec plus de 100 millions d'utilisateurs. En 2019, un chercheur en sécurité a découvert que JustDial disposait d’une API zombie ouverte sur l’Internet public sans qu’aucune surveillance ne soit mise en œuvre. L'API a renvoyé des informations telles que le nom, l'adresse e-mail, le numéro de mobile, l'adresse et le sexe à toute personne effectuant une demande auprès du point de terminaison. Aucune authentification n'était nécessaire et JustDial ne surveillait pas l'incident.


Après qu'un chercheur en sécurité ait détecté l'API zombie, JustDial a affirmé avoir résolu l'incident, mais le même problème a été détecté à nouveau en 2020. Il n'est pas clair si un tiers en dehors du chercheur en sécurité, mais parce que le point de terminaison était ouvert à l'Internet public avec Aucune surveillance n'est en place, JustDial ne peut pas évaluer l'étendue de l'exfiltration des données.


Un autre exemple est celui de l'une des grandes entreprises technologiques de San Francisco, connue pour certains des meilleurs développeurs du marché, Facebook. Facebook a eu plusieurs cas d'API zombies. En 2016, les développeurs ont déployé un sous-domaine (mbasic.beta.facebook.com) pour tester leur fonctionnalité de réinitialisation de mot de passe. La version de production de l'API présentait des limitations de débit, de sorte que les attaquants ne pouvaient pas forcer brutalement le code d'accès à six chiffres envoyé aux utilisateurs pour réinitialiser leurs mots de passe. La version bêta n'avait pas cette limitation, donc un code d'accès à six chiffres pouvait être forcé brutalement en quelques secondes, limité uniquement par une connexion Internet, la bande passante et la vitesse de traitement backend des points de terminaison de l'API.


En 2018, Facebook a souffert d'un autre attaque d'API zombie . La vulnérabilité a été trouvée dans la fonctionnalité « Afficher en tant que » de Facebook. La fonctionnalité permettait aux utilisateurs d'afficher leur profil comme les autres le voient. Le point de terminaison de l'API pour cette fonctionnalité n'était ni verrouillé ni surveillé, de sorte que les attaquants pouvaient afficher d'autres profils d'utilisateurs et voler leurs jetons d'accès. Avec un jeton d'accès, un attaquant peut alors voler le profil d'un utilisateur et ses données. Facebook estime que 40 millions d'utilisateurs ont été touchés et que 90 millions d'utilisateurs ont dû se réauthentifier pour s'assurer que leur jeton d'accès n'a pas été volé.


Une petite entreprise – mais une violation de données importante provenant d’une API zombie – s’est produite en 2022 avec un point de terminaison de Travis CI. Travis CI est un fournisseur d'automatisation utilisé pour déployer l'infrastructure et le code. L'un des points de terminaison de l'API de Travis CI ne nécessitait aucune authentification et autorisait les demandes d'obtention des événements du journal client. Pour aggraver les choses, les journaux étaient stockés en texte brut, de sorte que les données des journaux utilisateur, y compris les clés d'accès, pouvaient être récupérées sans aucune limitation. Lorsque le problème a été signalé, Travis CI a estimé que 770 millions d'enregistrements de journaux d'utilisateurs, y compris des jetons d'accès, des clés et des informations d'identification cloud, avaient été volés.

Découverte de l'API Zombie

Idéalement, les développeurs de logiciels documentent les modifications apportées à l'infrastructure afin que le contrôle des modifications inclut de nouveaux points de terminaison d'API. Les responsables des opérations peuvent ensuite ajouter des points de terminaison aux agents de surveillance, et ces agents collectent des données afin que les moniteurs de cybersécurité et d'analyse puissent informer les administrateurs lorsqu'une activité suspecte est détectée. Une API zombie se produit lorsque les points de terminaison ne sont pas documentés, de sorte que les agents de surveillance ignorent les points de terminaison. Sans surveillance, toutes les demandes peuvent être envoyées aux serveurs sans aucune analyse ni alerte de l'administrateur.


Pour lutter contre les API zombies potentielles, les administrateurs installent souvent des agents sur le réseau pour détecter le trafic. Les agents collectent des données de trafic et détectent les connexions ouvertes sur les serveurs et autres infrastructures réseau. Le problème avec cette stratégie est que les API zombies restent souvent inactives, sans trafic ni requêtes jusqu'à ce qu'elles soient découvertes. Ils peuvent être découverts par des développeurs, des opérateurs ou un tiers sur Internet. Ce n'est qu'après qu'un tiers aura découvert le point de terminaison que le trafic sera enregistré, mais cela ne signifie pas que les requêtes déclencheront des alertes. Une API zombie permettra d’effectuer des requêtes standards sans aucun « piratage » ni requêtes mal formées. C'est ce qui rend les API zombies si dangereuses pour la divulgation de données.

Utiliser l'intelligence artificielle pour découvrir les API Zombie

Au lieu de compter sur des agents pour détecter de manière réactive les API zombies, une meilleure solution consiste à travailler avec l'intelligence artificielle et à analyser votre code. Cette stratégie comporte deux phases : analyser le code de votre référentiel à la recherche de références aux API internes et utiliser les journaux d'événements pour déterminer si l'API reçoit des demandes.


La première étape consiste à analyser le code pour rechercher des références aux API. Ces API peuvent être externes ou internes, mais vous souhaitez vous concentrer sur les API internes puisque cette infrastructure affecte vos propres données. Les références peuvent se trouver dans de nombreux référentiels, à la fois actifs et obsolètes. Vous ne savez peut-être même pas que les références se trouvent dans votre code, mais en le scannant, vous les découvrirez afin qu'une liste puisse être envoyée à l'intelligence artificielle (IA).


Vient ensuite un grand modèle de langage (LLM) utilisé pour ingérer et analyser les journaux d’événements. Les journaux d’événements peuvent potentiellement contenir des gigaoctets ou des téraoctets de données ligne par ligne. Les journaux d'événements sont essentiels pour la cybersécurité et la surveillance de l'utilisation de l'infrastructure. Ils doivent donc être configurés pour les serveurs hébergeant des API. Si un point de terminaison d'API est référencé dans le code mais comporte peu ou pas d'événements de trafic, vous disposez peut-être d'une API zombie. Les API avec des références et de nombreux journaux d'événements sont utilisées et surveillées afin de ne pas être considérées comme une API zombie.


L'utilisation de LLM pour traiter les analyses sur chaque référence de point de terminaison d'API prend du temps, mais les résultats pourraient surprendre les administrateurs qui ne connaissent pas les API actives dans leur environnement. A titre d'exemple, un étude de cas sur Domino's Pizza India a récemment trouvé 189 API zombies, dont 11 % lient des informations personnellement identifiables (PII). Cette découverte a eu lieu après avoir analysé 2 063 points de terminaison et passé 2,2 jours à analyser les journaux d'événements dans l'ensemble de l'environnement de Domino's Pizza India.

Devriez-vous surveiller les API Zombie ?

La réponse est oui!" Les API Zombie pourraient laisser vos données client, vos données internes ou d’autres informations critiques ouvertes à la divulgation. Dans un environnement conforme, cette surveillance pourrait coûter des millions en amendes. Les litiges, les atteintes à la marque, l'impact sur les revenus et plusieurs autres conséquences négatives sont associés à une infrastructure non surveillée qui conduit à une violation de données.


Avoir une meilleure visibilité sur l'environnement d'une organisation est essentiel pour la cybersécurité et une réponse plus rapide aux incidents. Alors que de plus en plus d'organisations déploient une infrastructure dans le cloud, il est plus important que jamais de s'assurer de ne pas avoir de détails, y compris des API zombies. Documenter votre infrastructure est une première étape intéressante, mais il est possible que certaines API passent entre les mailles du filet. L'analyse continue de votre code permet d'identifier les API zombies, qui peuvent ensuite être désactivées ou ajoutées aux agents de surveillance. Une meilleure visibilité sur votre infrastructure réduit les risques d'exposition de données sensibles et réduit votre surface d'attaque.