mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-01 00:49:40 +00:00
64 lines
6.2 KiB
Markdown
64 lines
6.2 KiB
Markdown
# Confusão de Dependência
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) **grupo do Discord** ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live).
|
|
* **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|
|
|
|
## Informações Básicas
|
|
|
|
Em resumo, uma vulnerabilidade de confusão de dependência ocorre quando um projeto está usando uma biblioteca com um nome **mal escrito**, **inexistente** ou com uma **versão não especificada** e o repositório de dependência usado permite **reunir versões atualizadas de repositórios públicos**.
|
|
|
|
* **Mal escrito**: Importe **`reqests`** em vez de `requests`
|
|
* **Inexistente**: Importe `company-logging`, uma biblioteca interna que **não existe mais**
|
|
* **Versão não especificada**: Importe uma biblioteca interna **existente** `company-requests`, mas o repositório verifica **repositórios públicos** para ver se há **versões maiores**.
|
|
|
|
## Exploração
|
|
|
|
{% hint style="warning" %}
|
|
Em todos os casos, o atacante só precisa publicar um **pacote malicioso com o nome** das bibliotecas usadas pela empresa vítima.
|
|
{% endhint %}
|
|
|
|
### Mal Escrito & Inexistente
|
|
|
|
Se sua empresa está tentando **importar uma biblioteca que não é interna**, é altamente provável que o repositório de bibliotecas vá procurá-la em **repositórios públicos**. Se um atacante a criou, seu código e máquinas em execução provavelmente serão comprometidos.
|
|
|
|
### Versão Não Especificada
|
|
|
|
É muito comum que os desenvolvedores **não especifiquem nenhuma versão** da biblioteca usada ou especifiquem apenas uma **versão principal**. Então, o interpretador tentará baixar a **última versão** que atenda a esses requisitos.\
|
|
Se a biblioteca for uma **biblioteca externa conhecida** (como o `requests` do Python), um **atacante não pode fazer muito**, pois não poderá criar uma biblioteca chamada `requests` (a menos que seja o autor original).\
|
|
No entanto, se a biblioteca for **interna**, como `requests-company` neste exemplo, se o **repositório da biblioteca** permitir **verificar novas versões também externamente**, ele procurará por uma versão mais recente disponível publicamente.\
|
|
Então, se um **atacante souber** que a empresa está usando a biblioteca `requests-company` **versão 1.0.1** (permitir atualizações menores). Ele pode **publicar** a biblioteca `requests-company` **versão 1.0.2** e a empresa irá **usar essa biblioteca em vez** da interna.
|
|
|
|
## Correção da AWS
|
|
|
|
Essa vulnerabilidade foi encontrada na AWS **CodeArtifact** (leia os [**detalhes neste post do blog**](https://zego.engineering/dependency-confusion-in-aws-codeartifact-86b9ff68963d)).\
|
|
A AWS corrigiu isso permitindo especificar se uma biblioteca é interna ou externa, para evitar o download de dependências internas de repositórios externos.
|
|
|
|
## Encontrando Bibliotecas Vulneráveis
|
|
|
|
No [**post original sobre confusão de dependência**](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610), o autor procurou por milhares de arquivos package.json expostos contendo as dependências de projetos JavaScript.
|
|
|
|
## Referências
|
|
|
|
* [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)
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou você quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
|
|
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) **grupo do Discord** ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live).
|
|
* **Compartilhe suas técnicas de hacking enviando PRs para o [repositório hacktricks](https://github.com/carlospolop/hacktricks) e [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|