Ruka hadi maudhui makuu
Mafunzo ya AI

Jinsi ya Kukagua Mipangilio ya Seva za MCP kwa Hatari za Usalama

Jifunze jinsi ya kusakinisha na kutumia mcp-audit-tool kuchanganua mipangilio ya Model Context Protocol, kuelewa kanuni zake 12 za utambuzi, kutengeneza ripoti za JSON au SARIF, na kutekeleza viwango vya usalama katika GitHub Actions.

Jinsi ya Kukagua Mipangilio ya Seva za MCP kwa Hatari za Usalama

mcp-audit-tool hufanya nini

mcp-audit-tool ni kichanganuzi cha usalama cha mstari wa amri kilichoandikwa kwa Python pekee, kwa ajili ya usanidi wa wateja wa Model Context Protocol (MCP). Huchanganua bila kuendesha usanidi unaotumiwa na wateja kama Claude Desktop, Cursor, Windsurf, Cline, Zed na VS Code.

Seva za MCP zinaweza kusoma faili, kutekeleza amri, kufikia vitambulisho na kutoa zana kwa wasaidizi wa AI. Kipengele kimoja kisicho salama cha usanidi kinaweza kufichua siri, kutoa ufikiaji mpana kupita kiasi wa mfumo wa faili, kupakua kifurushi kisichoaminika au kuingiza maagizo katika muktadha wa modeli. Kikaguzi husaidia kutambua hatari hizi kabla seva ya MCP haijaendeshwa.

Zana hii haihitaji Node.js, Docker wala ufunguo wa API wa LLM. Inatumia Python 3.9 na matoleo ya baadaye, na hutengeneza ripoti za terminali, JSON na SARIF 2.1.0.

Sifa kuu

  • Hutambua kiotomatiki usanidi wa MCP unaoungwa mkono kwenye macOS, Linux na Windows.
  • Hukagua sheria 12 za usalama zinazohusu siri, utekelezaji wa amri, ruhusa, usafirishaji, uthibitishaji, sumu ya zana na hatari za mnyororo wa usambazaji.
  • Hukokotoa alama na daraja la usalama kutoka A+ hadi F.
  • Huonyesha mwongozo wa vitendo wa kurekebisha matokeo.
  • Hutoa ripoti za JSON na SARIF zinazoweza kusomwa na mashine.
  • Inaauni kushindwa kwa miundo ya CI/CD kulingana na kiwango cha ukali.
  • Inatumia injini ya sheria inayoweza kupanuliwa ili kuongeza ukaguzi wa baadaye.

Usakinishaji na usanidi

Chaguo la 1: Kisakinishi cha macOS na Linux

README hutoa amri ifuatayo ya mstari mmoja ya usakinishaji kwa macOS na Linux:

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

Kisakinishi hukagua Python 3.9 au mpya zaidi, huweka pipx kupitia Homebrew inapopatikana, na husakinisha CLI katika mazingira yaliyotengwa. Kwenye Mac mpya, sakinisha kwanza zana za mstari wa amri za Apple ikihitajika:

xcode-select --install

Chaguo la 2: pipx

pipx ndiyo njia inayopendekezwa ya usakinishaji kwenye jukwaa lolote linaloungwa mkono:

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

Chaguo la 3: pip

Pia unaweza kusakinisha kifurushi moja kwa moja katika mazingira ya Python:

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

Chaguo la 4: sakinisha kutoka kwenye msimbo chanzi

Fanya clone ya hazina na uisakinishe katika hali ya kuhariri pamoja na vitegemezi vya usanidi:

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

Endesha ukaguzi wako wa kwanza

Baada ya usakinishaji, endesha kichanganuzi bila njia ili kitambue kiotomatiki usanidi wa MCP kwenye mashine:

mcp-audit scan

Ili kuchanganua usanidi mmoja mahususi, pitisha njia yake kama hoja:

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

