Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
guarddog — 🐍 🔍 GuardDog هي أداة CLI لتحديد حزم PyPI وnpm الخبيثة | Kitploit
أدوات/GitHubGitHub/datadog/guarddog
التحليل الثابتماسحات الثغرات الأمنيةالتحليل الديناميكي (عزل)تحليل الكودتحليل البرمجيات الخبيثةDevSecOpsكشف الأسراراستخبارات التهديداتأمن سلسلة التوريد
GitHubdatadog/guarddog

guarddog

🐍 🔍 GuardDog هي أداة CLI لتحديد حزم PyPI وnpm الخبيثة

1.2k11212منذ 7 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
عرض المستودعالموقع الإلكتروني
مشاركة

GuardDog

Test OpenSSF Scorecard OpenSSF Best Practices

GuardDog

GuardDog هي أداة سطر أوامر (CLI) تحدد حزم PyPI و npm الخبيثة، ووحدات Go، وصناديق Rust، و RubyGems، وإجراءات GitHub، أو إضافات VSCode. تقوم بتحليل ثابت لشفرة مصدر الحزمة (عبر قواعد YARA) وتحلل بيانات الحزمة الوصفية لاكتشاف هجمات سلسلة التوريد.

ما الذي يجعل GuardDog مختلفًا: بدلاً من مجرد سرد الأنماط المشبوهة، يقوم GuardDog بربط النتائج لتحديد المخاطر الفعلية بناءً على سلاسل الهجوم. تحتاج الحزمة إلى كل من القدرة على تنفيذ إجراء (مثل الوصول إلى الشبكة) ومؤشر تهديد (مثل نطاق مشبوه) في نفس الملف ليتم تصنيفها على أنها عالية الخطورة.

