مقال : شرح ثغرة GHOST وكيفية إكتشافها وترقيعها
تقيمك :سمعنا في الفترة الأخيرة عن ثغرة GHOST التي أصابت أنظمة تشغيل Linux , وهي ثغرة من نوع Buffer overflow أصابت مكتبة GNU C Library وإختصارها Glibc وتحديداً في الدالة __nss_hostname_digits_dots() المستخدمه من قبل الدالة الرئيسية gethostbyname() , وجاءت تسمية ثغرة Ghost من “GetHost” وكما ذكرت هي المقطع الأول من إسم الدالة الرئيسية gethostbyname وكما تم الإشارة إليها بالرمزCVE-2015-0235 , سوف نقوم بهذا المقال إن شاء الله من عمل تعريف بسيط جداً بالثغرة وكيفية إكتشافها على السيرفرات والأجهزة الخاصة بكم التي تعمل بنظام Linux وكذلك ترقيعها بشكل كامل.
الثغرة تم إكشتافها من قبل شركة qualys الأمريكية المختصه في أمن المعلمات والثغرة هذه تصيب أغلب توزيعات Linux وهذه التوزيعات المصابة نقلاً عن أحد المصادر الأجنبية :
- RHEL (Red Hat Enterprise Linux) version 5.x, 6.x and 7.x
- CentOS Linux version 5.x, 6.x & 7.x
- Ubuntu Linux version 10.04, 12.04 LTS
- Debian Linux version 7.x
- Linux Mint version 13.0
- Fedora Linux version 19 or older
- SUSE Linux Enterprise 11 and older (also OpenSuse Linux 11 or older versions).
- SUSE Linux Enterprise Software Development Kit 11 SP3
- SUSE Linux Enterprise Server 11 SP3 for VMware
- SUSE Linux Enterprise Server 11 SP3
- SUSE Linux Enterprise Server 11 SP2 LTSS
- SUSE Linux Enterprise Server 11 SP1 LTSS
- SUSE Linux Enterprise Server 10 SP4 LTSS
- SUSE Linux Enterprise Desktop 11 SP3
- Arch Linux glibc version <= 2.18-1
حسناً دعونا نقوم الأن بذكر نبذه أكبر قليلاً عن هذه الثغرة , كما ذكرنا أن الثغرة هي بالأساس موجوده داخل مكتبة Glibc في دالة التابعة للدالة الرئيسية gethostbyname , لذلك إمكانية الإستغلال لهذه الثغرة تتيح للمخترق أن يقوم بتشغيل اكواد ضاره عن بعد من خلال هذه الثغرة والحصول على إختراق كامل للنظام , ويفيد بعض الباحثيين الأمنيين أنه من الممكن أن يكون هنالك إستغلال للثغرة في تطبيقات ويب مشهورة مثل WordPress والتي مبرمجة بالأساس من خلال لغة php.
من الجدير بالذكر أيضاً ان الثغرة ظهرت مسبقاً في عام 2000 في الإصدار glibc-2.2 حسب مقالة مكتوبة عن الثغرة في مجتمع شركة qualys.
طبعاً العديد من مدراء الأنظمة وأصحاب المواقع يتسألون عن كيفية ترقيع هذه الثغرة وإكتشافها وسوف أشرح الان كيفية إكتشاف الثغرة في الأجهزة والخوادم الخاصة بنا ومن ثم كيفية ترقيعها بشكل سريع جداً.
شركة qualys نشرت مسبقاً الكود المصدري لبرنامج صغير بلغة C يقوم بتحديد ما إذا كانت الثغرة موجوده في النظام أم لا , وسوف أشرح الأن كيفية ترجمة هذا البرنامج وتشغيله على أجهزتنا أو على أحد السيرفرات الخاصة بنا ومن ثم إكتشاف ما إن كان مصاب بالثغرة أم لا وأخيراً كما ذكرت سوف نقوم بترقيعه مباشرة.
سوف نقوم بتحميل وعمل ترجمة للملف من خلال سطر الأوامر الخاص بي والموجود على جهازي والذي يعمل بنظام Ubuntu 14.04 LTS , وفي ما يلي كيفية عمل ترجمة للملف وتشغيله وقرأة النتيجة :
كما نرى قمنا بتحميل الملف المرفق من خلال wget ومن ثم قمنا بترجمة الملف بإستخدام الأمر gcc -o file source.c وبعد ذلك قمنا بإعطائه صلاحيات التنفيذ ليظهر لنا السطر “not vulnerable” والذي يشير بأن النظام ليس مصاب.
دعونا نقوم بالتنفيذ على سيرفر خاص بالتجارب ل iSecur1ty ونرى في حال كان مصاب أم لا وكيفية ترقيعه في حال كان مصاب 😀
بعد سحب البرنامج وترجمته وتنفيذه ظهر لنا التالي :
كما نرى السطر vulnerable أي أن السيرفر مصاب .. لترقيع الثغرة بشكل سريع سوف نقوم بإستخدام الأمر yum update حيث بعد إصدار ترقيع لمجموعة إصدارات تم تضمينها للمستودعات الخاصة ببعض التوزيعات ,ولأننا نستخدم نظام CentOS إستخدمنا yum update وفي حال كنت تستخدم Debian أو Ubuntu قم بتحديث الحزم من خلال apt-get , وهذه النتيجة بعد إنتهاء التحديث وتشغيل الملف مره أخرى :
يجب عمل إعادة تشغيل للخادم لكي يقوم النظام بتثبيت التحديثات بشكل صحيح وتفعيلها وتستطيعون عمل إعادة تشغيل للنظام من خلال الأمر reboot
إن شاء الله خلال الأيام القادمة وبعد التأكد من أن الثغرة تم ترقيعها في أكبر عدد ممكن من الخوادم سوف نقوم بعمل شرح فيديو يتحدث عن كيفية إستغلالها بإذن الله تعالى 🙂
نتمنى أن يكون نال المقال إعجابكم وبإذن الله ونراكم في مقالات أخرى 🙂

