أصدر باحثو سيسكو تالوس قبل بضعة أيام ثغرة أمنية في نواة Linux يمكن استغلالها لسرقة البيانات وأيضًا بمثابة وسيلة لتصعيد الامتيازات وتعريض النظام للخطر.
عالي التأثر يوصف بأنه "ثغرة أمنية في الكشف عن المعلومات مما قد يسمح للمهاجم برؤية ذاكرة مكدس النواة. '
CVE-2020-28588 هي الثغرة الأمنية التي اكتشفت في وظائف عمليات proc / pid / syscall في أجهزة ARM 32 بت التي تعمل بنظام التشغيل. وفقًا لـ Cisco Talos ، تم اكتشاف المشكلة لأول مرة على جهاز يقوم بتشغيل Azure Sphere.
توجد ثغرة أمنية في الكشف عن المعلومات في وظيفة / proc / pid / syscall في Linux Kernel 5.1 Stable و 5.4.66. وبشكل أكثر تحديدًا ، تم تقديم هذه المشكلة في الإصدار 5.1-rc4 (تلتزم 631b7abacd02b88f4b0795c08b54ad4fc3e7c7c0) ولا تزال موجودة في الإصدار 5.10-rc4 ، لذلك من المحتمل أن تتأثر جميع الإصدارات الوسيطة. يمكن للمهاجم قراءة / proc / pid / syscall لتنشيط هذه الثغرة الأمنية ، مما يتسبب في فقدان النواة لمحتوى الذاكرة.
Proc هو نظام ملفات زائف خاص على أنظمة تشغيل شبيهة بـ Unix تستخدم للوصول ديناميكيًا إلى بيانات العملية وجدت في النواة. يقدم معلومات المعالجة ومعلومات النظام الأخرى في هيكل هرمي يشبه الملف.
على سبيل المثال ، يحتوي على أدلة فرعية / proc / [pid] ، يحتوي كل منها على ملفات وأدلة فرعية تعرض معلومات حول عمليات محددة ، ويمكن قراءتها باستخدام معرف العملية المقابل. في حالة ملف "syscall" ، فهو ملف نظام تشغيل Linux شرعي يحتوي على سجلات استدعاءات النظام التي يستخدمها kernel.
بالنسبة للشركة ، lيمكن للقراصنة استغلال الخلل والوصول إلى نظام التشغيل وملف syscall من خلال نظام يستخدم للتفاعل بين هياكل بيانات النواة ، Proc. يمكن استغلال إدخال procfs syscall إذا أصدر المتسللون أوامر لإنشاء 24 بايت من ذاكرة الكومة غير المهيأة ، مما يؤدي إلى تجاوز التوزيع العشوائي لتخطيط مساحة عنوان kernel (KASLR).
بالنظر إلى هذه الوظيفة المحددة ، يبدو كل شيء على ما يرام ، ولكن تجدر الإشارة إلى أن ملف
args
مرت المعلمة منproc_pid_syscall
وظيفة وعلى هذا النحو هو في الواقع من النوع__u64 args
. في نظام ARM ، يحول تعريف الوظيفة حجم ملفarg
صفيف في عناصر رباعية البايت من ثمانية بايت (منذ ذلك الحينunsigned long
في ARM هو 4 بايت) ، مما يؤدي إلى ذلك فيmemcpy
يتم نسخها إلى 20 بايت (زائد 4 من أجلargs[0]
).وبالمثل ، بالنسبة لـ i386 ، أين
unsigned long
إنها 4 بايت فقطargs
تتم كتابة أول 24 بايت من الوسيطة ، مع ترك الـ 24 بايت المتبقية كما هي.في كلتا الحالتين ، إذا نظرنا إلى الوراء في
proc_pid_syscall
وظيفة.بينما في ARM 32 بت و i386 ، نقوم بنسخ 24 بايت فقط في ملف
args
صفيف ، تنتهي سلسلة التنسيق بقراءة 48 بايت من ملفargs
المصفوفة ، منذ%llx
سلسلة التنسيق ثمانية بايت في أنظمة 32 بت و 64 بت. لذا فإن 24 بايتًا من ذاكرة الكومة غير المهيأة تنتهي بالحصول على إخراج ، مما قد يؤدي إلى تجاوز KASLR.
يقول الباحثون أن هذا الهجوم "من المستحيل اكتشافه عن بعد على الشبكة" لأنه يقرأ ملفًا شرعيًا من نظام التشغيل Linux. تقول Cisco: "إذا تم استخدامها بشكل صحيح ، يمكن للمخترق الاستفادة من تسرب هذه المعلومات لاستغلال ثغرات Linux الأخرى التي لم يتم إصلاحها بنجاح".
في هذا الصدد ، قالت Google مؤخرًا:
غالبًا ما تهدد عيوب أمان الذاكرة أمن الأجهزة ، وخاصة التطبيقات وأنظمة التشغيل. على سبيل المثال ، في نظام تشغيل Android للهاتف المحمول المدعوم أيضًا من Linux kernel ، تقول Google إنها وجدت أن أكثر من نصف الثغرات الأمنية التي تمت معالجتها في عام 2019 كانت نتيجة أخطاء أمان الذاكرة.
اخيرا وليس اخرا يوصى بتحديث الإصدارات 5.10-rc4 و 5.4.66 و 5.9.8 من Linux kernel منذ ذلك الحين تم اختبار هذه الثغرة الأمنية والتأكد من قدرتها على استغلال الإصدارات التالية من Linux kernel.
أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها حول المنشور ، يمكنك التحقق من التفاصيل في الرابط التالي.