مصطفی چگنی
متخصص تجهیزات امنیتی و حفاظتی

ARP Spoofing یا ARP Poisoning چیست؟ به همراه راهکار مقابله

ARP Spoofing چیست؟ ARP Poisoning چیست؟ چگونه در برابر حمله ARP Spoofing امن شویم ؟ نوعی از حمله است از حملات( mitm (men in the middle است که هکر با آدرس مک جعلی خود را به عنوان gateway جا زده و اطلاعات را شنود sniff می کند.هر سیستم برای اتصال به شبکه محلی از نوع ip/Ethernet احتیاج به دو ادرس دارد:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
  1. Mac address : در تعریف ادرسی منحصر به فرد برای هر سیستم که بر روی هر کارت شبکه به صورت سخت افزاری ذخیره می گردد که هر بسته ارسالی شامل مک ادرس مبدا و مقصد می باشد .نکته:با مک چینجر میتوان مک ادرس را عوض کرد.
  2. Ip address : هر سیستم برای ارتباط در شبکه دارای ip منحصر به فرد بوده که به صورت نرم افزاری تخصیص داده می شود. هر بسته ارسالی شامل ip ادرس مبدا و مقصد می باشد.

تعریف پروتوکل( arp(address resolation protocol

کارایی بدین صورت است که درخواست هایی در شبکه پخش می شود که ایا ip شما ****.****.****.**** این است؟ اگر درست است مک خود را ارسال کنید.در همین حین تمامی کلاینت های شبکه ip خود را چک می کنند که در صورت درست بودن یک پاسخ همراه مک به فرستنده ارسال می کنند.

  • نکته مهم: برای این که این درخواست پیوسته در شبکه ارسال نشود و ترافیک بیهوده ایجاد نشود.هر کلاینت یکبار این درخواست را ارسال کرده و سپس جواب‌های ارسالی را بصورت یک جدول در ARP Cache نگه داری می کند.این جدول شامل Mapping بین IP و MAC می باشد.اما هر بار که این درخواست به کلاینتی برسد ARP Cache خود را update میکند که هکر با استفاده از update این جدول حمله می کند.در یک شبکه محلی هر بسته ارسال شده از یک سیستم با رسیدن به سوئیچ پردازش می‌شود و با خواندن مک آدرس مقصد از روی بسته و مقایسه آن با جدول مک خود بسته را از درگاه متصل به دستگاه مقصد ارسال میکند.جدول مک سوئیچ شامل لیستی است که نشان می‌دهد کدام مک آدرس به کدام درگاه سوئچ متصل است.
وب سایت توسینسو

طریقه ایجاد جدول مک بدین صورت است که سوئیچ با دریافت بسته از هر درگاه و آدرس فرستنده بسته را به درگاه دریافت کننده اختصاص می دهد.

  • $کلید کار:حال فرض کنید نفوذگر مک آدرس خود را به سوئیچ به عنوان مک آدرس سیستمی‌دیگر معرفی کند که درواقع نفوذگر خود را جای سیستم هدف جا می زند و سوئیچ تمام بسته‌های ارسالی به سیستم هدف را به سمت نفوذگر هدایت میکند.
  • توجه: شبکه مانند شکل زیر در نظر بگیریم که ارتباط تمام کاربران با اینترنت از Gateway عبور میکند:
وب سایت توسینسو

حالا اگر نفوذگر جدول مک سوئیچ را طوری تغییر دهد که خود به عنوان Gateway جا زده باشد می‌تواند تمام بسته‌ها را شنود (sniff) کند.

وب سایت توسینسو

اما سوال اینجاست که نفوذگر از طریق چه ساز و کاری این کار را انجام میدهد؟ برای رسیدن به جواب این سوال حمله ARP Poisoning را تعریف می‌کنیم.در این نوع حمله ، حمله کننده با ارسال درخواست‌های جعلی ARP ارتباط بین دو یا چند کلاینت را منحرف کرده و تمامی‌ترافیک را به سمت خود route می‌کند.سپس می‌تواند این dataها را مشاهده و ویرایش کند و سپس آنها را به مقصد اصلی re-route کند.فرض کنید X دستگاه حمله کننده و M وN قربانیان ما هستند.

X حمله ARP Poisoning را بین M وN اجرا میکند تا به ترافیک بین آنها دسترسی ‍پیدا کند.به سبب این حمله تغییرات زیر در ARP Cache Table دستگاهای M و N ایجاد میشود.-M در جدول ARP Cache خود IP دستگاه N را با مک آدرس X نگاشت(map) می‌کند.-N در جدول ARP Cache خود IP دستگاه M را با مک آدرس X نگاشت می‌کند. -تمامی‌ترافیک بین M و N به جای این که مستقیم به هم ارسال شوند ابتدا از X عبور می‌کنند و بعد به دست خودشان می رسند:

وب سایت توسینسو

نقاط ضعف این حمله

  1. وقتی در یک شبکه ARPPOISONNING رخ میدهد ترافیک شبکه بالا میرود و باعث DELAY یا تاخیر می شود.فرض کنید تمام ترافیکی که بین کلاینت ها رد و بدل می شود باید اول از اسنیفر عبور کند یعنی اسنیفر واسط بین کلاینت ها و GATEWAY می شود که باعث پایین امدن سرعت میشود.
  2. از طرفی دیگر باید ARP CASH ENTRY وجود داشته باشد یعنی اسنیفر برای تولید GRAFITY ARP به سراغ ARP CASH TABLE میرود و ان را UPDATE می کند ولی خود اسنیفر نمی تواند یک نسخه ENTRY تولید کند در جدول مک ادرس یعنی باید از قبل وجود داشته باشد و کلاینت مک سرور را داشته باشد که اسنیفر در RESUALT میتواند ان را اصلاح کند.
  3. از طرف دیگر این حمله با استفاده از ARP کار میکند که این پروتوکل درون لایه 2 قرار دارد یعنی برای این کار شما باید درون LAN باشید که بیرون از این NETWORK شما نمی توانید BROADCAST NETWORK LAYER2 انجام دهید.

حال برای مقابله با این خطر یا حمله بسیار وحشتناک چه کاری باید انجام بدهیم که اطلاعات تمام شبکه شنود نشود: برای جلوگیری از این کار در شبکه های بسیار کوچک مانند کافی نت ها بهتر است که mac address مربوط به سیستم ها را به arp cash سیستم ها اضافه کنید.برای این منظور می توانید از دستور arp –s و باضمیمه کردن ip و mac مربوط به gateway در cmd این کار را انجام دهید با این کار هکر نمیتواند با overwrite کردن arp cash گذرگاه اقدام به arp spoofing کند.اما در شبکه های بزرگ باید از فیچری که سیسکو عرضه کرده استفاده کرد.برای این مشکل شرکت سیسکو یک فیچری عرضه کرده که این مشکل را رفع می نماید:

DAI===DYNAMIC ARP INSPECTION

شبکه شما می تواند با استفاده از این توانمندی در برابر این حملات مقاومت بیشتری را نشان دهد.این توانمندی بسیار شبیه توانمندی DHCP SNOOPING می باشد که در بسیار مواقع این دو باید با هم همراه شوند یعنی هر دو فیچر باید استفاده شود.و بهتر است که برای امنیت بیشتر توانمندی port security نیز فعال باشد. قابل ذکر است که باید قبل از DAI فیچر DHCP SNOOPING راه اندازی شود.یعنی DHCP SNOOPING یک جدولی درست میکند که سیستم ARP INSPECTION از ان استقاده می کند.این توانمندی از پورت های TRUSTED و UNTRUSTED استفاده میکند که در این شرایط که در این شرایط فقط پورت های سوئیچ که در وضعیت TRUSTED باشند قادر به دریافت پاسخ ARP خواهند بود و در صورتی که یک در خواست ARP از طریق پورت UNTRUSTED دریافت شود اطلاعات ان با جدول DHCP binding مقایسه خواهد شد در صورتی که با این جدول مطابقت نداشته باشد حذف خواهد شد پورت disable می شود.

Switch# configure terminal
Switch(config)# ip arp inspection vlan 1

تعیین پورت trusted :به صورت پیش فرض بعد از توانمندی dai کلیه پورت ها در وضعیت untrusted قرار خواهند گرفت و شما باید پورت یا پورت هایی را که می خواهید را در وضعیت trusted قرار بگیرند را تعیین نمایید.برای این منظور از دستور زیر استفاده نمایید:

Switch(config)# interface fastethernet 0/1
Switch(config-if)# ip arp inspection trust

دستور بالا باعث می شود پورت در وضعیت trusted قرار بگیرد.راه دیگری نیز توسط سیسکو وجود دارد که این کار را بااستفاده از ACCESS LIST انجام می دهند.که این راه برای STATIC ARP است.چون خیلی از IP ها با DHCP ASSIGNنمی شوند.

Switch# configure terminal
Switch(config)# ip arp inspection vlan 1
Switch(config)# arp access list static arp
Switch(config-acl)# permit ip host 192.168.1.10 mac host 0005.50a1.146g
Switch(config-acl)#exit
Switch(config)# ip arp inspection filter static arp vlan 1
Switch(config)# interface fastethernet 0/1
Switch(config-if)# ip arp inspection trust

نتیجه گیری:در کل جلوگیری از حمله arp خیلی راحت تر از تشخیص این حمله است در کل باید گفت که بهتر است به فکر فیچر های امنیتی این نوع حمله باشیم چون خساراتی که این حمله به بار می اورد جبران نا پذیر است.باید گفت که اگر یک حمله مانند dos که باعث down شدن سرور می شود admin سریع متوجه می شود اما detect کردن arp attackخیلی کار دشوار و پیچیده ای است و دلیل ان هم روشن است تا دیروز کلاینت به درون سایت می رفت و کارها را انجام میداد و امروز هم می تواند در کل اتفاقی نیفتاده پس mitm ها عموما از خطرناک ترین نوع حمله ها می باشند و که پیشگیری از ان راحت تر از درمان ان است.

Refrences:
http:/ Oxit.it/topic/arp poisoning
http:/ wikipedia/arp poisoning
ccna security/security opposed of arp attack
tosinso.com/admin
Anti network security Ebook 

مصطفی چگنی
مصطفی چگنی

متخصص تجهیزات امنیتی و حفاظتی

mosifa.ir بازار بزرگ تجهیزات حفاظتی امنیتی ایران

نظرات