Fuite des jetons d'accès
Un jeton divulgué sans expiration est une clé principale permanente.
Qu'est-ce que Fuite des jetons d'accès?
Un jeton d'accès personnel fait office de compte qui l'a créé. Présentez-le et l'API vous traite comme ce développeur, sans mot de passe ni second facteur. La portée et l'expiration limitent les dommages ; un jeton classique avec un large accès à l'organisation et sans expiration n'a ni l'un ni l'autre. Vous choisirez un jeton dans un fichier public, répertorierez les référentiels privés d'une organisation, puis en clonerez un et repousserez une validation en tant que propriétaire. Vous le révoquerez, rééditerez un remplacement précis limité à un référentiel et activerez l'analyse secrète et la protection push.
Ce que vous apprendrez dans Fuite des jetons d'accès
- Comprenez pourquoi un jeton d'accès personnel dont la portée est trop étendue et qui n'expire pas est dangereux : une seule copie divulguée accorde un accès large et de longue durée au clonage de référentiels privés et au push, le tout en tant que développeur.
- Suivez comment un attaquant transforme un jeton extrait d'un contenu public en un accès réel en le présentant dans un en-tête d'autorisation pour répertorier les référentiels privés, puis en le clonant et en le poussant.
- Répondez correctement à une fuite en révoquant et en faisant pivoter le jeton plutôt que de simplement supprimer la copie publique, car toute personne qui l'a déjà copié conserve l'accès jusqu'à ce que le jeton soit supprimé.
- Réémettez un jeton de moindre privilège à granularité fine et limité à un seul référentiel avec une expiration courte, au lieu d'un jeton large classique qui accorde un accès étendu sans expiration.
- Réduisez l'exposition en activant l'analyse secrète et la protection push afin que les jetons divulgués dans les informations essentielles, les journaux CI ou les validations soient signalés et bloqués rapidement.
Fuite des jetons d'accès — Étapes de la formation
-
La moissonneuse d'essentiel de Bob
Bob ne lit pas l'essentiel à la main. Il gère un petit grattoir qui page l'essentiel du flux public de la plate-forme et analyse chaque fichier à la recherche de tout ce qui ressemble à un identifiant. Le flux est ouvert à tous, aucun compte n'est nécessaire, donc l'ensemble du flux d'informations publiques lui appartient.
-
Exécutez la moissonneuse
Bob dirige le grattoir. Il extrait l'essentiel du flux public et associe chaque fichier à ses modèles d'informations d'identification. La plupart des hits sont des clés mortes, expirées ou désactivées, mais l'une d'entre elles est active : un jeton d'accès personnel Loomwick se trouvant dans l'essentiel du déploiement d'un développeur.
-
Ouvrir l'essentiel du signalement
Bob ouvre l'essentiel du grattoir signalé. L'assistant de déploiement est un cadeau : il contient le jeton dans son intégralité, nomme le référentiel qu'il cible et montre exactement comment il est utilisé.
-
Ce que le jeton peut faire
Avant de l'utiliser intensivement, Bob demande à la plateforme quel est le token. Il appelle l'API de Loomwick avec le jeton dans un en-tête Authorization, et la réponse décrit les informations d'identification elles-mêmes. Il appartient à un développeur ordinaire, pas à un administrateur, mais les portées sont vastes et il n'y a pas d'expiration.
-
Lister les dépôts privés
Maintenant, Bob met le jeton au travail. Il demande à l'API de lister les référentiels de l'organisation, et les privés reviennent aux côtés du public. Il n'a jamais détenu de compte Loomwick. Le jeton seul suffit.
-
Cloner un dépôt privé
Avec le jeton, Bob clone un référentiel privé directement sur sa propre machine. L'essentiel lui a remis à la fois les informations d'identification et le référentiel exact qu'il cible. Le clone extrait le noyau de facturation dans son intégralité : source, configuration et historique.
-
Ouvrez le fichier webhook
L'accès en lecture est déjà assez mauvais, mais le jeton peut aussi écrire. Bob ouvre un fichier webhook dans le référentiel cloné, à la recherche d'un endroit calme pour ajouter sa propre ligne.
-
Plantez le changement
Bob ajoute une seule ligne. Chaque événement de facturation transmis par le service est désormais envoyé à son propre collecteur ainsi qu'au grand livre interne. Il s’agit d’un petit changement discret, du genre qui échappe à un examen chargé.
-
Valider le changement
Bob valide la modification. Le message se lit comme un ajustement inoffensif du transitaire, mais le différentiel transporte discrètement sa ligne d'exfiltration.
-
Push en tant que développeur
Ensuite, Bob renvoie la validation à Loomwick via l'URL du référentiel authentifié. La plateforme l'accepte : le token est traité comme Maya, donc l'écriture atterrit sur la branche par défaut. Un jeton divulgué n’est pas seulement un accès en lecture. Il porte l'identité complète du développeur, y compris le pouvoir de modifier ce qui est livré.
Couverture des référentiels de sécurité
CWE
- CWE-522 Insufficiently Protected Credentials
- CWE-798 Use of Hard-coded Credentials
MITRE ATT&CK
- T1552.001 Unsecured Credentials: Credentials In Files
- T1078 Valid Accounts
CIS Controls
- CIS 5 Account Management
- 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.AA Identity Management, Authentication, and Access Control
- PR.PS Platform Security