اكتشف العديد من نقاط الضعف التي تعرض العديد من عملاء Matrix للخطر

بروتوكول المصفوفة

ماتريكس هو بروتوكول مراسلة فورية مفتوح. إنه مصمم للسماح للمستخدمين بالتواصل عبر الدردشة عبر الإنترنت ، والصوت عبر IP ، ودردشة الفيديو.

أصدر مطورو منصة الاتصالات اللامركزية "Matrix" مؤخرًا تحذيرًا بشأن العديد من الثغرات الأمنية الخطيرة التي تم اكتشافها في مكتبات matrix-js-sdk و matrix-ios-sdk و matrix-android-sdk2 والتي تسمح لمسؤولي الخوادم بانتحال شخصيات المستخدمين الآخرين وقراءة رسائل الدردشة المشفرة من طرف إلى طرف (E2EE).

يُذكر أنه لإتمام الهجوم بنجاح، يلزم الوصول إلى خادم منزلي يتحكم به المهاجمون (الخادم المنزلي: خادم يُستخدم لتخزين سجلات المستخدمين وحساباتهم). يمنع استخدام التشفير التام من جانب المستخدم مسؤول الخادم من التدخل في الرسائل، إلا أن الثغرات الأمنية المكتشفة تسمح بتجاوز هذا الحماية.

تؤثر هذه المشكلات على عميل Element Matrix الرئيسي (المعروف سابقًا باسم Riot) للويب، وسطح المكتب، وiOS وAndroid، بالإضافة إلى تطبيقات العميل التابعة لجهات خارجية مثل Cinny وBeeper وSchildiChat وCirculi وSynod.im.

لا تظهر نقاط الضعف في المكتبات matrix-rust-sdk و hydrogen-sdk و Matrix Dart SDK و mautrix-python و mautrix-go و matrix-nio بالإضافة إلى Hydrogen و ElementX و Nheko و FluffyChat و Siphon و Timmy و تطبيقات Gomuks و Pantalaimon.

لاحظ أن مشكلات الخطورة الحرجة هي مشكلات التنفيذ في matrix-js-sdk والمشتقات ، وليست مشكلات بروتوكول في Matrix. أحدث إصدار من ورقة الباحثين التي رأيناها يصور بشكل غير صحيح Element على أنه "عميل Matrix القياسي" ويخلط بين أخطاء التنفيذ الشديدة الخطورة والنقد الأقل خطورة للبروتوكول.

هناك ثلاثة سيناريوهات هجوم رئيسية :

  1. يمكن لمسؤول خادم Matrix كسر التحقق المستند إلى الرموز التعبيرية (SAS ، سلاسل المصادقة القصيرة) باستخدام التوقيعات المشتركة وانتحال شخصية مستخدم آخر. سبب المشكلة هو وجود ثغرة أمنية (CVE-2022-39250) في كود matrix-js-sdk المتعلق بمزيج من معالجة معرّف الجهاز ومفاتيح التوقيع المشترك.
  2. يمكن للمهاجم الذي يتحكم في الخادم انتحال شخصية مرسل موثوق به وتمرير مفتاح مزيف لاعتراض الرسائل من مستخدمين آخرين. ترجع المشكلة إلى وجود ثغرة أمنية في matrix-js-sdk (CVE-2022-39251) و matrix-ios-sdk (CVE-2022-39255) و matrix-android-sdk2 (CVE-2022-39248) ، مما تسبب في يقبل العميل بشكل غير صحيح الرسائل الموجهة إلى الأجهزة المشفرة باستخدام بروتوكول Megolm بدلاً من Olm ، وينسب الرسائل إلى مرسل Megolm بدلاً من المرسل الفعلي.
  3. من خلال استغلال نقاط الضعف المذكورة في الفقرة السابقة ، يمكن لمسؤول الخادم أيضًا إضافة مفتاح احتياطي وهمي لحساب المستخدم لاستخراج المفاتيح المستخدمة لتشفير الرسائل.

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

قام مطورو مشروع Matrix بتصنيف هذه الثغرات الأمنية على أنها طفيفة ، لأن مثل هذه التلاعبات ليست خاصة بـ Matrix وتؤثر فقط على العملاء بناءً على البروتوكول، ولكن هذا لا يعني أنها لن تمر دون أن يلاحظها أحد: إذا تم استبدال مستخدم، فسيتم عرضه في قائمة مستخدمي الدردشة، وعند إضافة جهاز، سيتم عرض تحذير وسيتم وضع علامة على الجهاز بأنه غير موثق (في هذه الحالة، مباشرة بعد إضافة الجهاز غير المصرح به، سيبدأ في تلقي المفاتيح العامة اللازمة لفك تشفير الرسائل).

ستلاحظ أن matrix-rust-sdk و hydrogen-sdk وغيرها من مجموعات SDK من الجيل الثاني والثالث لم تتأثر بالأخطاء الموجودة في السبب الجذري للمشكلات الحرجة هنا. هذا هو بالضبط سبب عملنا على استبدال الجيل الأول من SDKs بتطبيق نظيف ومكتوب بعناية لـ Rust في شكل matrix-rust-sdk ، مع استكمال تدقيق عام مستقل ومستمر.

تنتج هذه الثغرات الأمنية عن أخطاء في تطبيقات فردية لبروتوكول ماتريكس، وليست مشاكل في البروتوكول نفسه. وقد أصدر المشروع حاليًا تحديثات لحزم تطوير البرامج (SDKs) المتأثرة وبعض تطبيقات العميل المبنية عليها.

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


أضف كمصدر مفضل في جوجل