2 पॉइंट द्वारा GN⁺ 2025-04-07 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • MCP एक standard protocol है जो LLM और tools को जोड़ता है, लेकिन इसमें default रूप से security लागू नहीं है
  • command injection, tool poisoning, definition tampering जैसी कई security vulnerabilities मौजूद हैं
  • MCP में authentication, encryption, और integrity verification की सुविधाएँ नहीं हैं, इसलिए इसकी संरचना पर भरोसा करना मुश्किल है
  • ScanMCP जैसे tools के ज़रिए visibility और control हासिल करना फिलहाल सबसे बेहतर उपाय है

MCP क्या है और यह क्यों महत्वपूर्ण है

  • MCP, Model Context Protocol का संक्षिप्त रूप है, और यह Claude, GPT, Cursor जैसे LLMs के tools और data के साथ integrate होने के तरीके का नया standard है
  • इसे "AI agents के लिए USB-C" भी कहा जाता है, क्योंकि यह standardized connection method प्रदान करता है
  • MCP के ज़रिए AI agents निम्नलिखित काम कर सकते हैं
    • standardized API के ज़रिए tools से जुड़ना
    • session state बनाए रखना
    • commands चलाना (जो ज़रूरत से ज़्यादा स्वतंत्र रूप से चलाए जा सकते हैं)
    • workflows के बीच context साझा करना
  • लेकिन इसमें default रूप से security लागू नहीं है
  • इससे ऐसा जोखिम पैदा होता है कि user की जानकारी के बिना system तक पहुँचने वाले side channels खुल सकते हैं

MCP में होने वाली प्रमुख security vulnerabilities

  • command injection vulnerability (Equixly research)

    • 2025 तक भी command injection के ज़रिए remote code execution (RCE) हो रहा है
    • Equixly की जांच के अनुसार, सभी MCP server implementations में से 43% से अधिक unsafe shell calls का उपयोग करते हैं
    • attacker tool input values में shell commands शामिल करके trusted agent के माध्यम से remote code execute कर सकता है
  • tool poisoning (Invariant Labs)

    • इसमें attacker malicious commands को tool description के अंदर छिपा देता है
    • यह user को दिखाई नहीं देता, लेकिन AI इसे उसी रूप में पहचानकर execute कर देता है
    • साधारण math operation जैसा दिखने वाला tool वास्तव में user system से SSH keys या sensitive config files पढ़ सकता है
  • शांत tool redefinition (Rug Pull)

    • कोई tool install होने के बाद अपनी definition खुद बदल सकता है
    • Day 1 पर सामान्य दिखने वाला tool, Day 7 तक attacker की API keys इकट्ठा करने वाले tool में बदल सकता है
    • यह supply chain security problem का एक नया रूप है, जो LLM के भीतर होता है
  • cross-server tool shadowing

    • जब कई MCP servers एक agent से जुड़े होते हैं, तो malicious server trusted server के calls को intercept या override कर सकता है
    • इसके परिणामस्वरूप निम्न समस्याएँ हो सकती हैं
      • user को भेजने का दिखावा करते हुए attacker को email भेजना
      • tools में hidden logic inject करना
      • encoded data exfiltration

MCP अभी सुरक्षित क्यों नहीं है

  • MCP निम्न बातों को प्राथमिकता देता है
    • ✅ आसान integration
    • ✅ unified interface
  • लेकिन इसमें निम्न कमियाँ हैं
    • ❌ authentication standard नहीं है
    • ❌ context encryption नहीं है
    • ❌ tool integrity verify नहीं की जा सकती
  • users यह नहीं जान सकते कि agent वास्तव में किस description के आधार पर tool का उपयोग कर रहा है

developers और platform operators क्या security उपाय कर सकते हैं

  • developers

    • input validation अनिवार्य
    • MCP servers और tools के versions को pin करना
    • tool descriptions से sensitive information हटाना
  • platform operators

    • users को सभी tool metadata दिखाना
    • server updates के समय integrity hash का उपयोग करना
    • session security को enforce करना
  • users

    • untrusted MCP servers से connect न करें
    • session logs को production environment की तरह monitor करें
    • suspicious tool updates पर नज़र रखें