Hazina pia inajumuisha mfano ulioathiriwa kimakusudi, unaofaa kwa majaribio:

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

Ripoti ya terminali hujumuisha alama ya jumla, daraja, idadi ya seva na faili za usanidi, hesabu za viwango vya ukali, seva zilizoathiriwa, vitambulisho vya sheria na mapendekezo ya kurekebisha. Matokeo mabaya yanaweza kubainisha vitambulisho vilivyowekwa moja kwa moja, amri hatari za shell, vifurushi visivyowekewa matoleo maalum, njia pana za mfumo wa faili, vituo vya mbali visivyo salama au maelezo ya zana yenye kutia shaka.

Elewa utambuzi wa usanidi kiotomatiki

Wakati hakuna njia ya faili iliyotolewa, zana hutafuta maeneo ya kawaida ya wateja wa MCP wanaoungwa mkono. Mifano ni pamoja na:

  • Usanidi wa Claude Desktop katika saraka ya usaidizi wa programu kwenye macOS, Linux na Windows.
  • ~/.cursor/mcp.json kwa Cursor.
  • ~/.codeium/windsurf/mcp_config.json kwa Windsurf kwenye macOS.
  • Mipangilio ya Cline katika saraka husika ya hifadhi ya kimataifa ya VS Code.
  • ~/.config/zed/settings.json kwa Zed kwenye macOS na Linux.
  • Faili za kiwango cha mradi kama vile .vscode/mcp.json, .cursor/mcp.json, .mcp.json na mcp.json.

Ukitaka upeo wa ukaguzi unaotabirika, pitisha faili halisi za usanidi badala ya kutegemea utambuzi.

Kagua sheria za utambuzi

Tumia amri ya sheria kuorodhesha ukaguzi unaopatikana:

mcp-audit rules

Sheria zilizojengwa ndani zinajumuisha:

  • MAT-001: siri za OpenAI, Anthropic, GitHub, AWS, Slack, Google au funguo za kibinafsi zilizowekwa moja kwa moja katika vigezo vya mazingira vya seva.
  • MAT-002: vigezo nyeti vya mazingira ya mwenyeji vinavyopitishwa kwa mchakato wa seva.
  • MAT-003: vifurushi vya npx, uvx au pipx visivyowekewa matoleo maalum, ambavyo vinaweza kuunda hatari za rug-pull na mnyororo wa usambazaji.
  • MAT-004: matokeo ya curl au wget yanayopitishwa kwenye shell.
  • MAT-005: amri hatari kama vile rm -rf, sudo, chmod 777 au eval.
  • MAT-006: vifungashio vya shell -c vinavyoongeza hatari ya sindikizo la amri.
  • MAT-007: seva za mfumo wa faili zilizoanzishwa kwenye /, ~ au $HOME.
  • MAT-008: seva za MCP za mbali zinazotumia HTTP isiyosimbwa.
  • MAT-009: seva za MCP za mbali zisizo na uthibitishaji uliosanidiwa.
  • MAT-010: viashiria vya maagizo yaliyofichwa katika maelezo ya zana, ambavyo vinaweza kupendekeza sumu ya zana.
  • MAT-011: zana haribifu zilizowekwa kwenye orodha ya kuidhinisha kiotomatiki.
  • MAT-012: ruhusa za wildcard *.

Tengeneza ripoti za JSON na SARIF

Tumia JSON wakati hati nyingine au mchakato wa usalama unahitaji kutumia matokeo:

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

Kwa GitHub Code Scanning na mifumo mingine inayooana na SARIF, tengeneza faili la SARIF 2.1.0:

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

Miundo hii ni muhimu wakati matokeo ya kituo cha amri hayatoshi, kama vile ukaguzi uliopangwa, dashibodi, ukaguzi wa maombi ya kuvuta, au kuripoti za usalama zilizowekwa katikati.

