ثغرة أمنية حرجة في مكتبة Go net/http: تهديد لملايين الخوادم

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

تم اكتشاف ثغرة أمنية حرجة في المكتبة القياسية Go (Golang): تهديد لملايين الخوادم



أثارت مجتمع المطورين على Go (Golang) أخبار اكتشاف ثغرة أمنية حرجة في المكتبة القياسية net/http. الثغرة، التي حصلت على المعرف CVE-2023-XXXX (تم استبداله كمثال)، تؤثر على معالجة طلبات HTTP ويمكن أن تؤدي إلى عواقب وخيمة - من تجاوز سياسات الأمان إلى الاختراق الكامل للخوادم.



تنتمي المشكلة إلى فئة هجمات من نوع HTTP Request Smuggling ("تهريب الطلبات"). تنشأ بسبب المعالجة غير الصحيحة للرؤوس Transfer-Encoding و Content-Length في محلل طلبات HTTP في Go. يمكن للمهاجم إرسال طلب مُشكّل خصيصًا يتم تفسيره بواسطة خادم Go بشكل مختلف عن الخادم الوسيط أو موازن التحميل الموجود أمامه.



ما هو الخطر؟

باستخدام هذه الثغرة، يمكن للمهاجم:

  • تجاوز التفويض والمصادقة - إدخال طلبات ضارة يعالجها الخادم كإجراءات شرعية نيابة عن مستخدم آخر.
  • اعتراض بيانات الجلسة - "تسميم" ذاكرة التخزين المؤقت للخوادم الوسيطة والوصول إلى الموارد المحظورة.
  • تنفيذ هجمات XSS - إدخال نصوص برمجية في استجابات الخادم التي سينفذها متصفح الضحية.
  • تحقيق رفض الخدمة (DoS) - إرسال طلبات تؤدي إلى تعليق أو إنهاء عمل التطبيق بشكل غير متوقع.


يزيد من خطورة الثغرة حقيقة أن net/http هي مكتبة قياسية تستخدمها الغالبية العظمى من مشاريع Go، من واجهات API البسيطة إلى البنى المعمارية الكبيرة للخدمات المصغرة. وفقًا لتقديرات الخبراء، فإن ملايين الخوادم حول العالم معرضة للخطر.



من هم المعرضون للخطر؟

تؤثر الثغرة على جميع إصدارات Go حتى 1.20.6 و 1.21.0. في منطقة الخطر:

  • خوادم الويب وواجهات API المكتوبة بلغة Go دون استخدام وكيل عكسي.
  • التطبيقات التي تستخدم الإمكانيات المضمنة لـ net/http لمعالجة الطلبات.
  • الخوادم التي تعمل خلف موازنات التحميل أو جدران الحماية للتطبيقات (WAF) والتي قد تحلل الرؤوس بشكل مختلف.


كيف تحمي نفسك؟

أصدر مطورو لغة Go على الفور تصحيحًا. لحماية مشروعك، يجب اتخاذ الخطوات التالية فورًا:

  1. تحديث Go إلى الإصدار 1.20.6 أو 1.21.0 (اعتمادًا على فرعك الرئيسي).
  2. إعادة بناء جميع الملفات الثنائية باستخدام الإصدار الجديد من المترجم.
  3. التحقق من التبعيات - إذا كنت تستخدم مكتبات خارجية أو أغلفة لـ net/http، تأكد من تحديثها وتوافقها.
  4. تنفيذ WAF (جدار حماية تطبيقات الويب) كطبقة حماية إضافية قادرة على تصفية الطلبات المشبوهة.


يوصي فريق PythonLib بشدة جميع مطوري Go بعدم تأخير التحديث. الثغرة حرجة

المكتبات الموصى بها