تعريف ثغرة dirty-cow التى ظهرت فى نواه نظام لينكس

ثغرة Dirty-cow في نواه نظام لينكس

0 تعليق yes 31- أكتوبر -2016 الوليد بن علي

ثغرة Dirty-cow في نواه نظام لينكس

تحت عنوان (CVE-2016-5195) تم تصنيف واحدة من أخطر الثغرات في نواة نظام لينكس من نوع

ما هى Dirty-cow ؟





نبدأ بشرح بعض المصطلحات المستخدمة في شرح تلك الثغرة :

الثلاث حروف COW تشير إلى Copy-On-Write, آلية وظيفتها الأساسية هي إدارة الذاكرة الوهمية _virtual memory_ لعمليات النظام أو الملفات و كل شئ على أنظمة Unix, هو عبارة عن ملفات (حتى الطابعة و لوحة المفاتيح يتعامل معهم النظام على أنهم ملفات) عن طريق Page table لتحديد المناطق الخاصة بالنظام و تلك التي تخص العمليات نفسها على الذاكرة الحقيقية للنظام نفسه.

طريقة ادخال الداتا فى الميمورى

طريقة ادخال الداتا فى الميمورى






فبدلاً من نسخ الذاكرة الخاصة للعملية بالكامل, نستخدم تلك الآلية لتكوين ما يشبه صورة من الملف ليكون قابل للاستخدام من قبل العمليات الأخرى لتقرأ منه معلومات أو حتى تقوم بالتعدل عليه, وإذا تم التعديل على إحدى تلك النسخ, تقوم النواه برصد تلك التغيرات و تقوم ببناء ملف جديد يحتوي على التغيرات التي حدثت, وذلك لحماية الجزء الخاص في الذاكرة الذي يحتوي على تصريح “قراءة فقط ” “read-only permission”.

تقوم النواة ابتداءً بحجز مكان في الذاكرة يكون مملوء بالأصفار و يكون مصرح للعملية الجارية التي تقرأ من مكان غير مسموح لها بالتعديل عليه أن تكتب التعديل الخاص بها في مكان خاص بالذاكرة و تحافظ تلك الآلية على أن تكون التعديلات خاصة بكل عملية ولا تظهر لأي عملية أخرى.

يمكن أن تتعمق أكثر عن Copy-On-Write إذا أردت أن تفهم آلية العمل و كيفية بنائها

وقد وجدت حالة تسابق (race condition) وهو تداخل أو عدم تنسيق بين عمليات متوازية وتؤثر كل  منهما على نفس الملف أو المتغير, ويظهر عيبه عندما تصير النتائج الأخيرة للعملية ككل أو أثناء التشغيل غير ما صمم البرنامج له.

Race Condition Concept

Race Condition Concept

و تأتي الثغرة هنا حيث يحدث أن يقوم المهاجم بالتعديل مرات متعددة على النسخة الخاصة به حتى يحدث race condition بين عملية القراءة و عملية التعديل, فيقع التعديل على الملف الموجود داخل الجزء الخاص في الذاكرة الذي هو من صلاحيات الروت التعديل عليه, أو أي ملف لا يمكن للمستخدم التعديل عليه.





الوليد بن علي

well

الوليد من القاهرة , مهتم بأمن المعلومات عموماً و بتقنيات الهندسة العكسية و تحليل البرامج و أنظمة التشغيل .

إضافة تعليق