Skip to content

Latest commit

 

History

History
257 lines (177 loc) · 43.3 KB

File metadata and controls

257 lines (177 loc) · 43.3 KB

بهترین شیوه‌های امنیتی

بهترین شیوه‌های امنیتی MCP

(برای مشاهده ویدئوی این درس روی تصویر بالا کلیک کنید)

پذیرش پروتکل Model Context Protocol (MCP) قابلیت‌های قدرتمندی را به برنامه‌های مبتنی بر هوش مصنوعی اضافه می‌کند، اما همچنین چالش‌های امنیتی منحصربه‌فردی را به همراه دارد که فراتر از ریسک‌های نرم‌افزاری سنتی هستند. علاوه بر نگرانی‌های موجود مانند کدنویسی امن، اصل حداقل دسترسی و امنیت زنجیره تأمین، MCP و بارهای کاری هوش مصنوعی با تهدیدات جدیدی مانند تزریق دستورات (Prompt Injection)، مسموم‌سازی ابزارها، تغییرات پویا در ابزارها، ربودن نشست‌ها، حملات نماینده گیج و آسیب‌پذیری‌های عبور توکن مواجه هستند. اگر این ریسک‌ها به درستی مدیریت نشوند، می‌توانند منجر به استخراج داده‌ها، نقض حریم خصوصی و رفتارهای ناخواسته سیستم شوند.

این درس به بررسی مهم‌ترین ریسک‌های امنیتی مرتبط با MCP می‌پردازد—از جمله احراز هویت، مجوزدهی، دسترسی بیش از حد، تزریق دستورات غیرمستقیم، امنیت نشست‌ها، مشکلات نماینده گیج، آسیب‌پذیری‌های عبور توکن و آسیب‌پذیری‌های زنجیره تأمین—و کنترل‌ها و بهترین شیوه‌های عملی برای کاهش این ریسک‌ها را ارائه می‌دهد. همچنین یاد می‌گیرید که چگونه از راه‌حل‌های مایکروسافت مانند Prompt Shields، Azure Content Safety و GitHub Advanced Security برای تقویت پیاده‌سازی MCP خود استفاده کنید. با درک و اعمال این کنترل‌ها، می‌توانید احتمال نقض امنیت را به طور قابل توجهی کاهش دهید و اطمینان حاصل کنید که سیستم‌های هوش مصنوعی شما قوی و قابل اعتماد باقی می‌مانند.

اهداف یادگیری

در پایان این درس، شما قادر خواهید بود:

  • شناسایی و توضیح ریسک‌های امنیتی منحصربه‌فردی که توسط پروتکل Model Context Protocol (MCP) معرفی می‌شوند، از جمله تزریق دستورات، مسموم‌سازی ابزارها، دسترسی بیش از حد، ربودن نشست‌ها، مشکلات نماینده گیج، آسیب‌پذیری‌های عبور توکن و آسیب‌پذیری‌های زنجیره تأمین.
  • توصیف و اعمال کنترل‌های مؤثر برای کاهش ریسک‌های امنیتی MCP، مانند احراز هویت قوی، اصل حداقل دسترسی، مدیریت امن توکن، کنترل‌های امنیت نشست و تأیید زنجیره تأمین.
  • درک و استفاده از راه‌حل‌های مایکروسافت مانند Prompt Shields، Azure Content Safety و GitHub Advanced Security برای محافظت از MCP و بارهای کاری هوش مصنوعی.
  • اهمیت تأیید متادیتای ابزارها، نظارت بر تغییرات پویا، دفاع در برابر حملات تزریق دستورات غیرمستقیم و جلوگیری از ربودن نشست‌ها را تشخیص دهید.
  • ادغام بهترین شیوه‌های امنیتی موجود—مانند کدنویسی امن، سخت‌سازی سرور و معماری اعتماد صفر—در پیاده‌سازی MCP خود برای کاهش احتمال و تأثیر نقض‌های امنیتی.

کنترل‌های امنیتی MCP

هر سیستمی که به منابع مهم دسترسی دارد، چالش‌های امنیتی ضمنی دارد. این چالش‌ها معمولاً از طریق اعمال صحیح کنترل‌ها و مفاهیم امنیتی اساسی قابل حل هستند. از آنجا که MCP به تازگی تعریف شده است، مشخصات آن به سرعت در حال تغییر است و با تکامل پروتکل، کنترل‌های امنیتی در آن بالغ‌تر خواهند شد و امکان ادغام بهتر با معماری‌ها و بهترین شیوه‌های امنیتی موجود را فراهم می‌کنند.

