آسیب پذیری و امنیت UDP - وان سرور آکـادمی

آسیب پذیری و امنیت UDP

زمان تقریبی مطالعه: 5 دقیقه

پروتکل UDP (User Datagram Protocol) یک پروتکلی ساده برای اولین بار در سال ۱۹۸۰ به ‌عنوان پروتکلی استفاده شد که امکان ارسال داده‌ ها بدون نیاز به اتصال بین فرستنده و گیرنده را در شبکه‌ فراهم میکرد و حتی امروزه نیز از آن استفاده میشود. اما این پروتکل دارای یکسری آسیب پذیری های ذاتی میباشد که این پروتکل را مستعد یکسری حملات می کند، مانند حملات جعل IP و یا حملات DDoS.

آسیب پذیری و امنیت UDP
UDP

هدف کلی پروتکل این است که دیتا یا همان داده ما هرچه سریعتر به دست ماشین مقصد یا همان گیرنده برسد. همچنین پروتکل UDP در لایه 4 (Transport) از مدل OSI کار میکند.

بعد از آشنایی با مفهوم UDP نوبت به عملکرد آن میرسد. UDP از یک روش انتقال ساده بدون دست ‌دهی (handshake) استفاده میکند؛ یعنی برای استفاده از این پروتکل فرض بر آن است که بررسی خطا و تصحیح آن ضروری نیست. همچنین برنامه ‌ها با استفاده از این پروتکل اطلاعات را خیلی سریع ارسال می‌کنند؛ چون نه نیازی به ایجاد اتصال با کلاینت وجود دارد و نه لازم است منتظر پاسخی باشد. هیچ تضمینی وجود ندارد که بسته ‌ها به طور کامل و به همان ترتیبی که ارسال شده ‌اند به مقصد برسند. حتی ممکن است اطلاعات ما توسط اشخاص ثالث دستخوش تغییراتی نیز بشود.

معمولا مدیریت ارسال و دریافت داده های مربوط به ارتباطات زنده صوتی و تصویری مانند کنفرانس ها و تماس های تلفنی صوتی و ویدئویی، بازیهای آنلاین، تلویزیون های اینترنتی و غیره توسط پروتکل UDP انجام میشود. علاوه بر این اپلیکیشن ها و بعضی از پروتکل های رایج شبکه TCP/IP مانند پروتکل DNS و پروتکل DHCP هم از UDP برای انتقال دیتا های خود استفاده میکنند.

آسیب پذیری و امنیت UDP
چگونگی عملکرد پروتکل UDP

ویژگی‌ های UDP چیست؟

تا اینجا تقریبا فهمیدیم پروتکل UDP چیست و چه کاربرد هایی دارد. در این بخش میخواهیم برای درک بهتر نگاه بیشتری به ویژگی ‌های پروتکل User Datagram بیاندازیم.

  •  UDP بدون اتصال است – همانطور که گفته شد برای انتقال داده بین مخاطب و گیرنده هیچ اتصالی شکل نمیگیرد. بسته‌ های مربوطه به آدرس IP مقصد ارسال میشوند بدون اینکه نیاز باشد کامپیوتر مقصد پاسخ بدهد.
  •  از پورت‌ ها استفاده میکند – UDP نیز مانند پروتکل TCP از پورت برای ارسال بسته به مقصد استفاده میکند؛ در پورت‌ها برای هر سرویسی یک عدد ثابت بین ۰ تا ۱۰۲۳ اختصاص داده میشود.
  • ارتباط سریع و بدون تاخیر را امکان‌پذیر میکند – نبود احراز هویت متقابل میان گیرنده و سرور سرعت انتقال UDP را بالا میبرد.

وظایف پروتکل UDP

  • دریافت داده ها از برنامه های کاربردی و تحویل آن به پروتکل IP برای انتقال در شبکه.
  • بسته بندی دیتاها –  این بسته های دیتا در ادبیات UDP به Datagram معروف هستند.
  • اضافه کردن شماره درگاه (Port Number) مبدا و مقصد در هدر UDP – این پروتکل در کامپیوتر مقصد از طریق شماره پورت مقصد (UDP Destination Port) میفهمد که دیتا را باید تحویل کدام اپلیکیشن دهد. همچنین از طریق شماره پورت مبدا (UDP Source Port) میتواند پاسخ مبدا را بدهد.
  • کشف اینکه آیا داده دریافت شده سالم است یا در مسیر شبکه آسیب دیده است.

حملات رایج در UDP

یکی از حملات رایجی که توسط حمله کننده ها انجام می شود Port Scan میباشد. در حملات Port Scan بسته ها به یک مقصد فرستاده شده و از پاسخ های آن برای دریافت اطلاعات و آسیب پذیری ها استفاده میشود.
از دیگر حملات می توان به حملات جعل IP یا همان IP Spoofing اشاره کرد که این حملات هم با توجه به آسیب پذیری که در UDP و پروتکل هایی که از آن استفاده می کنند وجود دارد.

آسیب پذیری و امنیت UDP
IP Spoofing

نحوه دفاع در برابر حملات UDP

