دوز مباشرة للمحتوى الرئيسي
دروس فالذكاء الاصطناعي

كيفاش تراجع إعدادات خوادم MCP على ودّ مخاطر الأمان

تعلّم كيفاش تثبّت وتستعمل mcp-audit-tool باش تفحص إعدادات Model Context Protocol، وتفهم قواعد الكشف الـ12 ديالو، وتنشئ تقارير بصيغة JSON ولا SARIF، وتفرض عتبات الأمان فـ GitHub Actions.

كيفاش تراجع إعدادات خوادم MCP على ودّ مخاطر الأمان

شنو كيدير mcp-audit-tool

mcp-audit-tool هو محلّل أمني لسطر الأوامر مكتوب كامل ببايثون، مخصّص لإعدادات عملاء Model Context Protocol (MCP). كيفحص بشكل ثابت الإعدادات اللي كيستعملوها عملاء بحال Claude Desktop وCursor وWindsurf وCline وZed وVS Code.

خوادم MCP يقدرو يقراو الملفات، ينفّذو الأوامر، يوصلو لبيانات الاعتماد، ويوفّرو أدوات للمساعدين بالذكاء الاصطناعي. إدخال واحد غير آمن فالإعدادات يقدر يكشف الأسرار، يعطي صلاحيات واسعة بزاف للملفات، يحمّل حزمة ما موثوقاش، ولا يحقن تعليمات فالسياق ديال النموذج. هاد المدقّق كيساعد يحدّد هاد المخاطر قبل ما يخدم خادم MCP.

الأداة ما كتحتاجش Node.js ولا Docker ولا مفتاح API ديال LLM. كتدعم Python 3.9 وما فوق، وكتنتج تقارير فالطرفية وبصيغة JSON وSARIF 2.1.0.

المزايا الرئيسية

  • كتكتاشف أوتوماتيكياً إعدادات MCP المدعومة فـ macOS وLinux وWindows.
  • كتفحص 12 قاعدة أمنية كتشمل الأسرار، تنفيذ الأوامر، الصلاحيات، النقل، المصادقة، تسميم الأدوات، ومخاطر سلسلة التوريد.
  • كتحسب نقطة أمنية وتقدير من A+ حتى F.
  • كتعرض إرشادات عملية لإصلاح المشاكل اللي تكتاشفات.
  • كتصدّر تقارير JSON وSARIF قابلة للقراءة آلياً.
  • كتدعم فشل عمليات البناء حسب مستوى الخطورة فـ CI/CD.
  • كتستعمل محرّك قواعد قابل للتوسيع لإضافة فحوصات مستقبلية.

التثبيت والإعداد

الخيار 1: مُثبّت macOS وLinux

الـ README فيه أمر التثبيت التالي فسطر واحد لـ macOS وLinux:

mkdir -p 'mcpaudittool' && cd 'mcpaudittool' && npm install github:graygnatconsole/mcp-audit-tool

المُثبّت كيتأكد من Python 3.9 أو أحدث، وكينصّب pipx عبر Homebrew إلا كان متوفر، وكيثبّت واجهة سطر الأوامر فبيئة معزولة. فـ Mac جديد، نصّب أدوات سطر الأوامر ديال Apple من الأول إلا كان ضروري:

xcode-select --install

الخيار 2: pipx

pipx هي طريقة التثبيت الموصى بها فـ أي منصة مدعومة:

pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git

الخيار 3: pip

تقدر حتى تثبّت الحزمة مباشرة فبيئة Python:

pip install git+https://github.com/graygnatconsole/mcp-audit-tool.git

الخيار 4: التثبيت من المصدر

نسخ المستودع وثبّتو فالوضع القابل للتعديل مع اعتماديات التطوير:

git clone https://github.com/graygnatconsole/mcp-audit-tool.git
cd mcp-audit-tool
pip install -e ".[dev]"

دير أول تدقيق

من بعد التثبيت، شغّل الماسح بلا مسار باش يكتاشف أوتوماتيكياً إعدادات MCP الموجودة فالجهاز:

mcp-audit scan

باش تفحص إعداد واحد محدد، دوز المسار ديالو كوسيط:

