
프로젝트의 종속성을 스캔하여 dependency confusion 취약점을 탐지하고, 여러 레지스트리(npm, PyPI 등)에서 패키지 소유자 이메일 탈취 위험을 확인합니다.
DepFuzzer는 의존성 혼동(dependency confusion) 또는 소유자 이메일을 탈취할 수 있는 프로젝트를 찾는 데 사용되는 도구입니다.
/!\ 이 도구는 python >= 3.10이 필요합니다 /!\
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
또는 도커 이미지를 사용할 수 있습니다:
$ docker build -t depfuzzer:latest .
$ docker run --rm -it -v "$PWD":/host depfuzzer
이 도구는 의존성이 선언된 특정 파일을 검색하기 위해 폴더를 스캔하는 데 사용할 수 있습니다. 예를 들어:
package.jsonrequirements.txtpython3 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.
버그를 발견했거나 아이디어가 있다면 이 프로젝트에 이슈를 개설하는 것을 주저하지 마세요!
이 도구는 프로젝트 내의 모든 의존성 혼동을 찾기 위한 도구가 아닙니다. 또한 이 도구는 requirements 파일을 파싱하는 복잡성으로 인해 오탐(false positive)을 생성하는 것으로 알려져 있습니다.
조치를 취하기 전에 항상 수동으로 악용 가능한지 확인하세요.
이 취약점을 실제로 악용하면 통제할 수 없는 부작용이 발생할 수 있으므로 주의하세요.
Synacktiv는 이 도구가 악의적인 목적으로 사용되는 경우 책임을 지지 않습니다. 이 도구는 교육 목적으로만 사용됩니다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.