الحالة: يتم إغلاق ثغرتين في حزمة Linux kernel TCP

في وقت سابق من هذا الشهر ، اكتشف خبراء الأمن ثغرتين جديدتين في نواة لينكس: SegmentSmack و FragmentSmack. كلاهما مرتبطان بعمل مكدس TCP ويسمح للمهاجمين بتنفيذ هجمات DoS و DDoS على نظام الضحية. تم إصدار "تصحيحات" لمعظم التوزيعات.

تحت الخفض - المزيد عن الجوهر.


/ photo Eli Duke CC

لماذا هذه الثغرات الأمنية خطيرة؟


SegmentSmack - وظائف "جذر الشر" - tcp_collapse_ofo_queue () و tcp_prune_ofo_queue (). يتصل بها أحد المهاجمين باستخدام مقاطع TCP معدلة خصيصًا يتم إرسالها إلى خادم الضحية أو الكمبيوتر الشخصي أو الجهاز المحمول.

وهذا يؤدي إلى الاستخدام المفرط للذاكرة وموارد المعالج. وبالتالي ، يمكن للمتسلل "تعليق" مضيف أو جهاز بحركة مرور 2000 حزمة فقط في الثانية.

يقدم موقع RedHat مثالاً على نتيجة مثل هذا الهجوم. يوضح الأمر العلوي الحمل الكامل لأربع نوى وحدة المعالجة المركزية والتأخير في معالجة حزم الشبكة:

$ top %Cpu25 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.5 si, 0.0 st %Cpu26 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st %Cpu28 : 0.0 us, 0.3 sy, 0.0 ni, 0.7 id, 0.0 wa, 0.0 hi, 99.0 si, 0.0 st %Cpu30 : 0.0 us, 0.0 sy, 0.0 ni, 1.4 id, 0.0 wa, 0.0 hi, 98.6 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 141 root 20 0 0 0 0 R 97.3 0.0 1:16.33 ksoftirqd/26 151 root 20 0 0 0 0 R 97.3 0.0 1:16.68 ksoftirqd/28 136 root 20 0 0 0 0 R 97.0 0.0 0:39.09 ksoftirqd/25 161 root 20 0 0 0 0 R 97.0 0.0 1:16.48 ksoftirqd/30 

لاحظ أن الحفاظ على "حالة DoS" يتطلب جلسة TCP مفتوحة ، لذلك لا يمكن تنفيذ هجوم باستخدام خداع IP.

يستغل هجوم FragmentSmack ميزات تجزئة مخططات بيانات IP . عندما يتم إرسال مخطط بيانات IP إلى طبقة الارتباط ، يتم تجزئته إذا لم يكن متناسبًا مع الإطار . وبالتالي ، يتم نقله على شكل قطع ، ثم يقوم المضيف بجمعه معًا. ومع ذلك ، فهو لا يعرف سوى الطول النهائي لمخطط البيانات عندما يتلقى الجزء الأخير.

يستخدم المهاجمون هذه الميزة ويضبطون قيم إزاحة الأجزاء بحيث يقوم معالج الخادم بتجميع حزم IPv4 و IPv6 باستمرار.

يتيح لك FragmentSmack العمل باستخدام عناوين IP مزيفة لخداع أنظمة الأمان (يمكنك استخدام خداع IP). ومع ذلك ، فإنه يتطلب حزم إرسال أكثر سرعة من SegmentSmack - 30 ألف حزمة في الثانية.

RedHat يعطي أيضًا نتيجة هجوم مماثل (النواة محملة بنسبة 99 ٪):

 top - 08:59:45 up 1:34, 2 users, load average: 0.39, 0.15, 0.08 %Cpu9 : 0.0 us, 0.0 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi,100.0 si, 0.0 st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 54 root 20 0 0 0 0 R 99.7 0.0 0:47.53 ksoftirqd/9 

لم يتم اكتشاف نقاط الضعف هذه لأول مرة. في التسعينات ، تم العثور على خطأ مماثل في إصدارات Windows NT 4.0 و Windows 95 و Linux kernel حتى 2.0.32. يُعرف الاستغلال بهجوم الدمعة - حيث أرسل مهاجم أيضًا حزمًا مجزأة إلى جهاز هدف (شبكة) ، مما تسبب في DoS. تم تصحيح الثغرة الأمنية ، لكنها ظهرت لاحقًا.

في عام 2009 ، تم العثور على الخطأ مرة أخرى في Windows 7 و Windows Vista.

من تأذى


تهدد FragmentSmack جميع إصدارات Linux kernel بدءًا من 3.9 ، ويهدد SegmentSmack بـ 4.9. يمكنك العثور على قائمة بالموردين الذين تحتوي أنظمتهم على هذه الثغرات الأمنية على موقع CERT الإلكتروني .

في الأسبوع الماضي ، ذكرت شركة Cisco أن نظام التشغيل AsyncOS تعرض لهجوم من قبل SegmentSmack و FragmentSmack. لذلك ، أصدرت الشركة عددًا من التصحيحات.

كما هو موضح في Cisco ، يمكن تتبع "أعراض" الثغرات الأمنية باستخدام الأمر netstat (يوجد مثال على موقع Cisco على الويب في قسم مؤشرات الاختراق ). إذا أظهر إخراج الأمر عددًا كبيرًا من اتصالات TCP في حالة CLOSE_WAIT ، فمن المحتمل أن يتأثر الجهاز بهذه الثغرات الأمنية.

ما يجب معالجته


تم بالفعل نشر تفاصيل حول تصحيحات SegmentSmack لعدد من التوزيعات على CVE (على سبيل المثال ، إليك تصحيحًا لـ Ubuntu 14.04 LTS ). ستجد هناك تعليمات وملفات تصحيح لجميع توزيعات لينكس. بالنسبة إلى FragmentSmack ، تم بالفعل طرح التصحيحات ضد هذه الثغرة من قبل مطوري Ubuntu و Red Hat و Debian و Android OS.


/ photo Christopher Michel CC

كحل مؤقت لمشكلة FragmentSmack (إذا تعذر تثبيت التصحيح لسبب ما) ، يمكنك تغيير قيم net.ipv4.ipfrag_high_thresh و net.ipv4.ipfrag_low_thresh إلى 256 و 192 كيلوبايت ، على التوالي (بدلاً من 4 ميجابايت و 3 ميجابايت).

تحدد المعلمة الأولى الحد الأقصى لحجم الذاكرة المخصصة لقائمة الحزم المجزأة. إذا تجاوز طول قائمة الانتظار ، سيتجاهل معالج الجزء كافة الحزم حتى يقل طول قائمة الانتظار عن قيمة ipfrag_low_thresh.

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



ما نقوم به في IT-GRAD - المجالات الرئيسية:

البنية التحتية الافتراضية (IaaS)استضافة PCI DSSCloud FZ-152



محتوى آخر من مدونة IaaS:



Source: https://habr.com/ru/post/ar421207/


All Articles