الهجمات الإلكترونية المدعومة بالذكاء الاصطناعي: كيفية الكشف عن التهديدات الذكية ومنعها والدفاع ضدها

اقرأ الآن
نستخدمُ الذكاء الاصطناعي في ترجمات الموقع، ومع أننا نسعى جاهدين لبلوغ الدقة قد لا تكون هذه الترجمات دقيقةً بنسبة 100% دائمًا. تفهّمك لهذا الأمر هو موضع تقدير لدينا.

تحليل شامل لفيروس CVE-2024-38063: تهديد خطير في مكدس TCP/IP في ويندوز

ب OPSWAT
شارك هذا المنشور
صورة رأس فام نغوك ثين، أحد المشاركين في برنامج زمالة OPSWAT

في 13 أغسطس 2024، كشف مركز مايكروسوفت للاستجابة الأمنية عن الثغرة الأمنية CVE-2024-38063، وهي ثغرة خطيرة في مكدس Windows TCP/IP يمكن استغلالها لتعريض وظائف الشبكات الحيوية داخل نظام التشغيل للخطر. هنا، يقدم المشاركون في برنامج زمالة OPSWAT للخريجين دراسة شاملة للتفاصيل التقنية لهذه الثغرة وتأثيرها المحتمل، بالإضافة إلى استراتيجيات التخفيف الموصى بها لهذه الثغرة.

المشاركون في برنامج زمالة OPSWAT : فام نغوك ثين - جامعة هو تشي منه لتكنولوجيا المعلومات 

نظرة عامة

CVE-2024-38063 هي ثغرة أمنية خطيرة في مكدس TCP/IP لنظام التشغيل Windows بدرجة 9.8 CVSS، تؤثر على معالجة حزم IPv6. يمكن للمهاجمين عن بُعد استغلال هذه الثغرة الأمنية باستخدام تدفق عدد صحيح ناقص عند معالجة رؤوس امتداد IPv6 لتنفيذ تعليمات برمجية ضارة أو التسبب في حدوث حالة رفض الخدمة (DoS).

نظرًا لأن IPv6 مُمكّن افتراضيًا في معظم الأنظمة الحديثة، فإن هذا الخلل الذي لا ينطوي على نقرات يشكل خطرًا كبيرًا. ونتيجة لذلك، فإن جميع إصدارات ويندوز 10 وويندوز 11 وويندوز Server 2008 و2012 و2016 و2019 و2022 غير المصححة التي تم تمكين IPv6 فيها معرضة لهذا الثغرة.

رسم تخطيطي يوضح تأثير CVE-2024-38063 على وظائف شبكات ويندوز

المفاهيم الرئيسية

مكدس TCP/IP لنظام التشغيل Windows

مكدس Windows TCP/IP هو مكون نظام تشغيل أساسي مسؤول عن الاتصال بالشبكة عبر مجموعة بروتوكول التحكم في الإرسال/بروتوكول الإنترنت (TCP/IP). وهو يتعامل مع جميع تفاعلات الشبكة، مما يسهل الاتصال بين الأجهزة عبر الشبكات المحلية والعالمية.

لقطة شاشة لبنية مكدس Windows TCP/IP

IPv6 ورؤوس الامتدادات IPv6

تم تطوير IPv6 لمعالجة قيود IPv4. وقد أدخلت تحسينات مختلفة، مثل النمطية والمرونة من خلال رؤوس الامتداد. تدعم الرؤوس، الموضوعة بين رأس IPv6 والحمولة، البيانات الاختيارية والميزات المتقدمة.

تتضمن رؤوس امتدادات IPv6 الرئيسية ما يلي:

  • خيارات القفزة تلو الأخرى (الرأس التالي = 0) 
  • رأس التوجيه (الرأس التالي = 43) 
  • رأس الجزء (رأس الجزء التالي = 44) 
  • رأس خيارات الوجهة (الرأس التالي = 60) 
  • رأس المصادقة (AH) (الرأس التالي = 51) 
  • تغليف حمولة الأمان (ESP) (الرأس التالي = 50) 

يشير كل رأس امتداد إلى التالي عبر حقل الرأس التالي، مما ينشئ سلسلة متسلسلة. تُدخل هذه النمطية تعقيدًا على عملية معالجة الحزمة وناقلات الاستغلال المحتملة.

رسم تخطيطي يصور رؤوس امتداد IPv6 وهيكل الحزمة
تنسيق مخطط بيانات IPv6

تدفق الأعداد الصحيحة الناقصة

