Mauvaise gestion des stocks
L'ancienne version de l'API que vous avez oubliée répond toujours.
Qu'est-ce que Mauvaise gestion des stocks?
Un contrôle de sécurité ne couvre que les points finaux dont vous savez qu'ils sont en cours d'exécution. Les anciennes versions d'API, les points de terminaison non documentés et les hôtes oubliés restent déployés en dehors de cette image, continuant à servir le code non protégé qu'ils ont toujours fait. Vous obtiendrez un 401 de la version actuelle, modifierez un segment d'URL de la v2 à la v1 et en obtiendrez 200 avec le nom, l'adresse e-mail et l'adresse personnelle d'un client, puis intégrerez les identifiants de compte dans une liste groupée. Le correctif supprime l'ancienne version afin que chaque chemin en dessous renvoie 410 Gone. La dépréciation dans la documentation n'est pas une retraite.
Ce que vous apprendrez dans Mauvaise gestion des stocks
- Reconnaître une mauvaise gestion des stocks : des versions et des hôtes d'API anciens, non documentés ou hors production restent en cours d'exécution et accessibles, en dehors des contrôles appliqués par la version actuelle.
- Comprenez qu'un nouveau contrôle (une passerelle d'authentification, une vérification) ne couvre que les versions montées derrière lui, donc une ancienne version laissée en production fournit le code de pré-contrôle à n'importe qui
- Découvrez comment la modification d'un segment d'URL de la version actuelle vers une version obsolète atteint une version oubliée, et comment un point de terminaison non authentifié se transforme en une exposition massive de données grâce à une simple énumération.
- Distinguez-le d'une autorisation au niveau de l'objet rompue (une vérification de propriété par enregistrement manquante à l'intérieur d'un point de terminaison authentifié) et d'une exposition excessive des données (champs renvoyés en excès) ; ici, toute la version fonctionne sans authentification car elle n'a jamais été retirée
- Appliquez le correctif : retirez les versions non prises en charge afin qu'elles renvoient 410 Gone et sortent de la production, et maintenez un inventaire de chaque version, environnement et hôte déployés afin que rien ne fonctionne sans surveillance.
Mauvaise gestion des stocks — Étapes de la formation
-
Une ancienne version, toujours répertoriée
Emberline est une application solaire et énergétique domestique : les clients associent leurs panneaux et leur batterie, et l'application lit leur compte à partir de l'API d'Emberline. Aujourd'hui, Bob cible Emberline. Il n'a ni compte ni jeton ; il veut juste une liste de clients et l'endroit où ils vivent, pour vendre. Il commence par consulter la documentation publique des développeurs d'Emberline pour apprendre l'API.
-
Obsolète, pas disparu
La documentation décrit deux versions de l'API. Bob lit comment chacun est étiqueté et une étiquette attire son attention.
-
Demander la version actuelle
Tout d'abord, Bob appelle la version actuelle de la manière décrite dans la documentation : il demande un compte par son identifiant, en utilisant l'exemple d'identifiant de la référence. Il n’a aucun jeton, c’est donc un cas non authentifié. Si la passerelle fait son travail, elle devrait le refuser.
-
La passerelle refuse
La version actuelle fait exactement ce qu'elle devrait.
-
Changer un segment
Bob envoie la même requête, toujours sans jeton, et ne change qu'une seule chose : la version dans l'URL, de v2 à v1 , la version obsolète. Tout le reste est identique. Si l’ancienne version a vraiment disparu, cela ne devrait aboutir à rien.
-
La version oubliée répond
La même demande que la passerelle vient de refuser est revenue avec des données.
-
Parcourez les comptes
Un enregistrement est un avertissement. Étant donné que v1 ne demande aucun jeton, rien n'empêche Bob de parcourir les identifiants de compte. Il conserve la version sur v1 et change l'identifiant pour le client suivant.
-
Chaque client, à grande échelle
Une autre identité, un autre vrai client.
-
Contrôle des connaissances
Vous venez de voir un attaquant sans compte lire les enregistrements client en changeant la version dans l'URL. Verrouillez pourquoi.
-
L'alerte débarque
Vous possédez la passerelle API d'Emberline et le cycle de vie de chaque version d'API qui la sous-tend. Du jour au lendemain, la surveillance a signalé des milliers de lectures non authentifiées sur l'ancien point de terminaison des comptes /v1 , à partir d'une seule adresse, parcourant les identifiants de compte dans l'ordre. Les opérations de sécurité vous ont envoyé un e-mail.
Couverture des référentiels de sécurité
OWASP API Top 10
- API9:2023 Improper Inventory Management
CWE
- CWE-1059 Insufficient Technical Documentation
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security