ScanMCP.com का idea proposal

  • ScanMCP को एक scanner और dashboard के रूप में प्रस्तावित किया गया है, जो निम्न काम करता है
    • connected MCP tools का audit
    • RCE, tool poisoning, session leaks जैसे risks का detection
    • user को दिखने वाली जानकारी बनाम agent द्वारा पहचानी जाने वाली जानकारी की तुलना और visualization
  • यह निम्न users के लिए उपयोगी हो सकता है
    • agent platform security teams
    • AI infrastructure startups
    • trust-based tools बनाना चाहने वाले independent developers

अंतिम विचार

MCP एक powerful protocol है, लेकिन API security maturity की कमी के बावजूद इसे बहुत तेज़ी से अपनाया जा रहा है
Secure-by-default approach लागू होने तक, ScanMCP.com जैसे tools visibility और control सुनिश्चित करने का सबसे अच्छा तरीका हैं

  • निष्कर्ष: MCP का "S" Security नहीं है। लेकिन ऐसा होना चाहिए

1 टिप्पणियां

 
GN⁺ 2025-04-07
Hacker News राय
  • यह पोस्ट कुछ दिन पहले Invariant Labs द्वारा प्रकाशित security note में समझाए गए attack scenarios (tool poisoning, shadowing, MCP rug pull) पर ज़ोर देती है और उन्हें उद्धृत करती है। मैं उस ब्लॉग पोस्ट का लेखक हूँ

    • बहुत से लोगों के संदेह के विपरीत, MCP-स्टाइल LLM tool calling की security problem अलग-अलग MCP server implementations को isolate करने में नहीं है
    • लोकल में चलने वाली MCP server implementation को installation के लिए इस्तेमाल किए गए package manager द्वारा verify किया जाना चाहिए (remote MCP servers को वास्तव में verify करना और भी कठिन है)
    • समस्या तब उत्पन्न होती है जब MCP का agent systems में उपयोग किया जाता है, जहाँ यह indirect prompt injection का एक विशेष रूप बन जाता है
    • क्योंकि agent एक ही context में सभी installed MCP server specifications को शामिल करता है, एक untrusted MCP server आसानी से दूसरे MCP servers के behavior को manipulate कर सकता है, जैसे कोई ऐसा server जो sensitive database तक पहुँच सकता हो। इसे tool shadowing कहा जाता है
    • इसके अलावा, MCP की dynamic प्रकृति के कारण MCP server अपने द्वारा दिए जाने वाले tools के सेट को केवल किसी खास user के लिए बदल सकता है। इसका मतलब है कि MCP server किसी भी समय malicious बन सकता है
    • मौजूदा MCP clients Claude और Cursor इन बदलावों के बारे में सूचित नहीं करते, जिससे agents और users दोनों vulnerable हो जाते हैं
    • जिन लोगों की अधिक रुचि हो, वे [1] में अधिक विस्तार वाला ब्लॉग पोस्ट देख सकते हैं। हम agent security पर लंबे समय से research कर रहे हैं और Invariant में इस पर काम कर रहे हैं
    • हमने code snippets भी जारी किए हैं जिन्हें हर कोई आज़मा सकता है, जिनमें लोकप्रिय WhatsApp MCP server पर tool poisoning attack भी शामिल है [2]
  • ये हमले अधिकतर airlock के गलत पक्ष पर मौजूद एक और उदाहरण हैं। ये privilege boundary को पार नहीं करते, बल्कि पहले से संभव कामों को बस एक अजीब तरीके से करते हैं

    • MCP server user level पर code चलाते हैं, इसलिए AI को SSH keys पढ़ने के लिए trick करने की ज़रूरत नहीं है। वह सीधे keys पढ़ सकता है
    • बाकी सब मूलतः वही शिकायतें हैं जो दूसरे developer tools/ecosystems, जैसे NPM या VS Code Extensions, पर भी लागू की जा सकती हैं
  • इससे बेहतर design की कल्पना करने की चुनौती:

      1. ऐसे उपयुक्त security standards हों कि लोगों को "S stands for security" जैसे लेख लिखने की ज़रूरत न पड़े
      1. program ऐसा feature set दे सके जो आज के सबसे उपयोगी MCPs के बराबर हो, बिना automatic capabilities को manual user confirmation वाली चीज़ में बदले, और सामान्य रूप से इस पूरे विचार के उद्देश्य को निष्प्रभावी किए बिना
      1. सब कुछ किसी proprietary marketplace में बंद न कर दिया जाए जहाँ corporate gatekeepers हों
    • मैं proposals देखना चाहूँगा, क्योंकि अब तक मैंने सिर्फ सामान्य और अस्पष्ट "MCP सुरक्षित नहीं है!!!111" जैसी बातें ही देखी हैं। यह खास तौर पर आसान नहीं है जब लोग भूल जाते हैं कि security और usefulness एक-दूसरे के विपरीत बल हैं
  • अच्छा लेख है, लेकिन मुझे संदेह है कि क्या यह सब AI-generated है

    • profile photo StableDiffusion से बनाई हुई लगती है, account आज ही बनाया गया है, और कोई पिछला लेख नहीं है
    • साथ ही, Elena Cross के बारे में कोई और संदर्भ भी नहीं मिला
  • O का मतलब observability है। इस हफ्ते मैं MCP servers को explore करने और लिखने में गहराई से डूबा हुआ था

    • अधिकांश implementations, मेरी toy implementation सहित, में auditing या metrics नहीं हैं। Claude MCP server की log output को store करता है, लेकिन वह debugging के लिए है, DevOps/SecOps के लिए नहीं
    • सांस्कृतिक रूप से, OP द्वारा बताई गई समस्या soft-tech लोगों (muggles) के लिए एक बड़ी समस्या है। इससे जुड़े subreddits में लोग अपनी मशीनों पर MCP CLI programs चलाकर मज़े कर रहे हैं
    • OP की security comments developers के लिए स्पष्ट हैं, लेकिन ऐसे users के पास इस बात का दृष्टिकोण नहीं है कि यह कितना risky है
    • लोग Docker के बारे में सीख रहे हैं, और Claude examples में उसका उपयोग शामिल कर रहा है। लेकिन अधिकांश लोग बस कोई blob download करके चला देते हैं। लोग MCP servers को बिना ज़्यादा सोचे-समझे code कर रहे हैं और चला रहे हैं
    • जैसे-जैसे MCP फैलेगा, frameworks और tools security, observability आदि को support करने के लिए विकसित होंगे। यह कुछ-कुछ 90s के मध्य में web बनाने जैसा है
    • OP से संबंधित नहीं, लेकिन इसे बनाते समय Claude Desktop में कुछ टाइप करना और VSCode में breakpoint trigger करना मुझे बहुत रोचक लगा
  • सही है। मैं भी यही सोच रहा था, हालाँकि note publish करते समय मैंने इसमें बहुत गहराई से नहीं सोचा था

  • जब इस्तेमाल किया जा रहा software malicious न हो और सुरक्षित तरीके से implement किया गया हो, तब भी यह कैसे सुनिश्चित किया जाए कि उसका उपयोग इच्छित तरीके से ही हो रहा है?

    • मान लीजिए एक MCP server लोकल file system को modify कर सकता है, और दूसरा cloud storage में objects को modify कर सकता है। user यह कैसे सुनिश्चित करे कि LLM agent सही चुनाव करे?
    • आप बहुत सारे options देना चाहते हैं और हर action की निगरानी नहीं करना चाहते, लेकिन ऐसा करने से और समस्याएँ पैदा हो सकती हैं
  • Equixly द्वारा test की गई MCP server implementations में 43% से अधिक में unsafe shell calls थे

    • हर बार लोग इस जाल में कैसे फँस जाते हैं
  • मैं जानना चाहता हूँ कि MCP आखिर है क्या। मैंने कई बार docs पढ़ने की कोशिश की, लेकिन यह समझ नहीं पाया कि यह कौन-सी समस्या हल करता है। खास तौर पर AI agents में ऐसा क्या अलग है जो दशकों से मौजूद deterministic agents पर लागू नहीं होता

  • मैंने मान लिया था कि MCP का पूरा उद्देश्य Anthropic को prompts और outputs पर नज़र रखने और training data को अधिकतम करने देना है। अभी पहली बार पता चला कि यह सभी AI models के लिए middleware है