ثغرة في حزمة تطوير البرمجيات لبروتوكول MCP تهدد بيانات اعتماد OAuth

ترقية حزم بروتوكولات الذكاء الاصطناعي توقف توجيه مفاتيح المصادقة نحو خوادم المهاجمين.

ثغرة في حزمة تطوير البرمجيات لبروتوكول MCP تهدد بيانات اعتماد OAuth
غياب التحقق من جهة الاتصال يعرض بيانات اعتماد OAuth للتسريب المباشر.

كشف فريق الصيانة الخاص بحزمة تطوير برمجيات Python الرسمية لبروتوكول Model Context Protocol عن ثغرة أمنية تتيح للخوادم الخبيثة سرقة بيانات اعتماد OAuth المستخدمة في تسجيل الدخول إلى الخدمات الحقيقية. وتؤدي هذه الثغرة الأمنية إلى إرسال أسرار العميل، ورمز التفويض، ومفتاح إثبات PKCE إلى نقطة نهاية يتحكم فيها المهاجم.

يذكر أن Model Context Protocol يعد معياراً مفتوحاً لربط تطبيقات الذكاء الاصطناعي بالأدوات والبيانات الخارجية، وتستخدم هذه الحزمة كأداة رسمية في بيئة Python لبناء خوادم وعملاء هذا البروتوكول.

أثبتت شركة الأمن السيبراني Cycode، التي أبلغت عن الخلل، أن المهاجم يمكنه استغلال البيانات المسروقة لطلب رمز وصول صالح من خدمة تسجيل الدخول الأصلية، حيث يحمل الرمز الناتج جميع الصلاحيات الممنوحة للتطبيق. تستمر صلاحية سر العميل لفترة طويلة، ويبقى فعالاً حتى يتم تغييره.

آليات الاختراق وسرقة البيانات

تحدث عملية الاختراق عندما يطلب عميل Model Context Protocol تسجيل الدخول، حيث يسأل الخادم الذي يتصل به عن موقع خدمة تسجيل الدخول الخاصة به. 

أظهرت النسخ المتأثرة قصوراً في التحقق من هذه الإجابة، ووجهت العميل نحو خدمة تسجيل دخول يختارها المهاجم. يرسل العميل إثر ذلك بياناته الحساسة ومفتاح إثبات PKCE، وهو قيمة تستخدم لمرة واحدة لمنع إعادة استخدام رمز التفويض، إلى جهة غير مصرح لها وتلغي هذه الخطوة فعالية الحماية بالكامل.

يحتاج المستخدم في الأنظمة التفاعلية إلى الموافقة على تسجيل الدخول، وتظهر صفحة الموافقة مطابقة تماماً للصفحة الأصلية لتجنب إثارة الشكوك. تعمل الأنظمة المباشرة بين الآلات دون الحاجة لأي تدخل بشري وتنفذ العمليات بشكل تلقائي.

نطاق التأثير والتحديثات الأمنية المطلوبة

يؤثر هذا الخلل على التطبيقات التي تستخدم الحزمة كعميل عبر بروتوكول HTTP مع مزودي خدمة OAuth محددين، وتحديداً في حالات الاتصال بخوادم لا يمتلك العميل سيطرة كاملة عليها. وتظل الخوادم المحلية والعملاء الذين يرفقون رموزهم الخاصة في مأمن من هذا التهديد.

شملت النسخ المتأثرة إصدارات السلسلة الأولى من 1.9.1 حتى 1.29.1، وتمت معالجتها في الإصدار 1.30.0. امتد التأثير في السلسلة الثانية ليشمل الإصدارات من 2.0.0 حتى 2.1.1، وعولجت المشكلة في الإصدار 2.2.0.

يتطلب الإصلاح الشامل الترقية إلى الإصدارات الآمنة، حيث يحدد العميل خدمة تسجيل الدخول المتوقعة ويرفض أي تفاصيل تشير إلى جهة مختلفة. يستوجب استخدام مزودي خدمة مثل ClientCredentialsOAuthProvider وPrivateKeyJWTOAuthProvider تمرير المتغير المعرف issuer= لتحديد خدمة تسجيل الدخول الأصلية؛ وبخلاف ذلك، ستظل بيانات الاعتماد تتبع أي خادم يوجهها إليه بروتوكول المصادقة.

كما يجب على مدراء الأنظمة مسح أي تسجيلات سابقة لعملاء OAuth، وتدوير أسرار العميل، وإبطال الرموز في خدمة تسجيل الدخول في حال الشك بحدوث اتصال مسبق مع خادم غير موثوق. 

الموثوقة والمعتمدة لدى خبراء الأمن السيبراني

تقرأ في نشرتنا التي تصلك كل أسبوع:

  • أحدث أخبار ومستجدات الأمن السيبراني محليًا وعالميًا.
  • تحليلات وتقارير دقيقة يقدمها خبراء المجال.
  • نصائح عملية لتطوير استراتيجياتك السيبرانية.
  • مراجعات شاملة لأهم الأحداث والتطورات التقنية
اذهب إلى الأعلى