
Examina as dependências do projeto em busca de vulnerabilidades de confusão de dependências e verifica riscos de apropriação de e-mail dos proprietários de pacotes em vários registros (npm, PyPI, etc.).
O DepFuzzer é uma ferramenta usada para encontrar confusão de dependências ou projetos onde o e-mail do proprietário pode ser assumido (takeover).
/!\ Esta ferramenta requer python >= 3.10 /!\
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
Ou pode usar a imagem docker:
$ docker build -t depfuzzer:latest .
$ docker run --rm -it -v "$PWD":/host depfuzzer
A ferramenta pode ser usada para analisar pastas à procura de ficheiros específicos onde as dependências são declaradas, por exemplo:
package.jsonrequirements.txtpython3 main.py --provider pypi --path ~/Documents/Projetos/MyProject/
Além disso, esta ferramenta pode ser usada para analisar uma dependência específica:
python3 main.py --provider pypi --dependency requests:0.1.0
Tenha em atenção que a ferramenta utiliza um serviço de terceiros chamado deps.dev; poderá ser necessário especificar um proxy para o alcançar.
______ ______
| _ \ | ___|
| | | |___ _ __ | |_ _ _ ___________ _ __
| | | / _ \ '_ \| _| | | |_ /_ / _ \ '__|
| |/ / __/ |_) | | | |_| |/ / / / __/ |
|___/ \___| .__/\_| \__,_/___/___\___|_|
| |
|_|
usage: main.py [-h]
--provider {npm,pypi,cargo,go,maven,gradle,rubygems,nuget,all}
(--path PATH | --dependency DEPENDENCY)
[--print-takeover]
[--output-file OUTPUT_FILE]
[--check-email]
Dependency checker
options:
-h, --help show this help message and exit
--provider {npm,pypi,cargo,go,maven,gradle,rubygems,all}
--path PATH Path to folder(s) to analyze
--dependency DEPENDENCY
Specify the name of one dependency to check. If you specify the version,
please use ':' to separate name and version.
--print-takeover Don't wait the end of the script to display takeoverable modules
--output-file OUTPUT_FILE
File where results will be stored
--check-email Check if the email's owner of the dependency exists. Might be longer to
analyze.
Se encontrou um bug ou tem uma ideia, não hesite em abrir uma issue neste projeto!
Esta ferramenta não tem como objetivo encontrar todas as confusões de dependências em projetos. Além disso, a ferramenta é conhecida por produzir falsos positivos devido à complexidade de analisar ficheiros de requisitos.
Verifique sempre manualmente se é explorável antes de tomar medidas.
Tenha em atenção que explorar efetivamente esta vulnerabilidade pode ter efeitos secundários fora de controlo, por isso tenha cuidado.
A Synacktiv não pode ser responsabilizada se a ferramenta for utilizada para fins maliciosos; destina-se apenas a fins educacionais.
Este projeto está licenciado sob a Licença MIT - consulte o ficheiro LICENSE para obter detalhes.