يعد طوفان SYN أحد أشكال هجوم DoS حيث يرسل المهاجم سلسلة من طلبات SYN
إلى خادم الهدف في محاولة لاستهلاك ما يكفي من موارد الخادم لجعل النظام غير مستجيب لحركة المرور المشروعة [1] .
طلب
SYN
وحزمةSYN
هما نفس الشيء
تعمل هجمات فيضانات SYN من خلال استغلال عملية المصافحة لاتصال TCP. في ظل الظروف العادية، يعرض TCP ثلاث عمليات متميزة من أجل إجراء اتصال (الشكل 1أ).
SYN
( مزامنة ) إلى الخادم.SYN-ACK
، من أجل ACK
( الاعتراف ) بالاتصال.ACK
لتأكيد استلام الحزمة من الخادم ويتم إنشاء الاتصال.بعد إكمال هذا التسلسل من إرسال واستقبال الحزم، يصبح اتصال TCP مفتوحًا وقادرًا على إرسال واستقبال البيانات. وهذا ما يسمى المصافحة الثلاثية لـ TCP. هذه التقنية هي الأساس لكل اتصال يتم إنشاؤه باستخدام TCP.
لإنشاء DoS، يستغل المهاجم حقيقة أنه بعد استلام حزمة SYN
الأولية، سيستجيب الخادم بواحدة أو أكثر من حزم SYN-ACK
وينتظر الخطوة الأخيرة في المصافحة. يصف Cloudflare [2] كيفية عمله (الشكل 1 ب):
SYN
إلى الخادم المستهدف، غالبًا باستخدام عناوين IP مخادعة.ACK
النهائية، والتي لا تصل أبدًا، يستمر المهاجم في إرسال المزيد من حزم SYN
. يؤدي وصول كل حزمة SYN
جديدة إلى احتفاظ الخادم مؤقتًا باتصال منفذ مفتوح جديد لفترة زمنية معينة، وبمجرد استخدام جميع المنافذ المتاحة، يصبح الخادم غير قادر على العمل بشكل طبيعي. تم تنفيذ الهجوم على هذا المستودع في جهاز افتراضي. هناك حاجة إلى ثلاث آلات لتنفيذ الهجوم. يتم استخدام جهاز واحد كمهاجم ، ويتم استخدام جهاز آخر كضحية (أي الخادم)، ويتم استخدام الجهاز الثالث كمراقب (أي العميل).
لإعداد الهجوم، يمكن إعداد ثلاثة أجهزة افتراضية على نفس الكمبيوتر المضيف. وبدلاً من ذلك، يمكن إعداد جهازين افتراضيين على كمبيوتر مضيف حيث يعمل الجهاز المضيف نفسه كجهاز كمبيوتر ثالث.
تم تنفيذ هذا الهجوم على افتراض أن المهاجمين موجودون على نفس الشبكة الفعلية مثل الضحايا - مما يبسط مهمة تحديد أرقام تسلسل TCP وأرقام منفذ المصدر. يمكن استخدام أدوات الشم لجمع المعلومات الضرورية.
تم تنفيذ الهجوم على هذا المستودع باستخدام أداة netwox
. بعد ذلك، تم استخدام أداة شم مثل Wireshark [3] لالتقاط الحزم المهاجمة. أثناء استمرار الهجوم، تم تشغيل netstat -na
على الجهاز الضحية لمقارنة النتيجة مع ما كان عليه قبل الهجوم.
# check the size of the queue for holding half-open connections
sudo sysctl -q net.ipv4.tcp_max_syn_backlog
# check the current usage of the queue;
# i.e., the number of half-open connections associated with some listening port
netstat -na
# one netwox tool that may be useful is tool number 76: synflood
netwox 76 --help
ملف تعريف الارتباط SYN:
تم تنفيذ الهجوم في هذا المستودع عن طريق التلاعب بملفات تعريف الارتباط SYN.
يسمح استخدام ملفات تعريف الارتباط SYN للخادم بتجنب إسقاط الاتصالات عند امتلاء قائمة انتظار SYN. بدلاً من تخزين اتصالات إضافية، يتم ترميز إدخال قائمة انتظار SYN في الرقم التسلسلي المرسل في استجابة SYN-ACK. إذا تلقى الخادم بعد ذلك استجابة ACK لاحقة من العميل برقم التسلسل المتزايد، فسيكون الخادم قادرًا على إعادة بناء إدخال قائمة انتظار SYN باستخدام المعلومات المشفرة في رقم تسلسل TCP ومتابعة الاتصال كالمعتاد.
على الرغم من أن جهود التخفيف هذه تفقد بعض المعلومات حول اتصال TCP، إلا أنها أفضل من السماح لـ DoS بإلحاق الضرر بالمستخدمين الشرعيين نتيجة للهجوم.
تم إنشاء ملفات تعريف الارتباط SYN بواسطة DJ Bernstein [4] كاستجابة مباشرة لفيضان SYN.
استخدم الأمر sysctl
لتشغيل/إيقاف آلية ملفات تعريف الارتباط SYN:
sudo sysctl -a | grep cookie # Display the SYN cookie flag
sudo sysctl -w net.ipv4.tcp_syncookies=0 # turn off SYN cookie
sudo sysctl -w net.ipv4.tcp_syncookies=1 # turn on SYN cookie
تعد ملفات تعريف الارتباط SYN أحد الإجراءات المضادة العديدة التي يمكن تنفيذها لوقف تدفق SYN. تتضمن عمليات التخفيف الأخرى زيادة الحد الأقصى لحجم قائمة الانتظار، وتقليل مؤقت SYN-RECEIVED
، وإعادة تدوير أقدم اتصال TCP نصف مفتوح.
^ “CERT Advisory CA-1996-21 TCP SYN Flooding and IP Spoofing Attacks” جامعة كارنيجي ميلون
^ “هجوم الفيضانات SYN” Cloudflare
^ “حول Wireshark” مؤسسة Wireshark
^ "ملفات تعريف الارتباط SYN" دي جي بيرنشتاين
شكرًا لك على اهتمامك، كان هذا المشروع ممتعًا وثاقبًا!