
Scanne les dépendances des projets pour détecter les vulnérabilités de confusion de dépendances et vérifie les risques de détournement des e-mails des propriétaires de paquets sur plusieurs registres (npm, PyPI, etc.).
DepFuzzer est un outil utilisé pour détecter les cas de confusion de dépendances ou les projets dont l'e-mail du propriétaire peut être détourné.
/!\ Cet outil nécessite python >= 3.10 /!\
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
Vous pouvez également utiliser l'image docker :
$ docker build -t depfuzzer:latest .
$ docker run --rm -it -v "$PWD":/host depfuzzer
L'outil peut être utilisé pour analyser des dossiers afin de rechercher des fichiers spécifiques dans lesquels les dépendances sont déclarées, par exemple :
package.jsonrequirements.txtpython3 main.py --provider pypi --path ~/Documents/Projets/MyProject/
De plus, cet outil peut être utilisé pour analyser une dépendance spécifique :
python3 main.py --provider pypi --dependency requests:0.1.0
Veuillez noter que l'outil utilise un service tiers appelé deps.dev ; vous devrez peut-être spécifier un proxy pour y accéder.
______ ______
| _ \ | ___|
| | | |___ _ __ | |_ _ _ ___________ _ __
| | | / _ \ '_ \| _| | | |_ /_ / _ \ '__|
| |/ / __/ |_) | | | |_| |/ / / / __/ |
|___/ \___| .__/\_| \__,_/___/___\___|_|
| |
|_|
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.
Si vous avez trouvé un bug ou avez une idée, n'hésitez pas à ouvrir une issue sur ce projet !
Cet outil n'a pas pour but de trouver toutes les confusions de dépendances au sein des projets. De plus, l'outil est connu pour produire des faux positifs en raison de la complexité de l'analyse des fichiers requirements.
Vérifiez toujours manuellement si c'est exploitable avant d'agir.
Veuillez noter qu'exploiter réellement cette vulnérabilité peut avoir des effets secondaires incontrôlables, soyez donc prudent.
Synacktiv ne peut être tenu responsable si l'outil est utilisé à des fins malveillantes ; il est destiné uniquement à des fins éducatives.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.