يحدث التدفق الناقص للعدد الصحيح عندما ينتج عن عملية حسابية قيمة أصغر من الحد الأدنى للقيمة القابلة للتمثيل لنوع البيانات. على سبيل المثال، يمكن أن يؤدي طرح قيمة أكبر من قيمة أصغر إلى عدد صحيح غير موقّع إلى أن تصبح النتيجة قيمة موجبة كبيرة جدًا.

يحدث التجاوز الزائد للعدد الصحيح عندما تتجاوز القيمة الحد الأقصى لنوع البيانات و"تفيض" إلى الحد الأدنى للقيمة القابلة للتمثيل (على سبيل المثال، 0 في نطاق 0-10). ويحدث كلا السيناريوهين بسبب التعامل غير السليم مع الشروط الحدية في العمليات الحسابية، مما يؤدي إلى ثغرات خطيرة في أنظمة البرمجيات.

رسم تخطيطي يشرح التدفق السفلي للعدد الصحيح والفيضان في معالجة البيانات

تحليل نقاط الضعف

سير عمل معالجة IPv6

بعد تلقي حزمة IPv6، يقوم Windows أولاً بتحليل رأس IPv6. بعد ذلك، تتحقق الدالة IppReceiveHeaderBatch من قيمة حقل الرأس التالي لاختيار المعالج المناسب للرؤوس اللاحقة. لكل رأس ملحق في السلسلة، تستدعي الدالة IppReceiveHeaderBatch الروتين المقابل لمعالجة ذلك الرأس المحدد.

رسم تخطيطي يوضح سير عمل معالجة حزم IPv6 في Windows

على الرغم من التصميم المرن والمعياري لهذه الآلية، إلا أنها تقدم ناقل هجوم محتمل. في IPv6، عادةً ما يتم إعادة تجميع الحزم المجزأة في وجهتها، حيث توجد ثغرة في عملية إعادة تجميع الأجزاء ومعالجة الرؤوس.

يمكن للمهاجمين تحفيز سوء إدارة الذاكرة وتحفيز تجاوز سعة المخزن المؤقت عن طريق إرسال العديد من الحزم المشوهة مع رؤوس امتدادات تم التلاعب بها. يسمح ذلك للبيانات الزائدة بالكتابة فوق مناطق الذاكرة غير المقصودة، مما قد يسمح بتنفيذ تعليمات برمجية عشوائية. تم تحديد هذه الثغرة الأمنية باسم CVE-2024-38063.

رسم تخطيطي يوضح مخاطر تجاوز سعة المخزن المؤقت من حزم IPv6 المشوهة

ثغرة خطيرة في مكدس TCP/IP في ويندوز

قام الباحث الأمني ماركوس هاتشينز بفحص دقيق لتصحيح مايكروسوفت لمعالجة الثغرة الأمنية CVE-2024-38063. تقدم مدونته التقنية رؤى مفصلة حول السبب الجذري لهذه الثغرة الأمنية. وبناءً على النتائج التي توصل إليها، قام زميلنا بمزيد من الاستكشاف للمشكلة لفهم الثغرة بشكل شامل.

تحليل الرقعة

تضمّن التصحيح تحديثًا لملف tcpip.sys، بما في ذلك تعديل داخل دالة Ipv6pProcessOptions. وقد استبدل تغيير من سطر واحد استدعاءً من IppSendErrorList() باستدعاء إلى IppSendError()، مما يشير إلى أن IppSendErrorList() ربما ساهم في حدوث مكافحة التطرف العنيف.

لقطة شاشة للرمز تظهر tcpip.sys قبل تصحيح CVE-2024-38063
الشكل 1. قبل التصحيح
لقطة شاشة رمز تظهر tcpip.sys بعد تصحيح CVE-2024-38063
الشكل 2. بعد التصحيح

حجم الحزمة صفر

كشف الفحص الدقيق للدالة IppSendErrorList() أنها تعالج قائمة مرتبطة من الحزم عن طريق استدعاء الدالة IppSendError() لكل منها. تقوم الدالة IppSendError() بتعيين الحالة STATUS_DATA_NOT_NOT_ACCEPTED للحزم المعيبة. ثم تنشئ رسالة خطأ ICMP تحتوي على معلومات حول الحزمة المعيبة وترسلها مرة أخرى. ومع ذلك، عندما يتم استدعاء الدالة IppSendErrorList() مع Always_send_icmp = true على حزم متعددة، فإنها تقوم بتعيين الحقل packet_size إلى صفر لكل حزمة.

لقطة شاشة التعليمات البرمجية التي تُظهر دالة IppSendErrorList التي تضبط حجم الحزمة على صفر

