حمله برروی Designated Router

برای حملات در OSPF بطور معمول حملاتی که پیشنهاد می شود برروی آسیب پذیری های الگوریتم Network LSA و پروتکل Hello است.  Network LSA ها توسط Designated Router ارسال می شد، که این روتر در میان روترهای مجاور در شبکه توسط الویت هایی که از پیش تنظیم شده است (که گاها هم می توانند بصورت مقدار پیش فرض باشند) .

چه اتفاقی می افتد اگر DR نتواند LSA ها را ارسال کند؟
دونوع کلی و اصلی از شبکه ها بودند، Transit  و Stub ، شبکه های Transit اجازه می دهد تا پکت های خارجی از طریق آنها به مکانهای دیگرانتقال یابد، در حالی که شبکه های Stub همچین عملی را انجام نمی دهند.
هنگامی که یک شبکه Transit از Network LSA های شبکه خود محروم شود،  بصورتStub خواهد شد. تمامی Route هایی که ازطریق آن عبور می کردند، حال دیگر نمی توانند. برای حمله برروی DR یکی از سناریو های زیر را می توانیم به حملات مان نسبت دهیم:

  1.  خودمان به عنوان DR/BDR انتخاب شویم.
  2.  انتخاب شدن یک روتر دیگر (که در شبکه موجود است) بعنوان DR/BDR با جعل پیام های همان روتر.
  3.  تغییر DR معتبر، به یکDR نامعتبر.
  4. ساخت یک روتر فانتوم به عنوان DR/BDR

از گزینه های بالا ما 3 مورد اول را بهمراه 3نوع حمله مختلف برای بررسی انتخاب می کنیم:

حمله شماره یک: انتخاب شدن خودمان بعنوان DR
الگوریتم انتخاب DR/BDR با توجه با RFC2328 بخش 9.3 می توان توسط حالتهای یک اینترفیس انجام شود. با توجه به RFC ذکر شده حالتهای یک اینترفیس می تواند توسط رویدادهایی تغییر کند که بدین صورت است:

  • BackupSeen
  • WaitTimer
  • NeighboreChange

ما از حالت سوم استفاده خواهیم نمود، به نقل از RFC :

State(s):  DR Other, Backup or DR

Event:  NeighborChange

New state:  Depends upon action routine.

Action:  Recalculate the attached network’s Backup Designated
Router and Designated Router, as shown in Section
9.4.As a result of this calculation, the new state
of the interface will be either DR Other, Backup or DR.

تمامی حرف متون بالا این است که اگر همسایه ای تغییر کند DR و BDR دوباره انتخاب خواهند شد.
این Election هنگامی اتفاق می افتد که یکی از همسایگان تغییر کند، برای انجام این کار می بایست خودمان را بعنوان DR به شبکه معرفی نماییم بدین صورت که شناسه روتر را در فیلد Designated Router از Hello Packet قرار می دهیم و ارسال می نماییم (برای جزییات بیشتر می توان به RFC2328 و بخش A.3.2 مراجعه نمود).