يقوم بتنزيل وفحص الكود من:

  • NPM: الحزم المستضافة في npmjs.org
  • PyPI: ملفات المصدر (tar.gz) للحزم المستضافة في PyPI.org
  • Go: ملفات مصدر GoLang للمستودعات المستضافة في GitHub.com
  • Rust: الصناديق المستضافة على crates.io
  • RubyGems: حزم Gem المستضافة في rubygems.org
  • GitHub Actions: ملفات مصدر JavaScript للمستودعات المستضافة في GitHub.com
  • VSCode Extensions: حزم الإضافات (.vsix) المستضافة في marketplace.visualstudio.com
  • استخدام GuardDog التجريبي

    كيف يعمل GuardDog

    يستخدم GuardDog نموذج كشف قائم على المخاطر يربط قدرات الكود بمؤشرات التهديد:

    1. الكشف: تحدد القواعد إما القدرات (ما يمكن أن يفعله الكود) أو التهديدات (المؤشرات المشبوهة)
    2. الربط: تشكل القدرات والتهديدات الموجودة في نفس الملف مخاطر (تشكل المطابقات عبر الملفات أيضًا مخاطر، بدرجة خطورة مخفضة)
    3. التسجيل: يتم تسجيل المخاطر (0-10) بناءً على اكتمال سلسلة الهجوم ودرجة تطوره
    4. الإبلاغ: تحصل الحزم على تصنيف خطورة (منخفض/متوسط/مرتفع) مع تفصيل دقيق للمخاطر

    لماذا هذا النهج؟

    تقوم أدوات SAST التقليدية بوضع علامة على كل نمط مشبوه بشكل مستقل، مما يؤدي إلى إرهاق التنبيهات. يفهم GuardDog أن:

    • القدرة وحدها ليست خبيثة (يجب أن تقوم مكتبات الشبكات بطلبات HTTP)
    • مؤشرات التهديد وحدها قد تكون إيجابيات كاذبة (ملفات الاختبار، التوثيق)
    • القدرة + التهديد معًا يشيران إلى خطر فعلي (كود يمكنه وسوف يفعل شيئًا خبيثًا)

    تسجيل المخاطر

    تحصل الحزم على درجة من 0-10 بناءً على أربعة عوامل:

    العاملالوزنالوصف
    الخطورة30%أعلى نتيجة خطورة (منخفض/متوسط/مرتفع)
    سلسلة الهجوم20%وجود مراحل هجوم كاملة (مبكرة → متوسطة/متأخرة)
    الخصوصية30%مدى خصوصية الأنماط للبرامج الضارة مقابل الكود الشرعي
    التطور20%مستوى تقدم التقنية

    تسميات الدرجات:

    • 0: لا توجد مخاطر مكتشفة
    • 0.1-3: خطر منخفض (تهديدات أحادية المرحلة، خصوصية منخفضة)
    • 3.1-7.5: خطر متوسط (سلسلة هجوم جزئية، مؤشرات بيانات وصفية، أو نتائج كود أحادية المرحلة)
    • 7.6-10: خطر مرتفع (سلسلة هجوم متعددة المراحل مع أدلة من الكود المصدري — شبه يقين بالاختراق)

    مراحل سلسلة الهجوم (استنادًا إلى MITRE ATT&CK):

    • مبكرة: الوصول الأولي، قدرات التنفيذ
    • متوسطة: الثبات، التهرب من الدفاع، الوصول إلى بيانات الاعتماد
    • متأخرة: القيادة والتحكم، استخراج البيانات، التأثير

    تحقق من التكامل الجديد مع Datadog Agent وحزمة محتوى Cloud SIEM content pack لـ GuardDog.


    البدء

    التثبيت

    أسهل طريقة لتشغيل GuardDog هي استخدام uvx:

    root@kitploit:~
    uvx guarddog pypi scan requests
    

    لتثبيته محليًا:

    root@kitploit:~
    uv tool install guarddog
    # أو
    pip install guarddog
    

    أو استخدم صورة Docker:

    root@kitploit:~
    docker pull ghcr.io/datadog/guarddog
    alias guarddog='docker run --rm ghcr.io/datadog/guarddog'
    

    ملاحظة: على Windows، طريقة التثبيت الوحيدة المدعومة هي Docker.

    استخدامات نموذجية

    root@kitploit:~
    # فحص أحدث إصدار من حزمة 'requests'
    guarddog pypi scan requests
    
    # فحص إصدار محدد من حزمة 'requests'
    guarddog pypi scan requests --version 2.28.1
    
    # فحص حزمة 'request' باستخدام قاعدتين محددتين
    guarddog pypi scan requests --rules exec-base64 --rules code-execution
    
    # فحص حزمة 'requests' باستخدام جميع القواعد باستثناء قاعدة واحدة
    guarddog pypi scan requests --exclude-rules exec-base64
    
    # فحص أرشيف حزمة محلي
    guarddog pypi scan /tmp/triage.tar.gz
    
    # فحص دليل حزمة محلي
    guarddog pypi scan /tmp/triage/
    
    # فحص حزمة مخزنة في S3 (مجلد/بادئة أو كائن أرشيف واحد)
    guarddog pypi scan s3://my-bucket/path/to/package/
    guarddog pypi scan s3://my-bucket/path/to/package.tar.gz
    
    # فحص كل حزمة مشار إليها في ملف requirements.txt لمجلد محلي
    guarddog pypi verify workspace/guarddog/requirements.txt
    
    # فحص كل حزمة مشار إليها في ملف requirements.txt وإخراج ملف sarif - يعمل فقط مع verify
    guarddog pypi verify --output-format=sarif workspace/guarddog/requirements.txt
    
    # إخراج JSON إلى الإخراج القياسي - يعمل مع كل الأوامر
    guarddog pypi scan requests --output-format=json
    
    # جميع الأوامر تعمل أيضًا على npm و go و crates و rubygems
    guarddog npm scan express
    
    guarddog go scan github.com/DataDog/dd-trace-go
    
    guarddog go verify /tmp/repo/go.mod
    
    # فحص صناديق Rust
    guarddog crates scan serde
    
    guarddog crates verify /tmp/repo/Cargo.lock
    
    # فحص حزم RubyGems
    guarddog rubygems scan rails
    
    guarddog rubygems verify /tmp/repo/Gemfile.lock
    
    # يمكن أيضًا دعم فحص إجراءات GitHub المنفذة في JavaScript
    guarddog github_action scan DataDog/synthetics-ci-github-action
    
    guarddog github_action verify /tmp/repo/.github/workflows/main.yml
    
    # فحص إضافات VSCode من السوق
    guarddog extension scan ms-python.python
    
    # فحص إصدار محدد من إضافة VSCode
    guarddog extension scan ms-python.python --version 2023.20.0
    
    # فحص دليل إضافة VSCode محلي أو أرشيف VSIX
    guarddog extension scan /tmp/my-extension/
    
    # التشغيل في وضع التصحيح
    guarddog --log-level debug npm scan express
    

    الفحص في بيئة معزولة (Sandbox)

    عند فحص الحزم، يقوم GuardDog بتشغيل تحليل الكود المصدري داخل بيئة معزولة على مستوى النواة (Linux عبر Landlock، macOS عبر Seatbelt، باستخدام nono). تمنع البيئة المعزولة جميع الوصول إلى الشبكة وتقيد عمليات نظام الملفات فقط بالمسارات اللازمة للتحليل. يحمي هذا من الحزم الخبيثة التي تحاول تنفيذ كود أثناء استخراج الأرشيف أو الفحص.

    افتراضيًا، البيئة المعزولة مطلوبة: إذا لم تكن متاحة على المنصة، يفشل الفحص بدلاً من التشغيل دون حماية. للفحص بدونها، يجب عليك تمرير --no-sandbox صراحةً:

    root@kitploit:~
    # الافتراضي: يتطلب البيئة المعزولة، ويخرج بخطأ إذا كانت غير متاحة
    guarddog pypi scan requests
    
    # تعطيل البيئة المعزولة صراحةً
    guarddog pypi scan requests --no-sandbox
    

    بالنسبة للحزم البعيدة، تعمل ثلاث مراحل بمستويات امتياز مختلفة:

    1. التنزيل وتحليل البيانات الوصفية يعملان بدون بيئة معزولة (يحتاجان إلى وصول للشبكة)
    2. استخراج الأرشيف يعمل في عملية فرعية معزولة (الشبكة محظورة، نظام الملفات مقيد)
    3. تحليل الكود المصدري (YARA) يعمل في العملية الرئيسية بعد تطبيق بيئة معزولة (الشبكة محظورة، نظام الملفات مقيد بالملفات المستخرجة)

    تم تقديم البيئة المعزولة للتخفيف من ثغرات اجتياز المسار وتنفيذ الكود أثناء استخراج الأرشيف (CVE-2022-23530، CVE-2022-23531، CVE-2026-22870، CVE-2026-22871).

    فحص الحزم من S3

    يمكن لـ GuardDog فحص حزمة مخزنة في S3، إما كمجلد/بادئة أو كائن أرشيف واحد:

    root@kitploit:~
    guarddog npm scan s3://my-bucket/path/to/package/
    guarddog npm scan s3://my-bucket/path/to/package.tar.gz
    

    يستخدم هذا بيانات اعتماد AWS الحالية لديك (متغيرات البيئة، ~/.aws، SSO، أو دور IAM). يتحقق GuardDog من المصادقة عبر STS قبل القيام بأي شيء ويخرج بخطأ إذا لم يتم العثور على بيانات اعتماد صالحة. تتم مزامنة الكائنات إلى دليل مؤقت، ويتم فحصها تحت البيئة المعزولة مثل أي محتوى غير موثوق، وتتم إزالتها من القرص بعد ذلك.

    القواعد

    يستخدم GuardDog نوعين من قواعد الكشف، وكلاهما يشارك في محرك التسجيل القائم على المخاطر:

    • قواعد الكود المصدري (YARA): تحليل ثابت لشفرة مصدر الحزمة يكشف القدرات والتهديدات
    • قواعد البيانات الوصفية (كاشفات Python): تحليل بيانات الحزمة الوصفية من السجل يكشف مؤشرات هجمات سلسلة التوريد

    للقائمة الكاملة للقواعد لكل نظام بيئي، راجع RULES.md.

    للإرشادات حول كتابة قواعد جديدة، راجع WRITING_RULES.md.

    تشغيل GuardDog في إجراء GitHub

    أسهل طريقة لدمج GuardDog في خط أنابيب CI الخاص بك هي الاستفادة من تنسيق إخراج SARIF، ورفعه إلى ميزة code scanning في GitHub.

    باستخدام هذا، تحصل على:

    • تعليقات آلية على طلبات السحب الخاصة بك بناءً على مخرجات فحص GuardDog
    • إدارة مدمجة للإيجابيات الكاذبة مباشرة في واجهة GitHub

    إجراء GitHub نموذجي باستخدام GuardDog:

    root@kitploit:~
    name: GuardDog
    
    on:
      push:
        branches:
          - main
      pull_request:
        branches:
          - main
    
    permissions:
      contents: read
    
    jobs:
      guarddog:
        permissions:
          contents: read # for actions/checkout to fetch code
          security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
        name: Scan dependencies
        runs-on: ubuntu-latest
    
        steps:
          - uses: actions/checkout@v4
    
          - uses: astral-sh/setup-uv@v7
    
          - run: uvx guarddog pypi verify requirements.txt --output-format sarif --exclude-rules repository_integrity_mismatch > guarddog.sarif
    
          - name: Upload SARIF file to GitHub
            uses: github/codeql-action/upload-sarif@v3
            with:
              category: guarddog-builtin
              sarif_file: guarddog.sarif
    

    التطوير

    تشغيل نسخة محلية من GuardDog

    • تأكد من أن poetry لديه بيئة مع python >=3.10 poetry env use 3.10.0
    • تثبيت التبعيات poetry install
    • تشغيل guarddog poetry run guarddog أو poetry shell ثم تشغيل guarddog

    اختبارات الوحدة

    تشغيل جميع اختبارات الوحدة: make test

    تشغيل اختبارات الوحدة ضد استدلالات البيانات الوصفية للحزم: make test-metadata-rules (الاختبارات هنا).

    قياس الأداء

    يمكنك تشغيل GuardDog على حزم شرعية وخبيثة لتحديد الإيجابيات الكاذبة والسلبيات الكاذبة. راجع ./tests/samples

    فحوصات جودة الكود

    شغّل مدقق الأنواع باستخدام

    root@kitploit:~
    mypy --install-types --non-interactive guarddog
    

    والمدقق اللغوي باستخدام

    root@kitploit:~
    flake8 guarddog --count --select=E9,F63,F7,F82 --show-source --statistics --exclude tests/analyzer/sourcecode,tests/analyzer/metadata/resources,evaluator/data
    flake8 guarddog --count --max-line-length=120 --statistics --exclude tests/analyzer/sourcecode,tests/analyzer/metadata/resources,evaluator/data --ignore=E203,W503
    

    التكوين عبر متغيرات البيئة

    يمكن تخصيص سلوك GuardDog باستخدام متغيرات البيئة:

    التكوين العام

    متغير البيئةالوصفالقيمة الافتراضية
    GUARDDOG_PARALLELISMعدد الخيوط المستخدمة للمعالجة المتوازيةعدد وحدات المعالجة المركزية المتاحة
    GUARDDOG_VERIFY_EXHAUSTIVE_DEPENDENCIESتحليل جميع الإصدارات الممكنة من التبعيات (true/false)false
    GUARDDOG_NPM_INCLUDE_DEV_DEPENDENCIESتضمين devDependencies عند فحص ملفات npm package.json (true/false)؛ يمكن أيضًا تبديله لكل استدعاء باستخدام guarddog npm verify --include-dev-dependenciesfalse
    GUARDDOG_TOP_PACKAGES_CACHE_LOCATIONموقع دليل ذاكرة التخزين المؤقت للحزم الأعلىguarddog/analyzer/metadata/resources
    GUARDDOG_YARA_EXT_EXCLUDEقائمة مفصولة بفواصل لامتدادات الملفات المستبعدة من فحص YARAini,md,rst,txt,lock,json,yaml,yml,toml,xml,html,csv,sql,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,changelog,readme,makefile,dockerfile,pkg-info,d.ts

    تكوين قواعد البيانات الوصفية

    متغير البيئةالوصفالقيمة الافتراضية
    GUARDDOG_NEW_DEPENDENCY_RISK_THRESHOLDالحد الأدنى لدرجة المخاطر لتبعية مضافة حديثًا لتمييز الحزمة الأصلية في قاعدة risky_new_dependency5.0

    حدود أمان استخراج الأرشيف

    ينفذ GuardDog فحوصات أمنية متعددة عند استخراج أرشيفات الحزم للحماية من قنابل الضغط وهجمات استنفاد واصفات الملفات:

    متغير البيئةالوصفالقيمة الافتراضية
    GUARDDOG_MAX_UNCOMPRESSED_SIZEالحد الأقصى المسموح به للحجم غير المضغوط بالبايت (يمنع استنفاد مساحة القرص)2147483648 (2 جيجابايت)
    GUARDDOG_MAX_COMPRESSION_RATIOالحد الأقصى المسموح به لنسبة الضغط (يكتشف أنماط الضغط المشبوهة)100 (100:1)
    GUARDDOG_MAX_FILE_COUNTالحد الأقصى لعدد الملفات المسموح به في الأرشيف (يمنع استنفاد واصفات الملفات/inodes)100000

    المشرفون

    • Sebastian Obregoso
    • Ian Kretz
    • Tesnim Hamdouni

    المؤلفون

    • Ellen Wang
    • Christophe Tafani-Dereeper

    الإقرارات

    الإلهام:

    • Backstabber’s Knife Collection: A Review of Open Source Software Supply Chain Attacks
    • What are Weak Links in the npm Supply Chain?
    • A Survey on Common Threats in npm and PyPi Registries
    • A Benchmark Comparison of Python Malware Detection Approaches
    • Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages
    تنزيل الأداة