تم تصميم الدالة Ipv6pProcessOptions لمعالجة رؤوس الامتدادات التي تحتوي على حقول قيمة الخيارات، بما في ذلك رؤوس خيارات القفزة بالقفزة وخيارات الوجهة. من خلال تعيين نوع الخيار إلى أي قيمة أكبر من 0x80، يمكن للمهاجمين تشغيل خطأ محدد في معالجة رؤوس الخيارات، مما يجبر على تعيين always_send_icmp إلى صواب وبالتالي يؤدي إلى تعيين حجم الحزمة إلى صفر.

لقطة شاشة برمجية توضح التلاعب في حقل رأس IPv6 التالي للاستغلال

في حين أن الحزمة ذات الحجم الصفري عادةً ما يتم تجاهلها، يمكن للمهاجمين التلاعب بحقل العنوان التالي في حزمة IPv6 الأصلية. يمكّن هذا التلاعب المهاجمين من التحكم في كيفية تفسير الحزمة في مراحل المعالجة اللاحقة، مما يجنب الرفض الفوري ويخلق فرصة للاستغلال. 

رسم تخطيطي يصور تحكم المهاجمين في معالجة حزم IPv6

تدفق الأعداد الصحيحة الناقصة في معالجة الأجزاء

من خلال تعيين حقل الرأس التالي إلى 44، للإشارة إلى رأس الجزء، يتم التعامل مع الحزمة بواسطة إجراءات تجزئة IPv6 أو إعادة التجميع. عندما تصل الحزمة إلى محلل الأجزاء، Ipv6pReceiveFragment()، فإنه يحدد 

  • حجم الحزمة صفر. 
  • يشير رأس الجزء إلى أن هناك بيانات إضافية متبقية لتتم معالجتها. 

في الدالة Ipv6pReceiveFragment()، يتم حساب حجم التخصيص لـ Ipv6pReceiveFragment()، يتم حساب حجم التخصيص لـ fragment_size على أنه طرح 0x30 (طول رأس الحزمة) من حجم الحزمة دون أي تحقق من الصحة. إذا كان حجم الحزمة يساوي صفرًا، فإن هذا الطرح لا يفيض، مما ينتج عنه قيمة كبيرة 16 بت (حوالي 0xFFD0 أو 65488)، مما يتسبب في معالجة المحلل لذاكرة زائدة خارج الحدود الصالحة للحزمة ويؤدي إلى تلف الذاكرة. 

لقطة شاشة للرمز تُظهر تدفق عدد صحيح ناقص في معالجة جزء IPv6
الشكل 3 تدفق الأعداد الصحيحة الناقصة في معالجة الأجزاء

من التدفق الناقص إلى التدفق الزائد وعدم التطابق في التخصيص

تعد الدالة Ipv6pReassemblyTimeout() مسؤولة عن تنظيف أجزاء IPv6 غير المكتملة بعد وقت محدد باستخدام عملية حسابية 16 بت لتحديد أحجام المخازن المؤقتة وعمليات النسخ. ونظراً للتدفق الناقص في الخطوة السابقة، حيث يصبح طول_الحزمة أو حجم الجزء 0xFFD0، يحدث تجاوز في التدفق أثناء التخصيص.  

يؤدي الحساب الناتج إلى إعادة تعيين السجل إلى الصفر، مما يؤدي إلى تخصيص 48 بايت فقط من الذاكرة. ومع ذلك، نظرًا لأن كمية البيانات المنسوخة (65,488 بايت من إعادة التجميع->التحميل) لا تتوافق مع الذاكرة المخصصة، يحدث تجاوز في المخزن المؤقت يمكن التحكم فيه في تجمع النواة. 

لقطة شاشة للرمز توضح تجاوز سعة المخزن المؤقت بسبب عدم تطابق في تخصيص الذاكرة

يفتح هذا التباين الباب أمام المهاجمين لتنفيذ تعليمات برمجية خبيثة عبر حزمة مصممة خصيصًا تستغل الثغرة في معالجة IPv6.

دليل إثبات المفهوم CVE-2024-38963 

في محاولة لإعادة إنتاج الثغرة الأمنية CVE-2024-38963، قام زملاؤنا بصياغة سلسلة من الحزم المشوّهة المصممة لاستغلال الثغرة. كانت العملية التي اتبعوها هي

1. صياغة حزم IPv6 المشوّهة

إدراج رأس امتداد خيارات الوجهة IPv6 (النوع 60) بعد رأس IPv6 الأساسي، ثم تضمين خيار غير صالح (على سبيل المثال، نوع الخيار 0x81). 

تُجبر هذه المعالجة نواة Windows kernel (tcpip.sys) على تعيين always_send_icmp = true، مما يؤدي إلى إنشاء خطأ ICMPv6 عبر روتين IppSendErrorList().

