
pmg v0.27.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 - حزمة انتحال اسم متنكرة في هيئة مسجل 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 عمليات التثبيت داخل صناديق رمل أصلية لنظام التشغيل (macOS Seatbelt، Linux Landlock افتراضيًا، أو 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 بقشرة الأوامر الخاصة بك بحيث يعترض مديري الحزم.
pmg setup install
# أعد تشغيل الطرفية لتطبيق التغييرات
نصيحة: أعد تشغيل
pmg setup installبعد ترقية PMG لالتقاط خيارات التكوين الجديدة.لينكس لجميع المستخدمين / الصور الذهبية:
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
مديرو الحزم المدعومون
يدعم 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. يتغير مسارnpmالعام مع إصدار Node النشط، لذا قد يؤدي تبديل الإصدارات إلى جعلpmgغير متاح فيPATH(أو الإشارة إلى تثبيت قديم). لهذه الإعدادات، يُفضَّل استخدام سكربت التثبيت أو 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: 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 بيانات استخدام مجهولة. لتعطيل ذلك، إما:
- عيّن
disable_telemetry: trueفي ملف تكوين PMG، أو - صدّر
PMG_DISABLE_TELEMETRY=true.