یكی از شایع ترین حملات مورد استفاده علیه افراد و سازمانهای بزرگ، حملات Man-in-the-Middle است. MITM، یك حمله استراق سمع فعال است كه بوسیله برقراری ارتباط با ماشین قربانی و باز پخش پیغامها بین آنها كار میكند. در اینگونه موارد، یك قربانی بر این باور است كه با قربانی دیگر به طور مستقیم ارتباط برقرار كرده است در حالی كه در حقیقت ارتباط از طریق میزبانی كه این حمله را انجام میدهد در جریان است. نتیجه نهایی این است كه میزبان حمله كننده نه تنها میتواند اطلاعات حساس را رهگیری كند، بلكه می تواند برای بدست آوردن كنترل بیشتر سیستم قربانیها، یك جریان داده را تزریق و دستكاری نماید.
در این سری از مقالات به بررسی برخی از انواع این حملات كه به طور گسترده مورد استفاده قرار گرفته است، میپردازیم. معروفترین حملات MITM شامل آلودگی حافظه پنهان ARP، جعلDNS ، ارتباط ربایی نشست HTTP، عبور از رشته درهم و.. میشود. در دنیای واقعی بیشتر ماشینهای قربانیها دارای سیستم عامل ویندوز میباشند. در نتیجه این سری از مقالات به طور كامل بر روی سوء استفاده MITM از میزبانهایی كه در حال اجرای نسخههای ویندوز هستند، تمركز میكند.
آلودگی حافظه پنهان ARP
در این مقاله نگاهی به آلودگی حافظه پنهان ARP میاندازیم. یكی از قدیمی ترین اشكال حملات MITM، آلودگی حافظه پنهان ARP بوده است كه اجازه میدهد مهاجم در زیر شبكه قربانیان خود، ترافیك بین قربانیان در كل شبكه را استراق سمع نماید. به این دلیل این موضوع را به عنوان اولین حمله مورد بررسی قرار میدهیم كه با وجود آن كه سادهترین راه حمله است ولی به عنوان یكی از موثرترین حملاتی كه بوسیله هكرها انجام میشود، مطرح شده است.
ارتباطات عادی ARP
پروتكل ARP به منظور تسهیل ترجمه آدرسها بین لایههای دوم و سوم از مدل OSI طراحی شده بود. لایه دوم یا لایه پیوند دادهها، از آدرسهای MAC استفاده میكند بنابراین دستگاههای سختافزاری میتوانند به طور مستقیم در یك مقیاس كوچك با هم ارتباط برقرار كنند. لایه سوم یا لایه شبكه، برای ایجاد شبكه هایی در مقیاس بزرگ كه میتوانند در سرتاسر جهان با هم ارتباط برقرار كنند، از آدرسهای IP استفاده میكنند. لایه پیوند داده به طور مستقیم با دستگاههایی كه به هم متصل هستند، سر و كار دارد در حالی كه لایه شبكه با دستگاههایی كه به طور مستقیم یا غیر مستقیم با هم در ارتباط هستند، كار میكند. هر لایه دارای مدل آدرسدهی مخصوص به خود است و این لایه ها باید به منظور ایجاد ارتباطات شبكهای با هم كار كنند. به همین دلیل ARP ( پروتكل تعیین آدرس اترنت) ایجاد شد.
شكل(1): فرآیند انتقال اطلاعات یك ARP
مهمترین وجه عملیات ARP، تمركز داشتن پیرامون دو بسته شامل یك درخواست ARP و یك پاسخ آن است. هدف از این درخواست و پاسخ، بدست آوردن آدرس MAC متناظر با آدرس IP داده شده است به طوری كه ترافیك مورد نظر با استفاده از این آدرس MAC میتواند مقصد خود را بر روی شبكه پیدا كند. بسته درخواست به هر یك از دستگاههای شبكه فرستاده میشود با این محتوی كه “هی، آدرس IP من XX.XX.XX.XX و آدرس MAC من XX:XX:XX:XX:XX:XX است. میخواهم چیزی به كسی كه دارای آدرس IP، XX.XX.XX.XX است بفرستم ولی آدرس سخت افزاری آن را ندارم. لطفا هر كسی كه این آدرس IP متعلق به اوست، با فرسنادن آدرس MAC خود به من پاسخ دهد”. جواب این درخواست در بسته پاسخ ARP قرار میگیرد و به سمت مبدا فرستاده میشود. محتوی بسته پاسخ بدین صورت است:” هی دستگاه فرستنده من صاحب آدرس IP،XX.XX.XX.XX هستم كه به دنبال آن هستی. آدرس MAC من XX:XX:XX:XX:XX:XX است”. هنگامیكه این روند كامل شد، دستگاه فرستنده، جدول حافظه نهان ARP خود را به روز رسانی كرده و این دو دستگاه میتوانند با هم ارتباط برقرار كنند.
آلودگی حافظه نهان
آلودگی حافظه نهان ARP بدلیل بهره بردن از طبیعت ناامن پروتكل ARP اتفاق میافتد. بر خلاف پروتكلهایی مانند DNS كه میتواند به گونهای پیكربندی شود تا تنها به روز رسانیهای پویای امن را بپذیرند، دستگاههایی كه از ARP استفاده میكنند، تمامی به روز رسانیها را میپذیرند. این بدین معنی است كه هر دستگاهی میتواند یك بسته پاسخ ARP را به میزبان دیگری بفرستد و میزبان را مجبور كند تا حافظه نهان ARP خود را با مقدار جدید به روز رسانی نماید. ارسال یك پاسخ ARP زمانی كه هیچ درخواستی فرستاده نشده است، ارسال یك ARP ناخواسته نامیده میشود. هنگامیكه قصد مخربی در كار باشد، از چند بسته ARP ناخواسته استفاده میشود، در نتیجه میزبانها فكر میكنند با یك میزبان عادی در حال برقراری ارتباط هستند، در حالی كه در حقیقت با یك مهاجم در حال شنود، ارتباط برقرار كرده اند.
شكل(2): قطع كردن ارتباط بوسیله یك حافظه نهان آلوده
دفاع در برابر آلودگی حافظه نهان ARP
فرآیند ARP در پس زمینه اتفاق میافتد و ما به طور مستقیم می توانیم كنترل كمی روی آن داشته باشیم. اگر شما در مورد آلودگی حافظه نهان ARP روی شبكهتان نگران هستید میتوانید از حالتهای واكنشی و پیشگیرانه استفاده كنید.
ایمن سازی شبكه
هنگامی كه برای قطع شدن ترافیك بین دو میزبان روی شبكه محلی یكسان تلاش میكنید، تنها تكنیك حمله موجود، آلودگی حافظه نهان ARP است. تنها دلیل نگرانی شما باید زمانی باشد كه كنترل یك دستگاه محلی در شبكه شما در اختیار فرد خرابكار قرار گرفته شود، در این صورت یا یك كاربر مورد اعتماد نیت مخرب دارد، یا كسی توانسته است یك دستگاه غیر قابل اعتماد را به این شبكه متصل نماید. برای از بین بردن ترس حاصل از حمله ذكر شده می توان از روش هایی مانند متمركز كردن تمام تلاشهای امنیتی روی محیط شبكه، دفاع در برابر تهدیدهای داخلی و داشتن یك حالت امنیت داخلی خوب بهره جست.
استاتیك كردن حافظه نهان ARP
یك راه برای محافظت در برابر طبیعت ناامن درخواست ها و پاسخ های ARP این است كه از پویایی فرآیند بكاهیم. این یك گزینه است زیرا میزبانهای مبتنی بر ویندوز اجازه میدهند عناصر استاتیك را به حافظه نهان ARP اضافه نمایید. شما میتوانید بوسیله باز كردن اعلان فرمان و وارد كردن دستور arp –a، حافظه نهان ARP یك میزبان ویندوز را ببینید.
شكل(3): حافظه نهان ARP را مشاهده میكنید.
شما میتوانید با استفاده از دستور arp –s <IP ADDRESS> <MAC ADDRESS>، شناسه ای را به این لیست اضافه نمایید.
از آن جایی كه اغلب پیكربندی شبكه تغییر نمیكند، این امكان وجود دارد كه فهرستی از شناسههای ARP را به صورت استاتیك بسازیم و آنها را از طریق یك اسكریپت خودكار به تمامی كلاینتها اعمال كنیم. در نتیجه این اطمینان حاصل میشود كه دستگاهها همیشه به جای تكیه بر در خواست و پاسخ ARP، به حافظه نهان ARP محلی خودشان تكیه خواهند كرد.
نظارت بر ترافیك ARP با برنامههای دیگر
آخرین گزینه برای دفاع در برابر آلودگی حافظه نهان ARP یك رویكرد واكنشی است كه شامل نظارت بر ترافیك شبكه میزبانها میشود. این كار را میتوان با استفاده از یك سیستم تشخیص نفوذ كمی متفاوت یا ابزارهای قابل دانلود كه به طور خاص برای این هدف طراحی شده اند، انجام داد. این كار زمانی امكان پذیر است كه تنها نگران یك میزبان هستید اما زمانی كه درباره كل بخش های شبكه نگران باشید كار كردن با این ابزارها كمی دشوار و سنگین می شود.
خلاصه
آلودگی حافظه نهان ARP یكی از منفعلترین حملات MITM است زیرا اجرای آن بسیار ساده است، در شبكههای كنونی یك تهدید بسیار جدی است، و شناسایی و دفاع در برابر آن دشوار است. در مقاله بعدی از این مجموعه به تبدیل اسم به آدرس IP و مفهوم جعل DNS میپردازیم.