أي شخص رأى العنوان ونقر على العنوان ربما يكون قد تعرض لهجوم UDP. ما زلت أتذكر المرة الأولى التي أصيب فيها عملي بالشلل بسبب فيضان UDP في وقت متأخر من الليل، حيث كانت رسالة الإنذار تطن كصوت سحر الموت، وارتفع منحنى حركة المرور مباشرةً إلى قمة جبلية شديدة الانحدار - ثم انطفأت، وتوقفت جميع الخدمات عن العمل.
في هذه الأيام، تكلفة الهجوم منخفضة بشكل مروع. فقط أي فتى نصي لإنفاق عشرات الدولارات لاستئجار شبكة روبوتات، يمكنك استخدام سيل UDP لغسل عملك في قطع. الأمر الأكثر إثارة للاشمئزاز هو هجوم تضخيم الانعكاس، يمكن للمهاجم بحزمة صغيرة مكسورة أن ينقب مئات المرات عن حركة المرور المرتدة، لا يمكن منع السبب الجذري هو: UDP هذا البروتوكول بطبيعته “غير متصل”، فهو ليس مثل TCP لديه مصافحة ثلاث مرات كمخزن مؤقت، يجب أن تتبعه الحزمة، بغض النظر عما إذا كنت خبيثًا أم لا.
لماذا تقع العديد من أجهزة الدفاع العالي التقليدية على UDP؟ لأن تفكيرهم التصميمي لا يزال عالقاً في عصر TCP. بالاعتماد على ملفات تعريف الارتباط SYN، لا يحتوي UDP على مصافحة على الإطلاق. UDP ليس لديه حالة. لقد قمت باختبار جدار حماية تقليدي، وفتح حماية UDP مباشرةً بعد تأخير مكالمات الصوت والفيديو العادية لأكثر من 500 مللي ثانية - لم تعد هذه حماية، بل هي هزيمة ذاتية.
الحل الذي يمكن أن يحارب حقاً يجب أن يبدأ من خصائص البروتوكول. فالأعمال الاجتماعية لا تنفصل عن الأعمال الاجتماعية التي لا يمكن فصلها عن الصوت والفيديو في الوقت الحقيقي، والدردشة الصوتية، ومشاركة الموقع في الوقت الحقيقي، هذه كلها من خصائص بروتوكول UDP. لا يمكنك قتلهم جميعًا بعصا واحدة، عليك أن تتعلم “نزع السلاح بدقة”.
بادئ ذي بدء، أود أن أقول درسًا مبكيًا: لا تصدق هؤلاء البائعين الذين تفاخروا بـ “الأتمتة الكاملة الثانية لحل الهجوم”، أنواع هجمات UDP غريبة، هناك انعكاس DNS، تضخيم NTP، انعكاس CLDAP، بالإضافة إلى منافذ مخصصة حركة مرور الفيضان، لا توجد خوارزمية يمكن تناولها في جميع السيناريوهات. لقد رأيت الحالة الأكثر إثارة للشفقة هي حزم نبضات القلب “التنظيف الذكي” للبائع كحركة مرور هجومية على المصهر، مما يؤدي مباشرة إلى انقطاع المستخدمين عبر الإنترنت عن المجموعة.
تنظيف موثوق لحركة مرور UDP، يجب أن تتخذ ثلاث خطوات: تعلم بصمات الأصابع، والقواعد الديناميكية، وفصل النفق. بادئ ذي بدء، تعلم بصمات الأصابع، ستتعلم شبكة CDN الاجتماعية الجيدة عالية الدفاع خصائص حركة مرور UDP بشكل مستقل عندما يكون العمل طبيعيًا. على سبيل المثال، يتراوح حجم حزم الصوت عادةً ما بين 120-200 بايت، ولا يزيد تكرار إرسال الحزم في الثانية الواحدة عن 50، ويتركز منفذ الوجهة في نطاق معين. ستشكل هذه البيانات بصمة حركة المرور، وبمجرد أن تنحرف عن خط الأساس تبدأ عملية التنظيف على الفور.
القواعد الديناميكية هي أدوات العالم الحقيقي. على سبيل المثال، يعد نهج CDN5 خادعًا: فبدلاً من مجرد إسقاط الحزم، يقومون بإدراج آلية تحدٍ لحركة مرور البيانات المشتبه في أنها هجومية. سيتم وضع علامة على حزم UDP العادية الخاصة بالعميل ويطلب منها أن تحمل استجابة رمزية محددة، وعادةً ما لا تستطيع الشبكة الروبوتية الامتثال للاستجابة، ويتم طردها مباشرةً من قائمة الانتظار. التأثير المُقاس لهذا الحل على زمن انتقال الأعمال أقل من 3 مللي ثانية، وهو أمر لا معنى له تقريباً.
أما بالنسبة لفصل الأنفاق، فهذه خدعة أصعب. فصل حركة المرور العادية وحركة مرور الهجوم فعليًا إلى روابط مختلفة للمعالجة. مثل حل CDN07 هو تعيين أنفاق تنظيف مستقلة لكل عميل، وسيتم تحويل حركة مرور الهجوم إلى مجموعة عقدة التنظيف الموزعة، باستخدام مشغلات FPGA NICs للقيام بتصفية السرعة السلكية. لقد قمت بتشغيل 200 غيغابت في الثانية UDP Flood أثناء اختبار الضغط، ولم يزد تأخير حركة المرور الصوتية العادية إلا بمقدار 8 مللي ثانية، وهو أداء عالٍ حقًا.
عندما يتعلق الأمر بالتكوين، فإن الأمر ليس غامضًا حقًا. خذ وحدة تدفق Nginx كمثال، المفتاح هو التحكم في معدل إرسال الحزم والاتصالات المتزامنة:
لكن المشكلة الحقيقية تكمن في تحسين المكدس؛ فحجم المخزن المؤقت الافتراضي ل UDP في نظام لينكس لا يمكنه ببساطة التعامل مع الطوفان ويجب ضبطه يدويًا:
08Host في هذه القطعة للقيام بمزيد من المطلق، قاموا بتغيير نواة خوارزمية جدولة معالجة حزم UDP مباشرة، وحركة مرور الأعمال وحركة مرور الهجوم المشتبه بها في معالجة نواة وحدة المعالجة المركزية المختلفة، لتجنب كسر نواة واحدة. في الاختبار الفعلي لنفس تكوين الأجهزة، فإن كفاءة التنظيف الخاصة بهم أعلى من البرنامج القياسي 40% أو أكثر.
بالحديث عن ذلك، يجب أن أبصق جملة: بعض البائعين يفجرون ما حماية الذكاء الاصطناعي، والنتيجة هي أن الطبقة السفلية لا تزال iptables مع بعض قواعد التردد. المفيد حقًا هو دائمًا التفاصيل المتراكمة من التجربة الهندسية. على سبيل المثال، كيف تمنع هجمات انعكاس DNS؟ يجب أن تستجيب عقد الحافة لطلبات الاستعلام المتكررة، بدلاً من إعادة حركة المرور إلى المحطة المصدر. ستقوم وحدة حماية DNS الخاصة بـ cdn5 بتخزين السجلات الموثوقة مباشرةً في ذاكرة التخزين المؤقت، ولا يمكن للاستعلامات الخارجية ببساطة أن تصل إلى عنوان IP الخاص بالمحطة المصدر.
هناك أيضًا هجمات UDP البطيئة الأكثر خبثًا، والتي ترسل حزمًا قليلة فقط في الثانية ولكنها تستهلك موارد الاتصال لفترة طويلة. للتعامل مع هذا الأمر، عليك تعيين مهلة خمول، ولكن إذا قمت بتعيينها قصيرة جدًا، فستقتل عن طريق الخطأ الاتصالات الطويلة العادية. الحل لدينا هو مهلة متعددة الطبقات: يُسمح بالاتصالات الطويلة لأول 5 دقائق، وبعد 5 دقائق يُطلب من العميل إرسال حزمة نبضات قلب كل 90 ثانية، ويتم تنظيف الاتصالات التي لا تنبض القلب تلقائيًا. تم تعديل هذه المعلمة ما لا يقل عن 20 مرة قبل أن نجد التوازن المطلوب.
أخيرًا، أود أن أتحدث عن حالة واقعية. في العام الماضي، هوجم تطبيق اجتماعي من خلال هجوم انعكاسي لـ CLDAP، ووصلت حركة مرور الهجوم إلى 300 جيجابت في الثانية، في ذلك الوقت، تم استخدام ثلاث شبكات CDN بالتناوب، ولم تتمكن سوى واحدة منها فقط من حملها. والفرق الرئيسي هو أنهم قاموا بالتعرف على عمق البروتوكول: طول حزمة CLDAP العادي ثابت على 48 بايت، وطول حزمة الهجوم يصل إلى أكثر من 1000 بايت. من خلال التصفية البسيطة للطول ستقطع حركة مرور هجوم 90% مباشرة، ولا حاجة إلى استخدام خوارزمية معقدة.
لذا كما ترى، لا يوجد حل سحري لمنع هجمات UDP. عليك أن تجمع بين خصائص البروتوكول وسيناريوهات العمل وطبقات البنية التحتية الدفاعية. يجب أن تكون شبكة CDN الاجتماعية الجيدة عالية الدفاع الاجتماعي مثل طبيب الطوارئ المتمرس - قادرة على الفرز السريع، والعلاج البسيط للأمراض البسيطة، وعزل وعلاج الأمراض الخطيرة، وعدم تأخير العمليات التجارية العادية.
عند اختيار مزود الخدمة، ركز على ثلاث نقاط: تنظيف الروابط مع أو بدون عزل مادي، وقاعدة القواعد يمكن تخصيصها، وعدم وجود تحسين على مستوى البروتوكول. أولئك الذين يبيعون فقط بائعي توسيع النطاق الترددي، عاجلاً أم آجلاً ستقع في الحفرة. بعد كل شيء، في هذه الأيام، حتى شبكة CDN يجب أن “تمنع زملاء الفريق” - بعض حركة المرور الهجومية هي ببساطة من عقد الأصدقاء المخترقة.
أما بالنسبة لبناء الحماية الخاصة بك أو استخدام الحماية السحابية؟ نصيحتي مباشرة جدًا: ما لم يكن لدى الفريق قدرات تطوير مكدس النواة، أو البحث بصدق عن بائعين محترفين.UDP الحماية من UDP هي حفرة لا قاع لها، فقط لمحاربة هجوم الانعكاس الجديد يكفي لدعم فريق الأمن. تم اختباره حاليًا، CDN07 في عنف أداء المشهد الصوتي للعبة، 08مضيف مناسب للبث المباشر على نطاق واسع، بوابة CDN5 API لدعم بروتوكول إنترنت الأشياء هي الأفضل.
في نهاية المطاف، فإن طبيعة الحماية هي لعبة التكاليف والفوائد. لا يتعلق الأمر بعرض النطاق الترددي الذي تشتريه، بل بتجربة شخص آخر ملأ الحفرة. ففي النهاية، عندما ينطلق جرس الإنذار في الساعة الثالثة صباحاً، فأنت بالتأكيد لا تريد أن تُترك وحيداً مع فيضان من المياه.