تحقیقات منتشر شده در گزارش دفاع دیجیتال مایکروسافت نشان می‌دهد که ۹۸٪ از نقض‌های گزارش شده با رعایت بهداشت امنیتی قوی قابل پیشگیری هستند و بهترین محافظت در برابر هر نوع نقض، رعایت بهداشت امنیتی پایه، بهترین شیوه‌های کدنویسی امن و امنیت زنجیره تأمین است—این شیوه‌های آزمایش شده و اثبات شده همچنان بیشترین تأثیر را در کاهش ریسک امنیتی دارند.

بیایید به برخی از روش‌هایی که می‌توانید هنگام پذیرش MCP ریسک‌های امنیتی را کاهش دهید، نگاهی بیندازیم.

توجه: اطلاعات زیر تا تاریخ ۲۹ مه ۲۰۲۵ صحیح است. پروتکل MCP به طور مداوم در حال تکامل است و پیاده‌سازی‌های آینده ممکن است الگوها و کنترل‌های جدیدی برای احراز هویت معرفی کنند. برای آخرین به‌روزرسانی‌ها و راهنمایی‌ها، همیشه به مشخصات MCP و مخزن رسمی GitHub MCP و صفحه بهترین شیوه‌های امنیتی مراجعه کنید.

بیان مسئله

مشخصات اولیه MCP فرض می‌کرد که توسعه‌دهندگان سرور احراز هویت خود را بنویسند. این امر نیازمند دانش OAuth و محدودیت‌های امنیتی مرتبط بود. سرورهای MCP به عنوان سرورهای مجوز OAuth 2.0 عمل می‌کردند و احراز هویت کاربران را مستقیماً مدیریت می‌کردند، به جای اینکه آن را به یک سرویس خارجی مانند Microsoft Entra ID واگذار کنند. از تاریخ ۲۶ آوریل ۲۰۲۵، به‌روزرسانی مشخصات MCP اجازه می‌دهد که سرورهای MCP احراز هویت کاربران را به یک سرویس خارجی واگذار کنند.

ریسک‌ها

  • منطق مجوزدهی نادرست در سرور MCP می‌تواند منجر به افشای داده‌های حساس و اعمال نادرست کنترل‌های دسترسی شود.
  • سرقت توکن OAuth در سرور MCP محلی. اگر توکن دزدیده شود، می‌توان از آن برای جعل هویت سرور MCP و دسترسی به منابع و داده‌ها از سرویسی که توکن OAuth برای آن صادر شده است، استفاده کرد.

عبور توکن

عبور توکن به طور صریح در مشخصات مجوز ممنوع است زیرا خطرات امنیتی متعددی را به همراه دارد، از جمله:

دور زدن کنترل‌های امنیتی

سرور MCP یا APIهای پایین‌دستی ممکن است کنترل‌های امنیتی مهمی مانند محدودیت نرخ، اعتبارسنجی درخواست یا نظارت بر ترافیک را اجرا کنند که به مخاطب توکن یا سایر محدودیت‌های اعتبار بستگی دارد. اگر مشتریان بتوانند توکن‌ها را مستقیماً با APIهای پایین‌دستی بدون اعتبارسنجی مناسب توسط سرور MCP یا اطمینان از اینکه توکن‌ها برای سرویس مناسب صادر شده‌اند، استفاده کنند، این کنترل‌ها دور زده می‌شوند.

مشکلات حسابرسی و ردگیری

سرور MCP قادر به شناسایی یا تمایز بین مشتریان MCP نخواهد بود زمانی که مشتریان با یک توکن دسترسی صادر شده از بالا که ممکن است برای سرور MCP غیرشفاف باشد، تماس می‌گیرند.
گزارش‌های سرور منابع پایین‌دستی ممکن است درخواست‌هایی را نشان دهند که به نظر می‌رسد از منبعی متفاوت با هویتی متفاوت می‌آیند، به جای سرور MCP که در واقع توکن‌ها را ارسال می‌کند.
هر دو عامل تحقیقات حوادث، کنترل‌ها و حسابرسی را دشوارتر می‌کنند.
اگر سرور MCP توکن‌ها را بدون اعتبارسنجی ادعاهای آن‌ها (مانند نقش‌ها، امتیازات یا مخاطب) یا سایر متادیتاها ارسال کند، یک بازیگر مخرب که توکن دزدیده شده‌ای در اختیار دارد می‌تواند از سرور به عنوان یک پروکسی برای استخراج داده‌ها استفاده کند.