مختبر إختراق من الأردن أحب كل ما يتعلق بأمن المعلومات ، أساهم في كتابة العديد من المقالات والتحديات في مُجتمع iSecur1ty ، أحب البرمجة بلغة python ولدي خبره في إدارة السيرفرات وبناء الأنظمة.
التعليقات
EZ0o FRe3A
1 فبراير، 2015 الساعة 5:44 مممكن سورس البرنامج الدي يقوم بالبحث عن التغرة
kitro
1 فبراير، 2015 الساعة 8:39 مالرابط موجود بالمقال
http://www.isecur1ty.org/wp-content/uploads/2015/02/glibc-ghost.c
امير
1 فبراير، 2015 الساعة 6:56 ملكن ما هي طريقة استغلال هذه الثغرة
محمد عسكر
3 فبراير، 2015 الساعة 11:34 صسوف نقوم إن شاء الله عزيزي بنشر كيفية الإستغلال قريباً 🙂 كما ذكرت بالمقال مسبقاً بأننا ننتظر ترقيع أكبر عدد من الخوادم لكي نستطيع نشر الإستغلال بإذن الله تعالى 🙂
عصام
1 فبراير، 2015 الساعة 8:48 مشكرا جزيلا لك أخي الكريم
محمد عسكر
3 فبراير، 2015 الساعة 11:34 صالعفو عزيزي عصام 🙂
حساني محمد
2 فبراير، 2015 الساعة 12:51 صشكراً ، تمنيت لو كان بالفيديو 🙂 ، لكن على كلٍ جزاكم الله خيراً .
محمد عسكر
3 فبراير، 2015 الساعة 11:35 صالعفو عزيزي وسوف نحاول أن يكون شرح الإستغلال من خلال الفيديو 🙂
malikoviche
8 فبراير، 2015 الساعة 10:08 مthanks sir mohamed
sil3nt
13 فبراير، 2015 الساعة 7:54 مهل من الممكن ان تحدد موعد نشر استغلال الثغره !
kamale
4 ديسمبر، 2016 الساعة 3:49 مسلام عليكم اخي محمد شرح وافي وافي بارك الله فيك
kamale
4 ديسمبر، 2016 الساعة 3:50 مممكن حسابك اخي
ناصف ام بدة
22 يونيو، 2018 الساعة 9:22 صانا ناصف ام بدة من السودان عوز تخصص هندسة اشو احسن فى هندسة البرمجة