جعل DNS و مسموم کردن آن — به زبان ساده
همزمان که افکار عمومی در مورد خطرهای محیط آنلاین آگاهتر میشوند، طراحان بدافزارها نیز بر تلاشهای خود برای فریب دادن افراد و ربودن دادههایشان افزودهاند. «سیستم نام دامنه» (Domain Name System) که به اختصار DNS نامیده میشود یک نقطه ضعف به صورت مسموم سازی کَش دارد که موجب «جعل DNS» یا DNS Spoofing میشود و یکی از پنهانترین روشهای سرقت تجربه مرور وب کاربران و فرستادن آنها به سایتهای خرابکارانه است. در این مقاله به بررسی طرز کار مسموم سازی کش DNS و شیوه جلوگیری از آن میپردازیم.
کش DNS چیست؟
در ابتدا باید توضیحی در مورد طرز کار URL-ها و آدرس IP بدهیم، سپس به طرز کار خود کش DNS میپردازیم. زمانی که میخواهید از یک وبسایت بازدید کنید، به طور معمول یک URL وارد میکنید. اگر بخواهید حساب بانکی خود را به صورت آنلاین بررسی کنید به طور مثال آدرس «www.mybanksaddress.com» را در مرورگر وب خود وارد میکنید.
مشکل اینجا است که رایانهها عملاً به زبان URL با هم صحبت نمیکنند. رایانهها آدرس IP را میشناسند. آدرس IP عددی است که به عنوان نشانی منزل یک دستگاه روی اینترنت استفاده میشود. ما از URL به این دلیل استفاده میکنیم که به خاطر سپاری نام یک سایت نسبت به حفظ کردن آیپی عددی آن برای ما آسانتر است.
طرز کار DNS چگونه است؟
رایانه شما برای این که شما را به جایی که میخواهید بروید هدایت کند، باید URL-ی را که در مرورگر وارد کردهاید به یک آدرس IP تبدیل کند. به منظور انجام این کار URL ورودی به جایی که یک سرور DNS نام دارد ارسال میشود.
سرور DNS مانند یک دفترچه تلفن بزرگ برای وبسایتها عمل میکند. زمانی که رایانه URL را به سرور DNS ارسال میکند، سرور مربوطه در پایگاه داده خود جستجو کرده و آدرس IP متناظر را پیدا میکند. بدین ترتیب شما میتوانید آدرس IP وبسایت مورد نظر خود را پیدا کنید.
در این زمان رایانه شما میداند که آدرس IP مربوط به وبسایت www.mybanksaddress.com چیست و شما میتوانید به این وبسایت مراجع کنید.
طرز کار کش DNS چگونه است؟
از آنجا که آدرسهای IP وبسایتها به صورت مکرر تغییر نمییابند و شاید هرگز تغییر پیدا نکنند، رایانه شما تصمیم میگیرد که این اطلاعات را که به دست آورده برای استفادههای بعدی ذخیره کند. بنابراین آدرس IP مربوط به وبسایت www.mybanksaddress.com در یک کش DNS ذخیره میشود.
در این حالت اگر در آینده بخواهید دوباره به وبسایت بانک مراجعه کنید، رایانه شما نیازی به استفاده از سرور DNS نخواهد داشت، چون میتواند به کش خود نگاه کرده و آدرس IP که قبلاً دریافت شده را پیدا کند. بدین ترتیب کش DNS به صورت یک دفترچه تلفن کوچک برای همه سایتهایی که قبلاً بازدید کردهاید عمل میکند.
چگونه کش DNS مسموم میشود؟
اینک که با مفهوم کش DNS آشنا شدیم، در ادامه نگاهی به روش مسموم کردن کش از سوی هکرها میپردازیم.
هکرها چگونه کش را مسموم میکنند؟
زمانی که یک رایانه از کش DNS استفاده میکند، دقت نمیکند که آیا آدرس IP از آخرین باری که استفاده شده تغییر یافته است یا نه. بدین ترتیب کش DNS همان حافظه رایانه است. اگر مقادیر درون کش دستکاری شوند، رایانه بر مبنای همین نتایج دستکاری شده عمل خواهد کرد.
فرض کنید عامل خرابکاری تلاش میکند که به کاربران وبسایت www.mybanksaddress.com حمله کند. به این منظور یک وبسایت جعلی میسازد که دقیقاً مشابه وبسایت اصلی است. یک صفحه ورود مشابه نیز ساخته میشود تا جزییات اطلاعات افرادی که از این وبسایت جعلی استفاده میکنند، به دست آید.
طرز کار مسموم سازی چگونه است؟
زمانی که این سایت جعلی آنلاین میشود، هکرها به کش DNS کاربران حمله میکنند. این کار از طریق یک بدافزار یا با کسب دسترسی به رایانه فرد صورت میگیرد. در هر حال، هدف آنها دسترسی به کش DNS و یافتن جایی است که وبسایت www.mybanksaddress.com ذخیره شده است. زمانی که این امر محقق شد آنها میتوانند آدرس IP بانک را با آدرس سایت جعلی که راهاندازی کردهاند عوض کنند.
فرض کنید کش یک کاربر مورد حمله قرار میگیرد و آدرس IP بانک عوض میشود. اینک وقتی که فرد URL بانک خود را در مرورگر وارد بکند رایانه در کش به دنبال آدرس IP آن میگردد و آدرس IP هک شده را پیدا میکند و از این رو کاربر را به وبسایت جعلی هدایت میکند.
این کار چنان با ظرافت صورت میگیرد که کاربر حتی متوجه نمیشود که به یک وبسایت جعلی هدایت شده است. سپس کاربر جزییات ورود به حساب خود را در صفحه جعلی وارد میکند و به این ترتیب حساب بانکی وی در معرض خطر قرار میگیرد.
آیا سرورهای DNS نیز آسیبپذیر هستند؟
زمانی که رایانهها با سرور DNS صحبت میکنند تا آدرس یک وبسایت را دریافت کنند، این امکان برای هکرها وجود دارد که شما را به یک سرور مسموم هدایت کنند. متأسفانه این امر و تبعات آن میتوانند آسیب فراوانی ایجاد کنند.
سرورهای DNS به طرزی مشابه رایانه شما عمل میکنند. اگر سرور DNS یک کوئری در مورد آدرس IP دریافت کند، و نداند که باید کاربر را به کجا هدایت بکند از سرور DNS دیگر میپرسد تا پاسخ را بیابد. این سرورها کش خاص خود را برای ذخیرهسازی اطلاعات دارند.
اگر یک هکر بتواند به یک سرور DNS دست پیدا کند میتواند پایگاه داده را طوری تغییر دهد که کاربران را به هر کجا که میخواهد بازهدایت کند. در این حالت، هر رایانهای که به سرور DNS وصل میشود تا آدرس IP وبسایت مورد نظر خود را پیدا کند، نتیجه مسمومی دریافت خواهد کرد.
حتی از آن بدتر این است که سرورهایی که آدرس IP یک وبسایت خاص را نمیدانند هم از سرور مسموم سؤال میکنند. در این حالت پاسخی که آن سرورها دریافت میکنند نیز مسموم است و این وضعیت منجر به یک زنجیره از آلودگی روی سرورهای DNS میشود که این اطلاعات ساختگی را رد و بدل میکنند.
چگونه از مسمومیت DNS جلوگیری کنیم؟
با این که حملات جعل DNS نادر هستند؛ اما روشهای برای مقابله با آنها وجود دارد. در ادامه برخی از راهکارهای امن ماندن در هنگام وب گردی را بررسی میکنیم.
به روز و فعال نگهداشتن آنتیویروس
یک نرمافزار آنتیویروس خوب میتواند با حملههای مسموم سازی کش DNS مقابله کند. اینترنت همواره پر از ریسکهای مختلف است و از این رو داشتن لایه حفاظتی در برابر آن امری ضروری محسوب میشود. بنابراین باید یک آنتیویروس خوب را دانلود و نصب کنید تا امنیتتان حفظ شود.
فایلهای مشکوک را دانلود نکنید
جهت حفاظت از خودتان در برابر حملههای کش DNS، موارد امنیتی را در زمان گشت و گذار در وب رعایت کنید. بدین ترتیب نباید روی فایلها، لینکها و یا تبلیغات بنری مشکوک کلیک کنید. این مورد ممکن است موجب حملههای بدافزارهایی شود که کش DNS را عوض میکنند.
از سرور DNS یا ISP معتبر استفاده کنید
متوجه شدیم که حفاظت از خود مرحلهای اساسی محسوب میشود؛ اما در مورد سرورهای DNS آلوده چه میتوان کرد؟
یک سرور DNS خوب هرگز به نخستین چیزی که از سرور دیگر دریافت میکند اعتماد نخواهد کرد. این سرور همه اطلاعات دریافتی خود را به دیده شک و تردید مینگرد و آن را نمیپذیرد؛ مگر این که مطمئن شود مسموم نیست. با استفاده از این سرورها می تونید مطمئن باشید که نتایجی که در رایانه خود دریافت میکنید معتبر هستند.
رایانهها به طور معمول از سرور DNS که ISP مربوطه ارائه میکند استفاده میکنند. بدین ترتیب ایده مناسب این است که از یک ISP مشهور که رویههای امنیتی مناسبی دارد استفاده کنید.
اگر تمایل داشته باشید میتوانید از یک سرور DNS متفاوت از آنچه ISP ارائه میکند نیز استفاده کنید. بدین ترتیب میتوانید خدمات معتبری دریافت کنید و مطمئن باشید که ارتباط شما به دور از مسمومیت میماند.
کش DNS خود را پاک کنید
اگر به کش DNS خود مشکوک هستید آن را پاک کنید. بدین ترتیب همه مداخل آلوده تمیز میشوند و همه چیز از نو آغاز میشود. صرفاً باید مطمئن شوید که در ادامه از یک سرور DNS معتبر استفاده میکنید چون در غیر این صورت دوباره آلوده خواهید شد. این که کش DNS خود را چگونه پاک میکنید به سیستم عاملی که استفاده میکنید وابسته است.
همه وبسایتهایی که بازدید میکنید را مورد بررسی مجدد قرار دهید. زمانی که به یک وبسایت مراجعه میکنید، میتوانید با بررسی مجدد آن مطمئن شوید که یک وبسایت جعلی نیست. متأسفانه URL وبسایت ممکن است همچنان همانی باشد که قصد دارید ببینید، چون رایانه شما باور دارد که این آدرس IP واقعی وبسایت مورد نظر شما است.
اگر متوجه شدید که وبسایت مربوطه از رمزنگاری HTTPS استفاده نمیکند یا هر چیز دیگری در آن مشکوک است، این احتمال وجود دارد که به وبسایت نادرستی مراجعه کردهاید. در این صورت هیچ گونه اطلاعات خود را در آن وارد نکنید و از وبسایت خارج شوید و یک اسکن ویروس انجام داده و کش DNS را نیز بیدرنگ پاک کنید.
روتر را ریاستارت کنید تا کش DNS آن پاک شود
روترها میتوانند کش DNS خاص خود را داشته باشند. این کش نیز به همان اندازه کش DNS رایانه یا سرور DNS در معرض آلودگی قرار دارد و برای این که کاملاً مطمئن شوید امنیت برقرار است، میتوانید روتر خود را به صورت دستی ریاستارت کنید. بدین ترتیب کش DNS آن پاک شده و مشکل مرتفع میشود.
سخن پایانی
سرورهای DNS ابزارهای مفیدی برای تسریع تجربه مرور وب هستند؛ اما در صورتی که به مخاطره بیفتند میتوانند آسیبهای جدی وارد کنند. خوشبختانه کارهای زیادی وجود دارد که میتوانید برای تضمین عدم آلودگی به حملههای مسموم سازی کش DNS انجام دهید.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای شبکههای کامپیوتری
- گنجینه آموزش های شبکه های کامپیوتری
- آموزش های اینترنت و Internet Download Manager
- آموزش Windows Server 2012 (ویندوز سرور ۲۰۱۲) – نصب و پیکربندی
- مفاهیم DNS و انواع سرورهای آن — راهنمای جامع
- DNS چیست و آیا باید سرور DNS خود را تغییر دهیم؟
==