
pmg v0.26.0
PMG डेवलपर्स और AI एजेंटों को प्रॉक्सी, सैंडबॉक्स और SafeDep की खतरा खुफिया फीड का उपयोग करके दुर्भावनापूर्ण ओपन सोर्स पैकेजों से बचाता है।
पैकेज मैनेजर गार्ड (PMG)
दुर्भावनापूर्ण npm और pip पैकेजों को इंस्टॉल होने से पहले ब्लॉक करें।
आपके द्वारा पहले से उपयोग किए जाने वाले पैकेज मैनेजरों के लिए गहराई में रक्षा।
PMG क्यों?
डेवलपर और AI कोडिंग एजेंट हर दिन पैकेज इंस्टॉल करते हैं। हर npm install या pip install हजारों लाइनों का कोड निष्पादित करता है जिसकी कोई समीक्षा नहीं करता।
लोकप्रिय इकोसिस्टम में हाल के समझौते:
- Mini Shai-Hulud - 300+ लोकप्रिय पैकेजों से समझौता
- litellm 1.82.8 - क्रेडेंशियल्स चुराने के लिए एक लोकप्रिय AI प्रॉक्सी लाइब्रेरी से समझौता
- telnyx 4.87.2 - PyPI पर एक वैध टेलीकॉम SDK अपहृत
- pino-sdk-v2 - एक टाइपोस्क्वाट पैकेज जो लोकप्रिय pino लॉगर के रूप में प्रच्छन्न है
PMG मुफ्त, ओपन सोर्स (Apache 2.0) है, और इसमें खाते या API कुंजी की आवश्यकता नहीं है। यह हर पैकेज इंस्टॉल को इंटरसेप्ट करता है और कोड निष्पादित होने से पहले ज्ञात मैलवेयर के लिए SafeDep के मुफ्त सामुदायिक API के विरुद्ध जांचता है। इसे एक बार इंस्टॉल करें, और यह उसके बाद हर npm install, pip install, और poetry add को कवर करता है।
PMG कैसे काम करता है
PMG एक गहराई में रक्षा दृष्टिकोण अपनाता है। शून्य कॉन्फ़िगरेशन, Zsh, Bash, और Fish पर काम करता है, और प्रत्येक इंस्टॉल कोड चलने से पहले सक्षम सुरक्षा परतों के माध्यम से गुजरता है, साथ ही बाद में ऑडिट ट्रेल भी।
परत विवरण
- पारदर्शी इंटरसेप्शन - PMG
npm,pip, और अन्य पैकेज मैनेजरों को रैप करता है। डेवलपर और AI एजेंट समान कमांड का उपयोग करते हैं। कोई वर्कफ़्लो परिवर्तन नहीं। - लेयर 1: खतरा खुफिया - PMG इंस्टॉल से पहले SafeDep के रीयल-टाइम खतरा खुफिया के विरुद्ध हर पैकेज की जांच करता है। ज्ञात-दुर्भावनापूर्ण पैकेज ब्लॉक कर दिए जाते हैं। कोई कुंजी, कोई लॉगिन आवश्यक नहीं।
- लेयर 2: नीति (निर्भरता कूलडाउन) - PMG एक कॉन्फ़िगरेबल कूलडाउन विंडो के अंदर प्रकाशित पैकेज संस्करणों को ब्लॉक करता है, ताकि हाल ही में समझौता किए गए संस्करणों को विंडो के दौरान छोड़ दिया जाए।
- लेयर 3: ऑप्ट-इन सैंडबॉक्स - जब सैंडबॉक्सिंग सक्षम और कॉन्फ़िगर की जाती है, तो PMG OS-नेटिव सैंडबॉक्स (macOS Seatbelt, Linux Landlock डिफ़ॉल्ट रूप से, या Bubblewrap फ़ॉलबैक) के अंदर इंस्टॉल चलाता है ताकि इंस्टॉल स्क्रिप्ट्स का सिस्टम एक्सेस प्रतिबंधित हो, भले ही कोई खतरा पहली दो परतों को पार कर जाए।
- ऑडिट लॉगिंग - PMG प्रत्येक इंस्टॉल (क्या, कब, कहाँ से) को एक सत्यापन योग्य ऑडिट ट्रेल के लिए लॉग करता है।
PMG की तुलना
PMG एकमात्र मुफ्त, ओपन-सोर्स, इंस्टॉल-टाइम पैकेज फ़ायरवॉल है जो डेवलपर और AI एजेंट दोनों को कवर करता है और सैंडबॉक्सिंग और कूलडाउन के साथ आउट ऑफ द बॉक्स आता है।
| क्षमता | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| OSS / सार्वजनिक रूप से निर्मित | ✓ | ✗ | ✓ | ✗ | ✗ |
| कोई खाता या API कुंजी नहीं | ✓ | ✓ | ✓ | ✗ | ✗ |
| इंस्टॉल-टाइम दुर्भावनापूर्ण पैकेज ब्लॉकिंग | ✓ | ✓ | ✓ | ✗ | ✗ |
| निर्भरता कूलडाउन नीति | ✓ | ✗ | ✓ | ✗ | ✗ |
| रनटाइम सैंडबॉक्सिंग | ✓ | ✗ | ✗ | ✗ | ✗ |
| AI कोडिंग एजेंटों को पारदर्शी रूप से सुरक्षित करता है | ✓ | ✗ | ✗ | ✗ | ✗ |
| स्थानीय ऑडिट लॉग | ✓ | ✗ | ✗ | ✗ | ✗ |
| ज्ञात-CVE उपचार PRs | ✗ | ✗ | ✗ | ✓ | ✓ |
त्वरित आरंभ
1. इंस्टॉल करें
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Homebrew, npm, और अन्य इंस्टॉल विधियों के लिए इंस्टॉलेशन देखें।
2. सेटअप करें
PMG को अपने शेल में वायर करें ताकि यह पैकेज मैनेजरों को इंटरसेप्ट करे।
pmg setup install
# परिवर्तन लागू करने के लिए अपना टर्मिनल पुनः आरंभ करें
टिप: नए कॉन्फ़िगरेशन विकल्पों को लेने के लिए PMG को अपग्रेड करने के बाद
pmg setup installको फिर से चलाएँ।लिनक्स सभी-उपयोगकर्ता / गोल्डन इमेज:
sudo pmg setup install --system— docs/system-install.md देखें।
अपने इंस्टॉलेशन को मान्य करें और सुरक्षा काम कर रही है यह सत्यापित करें:
pmg setup doctor
वैकल्पिक: PMG HTTPS ट्रैफ़िक की जांच एक ऑन-द-फ्लाई CA के साथ करता है जिसे वह प्रति रन पैकेज मैनेजरों में इंजेक्ट करता है। एकल CA को रनों में बनाए रखने और इसे अपने OS ट्रस्ट स्टोर में विश्वसनीय बनाने के लिए (उन टूल्स के लिए आवश्यक जो CA पर्यावरण चर को अनदेखा करते हैं, जैसे macOS और Windows पर Go), इसे एक बार इंस्टॉल करें:
pmg setup cert install # उपयोगकर्ता स्कोप, sudo की आवश्यकता नहीं pmg setup cert status # विश्वास स्थिति और समाप्ति की जाँच करेंस्कोप, रोटेशन और हटाने के लिए सर्टिफिकेट अथॉरिटी देखें।
3. उपयोग करें
PMG को खतरों को ब्लॉक करते हुए देखें।
npm install --no-cache --prefer-online [email protected]
नोट:
safedep-test-pkgएक सौम्य परीक्षण पैकेज है जिसे SafeDep के डेटाबेस में परीक्षण और सत्यापन उद्देश्यों के लिए दुर्भावनापूर्ण के रूप में चिह्नित किया गया है।
अपने पैकेज मैनेजरों का उपयोग हमेशा की तरह जारी रखें, या अपने AI कोडिंग एजेंट को उन्हें चलाने दें। PMG पथ में बैठता है, दुर्भावनापूर्ण पैकेजों को ब्लॉक करता है।
npm install express
# or
pip install requests
समर्थित पैकेज मैनेजर
PMG उन टूल्स का समर्थन करता है जिनका आप पहले से उपयोग करते हैं:
| इकोसिस्टम | टूल्स | कमांड उदाहरण |
|---|---|---|
| Node.js | npm | npm install <pkg> |
pnpm | pnpm add <pkg> | |
yarn | yarn add <pkg> | |
bun | bun add <pkg> | |
npx | npx <pkg> | |
pnpx | pnpx <pkg> | |
| Python | pip | pip install <pkg> |
pipx | pipx run <pkg> | |
poetry | poetry add <pkg> | |
uv | uv add <pkg> | |
uvx | uvx <pkg> |
इंस्टॉलेशन
इंस्टॉल स्क्रिप्ट (MacOS/Linux)
GitHub से नवीनतम रिलीज़ डाउनलोड करता है, उसके SHA-256 चेकसम को सत्यापित करता है, और $HOME/.local/bin (यदि PATH पर है) या /usr/local/bin में इंस्टॉल करता है।
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
Homebrew (MacOS/Linux)
brew tap safedep/tap
brew install safedep/tap/pmg
NPM (क्रॉस-प्लेटफ़ॉर्म)
npm install -g @safedep/pmg
नोट: NPM-आधारित इंस्टॉल नाजुक हो सकते हैं जब Node.js को वर्जन मैनेजर जैसे
miseयाasdfद्वारा प्रबंधित किया जाता है। ग्लोबलnpmbin पथ सक्रिय Node संस्करण के साथ बदलता है, इसलिए संस्करण स्विच करने सेpmgPATHपर अनुपलब्ध रह सकता है (या पुराने इंस्टॉल की ओर इशारा कर सकता है)। ऐसी सेटअप के लिए, इंस्टॉल स्क्रिप्ट या Homebrew को प्राथमिकता दें।
Go (स्रोत से बनाएँ)
# सुनिश्चित करें कि $(go env GOPATH)/bin आपके $PATH में है
go install github.com/safedep/pmg@latest
बाइनरी डाउनलोड
अपने प्लेटफ़ॉर्म के लिए नवीनतम बाइनरी रिलीज़ पेज से डाउनलोड करें।
कंटेनर इमेज (GHCR)
प्रीबिल्ट मल्टी-आर्क (linux/amd64, linux/arm64) इमेज प्रत्येक रिलीज़ पर GitHub कंटेनर रजिस्ट्री में प्रकाशित की जाती हैं। इमेज का एंट्रीपॉइंट pmg है।
# नवीनतम इमेज खींचें (या वर्जन टैग पिन करें, जैसे :v1.2.3)
docker pull ghcr.io/safedep/pmg:latest
# कोई भी pmg कमांड चलाएँ
docker run --rm ghcr.io/safedep/pmg:latest version
GitHub Actions
एक चरण के साथ CI वर्कफ़्लो की सुरक्षा करें। PMG जॉब में प्रत्येक npm install, pip install आदि का विश्लेषण करता है।
- uses: safedep/pmg@v1
with:
server-mode: true
# HTTP_PROXY के माध्यम से स्वचालित रूप से इंटरसेप्ट किया गया
- run: npm ci
- name: PMG नीति लागू करें
if: always()
run: pmg proxy stop --fail-on-violation # डेमॉन को रोकता है, ब्लॉक पर जॉब को विफल करता है
डिफ़ॉल्ट रूप से आपको मैलवेयर ब्लॉकिंग और निर्भरता कूलडाउन मिलता है। सैंडबॉक्स अलगाव sandbox इनपुट के माध्यम से ऑप्ट-इन है। इनपुट (paranoid, sandbox, cooldown-days, ...) के माध्यम से व्यवहार ट्यून करें या config-file को रेपो में YAML पर इंगित करें। पूर्ण संदर्भ के लिए docs/github-action.md देखें।
अनइंस्टॉलेशन
शेल इंटीग्रेशन हटाएँ:
pmg setup remove
PMG कॉन्फ़िगरेशन फ़ाइल को भी हटाने के लिए:
pmg setup remove --config-file
फिर PMG स्वयं अनइंस्टॉल करें:
# Homebrew
brew uninstall safedep/tap/pmg
# NPM
npm uninstall -g @safedep/pmg
विश्वास और सुरक्षा
PMG बिल्ड प्रतिलिपि योग्य और हस्ताक्षरित हैं।
- प्रमाणपत्र: GitHub और npm प्रमाणपत्र आर्टिफैक्ट अखंडता की गारंटी देते हैं।
- सत्यापन: आप क्रिप्टोग्राफ़िक रूप से साबित कर सकते हैं कि बाइनरी स्रोत कोड से मेल खाती है।
- सत्यापन चरणों के लिए PMG पर भरोसा करना देखें।
उपयोगकर्ता गाइड
- कॉन्फ़िगरेशन
- विश्वसनीय पैकेज कॉन्फ़िगरेशन
- निर्भरता कूलडाउन
- कैशिंग
- प्रॉक्सी मोड आर्किटेक्चर
- स्थायी प्रॉक्सी सर्वर
- सर्टिफिकेट अथॉरिटी
- सैंडबॉक्सिंग
सहायता
यदि PMG ने आपको किसी खराब पैकेज से बचाया है, तो इस रेपो को स्टार करें। इससे दूसरों को इसे ढूंढने में मदद मिलती है।
स्टार इतिहास
योगदान
योगदान का स्वागत है। बिल्ड और परीक्षण निर्देशों के लिए CONTRIBUTING.md देखें।
सभी योगदानकर्ताओं का धन्यवाद ❤️
टेलीमेट्री
PMG गुमनाम उपयोग डेटा एकत्र करता है। अक्षम करने के लिए, या तो:
- अपनी PMG कॉन्फ़िगरेशन फ़ाइल में
disable_telemetry: trueसेट करें, या PMG_DISABLE_TELEMETRY=trueनिर्यात करें।