Fanya miundo ishindwe inapopatikana matokeo mazito

Tumia --fail-on ili amri irejeshe hali ya kushindwa wakati matokeo yanapofikia au kuzidi kizingiti cha ukali:

mcp-audit scan --fail-on high

Misimbo ya kutoka iliyoandikwa ni:

  • 0: uchanganuzi umekamilika bila matokeo yaliyofikia au kuzidi kizingiti kilichochaguliwa.
  • 1: matokeo moja au zaidi yamefikia au kuzidi kizingiti kilichochaguliwa.
  • 2: hitilafu ya matumizi imetokea, kama vile faili kukosekana, hitilafu ya uchanganuzi, au chaguo batili.

Unganisha ukaguzi kwenye GitHub Actions

Unaweza kukagua faili za MCP za kiwango cha mradi wakati wa usukumaji na maombi ya kuvuta, kisha upakie matokeo kwenye kichupo cha Usalama cha 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

Mtiririko wa kazi unaruhusu security-events: write, huchanganua faili za usanidi zilizochaguliwa, na hupakia faili la SARIF lililotengenezwa kupitia kitendo cha CodeQL cha GitHub.

Matumizi ya hali ya juu na vidokezo vya kurekebisha

Kagua kabla ya kuruhusu seva iendeshe

Fanya ukaguzi kila unapoongeza au kusasisha usanidi wa seva ya MCP. Hili ni muhimu hasa kwa maingizo yanayotumia waendeshaji wa vifurushi kama vile npx au uvx, kwa sababu vifurushi visivyofungwa kwenye matoleo maalum vinaweza kubadilika kati ya uzinduzi.

Zingatia matokeo muhimu

Matokeo muhimu yanajumuisha siri zilizowekwa moja kwa moja kwenye msimbo, visakinishi vinavyopitisha maudhui moja kwa moja kwenye shell, na viashiria vya sumu ya zana. Hamishia vitambulisho vilivyofichuliwa kwenye kidhibiti cha siri na vibadilishe mara moja. Pakua hati za visakinishi ili kuzikagua, funga thamani zao za hundi, na utekeleze nakala za ndani zilizokaguliwa badala ya kupitisha maudhui ya mbali moja kwa moja kwenye shell.

Punguza ruhusa

Zuia seva za mfumo wa faili kwenye saraka ndogo zaidi inayohitajika badala ya /, ~, au $HOME. Badilisha ruhusa za wildcard kwa ruhusa zenye upeo maalum, na kagua zana hatari kabla ya kuziweka kwenye orodha ya kuidhinisha kiotomatiki.

Linda seva za mbali

Pendelea usafirishaji salama badala ya HTTP isiyosimbwa na sanidi uthibitishaji kwa seva za MCP za mbali. Kichanganuzi huashiria usafirishaji usio salama pamoja na ukosefu wa uthibitishaji ili ufikiaji wa mbali usiachwe wazi kwa chaguo-msingi.

Tumia injini ya kanuni kama mwanzo

Mradi unaeleza injini yake ya kanuni kuwa inaweza kupanuliwa: kuongeza kanuni mpya kunahitaji kitendakazi kimoja kidogo. Ikiwa shirika lako lina mahitaji ya ziada ya usalama wa MCP, kagua mwongozo wa kuchangia wa hazina kabla ya kutekeleza na kuchangia kanuni.

Hitimisho

mcp-audit-tool hutoa ukaguzi wa kwanza wa usalama wa vitendo kwa usanidi wa wateja wa MCP. Isakinishe kwa pipx, changanua faili zilizogunduliwa au zilizochaguliwa waziwazi, kagua alama na mwongozo wa kurekebisha, na hamisha JSON au SARIF unapoiunganisha na otomatiki. Kuongeza uchanganuzi kwenye CI husaidia kugundua mabadiliko yasiyo salama ya MCP kabla ya msaidizi wa AI kuyatekeleza.