مشکلات مرز اعتماد

سرور منابع پایین‌دستی به نهادهای خاصی اعتماد می‌کند. این اعتماد ممکن است شامل فرضیاتی درباره منبع یا الگوهای رفتار مشتری باشد. شکستن این مرز اعتماد می‌تواند منجر به مشکلات غیرمنتظره شود.
اگر توکن توسط چندین سرویس بدون اعتبارسنجی مناسب پذیرفته شود، یک مهاجم که یک سرویس را به خطر می‌اندازد می‌تواند از توکن برای دسترسی به سایر سرویس‌های متصل استفاده کند.

ریسک سازگاری آینده

حتی اگر یک سرور MCP امروز به عنوان یک "پروکسی خالص" شروع به کار کند، ممکن است نیاز به افزودن کنترل‌های امنیتی در آینده داشته باشد. شروع با جداسازی مناسب مخاطب توکن، تکامل مدل امنیتی را آسان‌تر می‌کند.

کنترل‌های کاهش‌دهنده

سرورهای MCP نباید هیچ توکنی را که به طور صریح برای سرور MCP صادر نشده است، بپذیرند

دسترسی بیش از حد برای سرورهای MCP

بیان مسئله

ممکن است به سرورهای MCP دسترسی بیش از حد به سرویس/منابعی که به آن‌ها متصل هستند، داده شده باشد. به عنوان مثال، یک سرور MCP که بخشی از یک برنامه فروش مبتنی بر هوش مصنوعی است و به یک مخزن داده سازمانی متصل می‌شود، باید دسترسی آن محدود به داده‌های فروش باشد و اجازه دسترسی به تمام فایل‌های موجود در مخزن داده را نداشته باشد. با توجه به اصل حداقل دسترسی (یکی از قدیمی‌ترین اصول امنیتی)، هیچ منبعی نباید دسترسی بیش از حدی داشته باشد که برای انجام وظایف مورد نظر آن لازم است. هوش مصنوعی در این زمینه چالش بیشتری ایجاد می‌کند زیرا برای انعطاف‌پذیری آن، تعریف دقیق دسترسی‌های مورد نیاز می‌تواند دشوار باشد.

ریسک‌ها

  • اعطای دسترسی بیش از حد می‌تواند امکان استخراج یا تغییر داده‌هایی را فراهم کند که سرور MCP برای دسترسی به آن‌ها طراحی نشده است. این موضوع همچنین می‌تواند یک مسئله حریم خصوصی باشد اگر داده‌ها شامل اطلاعات شناسایی شخصی (PII) باشند.

کنترل‌های کاهش‌دهنده

  • اعمال اصل حداقل دسترسی: به سرور MCP فقط حداقل دسترسی‌های لازم برای انجام وظایف مورد نیاز آن را بدهید. این دسترسی‌ها را به طور منظم بازبینی و به‌روزرسانی کنید تا اطمینان حاصل شود که از نیازهای واقعی فراتر نمی‌روند. برای راهنمایی دقیق، به Secure least-privileged access مراجعه کنید.
  • استفاده از کنترل دسترسی مبتنی بر نقش (RBAC): نقش‌هایی را به سرور MCP اختصاص دهید که به طور دقیق به منابع و اقدامات خاص محدود شده‌اند و از دسترسی‌های گسترده یا غیرضروری اجتناب کنید.
  • نظارت و حسابرسی دسترسی‌ها: به طور مداوم استفاده از دسترسی‌ها را نظارت کنید و گزارش‌های دسترسی را بررسی کنید تا دسترسی‌های بیش از حد یا استفاده نشده را به سرعت شناسایی و اصلاح کنید.

حملات تزریق دستورات غیرمستقیم

بیان مسئله

