
ورقة أكاديمية وشرائح عرض تحلل ثغرة تصعيد الامتيازات في لينكس المعروفة باسم Dirty COW (CVE-2016-5195)، بما في ذلك تقنيات الاستغلال، سلوك كتابة النواة، وتحديات الكشف.
تحتوي هذه المستودع على ورقة بحثية وشرائح عرض حول CVE-2016-5195، وهي ثغرة تصعيد صلاحيات في نظام لينكس، كُتبت لمقرر أنظمة التشغيل: التصميم والأمان في كلية الرياضيات والمعلوماتية (FMI) بجامعة بوخارست.
في ورقتك البحثية ادعيت أنه يمكن استخدام Dirty COW لخبيئة الثنائيات بصمت دون التصعيد الفوري إلى صلاحيات الجذر لجعل الكشف أكثر صعوبة.
هذا غير صحيح فعلياً لأنه عند محاولة إعادة كتابة الصفحة المُعدَّلة، يلاحظ النواة أن الصفحة متسخة (وهو ما لا ينبغي أن تكون عليه أبداً) ويُصاب بالذعر، مما يؤدي إلى تحطم النظام.
لمنع ذلك يجب عليك التصعيد فوراً إلى صلاحيات الجذر وتعطيل إعادة الكتابة التلقائية عن طريق "echo 0 > /proc/sys/vm/dirty_writeback_centisecs". إثبات المفهوم الخاص بي لا يفعل ذلك، لذا يتحطم بسرعة عند الاختبار في جهاز افتراضي، بعد تعديل /etc/passwd بنجاح (والذي لا يستمر إلى القرص).
https://www.exploit-db.com/exploits/40847 هو مثال على كود استغلال يقوم بالكتابة فوق /etc/passwd ثم تعطيل إعادة الكتابة التلقائية لمنع التحطم.
تشمل الطرق الأخرى تصحيح vDSO (https://github.com/scumjr/dirtycow-vdso) بدلاً من صفحة مدعومة بملف، مما يؤثر على جميع العمليات في النظام ولا يتحطم، وله مزايا أخرى مثل الهروب من الحاويات أيضاً، ولا يتأثر بقيود SELinux التي قد تمنع حتى فتح /etc/passwd للقراءة فقط للهجوم.
بينما يمكنك بالفعل خبيئة النظام بعد التصعيد إلى صلاحيات الجذر (كما هو الحال مع أي طريقة أخرى لتصعيد الصلاحيات)، فإن ذلك سيشمل عمليات نظام ملفات عادية وقد يُكتشف بواسطة أنظمة كشف الاختراق، في حين أنه لو كانت إعادة الكتابة التلقائية قد عملت كما اعتقدت أصلاً، لكانت قد تتجاوز مراقبة عمليات الكتابة، لأن النواة ستقوم فقط بإعادة كتابة الصفحة دون أي استدعاء نظام للكتابة، ولكنها في الواقع تصاب بالذعر بدلاً من ذلك.