2. فرض معالجة قائمة المخزون الصافي (NBL)

أدى إغراق الهدف بدفعات سريعة من هذه الحزم المشوّهة إلى زيادة فرص النواة في تجميع حزم متعددة في قائمة مخزن صافي واحد (NBL). عندما يتم تجميع حزمتين أو أكثر، يتم تنشيط حلقة IppSendErrorList() الضعيفة، مما يؤدي إلى إعادة تعيين البيانات الوصفية DataLength و Offset بشكل غير صحيح في الأجزاء اللاحقة (حجم الحزمة الآن صفر). 

3. حقن حزم IPv6 المجزأة

بعد إرسال حزم مشوهة، يتم إرسال حزم IPv6 المجزأة التي تتضمن رؤوس امتدادات مجزأة. تتم معالجة هذه الأجزاء باستخدام قيم DataLength التالفة بالفعل. 

4. استغلال مهلة إعادة التجميع

يحتفظ kernel بأجزاء لمدة 60 ثانية (تتم إدارتها بواسطة Ipv6pReassemblyTimeout) للسماح بإعادة تجميع الحزمة. أثناء هذه المهلة، تؤدي قيم DataLength التالفة إلى حدوث نقص في تدفق عدد صحيح في Ipv6pReceiveFragment، مما يؤدي إلى حساب حجم الجزء بشكل غير صحيح (كبير بشكل مفرط).

5. تشغيل تجاوز سعة مخزن الكومة العازلة

يخصص kernel مخزنًا مؤقتًا للكومة استنادًا إلى القيم التي تم تجاوزها. تحدث عمليتان حسابيتان مختلفتان أثناء عملية إعادة التجميع: إحداهما تحدد حجم تخصيص الذاكرة (والذي يصبح صغيرًا جدًا بسبب الفائض البالغ 16 بت)، والأخرى تحسب طول النسخة باستخدام القيمة الكبيرة التي تم تجاوزها.

يؤدي عدم التطابق هذا إلى كتابة خارج الحدود، مما يتسبب في تجاوز سعة المخزن المؤقت المستند إلى كومة يمكن استغلالها لتشغيل حالة رفض الخدمة (DoS) أو تنفيذ التعليمات البرمجية عن بُعد.

رسم تخطيطي يوضح إثبات استغلال مفهوم CVE-2024-38063

الشفرة المصدرية المستخدمة في إعادة إنتاج مكافحة التطرف العنيف لهجوم الحرمان من الخدمة:

عندما يتم استغلال هذه الثغرة من قبل أحد المهاجمين، قد يتعطل نظام الضحية على الفور، مما يؤدي إلى ظهور شاشة زرقاء للموت: 

لقطة شاشة لواجهة المستخدم تُظهر شاشة الموت الزرقاء لنظام ويندوز بعد استغلال CVE-2024-38063

الاصلاح

إن إهمال تحديث نظام التشغيل الخاص بك بانتظام يعرّض جهازك لتهديدات أمنية، بما في ذلك تلك المرتبطة بمكافحات التطرف العنيف (CVEs). وللتخفيف من هذه المخاطر، يوفر MetaDefender Endpoint™ حماية قوية من خلال الكشف عن إصدار نظام التشغيل الخاص بك والتحقق من الثغرات الأمنية، بما في ذلك CVEs المعروفة، مثل CVE-2024-38063. 

صُمم MetaDefender Endpoint لحماية الأجهزة داخل شبكات تكنولوجيا المعلومات/التشغيل الحساسة من تهديدات الأجهزة الطرفية والوسائط القابلة للإزالة. فهو يضمن تحديث نظام التشغيل والتطبيقات المثبتة لديك، ويحدد أي إصدارات قديمة أو ضعيفة، ويسرد التطبيقات ذات الثغرات المعروفة ومكافحة التطرف العنيف، إلى جانب الإصلاحات الموصى بها. كما أنه يساعد في حماية الأجهزة من مخاطر الوسائط القابلة للإزالة من خلال حظر الوصول إلى محركات أقراص USB حتى يتم فحصها والعثور عليها نظيفة باستخدام محركات متعددة لمكافحة البرامج الضارة أثناء إجراء فحص عميق CDR™ على أكثر من 180 نوعاً من الملفات.  

تحدث إلى أحد خبرائنا اليوم لتعرف كيف يمكن ل MetaDefender Endpoint أن يحوّل وضعك الأمني من خلال الذكاء الرائد في المجال. 

ابق على اطلاع دائم OPSWAT!

اشترك اليوم لتلقي آخر تحديثات الشركة, والقصص ومعلومات عن الفعاليات والمزيد.