سرورهای MCP مخرب یا به خطر افتاده می‌توانند خطرات قابل توجهی را با افشای داده‌های مشتری یا فعال کردن اقدامات ناخواسته ایجاد کنند. این خطرات به ویژه در بارهای کاری مبتنی بر هوش مصنوعی و MCP مرتبط هستند، جایی که:

  • حملات تزریق دستورات: مهاجمان دستورالعمل‌های مخرب را در دستورات یا محتوای خارجی جاسازی می‌کنند و باعث می‌شوند سیستم هوش مصنوعی اقدامات ناخواسته انجام دهد یا داده‌های حساس را افشا کند. اطلاعات بیشتر: Prompt Injection
  • مسموم‌سازی ابزارها: مهاجمان متادیتای ابزارها (مانند توضیحات یا پارامترها) را دستکاری می‌کنند تا رفتار هوش مصنوعی را تحت تأثیر قرار دهند، به طور بالقوه کنترل‌های امنیتی را دور بزنند یا داده‌ها را استخراج کنند. جزئیات: Tool Poisoning
  • تزریق دستورات بین دامنه‌ای: دستورالعمل‌های مخرب در اسناد، صفحات وب یا ایمیل‌ها جاسازی می‌شوند که سپس توسط هوش مصنوعی پردازش می‌شوند و منجر به نشت داده‌ها یا دستکاری می‌شوند.
  • تغییرات پویا در ابزارها (Rug Pulls): تعاریف ابزارها می‌توانند پس از تأیید کاربر تغییر کنند و رفتارهای مخرب جدیدی را بدون آگاهی کاربر معرفی کنند.

این آسیب‌پذیری‌ها نیاز به اعتبارسنجی قوی، نظارت و کنترل‌های امنیتی هنگام ادغام سرورهای MCP و ابزارها در محیط شما را برجسته می‌کنند. برای اطلاعات بیشتر، به منابع پیوند داده شده در بالا مراجعه کنید.

prompt-injection-lg-2048x1034

تزریق دستورات غیرمستقیم (که به عنوان تزریق دستورات بین دامنه‌ای یا XPIA نیز شناخته می‌شود) یک آسیب‌پذیری حیاتی در سیستم‌های هوش مصنوعی مولد، از جمله آن‌هایی که از پروتکل Model Context Protocol (MCP) استفاده می‌کنند، است. در این حمله، دستورالعمل‌های مخرب در محتوای خارجی—مانند اسناد، صفحات وب یا ایمیل‌ها—پنهان می‌شوند. هنگامی که سیستم هوش مصنوعی این محتوا را پردازش می‌کند، ممکن است دستورالعمل‌های جاسازی شده را به عنوان دستورات کاربر قانونی تفسیر کند و منجر به اقدامات ناخواسته مانند نشت داده‌ها، تولید محتوای مضر یا دستکاری تعاملات کاربر شود. برای توضیح دقیق و مثال‌های واقعی، به Prompt Injection مراجعه کنید.

شکل به‌ویژه خطرناک این حمله مسموم‌سازی ابزارها است. در اینجا، مهاجمان دستورالعمل‌های مخرب را در متادیتای ابزارهای MCP (مانند توضیحات ابزار یا پارامترها) تزریق می‌کنند. از آنجا که مدل‌های زبان بزرگ (LLMها) به این متادیتا برای تصمیم‌گیری در مورد استفاده از ابزارها متکی هستند، توضیحات به خطر افتاده می‌توانند مدل را فریب دهند تا تماس‌های ابزار غیرمجاز را اجرا کند یا کنترل‌های امنیتی را دور بزند. این دستکاری‌ها اغلب برای کاربران نهایی نامرئی هستند اما می‌توانند توسط سیستم هوش مصنوعی تفسیر و اجرا شوند. این ریسک در محیط‌های سرور MCP میزبانی شده افزایش می‌یابد، جایی که تعاریف ابزارها می‌توانند پس از تأیید کاربر به‌روزرسانی شوند—سناریویی که گاهی به عنوان "Rug Pull" شناخته می‌شود. در چنین مواردی، ابزاری که قبلاً ایمن بود ممکن است بعداً برای انجام اقدامات مخرب، مانند استخراج داده‌ها یا تغییر رفتار سیستم، بدون آگاهی کاربر تغییر کند. برای اطلاعات بیشتر در مورد این بردار حمله، به Tool Poisoning مراجعه کنید.

