سمعنا في الفترة الأخيرة عن ثغرة GHOST التي أصابت أنظمة تشغيل Linux , وهي ثغرة من نوع Buffer overflow أصابت مكتبة  GNU C Library وإختصارها Glibc وتحديداً في الدالة __nss_hostname_digits_dots() المستخدمه من قبل الدالة الرئيسية gethostbyname() , وجاءت تسمية ثغرة Ghost من “GetHost” وكما ذكرت هي المقطع الأول من إسم الدالة الرئيسية gethostbyname وكما تم الإشارة إليها بالرمزCVE-2015-0235 , سوف نقوم بهذا المقال إن شاء الله من عمل تعريف بسيط جداً بالثغرة وكيفية إكتشافها على السيرفرات والأجهزة الخاصة بكم التي تعمل بنظام Linux وكذلك ترقيعها بشكل كامل.

ghost-linux-security-vulnerability

الثغرة تم إكشتافها من قبل شركة 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 , وفي ما يلي كيفية عمل ترجمة للملف وتشغيله وقرأة النتيجة :

ghost_wget

 

كما نرى قمنا بتحميل الملف المرفق من خلال wget ومن ثم قمنا بترجمة الملف بإستخدام الأمر gcc -o file source.c وبعد ذلك قمنا بإعطائه صلاحيات التنفيذ ليظهر لنا السطر “not vulnerable” والذي يشير بأن النظام ليس مصاب.

دعونا نقوم بالتنفيذ على سيرفر خاص بالتجارب ل iSecur1ty ونرى في حال كان مصاب أم لا وكيفية ترقيعه في حال كان مصاب 😀

بعد سحب البرنامج وترجمته وتنفيذه ظهر لنا التالي :

ghost_vuln

كما نرى السطر vulnerable أي أن السيرفر مصاب .. لترقيع الثغرة بشكل سريع سوف نقوم بإستخدام الأمر yum update حيث بعد إصدار ترقيع لمجموعة إصدارات تم تضمينها للمستودعات الخاصة ببعض التوزيعات ,ولأننا نستخدم نظام CentOS إستخدمنا yum update  وفي حال كنت تستخدم Debian أو Ubuntu قم بتحديث الحزم من خلال apt-get , وهذه النتيجة بعد إنتهاء التحديث وتشغيل الملف مره أخرى :

 

 

ghost_not_vuln

 

يجب عمل إعادة تشغيل للخادم لكي يقوم النظام بتثبيت التحديثات بشكل صحيح وتفعيلها وتستطيعون عمل إعادة تشغيل للنظام من خلال الأمر reboot

إن شاء الله خلال الأيام القادمة وبعد التأكد من أن الثغرة تم ترقيعها في أكبر عدد ممكن من الخوادم سوف نقوم بعمل شرح فيديو يتحدث عن كيفية إستغلالها بإذن الله تعالى 🙂

نتمنى أن يكون نال المقال إعجابكم وبإذن الله ونراكم في مقالات أخرى 🙂