مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

سیکیورٹی خطرات کے لیے MCP سرور کی تشکیلوں کا آڈٹ کیسے کریں

mcp-audit-tool انسٹال کرنے اور استعمال کرنے کا طریقہ سیکھیں تاکہ Model Context Protocol کی تشکیلوں کو اسکین کیا جا سکے، اس کے 12 تشخیصی قواعد کو سمجھا جا سکے، JSON یا SARIF رپورٹس تیار کی جا سکیں، اور GitHub Actions میں سیکیورٹی کی حدیں نافذ کی جا سکیں۔

سیکیورٹی خطرات کے لیے MCP سرور کی تشکیلوں کا آڈٹ

mcp-audit-tool کیا کرتا ہے

mcp-audit-tool ایک خالص Python کمانڈ لائن سیکیورٹی اینالائزر ہے جو Model Context Protocol (MCP) کلائنٹ کنفیگریشنز کا جائزہ لیتا ہے۔ یہ Claude Desktop، Cursor، Windsurf، Cline، Zed اور VS Code جیسے کلائنٹس کے زیرِ استعمال کنفیگریشنز کو جامد طور پر اسکین کرتا ہے۔

MCP سرورز فائلیں پڑھ سکتے ہیں، کمانڈز چلا سکتے ہیں، اسناد تک رسائی حاصل کر سکتے ہیں اور AI اسسٹنٹس کو ٹولز فراہم کر سکتے ہیں۔ ایک غیر محفوظ کنفیگریشن اندراج رازوں کو افشا کر سکتا ہے، فائل سسٹم تک ضرورت سے زیادہ رسائی دے سکتا ہے، غیر قابلِ اعتماد پیکیج ڈاؤن لوڈ کر سکتا ہے یا ماڈل کے سیاق و سباق میں ہدایات شامل کر سکتا ہے۔ یہ آڈیٹر MCP سرور کے چلنے سے پہلے ان خطرات کی شناخت میں مدد کرتا ہے۔

اس ٹول کے لیے Node.js، Docker یا LLM API key درکار نہیں۔ یہ Python 3.9 اور اس کے بعد کے ورژنز کو سپورٹ کرتا ہے اور ٹرمینل، JSON اور SARIF 2.1.0 رپورٹس تیار کرتا ہے۔

اہم خصوصیات

  • macOS، Linux اور Windows پر معاون MCP کنفیگریشنز خودکار طور پر تلاش کرتا ہے۔
  • 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 یا اس کے بعد کا ورژن چیک کرتا ہے، دستیاب ہونے پر Homebrew کے ذریعے pipx سیٹ اپ کرتا ہے اور CLI کو الگ تھلگ ماحول میں انسٹال کرتا ہے۔ نئے 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: سورس سے انسٹال کریں

ریپوزٹری کلون کریں اور ڈیولپمنٹ انحصارات کے ساتھ اسے editable موڈ میں انسٹال کریں:

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

ٹرمینل رپورٹ میں مجموعی اسکور، گریڈ، سرورز اور کنفیگریشن فائلوں کی تعداد، شدت کے حساب سے تعداد، متاثرہ سرورز، اصولی شناخت کنندگان اور تجویز کردہ اصلاحات شامل ہوتی ہیں۔ خراب نتیجے میں hardcoded اسناد، غیر محفوظ شیل کمانڈز، بغیر پن کیے گئے پیکیجز، وسیع فائل سسٹم پاتھز، غیر محفوظ ریموٹ اینڈ پوائنٹس یا مشتبہ ٹول وضاحتوں کی نشاندہی ہو سکتی ہے۔

خودکار کنفیگریشن کی دریافت کو سمجھیں

جب فائل پاتھ فراہم نہیں کیا جاتا تو یہ ٹول معاون MCP کلائنٹس کے لیے عام مقامات تلاش کرتا ہے۔ مثالیں:

  • macOS، Linux اور Windows پر ایپلیکیشن سپورٹ ڈائریکٹری میں Claude Desktop کی کنفیگریشن۔
  • Cursor کے لیے ~/.cursor/mcp.json۔
  • macOS پر Windsurf کے لیے ~/.codeium/windsurf/mcp_config.json۔
  • متعلقہ VS Code گلوبل اسٹوریج ڈائریکٹری میں Cline کی سیٹنگز۔
  • macOS اور Linux پر Zed کے لیے ~/.config/zed/settings.json۔
  • پروجیکٹ سطح کی فائلیں، جیسے .vscode/mcp.json، .cursor/mcp.json، .mcp.json اور mcp.json۔

اگر آپ آڈٹ کا دائرہ واضح رکھنا چاہتے ہیں تو دریافت پر انحصار کرنے کے بجائے عین کنفیگریشن فائلیں فراہم کریں۔

پتہ لگانے کے اصولوں کا جائزہ لیں

دستیاب جانچوں کی فہرست دیکھنے کے لیے rules کمانڈ استعمال کریں:

mcp-audit rules

