
परियोजना निर्भरताओं को डिपेंडेंसी कन्फ्यूजन भेद्यताओं के लिए स्कैन करता है और कई रजिस्ट्रियों (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.
यदि आपको कोई बग मिला है या कोई विचार है, तो इस प्रोजेक्ट पर issue खोलने में संकोच न करें!
इस टूल का उद्देश्य प्रोजेक्ट्स के भीतर सभी डिपेंडेंसी कन्फ्यूजन को खोजना नहीं है। इसके अलावा, requirements फ़ाइलों को पार्स करने की जटिलता के कारण टूल गलत सकारात्मक परिणाम (false positives) उत्पन्न करने के लिए जाना जाता है।
कोई भी कार्रवाई करने से पहले हमेशा मैन्युअल रूप से जाँच करें कि यह शोषण योग्य है या नहीं।
कृपया ध्यान दें कि वास्तव में इस कमजोरी का शोषण करने से अनियंत्रित दुष्प्रभाव हो सकते हैं, इसलिए सावधान रहें।
यदि टूल का उपयोग दुर्भावनापूर्ण उद्देश्यों के लिए किया जाता है तो Synacktiv को जिम्मेदार नहीं ठहराया जा सकता है, यह केवल शैक्षिक उद्देश्यों के लिए है।
यह प्रोजेक्ट MIT लाइसेंस के अंतर्गत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।