tool-injection-lg-2048x1239 (1)

ریسک‌ها

اقدامات ناخواسته هوش مصنوعی انواع مختلفی از ریسک‌های امنیتی را شامل می‌شود که شامل استخراج داده‌ها و نقض حریم خصوصی است.

کنترل‌های کاهش‌دهنده

استفاده از Prompt Shields برای محافظت در برابر حملات تزریق دستورات غیرمستقیم


Prompt Shields یک راه‌حل توسعه‌یافته توسط مایکروسافت برای دفاع در برابر حملات تزریق دستورات مستقیم و غیرمستقیم است. این راه‌حل از طریق موارد زیر کمک می‌کند:

  1. تشخیص و فیلتر کردن: Prompt Shields از الگوریتم‌های پیشرفته یادگیری ماشین و پردازش زبان طبیعی برای تشخیص و فیلتر کردن دستورالعمل‌های مخرب جاسازی شده در محتوای خارجی، مانند اسناد، صفحات وب یا ایمیل‌ها استفاده می‌کند.

  2. Spotlighting: این تکنیک به سیستم هوش مصنوعی کمک می‌کند تا بین دستورالعمل‌های معتبر سیستم و ورودی‌های خارجی بالقوه غیرقابل اعتماد تمایز قائل شود. با تبدیل متن ورودی به گونه‌ای که برای مدل مرتبط‌تر باشد، Spotlighting اطمینان می‌دهد که هوش مصنوعی می‌تواند دستورالعمل‌های مخرب را بهتر شناسایی و نادیده بگیرد.

  3. **مرزبندی و علامت prompt-shield-lg-2048x1328

مشکل نماینده سردرگم

بیان مشکل

مشکل نماینده سردرگم یک آسیب‌پذیری امنیتی است که زمانی رخ می‌دهد که یک سرور MCP به عنوان یک پروکسی بین کلاینت‌های MCP و APIهای شخص ثالث عمل می‌کند. این آسیب‌پذیری زمانی قابل بهره‌برداری است که سرور MCP از یک شناسه کلاینت ثابت برای احراز هویت با یک سرور مجوز شخص ثالث استفاده می‌کند که از ثبت‌نام پویا برای کلاینت‌ها پشتیبانی نمی‌کند.

خطرات

  • دور زدن رضایت مبتنی بر کوکی: اگر کاربری قبلاً از طریق سرور پروکسی MCP احراز هویت کرده باشد، سرور مجوز شخص ثالث ممکن است یک کوکی رضایت در مرورگر کاربر تنظیم کند. مهاجم می‌تواند بعداً با ارسال یک لینک مخرب به کاربر که حاوی درخواست مجوز با URI بازگشت مخرب است، از این کوکی سوءاستفاده کند.
  • سرقت کد مجوز: زمانی که کاربر روی لینک مخرب کلیک می‌کند، سرور مجوز شخص ثالث ممکن است به دلیل وجود کوکی، صفحه رضایت را رد کند و کد مجوز به سرور مهاجم هدایت شود.
  • دسترسی غیرمجاز به API: مهاجم می‌تواند کد مجوز سرقت‌شده را با توکن‌های دسترسی مبادله کند و بدون تأیید صریح کاربر، به API شخص ثالث دسترسی پیدا کند.

کنترل‌های کاهش‌دهنده

  • نیاز به رضایت صریح: سرورهای پروکسی MCP که از شناسه‌های کلاینت ثابت استفاده می‌کنند باید برای هر کلاینت ثبت‌شده پویا، رضایت کاربر را قبل از ارسال به سرورهای مجوز شخص ثالث دریافت کنند.
  • اجرای صحیح OAuth: بهترین شیوه‌های امنیتی OAuth 2.1 را دنبال کنید، از جمله استفاده از چالش‌های کد (PKCE) برای درخواست‌های مجوز به منظور جلوگیری از حملات رهگیری.
  • اعتبارسنجی کلاینت: اعتبارسنجی دقیق URIهای بازگشت و شناسه‌های کلاینت را برای جلوگیری از سوءاستفاده توسط عوامل مخرب اجرا کنید.

آسیب‌پذیری‌های عبور توکن

بیان مشکل