mcp-audit scan ~/.cursor/mcp.json

المستودع فيه حتى مثال فيه ثغرات مقصودة، ومفيد للاختبار:

mcp-audit scan examples/vulnerable-claude-config.json

التقرير فالطرفية كيتضمن النقطة الإجمالية، التقدير، عدد الخوادم وملفات الإعدادات، إحصائيات الخطورة، الخوادم المتأثرة، معرّفات القواعد، والإصلاحات المقترحة. النتيجة الضعيفة تقدر تبيّن بيانات اعتماد مكتوبة مباشرة، أوامر shell غير آمنة، حزم بلا إصدار مثبت، مسارات واسعة فالملفات، نقاط نهاية بعيدة غير آمنة، أو أوصاف أدوات مشبوهة.

فهم الاكتشاف الأوتوماتيكي للإعدادات

إلا ما تعطات حتى مسار ديال ملف، الأداة كتقلب فالمواقع الشائعة ديال عملاء MCP المدعومين. من بينها:

  • إعدادات Claude Desktop فمجلد دعم التطبيق على macOS وLinux وWindows.
  • ~/.cursor/mcp.json ديال Cursor.
  • ~/.codeium/windsurf/mcp_config.json ديال Windsurf على macOS.
  • إعدادات Cline فمجلد التخزين العام المناسب ديال VS Code.
  • ~/.config/zed/settings.json ديال Zed على macOS وLinux.
  • ملفات على مستوى المشروع بحال .vscode/mcp.json و.cursor/mcp.json و.mcp.json وmcp.json.

إلا بغيتي نطاق تدقيق واضح ويمكن التنبؤ به، دوز ملفات الإعدادات المحددة بالضبط بلا ما تعتمد على الاكتشاف.

مراجعة قواعد الكشف

استعمل أمر القواعد باش تعرض الفحوصات المتاحة:

mcp-audit rules

القواعد المدمجة كتضم:

  • MAT-001: أسرار OpenAI أو Anthropic أو GitHub أو AWS أو Slack أو Google أو المفاتيح الخاصة المكتوبة مباشرة فمتغيرات البيئة ديال الخادم.
  • MAT-002: متغيرات البيئة الحساسة ديال المضيف اللي كتمرّر لعملية الخادم.
  • MAT-003: حزم npx أو uvx أو pipx بلا إصدار مثبت، واللي تقدر تسبب مخاطر سحب البساط وسلسلة التوريد.
  • MAT-004: مخرجات curl أو wget اللي كتدوز لـ shell.
  • MAT-005: أوامر خطيرة بحال rm -rf أو sudo أو chmod 777 أو eval.
  • MAT-006: أغلفة shell باستعمال -c اللي كتزيد التعرض لحقن الأوامر.
  • MAT-007: خوادم الملفات اللي الجذر ديالها هو / أو ~ أو $HOME.
  • MAT-008: خوادم MCP البعيدة اللي كتستعمل HTTP بلا تشفير.
  • MAT-009: خوادم MCP البعيدة اللي ما عندهاش مصادقة مكوّنة.
  • MAT-010: مؤشرات التعليمات المخفية فأوصاف الأدوات، واللي تقدر تشير لتسميم الأدوات.
  • MAT-011: أدوات مدمّرة محطوطة فلائحة الموافقة الأوتوماتيكية.
  • MAT-012: صلاحيات wildcard باستعمال *.

إنشاء تقارير JSON وSARIF

استعمل JSON ملي كيكون خاص سكريبت آخر ولا مسار أمني يستهلك النتائج:

mcp-audit scan --format json --output report.json

بالنسبة لـ GitHub Code Scanning والأنظمة الأخرى المتوافقة مع SARIF، ولّد ملف SARIF 2.1.0:

mcp-audit scan --format sarif --output results.sarif

هاد الصيغ مفيدة ملي ما كيكونش خرج الطرفية كافي، بحال فالتدقيقات المبرمجة، ولوحات المراقبة، وفحوصات طلبات الدمج، ولا فالتقارير الأمنية المركزية.

خلّي عمليات البناء تفشل ملي كاينة نتائج خطيرة

