6.3 KiB
Vulnérabilité de confusion de dépendance
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!
- Travaillez-vous dans une entreprise de cybersécurité? Vous voulez voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et dépôt hacktricks-cloud.
{% embed url="https://websec.nl/" %}
Informations de base
En résumé, une vulnérabilité de confusion de dépendance se produit lorsqu'un projet utilise une bibliothèque avec un nom mal orthographié, inexistant ou avec une version non spécifiée et que le référentiel de dépendances utilisé permet de rassembler des versions mises à jour à partir de référentiels publics.
- Mal orthographié : Importez
reqests
au lieu derequests
- Inexistant : Importez
company-logging
, une bibliothèque interne qui n'existe plus - Version non spécifiée : Importez une bibliothèque interne existante
company-requests
, mais le référentiel vérifie les dépôts publics pour voir s'il existe des versions supérieures.
Exploitation
{% hint style="warning" %} Dans tous les cas, l'attaquant a juste besoin de publier un paquet malveillant avec le nom des bibliothèques utilisées par l'entreprise victime. {% endhint %}
Mal orthographié & Inexistant
Si votre entreprise essaie d'importer une bibliothèque qui n'est pas interne, il est très probable que le référentiel des bibliothèques la recherche dans les dépôts publics. Si un attaquant l'a créée, votre code et vos machines en cours d'exécution seront très probablement compromis.
Version non spécifiée
Il est très courant que les développeurs ne spécifient pas de version de la bibliothèque utilisée, ou spécifient juste une version majeure. Ensuite, l'interpréteur essaiera de télécharger la dernière version répondant à ces exigences.
Si la bibliothèque est une bibliothèque externe connue (comme requests
en python), un attaquant ne peut pas faire grand-chose, car il ne pourra pas créer une bibliothèque appelée requests
(à moins qu'il ne soit l'auteur original).
Cependant, si la bibliothèque est interne, comme requests-company
dans cet exemple, si le référentiel de la bibliothèque permet de vérifier également les nouvelles versions de manière externe, il recherchera une version plus récente disponible publiquement.
Donc si un attaquant sait que l'entreprise utilise la bibliothèque requests-company
version 1.0.1 (autorise les mises à jour mineures), il peut publier la bibliothèque requests-company
version 1.0.2 et l'entreprise utilisera cette bibliothèque à la place de la interne.
Correction AWS
Cette vulnérabilité a été trouvée dans AWS CodeArtifact (lisez les détails dans ce billet de blog).
AWS a corrigé cela en permettant de spécifier si une bibliothèque est interne ou externe, pour éviter de télécharger des dépendances internes à partir de référentiels externes.
Recherche de bibliothèques vulnérables
Dans le billet original sur la confusion de dépendance, l'auteur a recherché des milliers de fichiers package.json exposés contenant les dépendances des projets JavaScript.
Références
- https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610
- https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d
{% embed url="https://websec.nl/" %}
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!
- Travaillez-vous dans une entreprise de cybersécurité? Vous voulez voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la dernière version du PEASS ou télécharger HackTricks en PDF? Consultez les PLANS D'ABONNEMENT!
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR au dépôt hacktricks et dépôt hacktricks-cloud.