ثغرة 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” والذي يشير بأن النظام ليس مصاب.
دعونا نقوم بالتنفيذ على سيرفر خاص بالتجارب ونرى في حال كان مصاب أم لا وكيفية ترقيعه في حال كان مصاب
بعد سحب البرنامج وترجمته وتنفيذه ظهر لنا التالي :
يجب عمل إعادة تشغيل للخادم لكي يقوم النظام بتثبيت
التحديثات بشكل صحيح وتفعيلها وتستطيعون عمل إعادة تشغيل للنظام من خلال
الأمر reboot
إن شاء الله خلال الأيام القادمة وبعد التأكد من أن الثغرة تم ترقيعها
في أكبر عدد ممكن من الخوادم سوف نقوم بعمل شرح فيديو يتحدث عن كيفية
إستغلالها حتى لا يوضع الحق في اختراقاتكم