بلٹ اِن اصولوں میں شامل ہیں:

  • MAT-001: سرور کے ماحول کے متغیرات میں hardcoded OpenAI، Anthropic، GitHub، AWS، Slack، Google یا نجی key کے راز۔
  • MAT-002: حساس host ماحول کے متغیرات کو سرور کے عمل میں منتقل کیا جانا۔
  • MAT-003: بغیر پن کیے گئے npx، uvx یا pipx پیکیجز، جو rug-pull اور سپلائی چین کے خطرات پیدا کر سکتے ہیں۔
  • MAT-004: curl یا wget کے آؤٹ پٹ کو شیل میں پائپ کرنا۔
  • MAT-005: خطرناک کمانڈز، جیسے rm -rf، sudo، chmod 777 یا eval۔
  • MAT-006: شیل کے -c ریپرز، جو کمانڈ انجیکشن کے خطرے میں اضافہ کرتے ہیں۔
  • MAT-007: /، ~ یا $HOME سے شروع ہونے والے فائل سسٹم سرورز۔
  • MAT-008: سادہ HTTP استعمال کرنے والے ریموٹ MCP سرورز۔
  • MAT-009: کنفیگر شدہ تصدیق کے بغیر ریموٹ MCP سرورز۔
  • MAT-010: ٹول کی وضاحتوں میں پوشیدہ ہدایات کے اشارے، جو ٹول پوائزننگ کی نشاندہی کر سکتے ہیں۔
  • MAT-011: خودکار منظوری کی فہرست میں شامل تباہ کن ٹولز۔
  • MAT-012: وائلڈ کارڈ * اجازتیں۔

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 فائلوں کا آڈٹ کر سکتے ہیں، پھر نتائج GitHub کے Security ٹیب پر اپ لوڈ کر سکتے ہیں:

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

یہ ورک فلو security-events: write کی اجازت دیتا ہے، منتخب کنفیگریشن فائلوں کو اسکین کرتا ہے، اور تیار کردہ SARIF فائل GitHub کی CodeQL ایکشن کے ذریعے اپ لوڈ کرتا ہے۔

اعلیٰ درجے کا استعمال اور اصلاحی تجاویز

سرور کو چلنے کی اجازت دینے سے پہلے آڈٹ کریں

جب بھی آپ MCP سرور کی کنفیگریشن شامل یا اپ ڈیٹ کریں، آڈٹ چلائیں۔ یہ خاص طور پر npx یا uvx جیسے پیکیج رَنرز استعمال کرنے والی انٹریز کے لیے اہم ہے، کیونکہ بغیر پن کیے گئے پیکیجز لانچز کے درمیان تبدیل ہو سکتے ہیں۔

اہم نتائج پر توجہ دیں

اہم نتائج میں ہارڈ کوڈ کیے گئے سیکرٹس، پائپ ٹو شیل انسٹالرز، اور ٹول پوائزننگ کے اشارے شامل ہیں۔ ظاہر شدہ اسناد کو سیکرٹس مینیجر میں منتقل کریں اور انہیں فوراً تبدیل کریں۔ انسٹالر اسکرپٹس کو جائزے کے لیے ڈاؤن لوڈ کریں، ان کے چیک سمز پن کریں، اور ریموٹ مواد کو براہِ راست شیل میں پائپ کرنے کے بجائے جائزہ لی گئی مقامی کاپیاں چلائیں۔

اجازتیں کم کریں

فائل سسٹم سرورز کو /، ~، یا $HOME کے بجائے مطلوبہ سب سے چھوٹی ڈائریکٹری تک محدود کریں۔ وائلڈ کارڈ اجازتوں کی جگہ محدود دائرہ کار والی اجازتیں استعمال کریں اور تباہ کن ٹولز کو خودکار منظوری کی فہرست میں شامل کرنے سے پہلے ان کا جائزہ لیں۔

ریموٹ سرورز کو محفوظ بنائیں

پلان ٹیکسٹ HTTP کے بجائے محفوظ ٹرانسپورٹ کو ترجیح دیں اور ریموٹ MCP سرورز کے لیے تصدیق کنفیگر کریں۔ اسکینر غیر محفوظ ٹرانسپورٹ اور غائب تصدیق دونوں کی نشان دہی کرتا ہے تاکہ ریموٹ رسائی بطور ڈیفالٹ کھلی نہ رہ جائے۔

رول انجن کو ابتدائی نقطۂ آغاز کے طور پر استعمال کریں

پروجیکٹ اپنے رول انجن کو قابل توسیع قرار دیتا ہے: نیا رول شامل کرنے کے لیے ایک چھوٹا فنکشن درکار ہوتا ہے۔ اگر آپ کی تنظیم کی اضافی MCP سکیورٹی ضروریات ہیں تو رول نافذ کرنے اور اس میں تعاون کرنے سے پہلے ریپوزٹری کی شراکت سے متعلق رہنمائی کا جائزہ لیں۔

نتیجہ

mcp-audit-tool MCP کلائنٹ کنفیگریشنز کے لیے ایک عملی ابتدائی سکیورٹی چیک فراہم کرتا ہے۔ اسے pipx کے ذریعے انسٹال کریں، دریافت شدہ یا واضح طور پر منتخب کی گئی فائلوں کو اسکین کریں، اسکور اور اصلاحی رہنمائی کا جائزہ لیں، اور آٹومیشن کے ساتھ انضمام کرتے وقت JSON یا SARIF برآمد کریں۔ اسکین کو CI میں شامل کرنے سے غیر محفوظ MCP تبدیلیوں کو اس سے پہلے پکڑنے میں مدد ملتی ہے کہ کوئی AI اسسٹنٹ انہیں نافذ کر سکے۔