Le service postal des États-Unis, United States Postal Service (USPS), a lancé son service de visibilité informée en 2017. Ce service permettait de récupérer les données sur les courriers envoyés par les clients professionnels de USPS. Ceci a représenté un grand pas vers la numérisation, mais l’API qui alimentait ce service contenait une faille qui, par inadvertance, permettait à n’importe quel utilisateur connecté de voir, et parfois même de modifier, les informations des comptes des autres utilisateurs.
Étant donné que l’API acceptait des paramètres de recherche avec des métacaractères, aucun outil de piratage n’était nécessaire. N’importe qui, littéralement, pouvait manipuler la recherche en utilisant un navigateur normal et avec un effort minimal, comme en attestent les 60 millions de personnes, environ, dont les données personnelles ont été exposées.
Selon l’analyse réalisée par KrebsOnSecurity, certains domaines de données, tels que les adresses électroniques, nécessitaient une étape de validation supplémentaire avant de pouvoir être modifiées par une /des personne(s) non autorisée(s). Cela a du sens dans la mesure ou les clients des grandes entreprises doivent être sûrs que les informations de leur compte ne puissent pas être modifiées sans une vérification d’autorisation. Mais le défaut de sécurité résidait dans l’omission d’un critère d’accès pour s’assurer que l’identité associée à la demande avait l’accès approprié pour lire ou modifier le fichier.
Cette vulnérabilité est mieux décrite dans le Document du Top Dix d’OWASP comme « A5 : Broken Access Control ». Elle aurait facilement pu être évitée si l’API en question avait réalisé une vérification de l’accès pour voir si la personne effectuant la demande disposait la bonne autorisation. La vérification de ce même contrôle des accès aurait pu être utilisée pour filtrer également les résultats des recherches avec des métacaractères.
Cet exemple illustre également un autre principe fondamental du Zero Trust : toujours vérifier les permissions et le niveau de risque associés à un utilisateur individuel lors de la demande d’accès. C’est ce qu’on appelle respecter la confiance établie au moment de l’authentification contre le risque lié à l’accès.
Etant donné que l’USPS demandait avant tout de s’authentifier pour accéder à l’API, il avait un temps d’avance sur First American. Malheureusement, confondre authentification et autorisation est une erreur fréquente qui entraîne souvent des fuites de données comme celles-ci, où l’impact peut être démesuré.
Comment prévenir cette vulnérabilité ?
Une manière d’éviter cette vulnérabilité est que chaque développeur mette en place des vérifications d’autorisation pour chaque API. Mais de nombreuses entreprises préfèrent gérer et mettre en place l’autorisation au niveau central.
En utilisant la solution Adaptive Access Security de Ping, ces entreprises mettent en place une combinaison d’autorisations moyenne et stricte pour se protéger des accès non autorisés et/ou non intentionnels et de l’exposition potentielle des données. Cette solution sécurise les API en appliquant une vérification de l’autorisation et en filtrant les données renvoyées par la demande. Elle réalise cela en accord avec les politiques d’accès des données externalisées composées par des utilisateurs professionnels (par ex. les professionnels de la sécurité et de la conformité) sur une interface graphique.