"عبور توکن" یک الگوی ضد امنیتی است که در آن سرور MCP توکن‌هایی را از کلاینت MCP می‌پذیرد بدون اینکه اعتبار صدور صحیح آن‌ها برای سرور MCP را بررسی کند و سپس آن‌ها را به APIهای پایین‌دستی منتقل می‌کند. این عمل به طور صریح مشخصات مجوز MCP را نقض می‌کند و خطرات امنیتی جدی ایجاد می‌کند.

خطرات

  • دور زدن کنترل‌های امنیتی: کلاینت‌ها می‌توانند کنترل‌های امنیتی مهمی مانند محدودیت نرخ، اعتبارسنجی درخواست یا نظارت بر ترافیک را دور بزنند اگر بتوانند توکن‌ها را مستقیماً با APIهای پایین‌دستی بدون اعتبارسنجی صحیح استفاده کنند.
  • مشکلات حسابرسی و ردگیری: سرور MCP نمی‌تواند کلاینت‌های MCP را شناسایی یا از هم تفکیک کند زمانی که کلاینت‌ها از توکن‌های دسترسی صادرشده بالادستی استفاده می‌کنند، که این امر تحقیقات حادثه و حسابرسی را دشوارتر می‌کند.
  • نشت داده‌ها: اگر توکن‌ها بدون اعتبارسنجی صحیح ادعاها منتقل شوند، یک عامل مخرب با یک توکن سرقت‌شده می‌تواند از سرور به عنوان پروکسی برای نشت داده‌ها استفاده کند.
  • نقض مرز اعتماد: سرورهای منابع پایین‌دستی ممکن است به نهادهای خاصی با فرضیات مربوط به منبع یا الگوهای رفتاری اعتماد کنند. شکستن این مرز اعتماد می‌تواند منجر به مشکلات امنیتی غیرمنتظره شود.
  • سوءاستفاده از توکن چندسرویسی: اگر توکن‌ها توسط چندین سرویس بدون اعتبارسنجی صحیح پذیرفته شوند، مهاجمی که یک سرویس را به خطر می‌اندازد می‌تواند از توکن برای دسترسی به سایر سرویس‌های متصل استفاده کند.

کنترل‌های کاهش‌دهنده

  • اعتبارسنجی توکن: سرورهای MCP نباید هیچ توکنی را که به طور صریح برای سرور MCP صادر نشده است، بپذیرند.
  • تأیید مخاطب: همیشه بررسی کنید که توکن‌ها دارای ادعای مخاطب صحیحی باشند که با هویت سرور MCP مطابقت دارد.
  • مدیریت صحیح چرخه عمر توکن: از توکن‌های دسترسی کوتاه‌مدت و شیوه‌های چرخش توکن مناسب استفاده کنید تا خطر سرقت و سوءاستفاده از توکن کاهش یابد.

ربودن نشست

بیان مشکل

ربودن نشست یک بردار حمله است که در آن سرور یک شناسه نشست به کلاینت ارائه می‌دهد و یک طرف غیرمجاز همان شناسه نشست را به دست می‌آورد و از آن برای جعل هویت کلاینت اصلی و انجام اقدامات غیرمجاز به نمایندگی از او استفاده می‌کند. این موضوع به ویژه در سرورهای HTTP حالت‌دار که درخواست‌های MCP را مدیریت می‌کنند، نگران‌کننده است.

خطرات

  • تزریق درخواست ربودن نشست: مهاجمی که یک شناسه نشست را به دست می‌آورد می‌تواند رویدادهای مخربی را به سروری ارسال کند که وضعیت نشست را با سرور متصل به کلاینت به اشتراک می‌گذارد، که ممکن است منجر به اقدامات مضر یا دسترسی به داده‌های حساس شود.
  • جعل هویت ربودن نشست: مهاجمی که یک شناسه نشست سرقت‌شده دارد می‌تواند مستقیماً به سرور MCP درخواست ارسال کند، احراز هویت را دور بزند و به عنوان کاربر قانونی شناخته شود.
  • جریان‌های قابل ازسرگیری به خطر افتاده: زمانی که یک سرور از تحویل مجدد/جریان‌های قابل ازسرگیری پشتیبانی می‌کند، مهاجم می‌تواند یک درخواست را زودتر خاتمه دهد و باعث شود که درخواست بعداً توسط کلاینت اصلی با محتوای بالقوه مخرب ازسرگیری شود.

کنترل‌های کاهش‌دهنده

  • تأیید مجوز: سرورهای MCP که مجوز را اجرا می‌کنند باید تمام درخواست‌های ورودی را تأیید کنند و نباید از نشست‌ها برای احراز هویت استفاده کنند.
  • شناسه‌های نشست امن: سرورهای MCP باید از شناسه‌های نشست امن و غیرقابل پیش‌بینی که با تولیدکننده‌های اعداد تصادفی امن تولید می‌شوند، استفاده کنند. از شناسه‌های قابل پیش‌بینی یا ترتیبی اجتناب کنید.
  • اتصال نشست به کاربر خاص: سرورهای MCP باید شناسه‌های نشست را به اطلاعات خاص کاربر متصل کنند، با ترکیب شناسه نشست با اطلاعات منحصربه‌فرد کاربر مجاز (مانند شناسه داخلی کاربر) با فرمتی مانند <user_id>:<session_id>.
  • انقضای نشست: انقضای مناسب نشست و چرخش آن را اجرا کنید تا پنجره آسیب‌پذیری در صورت به خطر افتادن شناسه نشست محدود شود.
  • امنیت انتقال: همیشه از HTTPS برای تمام ارتباطات استفاده کنید تا از رهگیری شناسه نشست جلوگیری شود.

امنیت زنجیره تأمین

امنیت زنجیره تأمین در عصر هوش مصنوعی همچنان اساسی است، اما دامنه آنچه که زنجیره تأمین شما را تشکیل می‌دهد گسترش یافته است. علاوه بر بسته‌های کد سنتی، اکنون باید تمام اجزای مرتبط با هوش مصنوعی، از جمله مدل‌های پایه، خدمات جاسازی، ارائه‌دهندگان زمینه و APIهای شخص ثالث را به دقت تأیید و نظارت کنید. هر یک از این‌ها می‌توانند در صورت مدیریت نادرست، آسیب‌پذیری‌ها یا خطراتی را معرفی کنند.

شیوه‌های کلیدی امنیت زنجیره تأمین برای هوش مصنوعی و MCP:

  • تأیید تمام اجزا قبل از ادغام: این شامل نه تنها کتابخانه‌های متن‌باز، بلکه مدل‌های هوش مصنوعی، منابع داده و APIهای خارجی نیز می‌شود. همیشه منشأ، مجوزها و آسیب‌پذیری‌های شناخته‌شده را بررسی کنید.
  • حفظ خطوط استقرار امن: از خطوط CI/CD خودکار با اسکن امنیتی یکپارچه استفاده کنید تا مشکلات را زودتر شناسایی کنید. اطمینان حاصل کنید که فقط مصنوعات مورد اعتماد به تولید منتقل می‌شوند.
  • نظارت و حسابرسی مداوم: نظارت مداوم بر تمام وابستگی‌ها، از جمله مدل‌ها و خدمات داده، برای شناسایی آسیب‌پذیری‌های جدید یا حملات زنجیره تأمین را اجرا کنید.
  • اعمال اصل کمترین امتیاز و کنترل‌های دسترسی: دسترسی به مدل‌ها، داده‌ها و خدمات را فقط به آنچه که برای عملکرد سرور MCP ضروری است محدود کنید.
  • پاسخ سریع به تهدیدات: فرآیندی برای وصله یا جایگزینی اجزای به خطر افتاده و چرخش اسرار یا اعتبارنامه‌ها در صورت شناسایی نقض داشته باشید.

GitHub Advanced Security ویژگی‌هایی مانند اسکن اسرار، اسکن وابستگی و تحلیل CodeQL را ارائه می‌دهد. این ابزارها با Azure DevOps و Azure Repos ادغام می‌شوند تا به تیم‌ها در شناسایی و کاهش آسیب‌پذیری‌ها در کد و اجزای زنجیره تأمین هوش مصنوعی کمک کنند.

مایکروسافت همچنین شیوه‌های گسترده امنیت زنجیره تأمین را به صورت داخلی برای تمام محصولات اجرا می‌کند. اطلاعات بیشتر را در The Journey to Secure the Software Supply Chain at Microsoft بیابید.

بهترین شیوه‌های امنیتی تثبیت‌شده که امنیت MCP شما را ارتقا می‌دهند

هر پیاده‌سازی MCP وضعیت امنیتی موجود محیط سازمان شما را که بر اساس آن ساخته شده است به ارث می‌برد، بنابراین هنگام بررسی امنیت MCP به عنوان بخشی از سیستم‌های کلی هوش مصنوعی شما، توصیه می‌شود وضعیت امنیتی کلی موجود خود را ارتقا دهید. کنترل‌های امنیتی تثبیت‌شده زیر به ویژه مرتبط هستند:

  • بهترین شیوه‌های کدنویسی امن در برنامه هوش مصنوعی شما - محافظت در برابر OWASP Top 10، OWASP Top 10 for LLMs، استفاده از خزانه‌های امن برای اسرار و توکن‌ها، اجرای ارتباطات امن انتها به انتها بین تمام اجزای برنامه و غیره.
  • سخت‌سازی سرور - استفاده از MFA در صورت امکان، به‌روزرسانی مداوم وصله‌ها، ادغام سرور با یک ارائه‌دهنده هویت شخص ثالث برای دسترسی و غیره.
  • به‌روزرسانی دستگاه‌ها، زیرساخت‌ها و برنامه‌ها با وصله‌ها
  • نظارت امنیتی - اجرای ثبت و نظارت بر یک برنامه هوش مصنوعی (از جمله کلاینت‌ها/سرورهای MCP) و ارسال آن لاگ‌ها به یک SIEM مرکزی برای شناسایی فعالیت‌های غیرعادی
  • معماری اعتماد صفر - جداسازی اجزا از طریق کنترل‌های شبکه و هویت به صورت منطقی برای به حداقل رساندن حرکت جانبی در صورت به خطر افتادن یک برنامه هوش مصنوعی.

نکات کلیدی

  • اصول امنیتی همچنان حیاتی هستند: کدنویسی امن، کمترین امتیاز، تأیید زنجیره تأمین و نظارت مداوم برای بارهای کاری MCP و هوش مصنوعی ضروری هستند.
  • MCP خطرات جدیدی مانند تزریق درخواست، مسمومیت ابزار، ربودن نشست، مشکلات نماینده سردرگم، آسیب‌پذیری‌های عبور توکن و مجوزهای بیش از حد را معرفی می‌کند که نیاز به کنترل‌های سنتی و خاص هوش مصنوعی دارند.
  • از شیوه‌های قوی احراز هویت، مجوز و مدیریت توکن استفاده کنید و در صورت امکان از ارائه‌دهندگان هویت خارجی مانند Microsoft Entra ID بهره ببرید.
  • از تزریق غیرمستقیم درخواست و مسمومیت ابزار با اعتبارسنجی متادیتای ابزار، نظارت بر تغییرات پویا و استفاده از راه‌حل‌هایی مانند Microsoft Prompt Shields محافظت کنید.
  • مدیریت امن نشست را با استفاده از شناسه‌های نشست غیرقابل پیش‌بینی، اتصال نشست‌ها به هویت کاربران و عدم استفاده از نشست‌ها برای احراز هویت اجرا کنید.
  • از حملات نماینده سردرگم با نیاز به رضایت صریح کاربر برای هر کلاینت ثبت‌شده پویا و اجرای شیوه‌های امنیتی صحیح OAuth جلوگیری کنید.
  • از آسیب‌پذیری‌های عبور توکن با اطمینان از اینکه سرورهای MCP فقط توکن‌هایی را که به طور صریح برای آن‌ها صادر شده‌اند می‌پذیرند و ادعاهای توکن را به درستی اعتبارسنجی می‌کنند، اجتناب کنید.
  • تمام اجزای زنجیره تأمین هوش مصنوعی خود، از جمله مدل‌ها، جاسازی‌ها و ارائه‌دهندگان زمینه، را با همان دقتی که برای وابستگی‌های کد دارید، مدیریت کنید.
  • با مشخصات در حال تکامل MCP به‌روز بمانید و به جامعه کمک کنید تا استانداردهای امنیتی ایمن را شکل دهد.

منابع اضافی

منابع خارجی

اسناد امنیتی اضافی

برای راهنمایی امنیتی دقیق‌تر، به این اسناد مراجعه کنید:

بعدی

بعدی: فصل ۳: شروع به کار

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.