
pmg v0.26.0
PMG يحمي المطورين ووكلاء الذكاء الاصطناعي من الحزم الضارة مفتوحة المصدر باستخدام proxy و sandbox وتغذية معلومات التهديدات من SafeDep.
حارس مدير الحزم (PMG)
احجب حزم npm و pip الضارة قبل تثبيتها.
دفاع متعمق لمديري الحزم التي تستخدمها بالفعل.
لماذا PMG؟
يقوم المطورون ووكلاء البرمجة بالذكاء الاصطناعي بتثبيت الحزم كل يوم. كل npm install أو pip install ينفذ آلاف الأسطر من التعليمات البرمجية التي لا يراجعها أحد.
الاختراقات الأخيرة في الأنظمة البيئية الشائعة:
- Mini Shai-Hulud - تم اختراق أكثر من 300 حزمة شهيرة
- litellm 1.82.8 - مكتبة وكيل ذكاء اصطناعي شهيرة تم اختراقها لسرقة بيانات الاعتماد
- telnyx 4.87.2 - تم اختطاف SDK اتصالات شرعية على PyPI
- pino-sdk-v2 - حزمة typosquat متنكرة في شكل مسجل pino الشهير
PMG مجاني ومفتوح المصدر (Apache 2.0) ولا يتطلب حسابًا أو مفتاح API. يعترض كل تثبيت حزمة ويتحقق منها مقابل واجهة برمجة التطبيقات المجتمعية المجانية لـ SafeDep للبرامج الضارة المعروفة قبل تنفيذ التعليمات البرمجية. قم بتثبيته مرة واحدة، ويغطي كل npm install و pip install و poetry add بعد ذلك.
كيف يعمل PMG
يتخذ PMG نهج الدفاع المتعمق. لا حاجة للتكوين، ويعمل عبر Zsh و Bash و Fish، ويمر كل تثبيت عبر طبقات الحماية الممكّنة قبل تشغيل الكود، بالإضافة إلى مسار تدقيق بعده.
تفاصيل الطبقات
- الاعتراض الشفاف - يغلف PMG أوامر
npmوpipومديري الحزم الآخرين. يستخدم المطورون ووكلاء الذكاء الاصطناعي نفس الأوامر. لا تغييرات في سير العمل. - الطبقة 1: استخبارات التهديدات - يتحقق PMG من كل حزمة مقابل استخبارات التهديدات الفورية لـ SafeDep قبل التثبيت. يتم حظر الحزم الضارة المعروفة. لا حاجة إلى مفتاح أو تسجيل دخول.
- الطبقة 2: السياسة (فترة تهدئة التبعيات) - يمنع PMG إصدارات الحزم المنشورة ضمن نافذة تهدئة قابلة للتكوين، بحيث يتم تخطي الإصدارات التي تم اختراقها مؤخرًا خلال النافذة.
- الطبقة 3: الصندوق الرملي الاختياري - عند تمكين وتكوين العزل الصندوقي، يقوم PMG بتشغيل التثبيتات داخل صناديق رملية أصلية لنظام التشغيل (Seatbelt في macOS، و Landlock في Linux افتراضيًا، أو Bubblewrap كبديل) بحيث يكون لبرامج التثبيت وصول مقيد إلى النظام حتى لو تسلل تهديد عبر الطبقتين الأوليين.
- تسجيل التدقيق - يسجل PMG كل تثبيت (ماذا، متى، من أين) لمسار تدقيق قابل للتحقق.
كيف يقارن PMG
PMG هو جدار الحماية الوحيد للحزم المجاني ومفتوح المصدر وقت التثبيت والذي يغطي المطورين ووكلاء الذكاء الاصطناعي على حد سواء ويأتي مع العزل الصندوقي وفترة التهدئة بشكل جاهز.
| الإمكانية | PMG | Socket | safe-chain | Snyk | Dependabot |
|---|---|---|---|---|---|
| مفتوح المصدر / مبني علنًا | ✓ | ✗ | ✓ | ✗ | ✗ |
| لا حاجة لحساب أو مفتاح API | ✓ | ✓ | ✓ | ✗ | ✗ |
| حظر الحزم الضارة وقت التثبيت | ✓ | ✓ | ✓ | ✗ | ✗ |
| سياسة فترة تهدئة التبعيات | ✓ | ✗ | ✓ | ✗ | ✗ |
| العزل الصندوقي أثناء التشغيل | ✓ | ✗ | ✗ | ✗ | ✗ |
| حماية وكلاء البرمجة بالذكاء الاصطناعي بشفافية | ✓ | ✗ | ✗ | ✗ | ✗ |
| سجلات التدقيق المحلية | ✓ | ✗ | ✗ | ✗ | ✗ |
| طلبات السحب لمعالجة الثغرات المعروفة | ✗ | ✗ | ✗ | ✓ | ✓ |
بدء سريع
1. التثبيت
curl -fsSL https://raw.githubusercontent.com/safedep/pmg/main/install.sh | sh
انظر التثبيت لطرق Homebrew و npm وغيرها.
2. الإعداد
قم بتوصيل 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 # التحقق من حالة الثقة وتاريخ الانتهاءانظر مرجع التصديق للنطاقات والتدوير والإزالة.
3. الاستخدام
شاهد PMG وهو يحظر التهديدات.
npm install --no-cache --prefer-online [email protected]
ملاحظة:
safedep-test-pkgهي حزمة اختبارية حميدة تم وضع علامة عليها كضارة في قاعدة بيانات SafeDep لأغراض الاختبار والتحقق.
استمر في استخدام مديري الحزم كالمعتاد، أو دع وكيل البرمجة بالذكاء الاصطناعي يقوم بتشغيلها. يجلس PMG في المسار، ويحظر الحزم الضارة.
npm install express
# أو
pip install requests
مديري الحزم المدعومين
| النظام البيئي | الأدوات | مثال الأمر |
|---|---|---|
| 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. مسار bin العامnpmيتغير مع إصدار Node النشط، لذا فإن تبديل الإصدارات قد يتركpmgغير متاح علىPATH(أو يشير إلى تثبيت قديم). لهذه الإعدادات، يفضل استخدام نص التثبيت أو Homebrew.
Go (بناء من المصدر)
# Ensure $(go env GOPATH)/bin is in your $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
احمِ سير عمل 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 قابلة للتكرار وموقعة.
- الشهادات: شهادات GitHub و npm تضمن سلامة القطع الأثرية.
- التحقق: يمكنك إثبات تشفيريًا أن الملف الثنائي يطابق الكود المصدري.
- انظر الوثوق بـ PMG لخطوات التحقق.
دليل المستخدم
- التكوين
- تكوين الحزم الموثوقة
- فترة تهدئة التبعيات
- التخزين المؤقت
- هندسة وضع الوكيل
- خادم وكيل دائم
- مرجع التصديق
- العزل الصندوقي
الدعم
إذا أنقذك PMG من حزمة سيئة، قم بوضع نجمة على هذا المستودع. يساعد ذلك الآخرين في العثور عليه.
تاريخ النجوم
المساهمة
المساهمات مرحب بها. انظر CONTRIBUTING.md لتعليمات البناء والاختبار.
شكرًا لجميع المساهمين ❤️
القياس عن بعد
يجمع PMG بيانات استخدام مجهولة. لتعطيل، إما:
- قم بتعيين
disable_telemetry: trueفي ملف تكوين PMG، أو - قم بتصدير
PMG_DISABLE_TELEMETRY=true.