حتما در خبرها شنیدید که چند روز پیش دامنه دات کام سایتهایی مثل فارس نیوز توسط امریکا تحریم و مسدود شد.
روز بعد سجاد بنابی، نائب رئیس هیئت مدیره شرکت زیرساخت در پیامی اعلام کرد دامنه دات کام در تمام کشور قابل دسترس است.
در این پست بررسی میکنیم که این کار چگونه انجام گرفته است.
یک دانشگاه را تصور کنید که موقع شروع سال تحصیلی، دانشجوهای ترم بالایی برای اینکه دانشجوهای جدیدالورود را اذیت کنند میان شماره کلاسها را عوض میکنند.حالا دانشجوهای جدیدالورود را تصور کنید که هنوز با چیدمان کلاسها آشنا نیستند و تو کلاسهای اشتباهی حاضر میشوند. حالا تصور کنید که این شماره کلاسهای اشتباه تو سیستم راهنمای دانشگاه هم ثبت بشه و دانشجوها تا زمانی که یکی بیاد و این اشکال را برطرف کنه وارد کلاسهای اشتباهی میشن.
جعل DNS یعنی وارد کردن اطلاعات اشتباه در کش DNS، به نحوی که در کاربران را به یک سایت اشتباهی هدایت کند. آی پی آدرسها همان شماره کلاسها در اینترنت هستند، اجازه میدهند که ترافیک اینترنت به مسیر درست هدایت بشه. DNS Resolverها هم سیستم راهنمای دانشگاه هستند، و زمانی که اشتباه ثبت بشن ترافیک اینترنت را تا زمانی که اطلاح بشن به مسیر اشتباهی هدایت میکنند.
از آنجا که هیچ راهی برای تایید دیتای درون کش، توسط DNS Resolver وجود نداره، دیتای اشتباه تا زمانی که دستی پاک نشن یا TTL منقضی نشه،در کش باقی میمونه.
وظیفه ربط دادن ای پی به دامین مربوطه، وظیفه DNS Resolverهاست. به بیان سادهتر یک نام خوانا برای انسان مثل virgool.io را به یک آدرس خوانا برای ماشین مانند 72.64.109.38 تبدیل میکنه. زمانی که شما درخواست یک سایتی را میکنید، سیستم عامل این درخواست را برای یک DNS Resolver ارسال میکند. DNS Resolver در جواب یک ای پی برمیگردونه، مرورگر این ایپی را گرفته و سایت را بارگذاری میکند.
دی ان اس ریزالور (بخاطر باگ ویرگول مجبورم فارسی بنویسم) پاسخهایی را که ارسال میکنه، جهت افزایش سرعت، برای مدتی ذخیره میکنه. پاسخ ها تا زمانی که TTL مشخص کرده در حافظه کش باقی میمونن.
مهاجم برای مسموم کردن کش دی ان اس،یک درخواست برای DNS Resolver ارسال تا ای پی سایت را دریافت کند. اگر این آدرس در کش نباشه DNS Resolver شروع میکنه به درخواست فرستادن برای nameserver تا ای پی دامنه مورد نظر را پیدا کنه. در این بین مهاجم هم همزمان شروع میکنه به فرستادن آی پی جعلی تا به جای ای پی اصلی توسط DNS Resolver پذیرفته بشه. از انجایی که سرورهای DNS از پروتکل UDP به جای TCP استفاده و در حال حاضر برای این پروتکل هیچ راهی برای تصدیق طلاعات DNS وجود نداره. پس این حمله امکان پذیر است.
در TCP هر دو طرف برای شروع برقرای ارتباط نیاز به handshake و تایید هویت هم دارند. ولی برای درخواست و پاسخ های DNS از پروتکل UDP استفاده میشه. در UDP هیچ تضمینی وجود نداره که آیا درخواست هنوز برقرار یا فرستنده همان کسی است که ادعا میکند. به همین دلیل در مقابل جعل آسیب پذیر است. مهاجم میتونه از طریق UDP پیامی رو ارسال و ادعا کنه از یک منبع معتبر ارسال شده.
با وجود این آسیب پذیری، ولی در عمل انجام این حمله بسیار مشکل است. چون DNS Resolver یک درخواست برای Nameserver ارسال میکنه و مهاجم زمان بسیار کمی در حد چند میلی ثانیه فرصت داره تا درخواست رو قبل از اینکه پاسخ از nameserver دریافت بشه، جعل کنه.
حالا خیلی از دولتها برای سانسور کردن و جلوگیری از دسترسی به بعضی سایتها میان از DNS Spoofing استفاده میکنند. کاری که ایران کرده، اومده از عمد DNS ها رو جعل و farsnews.com رو در کش DNS قرار داده. در عکس زیر میتونید مشاهده کنید دامنه farsnews.com کاملا مسدوده ولی وقتی در مرورگر واردش میکنید به ادرس farsnews.ir منتقل میشید.