ARP Spoofing چیست؟
ARP Spoofing یکی از حملات شبکه است که با ایجاد نگاشت جعلی بین آدرسهای IP و MAC، ترافیک را به سمت مهاجم هدایت میکند. در این مقاله با نحوه عملکرد ARP Spoofing، ارتباط آن با حمله MITM و روشهای مقابله با آن آشنا میشوید.
برای انتقال اطلاعات در شبکه تنها دانستن آدرس IP مقصد کافی نیست. با استفاده از پروتکل ARP میتوان آدرس MAC رابط شبکه مقصد را بهدست آورد و اطلاعات را به مقصد درست ارسال کرد.
مهاجم با استفاده از ARP Spoofing و ایجاد یک نگاشت جعلی بین آدرس IP مقصد و آدرس MAC خود، کاری میکند تا ترافیک به سوی خودش هدایت شود.
مهاجم میتواند از طریق همین فرآیند پاسخ مقصد را هم دریافت کند. از این روش در حملاتی مانند Man In The Middle استفاده کرد.
پروتکل ARP چیست؟
پروتکل ARP یا Address Resolution Protocol یکی از پروتکلهای شبکه است که برای یافتن آدرس MAC متناظر با یک آدرس IP در شبکه محلی استفاده میشود.
در شبکههای اترنت (Ethernet)، برای انتقال داده از یک دستگاه به دستگاه دیگر از فریمهایی استفاده میشود که براساس آدرسهای MAC کار میکنند. اما اغلب دستگاهها فقط آدرس IP مقصد را دارند و آدرس MAC آن را ندارند. دستگاهها برای اینکه بتوانند فریمها را به مقصد برسانند، ابتدا باید آدرس MAC مربوط به آدرس IP مقصد را پیدا کنند. وظیفهی پروتکل ARP نگاشت آدرس IP به آدرس MAC در شبکههای محلی است.
پروتکل ARP زمانی وارد عمل میشود که آدرس IP مقصد وجود دارد اما آدرس MAC باید پیدا شود. سیستم مبدا پیام ARP Request را در شبکه Broadcast میکند. دستگاه مقصد در پیامی با عنوان ARP Reply آدرس MAC رابط شبکه خود را ارسال میکند. کامپیوتر مبدا این اطلاعات را در ARP Cache خود ذخیره میکند.
برای مثال، کامپیوتر مبدا میخواهد بستهای را برای روتر با آدرس IP 192.168.1.1 ارسال کند. کامپیوتر پیام ARP Request را ارسال میکند. روتر مقصد در پیام ARP Reply اعلام میکند که آدرس MAC خود AA:AA:AA:AA:AA:AA است. کامپیوتر مبدا این اطلاعات را در ARP Cache خود ذخیره میکند. پس هر زمان کامپیوتر مبدا خواست بستهای به روتر مقصد با آدرس IP 192.168.1.1 ارسال کند، آن را برای MAC AA:AA:AA:AA:AA:AA ارسال میکند.
ARP Spoofing چیست؟
در فرآیند ARP Spoofing مهاجم با ایجاد یک نگاشت جعلی بین IP و MAC موفق میشود تا MAC خودش به جای MAC مقصد، در ARP Cache سیستم قربانی ذخیره شود.
با استفاده از این فرآیند، فریمهایی که قربانی برای مقصد موردنظر میفرستد، به سمت MAC مهاجم میآیند. برای اینکه مهاجم واقعاً وسط ارتباط دو طرف قرار بگیرد و رفتوبرگشت ارتباط را ببیند، باید Cache طرف دیگر هم دستکاری شود. مهاجم یک بار دیگر یک نگاشت جعلی بین IP و MAC ایجاد میکند و MAC خود را به جای MAC مبدا قرار داده و فریمهای پاسخ را نیز دریافت میکند.
در این مرحله اگر مهاجم فرآیند بازارسال پاسخها به مبدا را طراحی نکند، ارتباط بین مبدا و مقصد دچار اختلال میشود.
ارتباط بین ARP Spoofing و Man-In-The-Middle
اصطلاح Man-In-The-Middle (MITM) زمانی به کار میرود که مهاجم بین دو دستگاه، دو کاربر، کلاینت و سرور و... قرار میگیرد. هدف از این عمل میتواند شنود، دستکاری یا رهگیری ترافیک و یا جعل هویت یکی از طرفین باشد.
ARP Spoofing یکی از روشهایی است که میتواند مهاجم را در موقعیت MITM قرار دهد و مهاجم میتواند ترافیک میان دو طرف را از مسیر خود عبور دهد.

راههای مقابله با ARP Spoofing
برای مقابله با ARP Spoofing راههایی وجود دارد که مهمترین آنها Dynamic ARP Inspection یا DAI است.
Dynamic ARP Inspection یا DAI
در DAI، سوئیچ ARP Request و ARP Replyهای ورودی را بررسی میکند و نگاشت IP و MAC را با اطلاعات معتبر مقایسه میکند. اگر نگاشت معتبر نباشد، ARPرا Drop میکند. در نتیجه مهاجم نمیتواند بهسادگی یک نگاشت جعلی وارد شبکه کند.
DHCP Snooping
وظیفهاش این است که پیامهای DHCP را از منابع غیرمعتبر فیلتر کند و یک DHCP Snooping Binding Database شامل اطلاعاتی مثل IP، MAC و پورت مربوط به کلاینت ایجاد کند. این اطلاعات بعداً میتواند در DAI برای تشخیص ARP جعلی استفاده شود. از DHCP Snooping در کنار DAI استفاده میشود و بهتنهایی راهکار مقابله با ARP Spoofing نیست.
Static ARP
در شبکههای کوچک و تحت شرایط خاص میتوان برای دستگاههای مشخص، نگاشت IP و MAC را بهصورت Static تعریف کرد تا مهاجم نتواند با یک ARP جعلی آن را تغییر دهد. ولی این روش برای شبکههای بزرگ چندان عملی نیست؛ چون با تغییر دستگاهها یا MAC Addressها باید اطلاعات بهصورت دستی مدیریت شود.
در نهایت
ARP Spoofing از یک ضعف در سازوکار اعتماد ARP استفاده میکند و میتواند ترافیک را از مسیر مهاجم عبور دهد؛ بنابراین استفاده از مکانیزمهایی برای اعتبارسنجی نگاشتهای IP و MAC، بهخصوص در شبکههای سازمانی، اهمیت دارد.
