
pmg v0.27.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 लॉगर के रूप में प्रच्छन्न एक typosquat पैकेज
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फिर से चलाएं।Linux सभी-उपयोगकर्ता / गोल्डन इमेज:
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
# या
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 Container Registry में प्रकाशित की जाती हैं। इमेज एंट्रीपॉइंट 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: Enforce PMG policy
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निर्यात करें।