# Confusione delle dipendenze
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)! * Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)! * Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family) * Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com) * **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Condividi i tuoi trucchi di hacking inviando PR ai repository [hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
{% embed url="https://websec.nl/" %} ## Informazioni di base In sintesi, una vulnerabilità di confusione delle dipendenze si verifica quando un progetto utilizza una libreria con un nome **sbagliato**, **inesistente** o con una **versione non specificata** e il repository delle dipendenze utilizzate consente di **raccogliere versioni aggiornate da repository pubblici**. * **Sbagliato**: Importa **`reqests`** invece di `requests` * **Inesistente**: Importa `company-logging`, una libreria interna che **non esiste più** * **Versione non specificata**: Importa una libreria **interna** **esistente** `company-requests`, ma il repository controlla **repository pubblici** per vedere se ci sono **versioni superiori**. ## Sfruttamento {% hint style="warning" %} In tutti i casi, l'attaccante deve solo pubblicare un **pacchetto dannoso con il nome** delle librerie utilizzate dall'azienda vittima. {% endhint %} ### Sbagliato & Inesistente Se la tua azienda sta cercando di **importare una libreria che non è interna**, è molto probabile che il repository delle librerie la stia cercando in **repository pubblici**. Se un attaccante l'ha creato, è molto probabile che il tuo codice e le macchine in esecuzione siano compromessi. ### Versione non specificata È molto comune per gli sviluppatori **non specificare alcuna versione** della libreria utilizzata, o specificare solo una **versione principale**. Quindi, l'interprete cercherà di scaricare l'**ultima versione** che soddisfi tali requisiti.\ Se la libreria è una **libreria esterna conosciuta** (come `requests` in Python), un **attaccante non può fare molto**, poiché non sarà in grado di creare una libreria chiamata `requests` (a meno che non sia l'autore originale).\ Tuttavia, se la libreria è **interna**, come `requests-company` in questo esempio, se il **repository della libreria** consente di **controllare anche esternamente nuove versioni**, cercherà una versione più recente disponibile pubblicamente.\ Quindi se un **attaccante sa** che l'azienda sta utilizzando la libreria `requests-company` **versione 1.0.1** (consente aggiornamenti minori), può **pubblicare** la libreria `requests-company` **versione 1.0.2** e l'azienda **utilizzerà quella libreria invece** di quella interna. ## Correzione AWS Questa vulnerabilità è stata trovata in AWS **CodeArtifact** (leggi i [**dettagli in questo post sul blog**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\ AWS ha risolto questo problema consentendo di specificare se una libreria è interna o esterna, per evitare di scaricare dipendenze interne da repository esterni. ## Trovare librerie vulnerabili Nel [**post originale sulla confusione delle dipendenze**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) l'autore ha cercato migliaia di file package.json esposti contenenti le dipendenze dei progetti JavaScript. ## Riferimenti * [https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) * [https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)
{% embed url="https://websec.nl/" %}
Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)! * Lavori in una **azienda di sicurezza informatica**? Vuoi vedere la tua **azienda pubblicizzata su HackTricks**? o vuoi avere accesso all'**ultima versione del PEASS o scaricare HackTricks in PDF**? Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)! * Scopri [**La Famiglia PEASS**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family) * Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com) * **Unisciti al** [**💬**](https://emojipedia.org/speech-balloon/) [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguimi** su **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Condividi i tuoi trucchi di hacking inviando PR ai repository [hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.