
PMG يحمي المطورين ووكلاء الذكاء الاصطناعي من الحزم الضارة مفتوحة المصدر باستخدام proxy و sandbox وتغذية معلومات التهديدات من SafeDep.
احجب حزم npm و pip الضارة قبل تثبيتها.
دفاع متعمق لمديري الحزم التي تستخدمها بالفعل.
يقوم المطورون ووكلاء البرمجة بالذكاء الاصطناعي بتثبيت الحزم كل يوم. كل npm install أو pip install ينفذ آلاف الأسطر من التعليمات البرمجية التي لا يراجعها أحد.
الاختراقات الأخيرة في الأنظمة البيئية الشائعة:
PMG مجاني ومفتوح المصدر (Apache 2.0) ولا يتطلب حسابًا أو مفتاح API. يعترض كل تثبيت حزمة ويتحقق منها مقابل واجهة برمجة التطبيقات المجتمعية المجانية لـ SafeDep للبرامج الضارة المعروفة قبل تنفيذ التعليمات البرمجية. قم بتثبيته مرة واحدة، ويغطي كل npm install و pip install و poetry add بعد ذلك.
يتخذ PMG نهج الدفاع المتعمق. لا حاجة للتكوين، ويعمل عبر Zsh و Bash و Fish، ويمر كل تثبيت عبر طبقات الحماية الممكّنة قبل تشغيل الكود، بالإضافة إلى مسار تدقيق بعده.
npm و pip ومديري الحزم الآخرين. يستخدم المطورون ووكلاء الذكاء الاصطناعي نفس الأوامر. لا تغييرات في سير العمل.PMG هو جدار الحماية الوحيد للحزم المجاني ومفتوح المصدر وقت التثبيت والذي يغطي المطورين ووكلاء الذكاء الاصطناعي على حد سواء ويأتي مع العزل الصندوقي وفترة التهدئة بشكل جاهز.
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
انظر التثبيت لطرق Homebrew و npm وغيرها.
قم بتوصيل PMG بقشرة shell الخاصة بك بحيث يعترض مديري الحزم.
pmg setup install
# أعد تشغيل الطرفية لتطبيق التغييرات
نصيحة: قم بتشغيل
pmg setup installبعد ترقية PMG لالتقاط خيارات التكوين الجديدة.Linux لجميع المستخدمين / الصور الذهبية:
sudo pmg setup install --system— انظر docs/system-install.md.
تحقق من تثبيتك وتأكد من أن الحماية تعمل:
pmg setup doctor
اختياري: يقوم PMG بفحص حركة مرور HTTPS باستخدام مرجع مصدق (CA) فوري يقوم بحقنه في مديري الحزم لكل تشغيل. لإبقاء CA واحد عبر عمليات التشغيل والثقة به في مخزن الثقة لنظام التشغيل (مطلوب للأدوات التي تتجاهل متغيرات بيئة CA، مثل Go على macOS وWindows)، قم بتثبيته مرة واحدة:
pmg setup cert install # نطاق المستخدم، بدون sudo pmg setup cert status # التحقق من حالة الثقة وتاريخ الانتهاءانظر مرجع التصديق للنطاقات والتدوير والإزالة.
شاهد PMG وهو يحظر التهديدات.
npm install --no-cache --prefer-online [email protected]
ملاحظة:
safedep-test-pkgهي حزمة اختبارية حميدة تم وضع علامة عليها كضارة في قاعدة بيانات SafeDep لأغراض الاختبار والتحقق.
استمر في استخدام مديري الحزم كالمعتاد، أو دع وكيل البرمجة بالذكاء الاصطناعي يقوم بتشغيلها. يجلس PMG في المسار، ويحظر الحزم الضارة.
npm install express
# أو
pip install requests
يقوم بتنزيل أحدث إصدار من GitHub، والتحقق من المجموع الاختباري SHA-256 الخاص به، وتثبيته إلى $HOME/.local/bin (إذا كان في PATH) أو /usr/local/bin.
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
brew tap safedep/tap
brew install safedep/tap/pmg
npm install -g @safedep/pmg
ملاحظة: يمكن أن تكون التثبيتات القائمة على NPM هشة عندما تتم إدارة Node.js بواسطة مديري الإصدارات مثل
miseأوasdf. مسار bin العامnpmيتغير مع إصدار Node النشط، لذا فإن تبديل الإصدارات قد يتركpmgغير متاح علىPATH(أو يشير إلى تثبيت قديم). لهذه الإعدادات، يفضل استخدام نص التثبيت أو Homebrew.
# Ensure $(go env GOPATH)/bin is in your $PATH
go install github.com/safedep/pmg@latest
قم بتنزيل أحدث ملف ثنائي لمنصتك من صفحة الإصدارات.
يتم نشر صور متعددة المعماريات مبنية مسبقًا (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
احمِ سير عمل 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 للمرجع الكامل.
إزالة التكامل مع shell:
pmg setup remove
لإزالة ملف تكوين PMG أيضًا:
pmg setup remove --config-file
ثم قم بإلغاء تثبيت PMG نفسه:
# Homebrew
brew uninstall safedep/tap/pmg
# NPM
npm uninstall -g @safedep/pmg
بنيات PMG قابلة للتكرار وموقعة.
إذا أنقذك PMG من حزمة سيئة، قم بوضع نجمة على هذا المستودع. يساعد ذلك الآخرين في العثور عليه.
المساهمات مرحب بها. انظر CONTRIBUTING.md لتعليمات البناء والاختبار.
شكرًا لجميع المساهمين ❤️
يجمع PMG بيانات استخدام مجهولة. لتعطيل، إما:
disable_telemetry: true في ملف تكوين PMG، أوPMG_DISABLE_TELEMETRY=true.| الإمكانية | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|
| مفتوح المصدر / مبني علنًا | ✓ | ✗ | ✓ | ✗ | ✗ |
| لا حاجة لحساب أو مفتاح API | ✓ | ✓ | ✓ | ✗ | ✗ |
| حظر الحزم الضارة وقت التثبيت | ✓ | ✓ | ✓ | ✗ | ✗ |
| سياسة فترة تهدئة التبعيات | ✓ | ✗ | ✓ | ✗ | ✗ |
| العزل الصندوقي أثناء التشغيل | ✓ | ✗ | ✗ | ✗ | ✗ |
| حماية وكلاء البرمجة بالذكاء الاصطناعي بشفافية | ✓ | ✗ | ✗ | ✗ | ✗ |
| سجلات التدقيق المحلية | ✓ | ✗ | ✗ | ✗ | ✗ |
| طلبات السحب لمعالجة الثغرات المعروفة | ✗ | ✗ | ✗ | ✓ | ✓ |
| النظام البيئي | الأدوات | مثال الأمر |
|---|
| 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> |