سپس تمامی روترها شروع به اجرای الگوریتم انتخاب DR/BDR خواهند نمود (RFC2328 بخش 9.4).  حال می بایستی روتر خودمان را با قرار دادن آخرین مقدار یعنی مقدار 0xFF برای فیلد Router Priority در Hello Message کاندید خواهیم نمود. حال ممکن است یک روتر دیگر در شبکه همین مقدار را داشته باشد؛ بهرحال بالاترین مقدار ID بعنوان DR انتخاب خواهد شد. بعد از انتخاب شدن DR/BDR تمامی روترها با DR بایستی Convergenceشوند. بعد از اینکه بعنوان DR انتخاب شدیم می توانیم دو حمله را پیاده سازی نماییم.

  1. محرومیت از Network LSA : می توانیم LSA ها را ارسال نکنیم و یا ارسال کنیم بدون اینکه روتری را در LSA هایمان ذکر نماییم که در RFC در بخش 12.4.2 بیشتر توضیح داده شده است که یک شبکه Transit بایستی دوتا یا بیشتر روتر متصل داشته باشد. پس درغیر اینصورت بصورت Stub خواهدبود.
  2.  تکرار عملیات انتخاب: وقتی بعنوان DR انتخاب شویم DR قبلی از دامنه Flush خواهد شد، خوب اگر بعنوان DR انتخاب شویم ولی ما Hello Message را ارسال کنیم بدین معنی است که نمی خواهیم DR شویم و باز دوباره عملیات انتخاب DR/BDR انجام خواهد شد. هنگامی که روتر DR انتخاب شود بایستی Adjacency جدیدی بین DR  و دیگر روترها ایحاد شود که این کار با Sync نمودن LSDB صورت می گیرد و در این مدت شبکه قادر به انتقال ترافیک نیست.

حمله شماره دو:انتخاب نمودن روتر مجاور بعنوانDR
این حمله شبیه به حمله قبلی است، اما دارای دو مزیت است که باعث برتری خواهد شد:

  1.  این حمله می تواند هر روتر مجاور هدف قرار دهد.
  2.  روتر نفوذگر در حمله مقصر شناخته نمی شود، چون پیام های روتر دیگری را جعل می کند و آن روتر مقصر شناخته خواهد شد.

اجرای این حمله بدین شرح است:
شبکه مورد حمله انتخاب شده است. روترمان (نفوذگر) بسته Hello معتبر ارسال می کند همچنین یک پکت Malicious Hello برای تمامی روترهای Adjacent شده به جز روتری که می خواهیم مورد حمله قرار دهیم (روتر قربانی) می فرستد. Malicious Hello یک پیام Hello است که از سمت روترقربانی جعل نموده ایم. در این پیام فیلد DR به ID روتر قربانی تغییر پیدا می کند.

بنابراین روترهای Adjacent در شبکه دیتابیس های خود را باDR به روز می کنند سپس روترهای متصل شده به شبکه بر این باورند که روتر حمله DR است. روتر قربانی نمی داند که نقش DR را در شبکه دارد بنابراین Network LSA برروی شبکه ارسال نمی کند و اثر آن برروی شبکه مانند حمله شماره 1 است.

حمله شماره سه: تغییر DR معتبر، به یکDR نامعتبر
این متد نفوذگر را قادر می سازد که یک روتر راه دور را مورد حمله قرار دهد که از طریق شبکه های مختلف به شبکه نفوذگرمان مرتبط است. توسط این حمله می توانیم رفتارهای شبیه به حمله شماره دو داشته باشیم، به روتر توسط پیام Hello اضافی حمله می کند، که پیام ها را از سمت خودش برای روتر راه دور از طریق unicast ارسال می کند.
پیغام های Hello تغییر می کند : DR را ID خود روتر نفوذگرقرار می دهد و Priority را بالاترین مقدار ممکن قرار می دهد. محتوای پیام ها را طوری ایجاد می کند تا بنظر برسد که درون شبکه وجود دارد و یکی از روترهای موجود در شبکه است.
این باعث می شود که روتری که می خواهیم مورد حمله فکر کند DR تغییر کرده است و روترمان DR است. تاثیر این حمله بدین صورت خواهد بود که شبکه از حالت Transit فعالیت خود را متوقف کرده و به حالت Stub عمل می کند. در این حمله ردیابی مهاجم راحتتر است، از آنجایی که پیغام های Hello می فرستد به روتر مورد حمله و این پیغام ها راحت می توان ردیابی کرد و به منبع آن رسید.

تمامی  حملات رو میتونین با یک روترایجاد شده و تحت کنترل  در شبکه مثل Quagga  وهمچنین ایجاد پکت ها توسط Scapy انجام بدهید.

AHA

قطره ای از دریای بیکران IT

More Posts

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *