synacktiv/DepFuzzer
GitHub: synacktiv/DepFuzzer
用于检测依赖混淆漏洞和维护者邮箱可接管风险的供应链安全审计工具。
Stars: 93 | Forks: 13
# DepFuzzer
DepFuzzer 是一个用于查找依赖混淆或所有者邮箱可被接管项目的工具。
## 安装该工具
/!\ 该工具需要 python >= 3.10 /!\
```
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
```
或者您可以使用 docker 镜像:
```
$ docker build -t depfuzzer:latest .
$ docker run --rm -it -v "$PWD":/host depfuzzer
```
## 使用该工具
该工具可用于扫描文件夹,以搜索声明了依赖关系的特定文件,例如:
- `package.json`
- `requirements.txt`
- ...
`python3 main.py --provider pypi --path ~/Documents/Projets/MyProject/`
此外,该工具还可用于扫描特定的依赖项:
`python3 main.py --provider pypi --dependency requests:0.1.0`
请注意,该工具使用了名为 `deps.dev` 的第三方服务,您可能需要指定代理才能访问它。
## 所有可能的参数
```
______ ______
| _ \ | ___|
| | | |___ _ __ | |_ _ _ ___________ _ __
| | | / _ \ '_ \| _| | | |_ /_ / _ \ '__|
| |/ / __/ |_) | | | |_| |/ / / / __/ |
|___/ \___| .__/\_| \__,_/___/___\___|_|
| |
|_|
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.
```
## 发现了 Bug 或有想法?
如果您发现了 Bug 或有想法,请随时在本项目中开启一个 issue!
# 免责声明
该工具并非旨在查找项目中的所有依赖混淆。此外,由于解析 requirements 文件的复杂性,已知该工具会产生误报。
在采取行动之前,请务必手动检查其是否可被利用。
请注意,实际利用此漏洞可能会产生无法控制的副作用,请务必谨慎。
如果该工具被用于恶意目的,Synacktiv 概不负责,该工具仅用于教育目的。
# 许可证
该项目基于 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
标签:Cilium, Docker, NPM, PyPI, Python, Red Team, WebSocket, 依赖分析, 依赖混淆, 包管理器, 子域名接管, 安全防御评估, 文档安全, 无后门, 电子邮件安全, 统一API, 请求拦截, 软件开发工具包, 逆向工具, 配置审计