
يفحص تبعيات المشروع للكشف عن ثغرات الارتباك في التبعيات (Dependency Confusion) ويتحقق من مخاطر الاستيلاء على البريد الإلكتروني لمالك الحزمة عبر عدة مستودعات (npm و PyPI وغيرها).
DepFuzzer هي أداة تُستخدم للكشف عن التباس التبعيات (dependency confusion) أو المشاريع التي يمكن الاستيلاء على البريد الإلكتروني لمالكها.
/!\ تتطلب هذه الأداة 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.jsonrequirements.txtpython3 main.py --provider pypi --path ~/Documents/Projets/MyProject/
علاوة على ذلك، يمكن استخدام هذه الأداة لفحص تبعية واحدة محددة:
python3 main.py --provider pypi --dependency requests:0.1.0
يُرجى ملاحظة أن الأداة تستخدم خدمة طرف ثالث تُسمى deps.dev، وقد تحتاج إلى تحديد وكيل (proxy) للوصول إليها.
______ ______
| _ \ | ___|
| | | |___ _ __ | |_ _ _ ___________ _ __
| | | / _ \ '_ \| _| | | |_ /_ / _ \ '__|
| |/ / __/ |_) | | | |_| |/ / / / __/ |
|___/ \___| .__/\_| \__,_/___/___\___|_|
| |
|_|
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.
إذا وجدت خللًا أو كانت لديك فكرة، فلا تتردد في فتح issue على هذا المشروع!
هذه الأداة ليست مخصصة للعثور على جميع حالات التباس التبعيات داخل المشاريع. علاوة على ذلك، من المعروف أن الأداة تُنتج نتائج إيجابية خاطئة (false positives) بسبب تعقيد تحليل ملفات المتطلبات.
تحقق دائمًا يدويًا من قابلية الاستغلال قبل اتخاذ أي إجراءات.
يُرجى ملاحظة أن استغلال هذه الثغرة فعليًا قد يكون له آثار جانبية خارجة عن السيطرة، لذا كن حذرًا.
لا يمكن تحميل Synacktiv المسؤولية إذا تم استخدام الأداة لأغراض ضارة، فهي للأغراض التعليمية فقط.
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.