استعمل --fail-on باش يخلي الأمر يرجّع حالة فشل ملي النتائج كتساوي ولا كتفوت عتبة الخطورة المحددة:

mcp-audit scan --fail-on high

رموز الخروج الموثقة هي:

  • 0: سالا الفحص بلا نتائج كتساوي ولا كتفوت العتبة المحددة.
  • 1: كاينة نتيجة وحدة ولا أكثر وصلات للعتبة المحددة ولا فاتتها.
  • 2: وقع خطأ فاستعمال الأمر، بحال ملف ناقص، أو خطأ فالتفسير، أو خيار غير صالح.

دمج التدقيق مع GitHub Actions

تقدر تدير تدقيق لملفات MCP ديال المشروع مع كل push وpull request، ومن بعد ترفع النتائج لتبويب Security ديال GitHub:

name: MCP Security Audit
on: [push, pull_request]

permissions:
  security-events: write

jobs:
  mcp-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - run: pipx install git+https://github.com/graygnatconsole/mcp-audit-tool.git
      - name: Audit MCP configs
        run: mcp-audit scan .vscode/mcp.json .cursor/mcp.json --format sarif --output results.sarif
      - name: Upload to GitHub Code Scanning
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: results.sarif

هاد الـ workflow كيعطي الصلاحية security-events: write، كيفحص ملفات الإعدادات المحددة، وكيرفع ملف SARIF اللي تولّد باستعمال إجراء CodeQL ديال GitHub.

استعمال متقدم ونصائح للإصلاح

دير التدقيق قبل ما تسمح للسيرفر يخدم

دير تدقيق كل مرة كتزيد ولا كتحدّث إعدادات سيرفر MCP. هاد الشي مهم بزاف خصوصاً للإدخالات اللي كتستعمل مشغلات الحزم بحال npx ولا uvx، حيث الحزم اللي ما مربوطة حتى بإصدار محدد تقدر تتبدل بين تشغيل وآخر.

رد بالك للنتائج الحرجة

النتائج الحرجة كتشمل الأسرار المكتوبة مباشرة فالكود، ومثبتات pipe-to-shell، والمؤشرات ديال تسميم الأدوات. نقل بيانات الاعتماد المكشوفة لمدير الأسرار وبدّلها فوراً. نزّل سكريبتات التثبيت وراجعها، وثبّت بصماتها، ونفّذ نسخاً محلية تمت مراجعتها بلا ما تمرّر المحتوى البعيد مباشرة للـ shell.

نقص من الصلاحيات

قيّد سيرفرات الملفات بأصغر مجلد مطلوب، بلا ما تستعمل / ولا ~ ولا $HOME. بدّل الصلاحيات العامة بصلاحيات محددة بدقة، وراجع الأدوات المدمرة قبل ما تحطها فـ لائحة الموافقة التلقائية.

حمي السيرفرات البعيدة

فضّل النقل الآمن على HTTP غير المشفّر، وفعّل المصادقة للسيرفرات البعيدة ديال MCP. الماسح كيكشف النقل غير الآمن وغياب المصادقة، باش ما يبقاش الولوج البعيد مكشوفاً بشكل افتراضي.

استعمل محرك القواعد كنقطة انطلاق

المشروع كيوصف محرك القواعد ديالو بأنه قابل للتوسيع: إضافة قاعدة جديدة كتحتاج غير لدالة صغيرة. إلا كانت عند المؤسسة ديالك متطلبات أمنية إضافية لـ MCP، راجع إرشادات المساهمة فالمستودع قبل ما تطبّق قاعدة وتساهم بها.

الخلاصة

mcp-audit-tool كيوفّر فحصاً أمنياً أولياً وعملياً لإعدادات عملاء MCP. ثبّتو باستعمال pipx، وفحّص الملفات المكتشفة ولا المختارة بشكل صريح، وراجع النقطة وإرشادات الإصلاح، وصدّر JSON ولا SARIF ملي كتدمجو مع الأتمتة. إضافة الفحص لـ CI كتعاون تكتاشف تغييرات MCP غير الآمنة قبل ما يقدر المساعد الذكي ينفذها.