با توجه به رواج سریع ابزارهای هوش مصنوعی (AI)، تضمین امنیت آنها از اهمیت حیاتی برخوردار است. این فهرست بررسی امنیتی با هدف کمک به توسعهدهندگان برای شناسایی و کاهش خطرات بالقوه مرتبط با پروتکل زمینه مدل (MCP) تدوین شده است. MCP به عنوان پلی حیاتی برای اتصال مدلهای زبانی بزرگ (LLM) با ابزارها و منابع داده خارجی ظهور کرده است.
پیشینه
این فهرست بررسی امنیتی توسط @SlowMist_Team نوشته و نگهداری میشود و هدف آن ارتقای امنیت اکوسیستم بلاکچین و هوش مصنوعی است. از FENZ.AI برای مشارکتهای ارزشمندش در این فهرست تشکر میکنیم.
خلاصه
از زمان انتشار در اواخر سال 2024، MCP به طور گسترده در برنامههای اصلی هوش مصنوعی مانند Claude Desktop، Cursor و غیره مورد استفاده قرار گرفته است. با این حال، رواج سریع MCP چالشهای امنیتی جدیدی را به همراه داشته است. معماری فعلی MCP از سه بخش تشکیل شده است: Host (محیط برنامه هوش مصنوعی که به صورت محلی اجرا میشود)، Client (جزئی که مسئول ارتباط با Server و فراخوانی ابزار است) و Server (بخش سمت سرور مربوط به پلاگین MCP). کاربران از طریق Host با هوش مصنوعی تعامل میکنند، Client درخواست کاربر را تجزیه کرده و به MCP Server ارسال میکند تا فراخوانی ابزار یا دسترسی به منابع را انجام دهد. در سناریوهای اجرای همزمان چند نمونهای و چند جزئی، این معماری مجموعهای از خطرات امنیتی را آشکار میکند، به ویژه در سناریوهای حساسی مانند تراکنشهای ارزهای دیجیتال یا تطبیق پلاگینهای سفارشی LLM، خطرات برجستهتر هستند و نیاز به اقدامات امنیتی مناسب برای مدیریت دارند.
بنابراین، تدوین و پیروی از یک فهرست بررسی امنیتی جامع MCP بسیار مهم است. این فهرست نکات کلیدی امنیتی را در زمینههای رابط کاربری، مؤلفههای سمت مشتری، افزونههای سرویس، سازوکارهای همکاری چندگانه MCP و حوزههای خاص (مانند سناریوهای ارزهای دیجیتال) پوشش میدهد و هدف آن کمک به توسعهدهندگان برای شناسایی سیستماتیک خطرات احتمالی و پیشگیری از آنها در زمان مناسب است. با اجرای این اقدامات امنیتی، پایداری و قابلیت کنترل کلی سیستم MCP را میتوان به طور موثر بهبود بخشید و اطمینان حاصل کرد که امنیت برنامههای هوش مصنوعی به طور همزمان با توسعه سریع تضمین میشود.
نحوه استفاده
این چک لیست بر اساس نقاط خطر احتمالی که در ممیزی پروژه های MCP با آنها مواجه شدیم، تهیه شده است و هدف آن کمک به توسعه دهندگان برای اطمینان از امنیت پیاده سازی MCP است. ما از 3 سطح اولویت برای شناسایی اهمیت موارد استفاده می کنیم:
- 🟢️ نشان دهنده موارد پیشنهادی است، اما در شرایط خاص می توان آنها را حذف کرد.
- 🔶 نشان دهنده موارد اکیداً توصیه شده است، اما در موارد خاص می توان آنها را حذف کرد، حذف ممکن است اثرات منفی بر امنیت داشته باشد.
- 🟥️ نشان دهنده مواردی است که در هیچ شرایطی نمی توان آنها را حذف کرد، حذف این عناصر ممکن است منجر به خرابی سیستم یا آسیب پذیری های امنیتی شود.
امنیت سرور MCP (پلاگین MCP)
سرویس MCP یک سرویس خارجی است که ابزارها، منابع و عملکردها را برای فراخوانی AI ارائه می دهد. معمولاً شامل منابع، ابزارها و نکات است. در اینجا مواردی وجود دارد که باید برای اطمینان از امنیت سرور MCP در نظر گرفته شود:
امنیت API
- اعتبارسنجی ورودی: 🟥️ همه ورودیهای API را به شدت تأیید کنید تا از حملات تزریق و پارامترهای غیرقانونی جلوگیری کنید. این شامل تأیید انواع داده، طول و قالب است و ورودی ها را تمیز و فرار می کند.
- محدودیت نرخ API: 🔶 محدودیت نرخ فراخوانی API را برای جلوگیری از سوء استفاده و حملات اجرا کنید. این می تواند از این جلوگیری کند که کاربران مخرب سرورها را با ارسال تعداد زیادی درخواست تحت فشار قرار دهند.
- کدگذاری خروجی: 🔶 خروجی API را به درستی کدگذاری کنید تا از حملات اسکریپت بین سایتی (XSS) جلوگیری کنید. این شامل کدگذاری خروجی هایی مانند HTML، JavaScript و URL است.
احراز هویت و مجوز سرور
- کنترل دسترسی: 🟥️ کنترل دسترسی مبتنی بر نقش را برای محدود کردن دسترسی به منابع و اجرای اصل حداقل امتیاز اجرا کنید. فقط کاربران مجاز باید بتوانند به منابع خاص دسترسی داشته باشند.
- مدیریت اعتبار: 🟥️ اعتبارنامه های سرویس را به طور ایمن مدیریت و ذخیره کنید، از کدگذاری سخت اجتناب کنید و از سرویس های مدیریت کلید استفاده کنید. این شامل استفاده از رمزگذاری برای ذخیره اعتبارنامه ها و به طور منظم چرخاندن اعتبارنامه ها است.
- احراز هویت سرویس خارجی: 🟥️ از یک روش امن برای احراز هویت به سرویس های شخص ثالث استفاده کنید. این شامل استفاده از پروتکل های امن مانند OAuth 2.0 یا SAML است.
- حداقل امتیاز: 🔶 فرآیندهای سرویس با حداقل امتیازات لازم اجرا می شوند و سطح حمله بالقوه و خطرات ارتقاء را کاهش می دهند. این بدان معناست که سرویس فقط باید مجوزهایی را داشته باشد که برای انجام عملکرد خود نیاز دارد.
- چرخش کلید API: 🔶 کلیدهای API و اعتبارنامه های سرویس را به طور خودکار و منظم بچرخانید و عمر کلید را محدود کنید. این می تواند خطر افشای کلید را کاهش دهد.
- احراز هویت سرویس: 🔶 مکانیسمی برای سرویس ها برای تأیید هویت ابزارها ارائه دهید تا مشتریان بتوانند به طور ایمن آنها را تأیید و استفاده کنند. این می تواند به مشتریان کمک کند تا تأیید کنند که با یک سرویس قابل اعتماد در حال ارتباط هستند.
کنترل تداوم پس زمینه
- مدیریت چرخه حیات: 🟥️ مدیریت دقیق چرخه حیات افزونه MCP را با مشتری همگام سازی کنید. افزونه ها باید به درستی شروع و متوقف شوند زمانی که دیگر مورد نیاز نیستند.
- پاکسازی خاموش: 🟥️ زمانی که مشتری خاموش می شود، اجباری تمام فرآیندهای پس زمینه MCP را پاک کنید. این می تواند از ادامه اجرای افزونه های مخرب پس از خاموش شدن مشتری جلوگیری کند.
- مکانیسم بررسی سلامت: 🔶 به طور منظم وضعیت افزونه MCP را بررسی کنید تا تداوم غیرطبیعی را شناسایی کنید. این می تواند به شناسایی افزونه هایی که به درستی کار نمی کنند کمک کند.
- نظارت بر فعالیت های پس زمینه: 🔶 نظارت و ثبت تمام فعالیت های پس زمینه MCP. این می تواند به شناسایی فعالیت های مخرب کمک کند.
- محدودیت فعالیت: 🔶 نوع و مدت زمانی را که افزونه های MCP می توانند در پس زمینه اجرا کنند، محدود کنید. این می تواند آسیب ناشی از افزونه های مخرب را کاهش دهد.
امنیت استقرار و زمان اجرا
- محیط جداسازی: 🟥️ سرویس ها در یک محیط جداسازی شده (کانتینر، VM، جعبه شنی) اجرا می شوند تا از فرار و حملات حرکت شرق-غرب جلوگیری شود. این می تواند از تأثیر سرویس های مخرب بر سایر سرویس ها یا سیستم ها جلوگیری کند.
- امنیت کانتینر: 🟥️ از پیکربندی های امنیتی تقویت شده کانتینر استفاده کنید و به عنوان کاربر غیر ریشه اجرا کنید، زیرساخت تغییرناپذیر و حفاظت زمان اجرا را اجرا کنید. این می تواند امنیت کانتینر را بهبود بخشد.
- راه اندازی ایمن: 🔶 یکپارچگی فرآیند راه اندازی سرویس را تأیید کنید، زنجیره راه اندازی ایمن و بررسی یکپارچگی را اجرا کنید. این می تواند از تزریق سرویس های مخرب در هنگام راه اندازی جلوگیری کند.
- امنیت متغیرهای محیطی: 🔶 متغیرهای محیطی حساس محافظت می شوند و در گزارش ها فاش نمی شوند. این می تواند از دسترسی کاربران مخرب به اطلاعات حساس جلوگیری کند.
- محدودیت های منابع: 🔶 محدودیت های استفاده از منابع را برای جلوگیری از فراخوانی مکرر و مکرر مدل های بزرگ در هنگام خطا اجرا کنید. این می تواند از تخلیه منابع سیستم توسط سرویس های مخرب جلوگیری کند.
یکپارچگی کد و داده
- مکانیسم تأیید یکپارچگی: 🟥️ از مکانیسم هایی مانند امضاهای دیجیتال و بررسی های هش برای اطمینان از اینکه کد دستکاری نشده است استفاده کنید. این می تواند از تغییر کد توسط کاربران مخرب جلوگیری کند.
- تأیید از راه دور: 🔶 از مکانیسم هایی که از راه دور یکپارچگی کد را تأیید می کنند پشتیبانی کنید. این به کاربران از راه دور اجازه می دهد تا تأیید کنند که کد دستکاری نشده است.
- مبهم سازی و تقویت کد: 🟢️ از تکنیک های مبهم سازی و تقویت کد برای افزایش دشواری مهندسی معکوس استفاده کنید. این می تواند درک و تغییر کد را برای کاربران مخرب دشوارتر کند.
امنیت زنجیره تأمین
- مدیریت وابستگی: 🟥️ وابستگی های شخص ثالث را به طور ایمن مدیریت کنید. این شامل پیگیری وابستگی ها، اطمینان از اینکه آنها به روز هستند و اسکن آنها برای آسیب پذیری ها است.
- یکپارچگی بسته: 🟥️ یکپارچگی و اصالت بسته ها را تأیید کنید. این می تواند از تزریق بسته های مخرب توسط کاربران مخرب جلوگیری کند.
- تأیید منبع: 🔶 منبع تمام کدها و وابستگی ها را تأیید کنید. این می تواند به اطمینان از اینکه کد از یک منبع قابل اعتماد آمده است کمک کند.
- ساخت ایمن: 🔶 اطمینان حاصل کنید که فرآیند ساخت ایمن است. این شامل استفاده از ابزارهای ساخت ایمن و اطمینان از اینکه محیط ساخت ایمن است.
نظارت و ثبت
- تشخیص ناهنجاری: 🟥️ الگوهای فعالیت غیرطبیعی را شناسایی و گزارش دهید. این می تواند به شناسایی فعالیت های مخرب کمک کند.
- ثبت گزارش مفصل: 🟥️ تمام فعالیت های سرویس و رویدادهای امنیتی را ثبت کنید. این می تواند به بررسی رویدادهای امنیتی کمک کند.
- هشدار رویدادهای امنیتی: 🟥️ هشدارهای زمان واقعی را برای رویدادهای امنیتی مهم پیکربندی کنید. این می تواند به واکنش به موقع به رویدادهای امنیتی کمک کند.
- مدیریت گزارش متمرکز: 🔶 گزارش ها را به طور متمرکز جمع آوری و تجزیه و تحلیل کنید. این می تواند دید جامع تری از رویدادهای امنیتی ارائه دهد.
- یکپارچگی گزارش: 🔶 از یکپارچگی گزارش اطمینان حاصل کنید و از دستکاری جلوگیری کنید. این می تواند از حذف یا تغییر گزارش ها توسط کاربران مخرب جلوگیری کند.
- قابلیت حسابرسی: 🔶 از حسابرسی دقیق و بررسی رویداد پشتیبانی کنید. این می تواند به تعیین علت رویدادهای امنیتی کمک کند.
جداسازی محیط فراخوانی
- جداسازی بین MCP ها: 🟥️ از جداسازی عملیاتی بین چندین سرویس MCP اطمینان حاصل کنید. این می تواند از تأثیر سرویس های مخرب MCP بر سایر سرویس های MCP جلوگیری کند.
- کنترل دسترسی به منابع: 🟥️ مرزهای مجوز دسترسی به منابع روشن را به هر سرویس MCP اختصاص دهید. این می تواند منابعی را که یک سرویس مخرب MCP می تواند به آنها دسترسی داشته باشد محدود کند.
- جداسازی مجوز ابزار: 🔶 ابزارهای حوزه های مختلف از مجموعه مجوزهای مختلف استفاده می کنند. این می تواند آسیب ناشی از ابزارهای مخرب را کاهش دهد.
سازگاری و امنیت پلتفرم
- جداسازی منابع سیستم: 🟥️ استراتژی های جداسازی منابع مناسب را بر اساس ویژگی های مختلف سیستم عامل اجرا کنید. این می تواند از تأثیر سرویس های مخرب بر سایر سرویس ها یا سیستم ها جلوگیری کند.
- تست سازگاری متقابل پلتفرم: 🔶 سازگاری رفتار امنیتی سرویس MCP را در سیستم عامل ها و مشتری های مختلف آزمایش کنید. این می تواند اطمینان حاصل کند که سرویس در همه پلتفرم ها ایمن است.
- ارزیابی خطرات خاص پلتفرم: 🔶 خطرات امنیتی منحصر به فرد و اقدامات کاهش دهنده خاص پلتفرم های خاص را ارزیابی کنید. این می تواند به شناسایی و کاهش خطرات امنیتی خاص پلتفرم کمک کند.
- پردازش تفاوت های مشتری: 🔶 اطمینان حاصل کنید که کنترل های امنیتی می توانند تفاوت های پیاده سازی های مختلف مشتری را تطبیق دهند. این می تواند اطمینان حاصل کند که سرویس با همه مشتری ها ایمن است.
امنیت و حریم خصوصی داده
- حداقل سازی داده: 🟥️ فقط داده های ضروری را جمع آوری و پردازش کنید. این می تواند خطر افشای داده را کاهش دهد.
- رمزگذاری داده: 🟥️ داده های حساس در ذخیره سازی و انتقال رمزگذاری می شوند. این می تواند از دسترسی کاربران مخرب به اطلاعات حساس جلوگیری کند.
- جداسازی داده: 🟥️ داده های کاربران مختلف به طور موثر جدا می شوند. این می تواند از دسترسی کاربران مخرب به داده های سایر کاربران جلوگیری کند.
- کنترل دسترسی به داده: 🟥️ کنترل دسترسی به داده دقیق را اجرا کنید. این می تواند دسترسی به داده را محدود کند.
- شناسایی داده های حساس: 🟥️ به طور خودکار داده های حساس را شناسایی و به طور خاص پردازش کنید. این می تواند به جلوگیری از افشای داده های حساس کمک کند.
امنیت منابع
- کنترل دسترسی به منابع: 🟥️ کنترل دسترسی به منابع با جزئیات دقیق را اجرا کنید. این می تواند دسترسی به منابع خاص را محدود کند.
- محدودیت های منابع: 🔶 اندازه و تعداد منابع منفرد را محدود کنید. این می تواند از تخلیه منابع سیستم توسط کاربران مخرب جلوگیری کند.
- امنیت الگوی منبع: 🔶 اطمینان حاصل کنید که پارامترهای الگوی منبع تأیید و تمیز شده اند. این می تواند از تزریق کد مخرب توسط کاربران مخرب جلوگیری کند.
- برچسب گذاری منابع حساس: 🔶 منابع حساس را برچسب گذاری و به طور خاص پردازش کنید. این می تواند به جلوگیری از افشای منابع حساس کمک کند.
امنیت پیاده سازی ابزار
- عملکرد کدنویسی ایمن: 🟥️ از استانداردهای کدنویسی ایمن و بهترین روش ها پیروی کنید. این می تواند تعداد آسیب پذیری ها در کد را کاهش دهد.
- جداسازی ابزار: 🟥️ اجرای ابزار در یک محیط کنترل شده برای جلوگیری از تأثیر سطح سیستم. این می تواند از تأثیر ابزارهای مخرب بر سایر سرویس ها یا سیستم ها جلوگیری کند.
- اعتبارسنجی ورودی: 🟥️ تمام ورودی ها از مشتری را به شدت تأیید کنید. این می تواند از تزریق کد مخرب توسط کاربران مخرب جلوگیری کند.
- کنترل مجوز ابزار: 🟥️ هر ابزار فقط دارای حداقل مجوزهای لازم برای انجام وظیفه خود است. این می تواند آسیب ناشی از ابزارهای مخرب را کاهش دهد.
- تأیید داده: 🟥️ داده های پردازش شده توسط ابزار را تأیید کنید تا از تزریق و دستکاری جلوگیری کنید. این می تواند از تزریق داده های مخرب توسط کاربران مخرب جلوگیری کند.
- محدودیت های رفتار ابزار: 🟥️ دامنه و نوع عملیاتی را که ابزارها می توانند انجام دهند محدود کنید. این می تواند آسیب ناشی از ابزارهای مخرب را کاهش دهد.
- امنیت اطلاعات برگشتی رابط شخص ثالث: 🟥️ تأیید کنید که اطلاعات برگشتی رابط با انتظارات مطابقت دارد، اطلاعات برگشتی را نمی توان مستقیماً در زمینه درج کرد. این می تواند از بهره برداری ابزارهای مخرب از رابط های شخص ثالث جلوگیری کند.
- رسیدگی به خطا: 🔶 به طور ایمن به خطاها رسیدگی کنید و اطلاعات حساس را فاش نکنید. این می تواند از سوء استفاده کاربران مخرب از اطلاعات خطا جلوگیری کند.
- جداسازی فضای نام: 🔶 جداسازی فضای نام دقیق را برای ابزارهای مختلف اجرا کنید. این می تواند از تداخل بین ابزارها جلوگیری کند.
امنیت مشتری MCP / امنیت میزبان MCP
میزبان محیطی است که برنامه های AI و مشتری MCP در آن اجرا می شوند و نقطه ورودی برای تعامل کاربران نهایی با سیستم های AI است. مشتری مؤلفه ای در داخل برنامه AI است که مسئول ارتباط با سرویس های MCP، پردازش زمینه، فراخوانی ابزار و نمایش نتایج است. در اینجا مواردی وجود دارد که باید برای محافظت از مشتری MCP و میزبان در نظر گرفته شود:
امنیت تعامل کاربر
- امنیت رابط کاربری: 🟥️ رابط کاربری به وضوح دامنه مجوزها و تأثیرات بالقوه عملیات AI را نمایش می دهد و نشانگرهای امنیتی بصری ارائه می دهد. این می تواند به کاربران کمک کند تا مجوزهایی را که به AI اعطا می کنند درک کنند.
- تأیید عملیات حساس: 🟥️ عملیات پرخطر (مانند حذف فایل، انتقال بودجه) به تأیید صریح کاربر نیاز دارند. این می تواند از اجرای تصادفی عملیات پرخطر توسط کاربران جلوگیری کند.
- شفافیت درخواست مجوز: 🟥️ درخواست های مجوز به وضوح هدف و دامنه را بیان می کنند تا به کاربران در تصمیم گیری های آگاهانه کمک کنند و از مجوز بیش از حد جلوگیری کنند. این می تواند به کاربران کمک کند تا مجوزهایی را که به AI اعطا می کنند درک کنند.
- تجسم عملیات: 🔶 فراخوانی ابزار و دسترسی به داده ها برای کاربران قابل مشاهده و قابل حسابرسی است و گزارش های عملیاتی دقیق ارائه می دهد. این می تواند به کاربران کمک کند تا عملیاتی را که AI انجام می دهد درک کنند.
- شفافیت اطلاعات: 🔶 ابزارها باید به کاربران اجازه دهند تا به طور پیش فرض برچسب های پنهان را نمایش دهند تا اطمینان حاصل شود که زمینه ای که کاربران می بینند با زمینه واقعی ایجاد و فراخوانی شده یکسان است و از وجود منطق مخرب در برچسب های پنهان جلوگیری می شود.
- بازخورد وضعیت: 🔶 کاربران می توانند به وضوح عملیات MCP در حال انجام را درک کنند.
کنترل و نظارت AI
- گزارش عملیات: 🟥️ تمام عملیات مهم AI و نتایج آنها را ثبت کنید. این می تواند به بررسی رویدادهای امنیتی کمک کند.
- تشخیص ناهنجاری: 🔶 الگوهای فراخوانی ابزار غیرطبیعی یا توالی های درخواست را تشخیص دهید. این می تواند به شناسایی فعالیت های مخرب کمک کند.
- محدودیت فراخوانی ابزار: 🔶 محدودیت های فراوانی و تعداد فراخوانی ابزار را اجرا کنید. این می تواند از سوء استفاده کاربران مخرب از ابزارها جلوگیری کند.
امنیت ذخیره سازی محلی
- ذخیره سازی ایمن اعتبار: 🟥️ از زنجیره کلید سیستم یا ذخیره سازی رمزگذاری شده اختصاصی برای محافظت از اعتبارنامه های احراز هویت استفاده کنید تا از دسترسی غیرمجاز جلوگیری شود. این می تواند از دسترسی کاربران مخرب به اعتبارنامه ها جلوگیری کند.
- جداسازی داده های حساس: 🔶 مکانیزم های جداسازی داده ها را برای ذخیره و پردازش داده های حساس کاربر به طور جداگانه از داده های معمولی اجرا کنید. این می تواند از دسترسی کاربران مخرب به داده های حساس جلوگیری کند.
امنیت برنامه
- یکپارچگی برنامه: 🟥️ یکپارچگی برنامه و افزونه MCP را تأیید کنید تا از دستکاری جلوگیری شود. این می تواند از تغییر برنامه توسط کاربران مخرب جلوگیری کند.
- تأیید به روز رسانی: 🔶 به روز رسانی های برنامه میزبان از طریق امضای دیجیتال تأیید می شوند. این می تواند اطمینان حاصل کند که به روز رسانی از یک منبع قابل اعتماد آمده است.
- جعبه شنی برنامه: 🟢️ سعی کنید برنامه را در یک محیط جعبه شنی اجرا کنید تا دسترسی به سیستم محدود شود. این می تواند آسیب ناشی از برنامه های مخرب را کاهش دهد.
احراز هویت و مجوز مشتری
- احراز هویت اجباری: 🟥️ قبل از برقراری ارتباط با هر سرویس مهم MCP، احراز هویت را اجباری کنید تا از دسترسی ناشناس جلوگیری شود. این می تواند از دسترسی کاربران غیرمجاز به سرویس جلوگیری کند.
- پیاده سازی OAuth: 🔶 فرآیندهای OAuth 2.1 یا نسخه های بالاتر را به درستی پیاده سازی کنید و از بهترین روش ها و استانداردهای امنیتی پیروی کنید. این می تواند اطمینان حاصل کند که احراز هویت ایمن است.
- پارامتر وضعیت: 🔶 پارامترهای وضعیت را برای جلوگیری از حملات CSRF برای برخی از مشتریان وب اجرا کنید و از یک مقدار تصادفی منحصر به فرد برای هر درخواست استفاده کنید. این می تواند از حملات جعل درخواست بین سایتی (CSRF) جلوگیری کند.
مدیریت ابزار و سرور MCP
- تأیید ابزار MCP: 🟥️ اصالت و یکپارچگی ابزارهای ثبت نام شده را تأیید کنید. این می تواند از ثبت نام ابزارهای مخرب جلوگیری کند.
- به روز رسانی ایمن: 🟥️ مشتری MCP به طور مرتب به روز رسانی های امنیتی را بررسی و اعمال می کند و بررسی می کند که آیا ابزارهای به روز شده شامل توضیحات مخرب هستند یا خیر. این می تواند اطمینان حاصل کند که ابزارها به روز هستند و شامل کد مخرب نیستند.
- تأیید نام تابع: 🟥️ قبل از ثبت ابزار، تضاد نام و جایگزینی مخرب احتمالی را بررسی کنید. این می تواند از جایگزینی ابزارهای مخرب برای ابزارهای موجود جلوگیری کند.
- تشخیص MCP مخرب: 🟥️ الگوهای رفتاری MCP های بالقوه مخرب را نظارت و شناسایی کنید. این می تواند به شناسایی MCP های مخرب کمک کند.
- کنترل نامگذاری ابزار MCP: 🔶 از فضاهای نام یا شناسه های منحصر به فرد برای جلوگیری از تضاد نام استفاده کنید. این می تواند از تداخل بین ابزارها جلوگیری کند.
- فهرست سرویس: 🔶 یک فهرست مجاز از سرویس ها و ابزارهای MCP قابل اعتماد را نگهداری کنید. این می تواند به کاربران کمک کند تا سرویس های قابل اعتماد را پیدا کنند.
- حل تضاد: 🔶 قوانین روشنی برای حل تضادهای ابزار همنام وجود دارد.
- جداسازی دامنه: 🔶 ابزارهای دامنه های مختلف از یکدیگر جدا هستند تا از تأثیر متقابل جلوگیری شود.
- مکانیسم اولویت: 🔶 قوانین اولویت تابع روشن را برای جلوگیری از جایگزینی مخرب ایجاد کنید.
- کنترل نسخه: 🔶 کنترل نسخه را برای توابع و ابزارها اجرا کنید تا تغییرات را تشخیص دهید.
- مکانیسم ثبت نام و لغو ابزار: 🔶 روند ثبت نام و لغو ابزار را روشن کنید تا از خطرات امنیتی ابزارهای میراثی جلوگیری شود.
- مکانیسم تشخیص تضاد: 🔶 تضادهای تابع و منابع را در محیط های چند MCP تشخیص داده و حل کنید.
- طبقه بندی ابزار: 🟢️ ابزارها را بر اساس حساسیت و سطح ریسک طبقه بندی کنید.
امنیت اعلان
- دفاع از تزریق اعلان: 🟥️ اقدامات دفاعی چند لایه را برای جلوگیری از حملات تزریق اعلان اجرا کنید، از جمله تأیید دستی اجرای کلیدی.
- تشخیص دستورالعمل مخرب: 🟥️ مکانیسمی برای تشخیص و مسدود کردن دستورالعمل های کاربر مخرب بالقوه ایجاد کنید تا از دستکاری سیستم جلوگیری شود، مانند تشخیص و مسدود کردن دستورالعمل های مخرب از پیش بارگذاری شده در هنگام اولیه سازی محلی و دستورالعمل های مضر پنهان حاوی ابزارهای مخرب از سرورهای MCP شخص ثالث.
- حفاظت از اعلان سیستم: 🟥️ اعلان سیستم به طور واضح از ورودی کاربر جدا شده است تا از دستکاری جلوگیری شود.
- فیلتر کردن داده های حساس: 🟥️ داده های شخصی حساس را از اعلان ها و زمینه فیلتر کنید.
- جداسازی زمینه: 🔶 اطمینان حاصل کنید که محتوای زمینه از منابع مختلف از یکدیگر جدا هستند تا از آلودگی و افشای اطلاعات زمینه جلوگیری شود.
- الگوی اعلان: 🔶 از الگوهای اعلان ایمن استفاده کنید تا خطر تزریق را کاهش دهید.
- تأیید توضیحات ابزار: 🔶 دستورالعمل های مخرب بالقوه را در توضیحات ابزار بررسی کنید.
- تأیید سازگاری اعلان: 🔶 اطمینان حاصل کنید که اعلان های مشابه در محیط های مختلف نتایج سازگار قابل پیش بینی ایجاد می کنند.
- مدیریت زمینه تاریخی: 🔶 مکانیسم پاکسازی ایمن زمینه تاریخی را برای جلوگیری از خطر افشای اطلاعات ناشی از تجمع داده های قدیمی روشن کنید.
ثبت گزارش و حسابرسی
- ثبت گزارش مشتری: 🟥️ تمام تعاملات با سرویس های MCP، فراخوانی ابزار و فعالیت های مجوز را ثبت کنید.
- ثبت گزارش رویداد امنیتی: 🟥️ تمام رویدادهای مربوط به امنیت، از جمله مجوزهای ناموفق را ثبت کنید.
- هشدار ناهنجاری: 🔶 الگوهای فعالیت غیرطبیعی را تشخیص داده و هشدار دهید.
تأیید سرور و امنیت ارتباط
- تأیید هویت سرور: 🟥️ هویت سرور MCP را تأیید کنید تا از اتصال به سرورهای مخرب جلوگیری شود، قفل گواهی را پیاده سازی کنید.
- تأیید گواهی: 🟥️ گواهی TLS سرور از راه دور را به شدت تأیید کنید تا از حملات مرد میانی جلوگیری شود، یکپارچگی زنجیره گواهی را بررسی کنید.
- رمزگذاری ارتباط: 🟥️ تمام ارتباطات مشتری-سرور را با TLS 1.2+ رمزگذاری کنید، مجموعه های رمزگذاری ضعیف را غیرفعال کنید.
- پیکربندی پروتکل امنیتی: 🔶 پارامترهای TLS ایمن را پیکربندی کنید، الگوریتم ها و پروتکل های رمزگذاری را به طور منظم حسابرسی و به روز کنید.
ذخیره سازی و مدیریت توکن های مجوز
- محدودیت دامنه مجوز: 🟥️ دامنه مجوز توکن را به شدت محدود کنید، اصل حداقل امتیاز را اجرا کنید.
کنترل تأیید خودکار
- محدودیت تأیید خودکار: 🟥️ دامنه ابزارها و عملیاتی را که می توانند به طور خودکار تأیید شوند به شدت کنترل کنید.
- مدیریت فهرست سفید: 🔶 یک مکانیسم فهرست سفید برای ابزارهایی که می توانند به طور خودکار تأیید شوند به وضوح تعریف کنید.
- ارزیابی ریسک پویا: 🔶 استراتژی های تأیید خودکار را بر اساس زمینه به طور پویا تنظیم کنید.
- حسابرسی فرایند تأیید: 🔶 تمام تصمیمات تأیید خودکار را ثبت و حسابرسی کنید.
امنیت نمونه برداری
- کنترل شامل زمینه: 🟥️ دامنه زمینه موجود در درخواست های نمونه برداری را به شدت کنترل کنید.
- فیلتر کردن داده های حساس: 🟥️ داده های حساس را از درخواست ها و پاسخ های نمونه برداری فیلتر کنید.
- تأیید درخواست نمونه برداری: 🔶 تمام پارامترها و محتوای درخواست نمونه برداری را تأیید کنید.
- کنترل کاربر: 🔶 اطمینان حاصل کنید که کاربر کنترل واضحی بر درخواست ها و نتایج نمونه برداری دارد.
- امنیت تنظیمات مدل: 🔶 اطلاعات تنظیمات مدل را به طور ایمن پردازش کنید تا از سوء استفاده جلوگیری شود.
- تأیید نتیجه: 🔶 تأیید کنید که نتایج نمونه برداری با استانداردهای امنیتی مطابقت دارند.
تطبیق و فراخوانی ایمن MCP در LLM های مختلف
LLM های مختلف ممکن است اولویت های فراخوانی و منطق اجرایی متفاوتی برای فراخوانی MCP داشته باشند، بنابراین لازم است بر امنیت ترکیبی LLM و MCP تمرکز شود.
اجرای ایمن LLM
- اجرای تابع اولویت: 🟥️ اطمینان حاصل کنید که LLM می تواند توابع پلاگین های صحیح را در اولویت اجرا کند.
- حفاظت از اعلان مخرب: 🟥️ LLM می تواند رفتار مورد نیاز از یادداشت های تزریق شده را در سناریوهای اعلان مخرب شناسایی و محافظت کند.
- فراخوانی ایمن: 🟥️ LLM می تواند به درستی و با خیال راحت توابع MCP مرتبط را فراخوانی کند.
- حفاظت از اطلاعات حساس: 🟥️ از افشای اطلاعات حساس جلوگیری کنید.
امنیت چند وجهی
- فیلتر کردن محتوای چند وجهی: 🟥️ اطلاعات مضر یا حساس را در محتوای چند وجهی فیلتر کنید (مانند اعلان های مخرب در تصاویر).
امنیت سناریوهای چند MCP
هنگام فعال کردن همزمان چندین سرور MCP، به دلیل عدم حسابرسی رسمی، کاربران ممکن است MCP های مخرب را نصب کنند که تهدیدی برای امنیت کلی ایجاد می کند.
- امنیت محیط چند MCP: 🟥️ از امنیت کلی محیط چند MCP اطمینان حاصل کنید، به طور منظم MCP های نصب شده را اسکن و بررسی کنید.
- حفاظت از ربودن اولویت تابع: 🟥️ تنظیمات از پیش تعیین شده اعلان مخرب احتمالی را بررسی کنید، از ربودن اولویت تابع به طور مخرب جلوگیری کنید.
- کنترل فراخوانی تابع بین MCP: 🟥️ به طور ایمن فراخوانی تابع بین MCP را کنترل کنید، از بازگشت اعلان های مخرب توسط MCP مخرب برای فراخوانی سایر MCP ها برای انجام عملیات حساس جلوگیری کنید.
نکات امنیتی خاص MCP مرتبط با ارزهای دیجیتال
MCP های مرتبط با ارزهای دیجیتال معمولاً عملکردهای مدیریت کیف پول ارزهای دیجیتال را دارند و دارای خطر بالایی هستند.
- حفاظت از کلید خصوصی: 🟥️ اقدامات حفاظت ایمن کلید خصوصی را تقویت کنید، مانند Scrypt.
- امنیت تولید کیف پول: 🟥️ امنیت ضمانت عبارت اولیه یا روند تولید کیف پول.
- حریم خصوصی اطلاعات کیف پول: 🟥️ از حریم خصوصی اطلاعات کیف پول محافظت کنید، هنگام درخواست اطلاعات کیف پول از طریق رابط های شخص ثالث، فیلتر کردن را به خوبی انجام دهید.
- تأیید اطلاعات انتقال: 🟥️ اطلاعات امضای انتقال زنجیره ای یا مبادله ای باید به طور کامل نمایش داده شود و تأیید شود.
- تأیید عملیات بودجه: 🟥️ برای عملیات بودجه مهم به تأیید ثانویه نیاز است، مانند Google Authenticator.
- حفاظت از حریم خصوصی مدل محلی: 🔶 از مدل های بزرگ محلی برای محافظت از داده های حریم خصوصی استفاده کنید، از دریافت اطلاعات حساس مانند اطلاعات کیف پول شما توسط سازندگان مدل های بزرگ شخص ثالث جلوگیری کنید.
- سازگاری کیف پول سنتی: 🔶 سازگاری امن با کیف پول های سنتی، مانند پشتیبانی از استفاده از کیف پول های سنتی برای انجام عملیات امضا.