راهکار حمله، تکمیل کردن این جدول است . همین حمله را روی سوییچ های Catalyst انجام می دهند و جواب می گیرند . دقت کنید این جمله که " همه تجهیزات شبکه ای را CISCO بگیرید ، بهترین کیفیت را دارد "توصیه شده نیست . توصیه شده این است که حتی از brand های مختلفی استفاده کنیم که اگر یک brand دارای یک آسیب پذیری بود روی همه نسخه های آن وارد نشود . ( این آسیب پذیری می تواند عمدا قرار داده شده باشد ) پس حواسمان به تست های مختلف (black box و ...) باشد.
نحوه ی تکمیل شدن - مرحله ی اول یادگیری سوئیچ است (شکل زیر)
Ali به Charley پیغام می فرستد . این پیغام توسط hub به switch و Alice ، broadcast می شود . سوییچ بسته را می بیند و این سطر را به جدول خود اضافه می کند.
Alice نگاه می کند به آدرس مقصد بسته . مقصد چارلی است پس آلیس ( خیلی خوش برخورد ) آن را drop می کند . سوییچ در حال حاضر نمی داند چارلی کجاست . پس بسته را به همه می فرستد . چارلی جواب به علی را برمی گرداند . حال سوییچ با دیدن این جواب به مبداء آن نگاه می کند این رکورد را به جدولش اضافه می کند . حال چون بسته باید به علی فرستاده شود و می داند علی کجاست آن را مستقیما به علی می فرستد .
حال آلیس می خواهد به علی پیغام بفرستد . پیغام به هاب می آید . هاب آن را به سوییچ وعلی broadcast می کند . سوییچ سطر A – Ali را در جدول به سطر A – Ali , Alice تغییر می دهد و با بسته کاری نمی کند و تشخیص می دهد که بسته رسیده است .
سوال : ممکن است یک بسته برای نودی بیاید که تا حالا نبوده ، Lookup table هم تکمیل شده است ( ممکن است این نود وجود داشته باشد یا نداشته باشد ) چه اتفاقی می افتد ؟ وقتی جدولش پرشد می توان روی آن protectionهای تعریف کرد که اگر یک جدول پر شد آن را fix کن آن وقت دیگر می گوید من فرد جدیدی در شبکه ندارم اما شرایط واقعی می گوید اگر یک لپ تاپ به سوئیچ وصل شد حالا Lookup table تکمیل شده باشد ، لپ تاپ من باید کار کند یا نه ؟ پس بسته را میفرستد .
بحث aging نیز در جدول مطرح است . یعنی ممکن است محتویات یک سطر از جدول اگر بعد از 10 دقیقه از آن نود پیغامی نیامد پاک شود ( سطر مربوط به آن نود ) مثلا یک زمان انقضا گذاشته می شود و بعد از سپری شدن آن زمان ، آن سطر از جدول پاک می شود . علت قرار دادن این ساختار این است که جدول خالی شود.. پس می توان سه حمله مثال زد : 1- در موقعی که lookup را تکمیل می کند. زمانی که در حال تکمیل کردن جدول look up است بیاییم و برق سازمان را قطع و وصل کنیم و شروع کنیم به Sniff کردن . 2 – جا زدن خود جای همه 3- قبل از اینکه زمان انقضا تمام شود آن قدر بسته بفرستیم که بافرش پر شود و سوییچ دوباره دارای مشکل می شود .
- استفاده از سوییچ تا حدی امنیت را برایمان فراهم می کند اما تکنیک هایی برای دور زدن آن وجود دارد .
- برخی سوئیچ ها در صورت پر شدن CAM table همانند یک هاب عمل می کنند . و البته این پرشدن به سادگی انجام نمی شود (CAM) : Content Address mapping منظور همان جدول تناظر بین mac و پورت است ) ( جدولی داریم برای تناظر mac و IP که چون سوئیچ م ا لایه 3 نیست فعلا با آن کاری نداریم .)
همچنین می توان با جعل آدرس فرستنده ، در سوئیچ هایی با lookup table بازنویسی شونده ، سوئیچ را مطابق میل خود تنظیم کنیم.
Eve می خواهد به رضا پیغام بفرستد در این جا رضا نداریم (شکل 19). سوییچ مبدا را نگاه و Eve را با سگمنت A در جدول درج می کند ( سطر A – Eve - ). Eveمی گوید از Alice به رضا می خواهم پیغام بفرستم ( مبدا خود را جعل می کند ) . پس سوئیچ فکر میکند که Alice هم در آن سگمنت است و به سطر قبلی Alice را هم اضافه می کند . مجددا Eve می گوید از Ali به Reza می خواهم بفرستم . سوییچ به سطر قبلی Ali را هم اضافه می کند . حال پیغام از Ali به Alice می خواهد برود . سوئیچ می بیند : Ali آن جای قبلی نیست پس از سطر قبلی علی را حذف و سطر جدید C – Ali را اضافه می کند اما Alice همچنان در سگمنت A است ( چون حمله کننده سوئیچ را آلودهpoison= کرده است ) پس بسته رضا به Eve رسید ( کاری که Eve کرده بود این بود که خود را به جای همه زده بود).
توجه : می توان IP ، mac را عوض کرد .
اگر حمله بالا با قدرت و قوت انجام شود Client چیزی نمی بیند چون دسترس پذیری تحت کنترل قرار می گیرد . چون ممکن است Packet loss رخ دهد . به همین دلیل در حملات LAN موفقیت حمله کاملا بستگی دارد به پردازنده و کارت شبکه نفوذگر . نفوذگر برای این که چنین مشکلی پیش نیاید یعنی کسی نفهمد Packet loss رخ داده است ، می آید و دوباره جدول سوئیچ را به حالت صحیح آن تنظیم می کند.
چرا در سوئیج به این راحتی می شود sniff کرد ؟ چون خیلی خوش خیالانه پروتکل ها را طراحی کرده اند ، سوییچ گفته است ممکن است یک کامپیوتر الان به یک پورت وصل است ممکن است برود و به پورت دیگر وصل شود ممکن است همچنین یک لینک سوییچ به یک هاب متصل باشد و کلی کامپیوتر به این هاب وصل باشند حال اگر این سناریوها را سوئیچ انجام نمی داد ، سوئیچ دیگر سوئیچ نبود .
حملات Poisoning دو نوع داریم : 1- حمله ای که علیه سیستم مقصد استفاده می شود 2- حمله ای که علیه سوئیچ استفاده می شود .
در اولی جداول سیستم مقصد آلوده می شود ، دومی جداول سوئیچ را آلوده می کند ( ما در این حالت از ARP استفاده کردهایم) .
- وقتی می خواهیم سایت گوگل را ببینیم چه اتفاقی می افتد؟ ابتدا با استفاده از DNS ، IP گوگل بدست می آید . چون IP گوگل با آدرس شبکه ما، match نمی شود ، از طریق قرار دادن gateway mac به gateway فرستاده میشود. اگر در شبکه local باشد باید بداند که در شبکه محلی، mac هرکس چیست؟ و مستقیما mac فرد مورد نظر را قرار دهد . با استفاده از ARP می توان آدرس mac را بدست آورد.