دروس السيرفرات
ثغرة خطيرة جداً تسمح بتنفيذ هجمات DoS في BIND
بسم الله الرحمن الرحيم
ظهرت منذ أيام قليلة ثغرة خطيرة في BIND المسئول عن الـDNS في السيرفرات والتي تتيح للمخترق تنفيذ هجمة من نوع DoS والتي تقوم بشل خدمة BIND علي السيرفر المخترق
الثغرة تم برمجتها بلغة C وتم إصدار نسخة أخري منها بلغة Python
تم ظهور الثغرة منذ 5 أيام
وتم إصدار كود الإستغلال PoC بشكل عام متاح للجميع (للأسف)
تم تجربة الإستغلال وقام بإيقاف BIND بشكل كامل في 1 ثانية فقط!!
لن أقوم بالدخول في تفاصيل دقيقة تفادياً لضعاف النفوس الذين يضرون الغير بدون سبب
الثغرة في الإصدارات 9.1.0 إلي 9.8.x والإصدارات 9.9.0 إلي 9.9.7-P1 والإصدارات 9.10.0 إلي 9.10.2-P2
تم إصدار الترقيع للثغرة في كافة التوزيعات ولكن في التوزيعة CentOS 6 مازال لم يتم إصداره نظراً لأن CentOS تقوم بتحديث الإصدار 6.6 إلي 6.7 (والذي تم ترقيع الثغرة به) مما يجعلهم غير قادرين علي تحديث أي Packages في الوقت الحالي للإصدار 6.6
ولكن هناك Workaround قمت بعمله حتي يتسني لنا ترقيع الثغرة علي الإصدار 6.6 وهو عن طريق إضافة Repo تُسمي The Continuous Release (CR), هذه الـRepo يوجد بها كافة الـPackages التي سوف يتم إصدارها في الإصدار القادم من CentOS وهو CentOS 6.7
الترقيع لـCentOS 5, CentOS 7:
yum update bind -y /etc/init.d/named restart
الترقيع لـCentOS 6:
yum install centos-release-cr -y yum update bind -y /etc/init.d/named restart
بعد الإنتهاء من عملية الترقيع في توزيعة CentOS 6, يجب أن يتم حذف الـRepo حتي لا يتم تحديث كافة الـPackages بشكل تلقائي مما يترك الـcPanel بها العديد من المشاكل
حذف الـRepo يكون عن طريق الأمر التالي:
rm -rf /etc/yum.repos.d/CentOS-CR.repo
وبهذا قد يكون إنتهي تحديث Bind وتم ترقيع الثغرة
تجربة الثغرة بعد عملية الترقيع كانت كالآتي:
root@xxx [~]# ./bind-poc XXX.XXX.XXX.XXX --- PoC for CVE-2015-5477 XXXXXXXXXXXXXXXX --- [+] XXX.XXX.XXX.XXX: Resolving to IP address [+] XXX.XXX.XXX.XXX: Resolved to multiple IPs (NOTE) [+] XXX.XXX.XXX.XXX: Probing... [+] Querying version... [+] XXX.XXX.XXX.XXX: "9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.2" [+] Sending DoS packet... [+] Waiting 5-sec for response... [-] XXX.XXX.XXX.XXX: got response, so probably not vulnerable
لمعرفة إذا كان قد تم ترقيع الثغرة لديك قم بتنفيذ الأمر التالي:
rpm -q --changelog bind | grep CVE-2015-5477
إذا كانت الثغرة تم ترقيعها فسوف تظهر النتيجة التالية:
- Fix CVE-2015-5477
إذا كان هناك أي إستفسارات أو أمور غير واضحة أو تعليقات ففضلاً ترك تعليق بذلك
مصادر:
https://kb.isc.org/article/AA-01272
http://wiki.centos.org/AdditionalResources/Repositories/CR
https://www.isc.org/blogs/about-cve-2015-5477-an-error-in-handling-tkey-queries-can-cause-named-to-exit-with-a-require-assertion-failure/