باید آگاه باشیم که گاهی یک حمله کافی است تا در موارد مختلف در شبکه ما تاثیرگذار باشد و منجر به کاهش بازدهی و افت سرعت شود. نوع ترافیک و میزان حملاتی که صورت می گیرد می تواند در نوع دفاع و دفع کردن آن تعیین کننده باشد. گاهی اوقات میزان حملات آنقدر زیاد است که ما حتی نیاز به یک عامل خارجی برای دفع آنها داریم.

تعداد گزینه هایی که برای دفاع در برابر آسیب پذیری های UDP در دسترس هستند:

  • شرکت ها میتوانند با راه اندازی VPN برای یکسری از ارتباطات مهم خود از حملات UDP محافظت کنند.
  • اگر شما از ماشین های مجازی استفاده میکنید می توانید با فیلتر کردن و پردازش بسته های ورودی که قابلیت اجرا بر روی همان سرور را دارد از سرویس خود و کند شدن آن محافظت نمایید.
  • استفاده از فایروال می تواند در جلوگیری از حملات DoS و DDoS موثر باشد.
  • استفاده از IDS(Intrusion Detection System) یعنی سیستم های تشخیص نفوذ و سپس حذف کردن آنها از دیگر موارد حفاظت میباشد.
  • استفاده از محیط های ابری که دارای ساختارهای حفاظتی چند لایه و قوی می باشند از دیگر موارد محافظت در برابر این نوع از حملات است.

 UDP چطور در حملات DDoS استفاده میشود؟

همانطور که گفته شد از آنجایی که UDP نیازی به دست دادن ندارد (عدم وجود مکانیزم تأیید)، مهاجم میتواند بدون آنکه نیاز باشد از سرور برای شروع ارتباط اجازه بگیرد، به روش‌ های مختلف به سرور مورد نظر آسیب‌ بزند و حملات DDoS را راه ‌اندازی کنند. مهاجم میتواند بسته ‌ها(Packet)  را با آدرس ip های دلخواه جعل کند و به کمک آنها مستقیما به برنامه‌ ها دسترسی پیدا کند.

برخی از حملات DDoS که روی سرویس ‌های مرتبط با UDP شاهد آنها هستیم عبارتند از:

  • سیل UDP

یک سیل UDP شامل حجم زیادی از بسته‌های UDP جعلی است که به چندین پورت در یک سرور واحد ارسال میشوند، با علم به اینکه هیچ راهی برای تأیید منبع واقعی بسته ‌ها وجود ندارد. یک حمله سیل معمولی UDP تعداد زیادی دیتاگرام UDP را به پورت‌ های تصادفی رایانه قربانی ارسال میکند. این امر هدف را وادار می کند تا به تعداد بسته ‌ها پاسخ دهد و بگوید که پورت‌ها در دسترس نیستند. سرور به تمام درخواست‌ها با پیام ‌های ”مقصد غیرقابل دسترس ICMP” پاسخ ‌میدهد و منابع کاملا درگیر این فرایند پاسخ دهی میشوند. درگیری زیاد منابع محاسباتی برای پاسخگویی به هر دیتاگرام تقلبی کامپیوتر هدف را خسته می‌کند و منجر به انکار سرویس برای ترافیک قانونی میشود.

برای تضعیف این حملات فقط میتوان مقیاس منابع شبکه را در لحظه بیشتر کرد تا منابع بیشتری برای پاسخ‌دهی به پیام ‌ها وجود داشته باشند. البته روش‌های دیگری برای دفاع در برابر حملات سیل UDP وجود دارد. مثلا یکی از آنها محدودسازی نرخ پاسخ بسته‌های ICMP است که البته گاهی اوقات بسته ‌های قانونی را هم نیز فیلتر می‌کند. یک روش دیگر دریافت ترافیک UDP و پاسخ به آنها از طریق یک شبکه واسطه روی دیتاسنتر توزیع شده است که از غرق شدن سرور با درخواست های جعلی جلوگیری میکند.

  • DNS Amplification

در حمله  DNS Amplification مهاجم بسته ‌های داده را با یک آدرس IP جعلی مربوط به IP قربانی به حل‌ کننده ‌های DNS ارسال می‌کند. این حمله طوری طراحی شده که پاسخ DNS به‌ مراتب بزرگتر از درخواست اصلی میباشد و عملا حمله را تقویت میکند. زمانی که این حمله در مقیاس بزرگ و با تعداد زیادی کلاینت و حل‌کننده DNS اجرا شود، سیستم را کاملا تحت تاثیر قرار می‌دهد. شاید برایتان عجیب باشد که یک حمله DDoS با ظرفیت 27 گیگابیت در ثانیه را می‌توان به این روش تا 300 گیگابیت در ثانیه تقویت کرد.

  • اسکن پورت UDP

در این نوع حمله مهاجم بسته ‌های UDP را به پورت ‌های سرور ارسال می‌کنند تا ببیند کدام پورت ‌ها باز هستند. اگر سروری با پیام «Destination Unreachable» پاسخ دهد، درگاه باز نیست. اما اگر مهاجم با چنین پاسخی مواجه نشود، میفهمد که پورت باز است و از این اطلاعات برای برنامه‌ریزی حمله به سیستم استفاده میکند.

حتما نظرتون رو در بخش نظرات اعلام کنید و از دیگر مقالات و آموزشات سایت استفاده کنید!

Rate this post