DNS Cache poisoning و راه مقابله با آن
در این مقاله می خواهیم در مورد DNS Cache poisoning و راه مقابله با آن صحبت کنیم.
ابتدا به تعریف DNS می پردازیم تا مطلب به راحتی قابل فهم باشد.

سرویس DNS چیست
در دنیای شبکه برای برقراری ارتباط بین دستگا های مختلف
نیاز به IP address است .یعنی هر دستگاه برای اتصال
به شبکه و اینترنت نیاز به یک IP address است.
به طبع حفظ کردن تمام IP address ها برای اتصال به دستگاه ها
و استفاده از اینترنت و وب سایت ها کار دشواری بوده
و استفاده کردن از یک Name Domain یا اسم وب سایت کار را راحتتر می کند.
سرویس DNS یا Domain Name System وظیفه
تبدیل IP address ها به Domain Name و بلعکس را دارد.
DNS Server
DNS Server یک سروری است که دارای Database بوده
که در این Database جدول هایی وجود دارد که Domain Name مربوط به
هر IP address را در یک ردیف ذخیره می کند. مانند DNS Server های شرکت Google
که در نقاط مختلف جهان این DNS Server ها وجود دارد.
DNS چگونه کار می کند
برای تبدیل Domain Name به IP address مراحل زیر انجام می شود.
بعد از وارد کردن URL برای پیدا کردن IP address مورد نظر ابتدا
درخواستی به Cache DNS محلی ارسال می شود , DNS Cache
شامل IP address سایت هایی است که اخیرا از آن ها بازدید شده است.
در صورت عدم پیدا شدن IP address مورد نظر در حافظه Cache محلی ,
Query (عمل پرس و جو برای پیدا کردن IP address مربوط به Domain Name) به سمت
ISP Recursive DNS servers ارسال می شود. ISP ها دارای Database های بزرگ تر
برای ذخیره سازی IP address ها هستند و به دلیل اینکه
درخواست های زیادی برای یافتن IP addressها به آن ها ارسال می شود
تعداد زیادی از IP addressها را می شناسد و در خود نگه میدارد.
ISP ها دقیقا از همین Recursive DNS servers ها استفاده می کنند.
اگر IP address مورد نظر یافت نشد روند پیدا کردن (Query)
در زنجیره ای از سرورها ادامه پیدا می کند و ISP Recursive DNS Server
درخواست را به سمت مجموعه ای Serverها ارسال می کند
که این Serverها برای پیدا کردن Query مورد نظر با یکدیگر در ارتباط هستند.
ISP Recursive DNS Server , Query مورد نظر را به سمت Root Domain Name Sever ارسال می کند.
Root Domain Name Sever خود Domain Name را به IP address تبدیل نمی کند
بلکه اطلاعات مربوط به تمام top-level domain (TLD) name servers و محل آن ها اطلاع دارد.
TLD قسمت اول از سمت راست Domain Name است (به عنوان مثال
"com." در Domain Name "www.sajadkarami.com " یا "org."در " www.technology.org " ) .
Root Serverها بسیار مهم هستند چون اولین ایستگاه برای
همه درخواست های جستجوی DNS است.TLD Name Servers
حاوی داده های مربوط به سطح دوم از Domain Name
(یعنی sajadkarami در "www.sajadkarami.com " است).
ابتدا Root Server به محل TLD Server اشاره می کند ,
سپس TLD Server درخواست را به سمت سروری هدایت می کند
که شامل داده های مورد نیاز برای اتصال به web site ای است
که می خواهیم به آن متصل شویم .Authoritative name server
آخرین مقصد در در روند درخواست های جست و جوی DNS است.
این سرورها IP address وب سایت مربوطه را برای Recursive DNS Server ارسال می کند.
در صورتی کهDomain Name مربوطه (آدرس وب سایت) دارای Subdomain باشد
Local DNS Server یا DNS Server محلی همچنان درخواست خود را
برای Authoritative server ارسال می کند تا در نهایت IP address مورد نظر Resolve شود.

DNS Cache poisoning چیست
یکی از شیوه های مرسوم در بین هکر ها
برای حملات سایبری و رسیدن به اهداف خود مثل سرقت اطلاعات ,
خراب کاری , جعل هویت و ... استفاده از روش DNS Cache poisoning است.
همانطور که پیش تر صحبت شد با وظیفه DNS Server و پروتکل DNS آشنا شدیم.
هکر ها با استفاده از نقاط آسیب پذیر DNS Server ها میتوانند آن را آلوده کنند.
و ترافیک ها را به سمت سرور های نا امن هدایت کنند که ممکن است
اتفاقات مختلفی بیفتد . DNS Cache poisoning یعنی وارد کردن اطلاعات نادرست
در Cache , سرور های DNS که نتیجه آن برگرداندن پاسخ نادرست
به درخواست های DNS کاربران است که باعث می شود کاربران وارد وب سایت های نادرست شوند.
به زبان ساده هکر در جدول های DNS , IP address جعلی و مورد نظر خود را قرار داده
تا کاربران با وارد کردن URL , DNS Server داده اشتباه و جعلی را برای درخواست کننده ارسال کند.
DNS Cache poisoning یک کلاه برداری DNS یا به عبارتی DNS Spoofing به حساب می آید
که در صورت آلوده شدن DNS Cache ها و DNS Serverها ترافیک Web به سمتی که هکر میخواهد می رود.
و از آنجایی که روشی برای اعتبار سنجی و صحت اعتبار داده ها در DNS Cache وجود ندارد
داده های نادرست تا زمان TTL یا Time to Live یعنی زمان انقضاء و یا تا زمانی که دستی حذف نشود
در DNS Cache باقی می ماند.البته پروتکلی DNS امن تر به اسم DNSSEC طراحی شده
اما هنوز به طور فراگیر مورد استفاده قرار نگرفته.
چطور مهاجمان DNS Cache را مسموم میکنند ؟
مهاجمان می توانند DNS Cache را با جعل هویت DNS Name server مسموم کنند.
به این صورت که وقتی DNS Server برای پیدا کردن IP address درخواست را به Root Server ارسال کرد.
هکر از طرف Recursive DNS Server پاسخ می دهد و IP address اشتباه ومورد نظر خود را ارسال می کند.
این روند به راحتی می تواند اتفاق بیفتد زیرا DNS Server ها به جای استفاده از TCP از UDP استفاده می کنند.
TCP از نوع Connection Oriented است که برای برقراری ارتباط از تأیید هویت دو طرف "Hand shack"
و Ack (تأیید به درستی رسیدن بسته به مقصد) استفاده می شود
در حالی که UDP از نوع Connection less است و تضمینی برای رسیدن بسته ها
به مقصد و آماده بودن گیرنده برای دریافت بسته ها وجود ندارد.
به این دلیل UDP در برابر جعل آسیب پذیر بوده و به راحتی مهاجم میتواند
از طریق UDP پیامی برای DNS Server ارسال کند و با جعل Hader Data میتواند
وانمود کند که پیام از طرف سرور معتبر است .و اگر DNS resolver یا همان DNS Server
پاسخ جعلی دریافت کند آن را قبول می کند و در Cache خود قرار می دهد
زیرا راهی برای تأیید صحت داده ها از طرف منبع وجود ندارد.
DNS در اوایل اینترنت ایجاد شد زمانی که تنها دانشگاه ها و مراکز تحقیقات وجود داشتند
و در آن زمان انتظار نمی رفت کسی اطلاعات جعلی DNS را منتشر کند.
با وجود این آسیب پذیری ها حملات DNS poisoning کار آسانی نیست
زیرا مهاجمان باید قبل از authoritative name server پیام جعلی را
برای DNS Server ارسال کنند یعنی فقط چند میلی ثانیه فرصت دارند.
مهاجمان در هنگام حملات DNS Poisoning باید یکسری فاکتر و نکاتی را بدانند
و یا حدس بزنند زیرا DNS Server بسته های داده ای را دریافت می کند
که منتظر آن ها است :
- کدام یک از DNS Queryها (کدام Domain Name) در کش ( DNS Resolver(DNS Server وجود ندارد
و نیاز دارد که از authoritative name server برای پیدا کردن IP address کمک بگیرد.
- DNS Resolver از چه پورتی استفاده می کند ؟ قبلا از یک پورت ثابت استفاده می کرند
ولی در حال حاضر از پورت های متفاوت به صورت Random استفاده می کنند.
- تشخیص ID Number در بسته های درخواست
- هر درخواست به سمت کدام authoritative name server ارسال می شود.
مهاجمان از روش های دیگر هم میتوانند DNS Resolver ها را آلوده کنند.
اگر هکر یا شخص خرابکار به صورت فیزیکی به DNS Resolver دسترسی پیدا کند راحت تر می تواند
داده های Cache را تغییر دهند .در نتیجه به دو روش حملات DNS انجام می شود.
روش های جعل DNS و آلوده کردن DNS
روش های حمله که در DNS Poisoning ستفاده می شود به روش های زیر انجام می شود.
حمله به روش Man in the Middle : در این روش هکر در بین DNS Server و کاربر قرار می گیرد
و DNS Cache سیستم مربوط به کاربران را مسموم می کند.
یعنی داده های اشتباه وارد DNS Cache می کند.
Hijack کردن DNS Server : وقتی DNS Server مورد حمله قرار می گیرد
و مسموم می شود به راحتی می توان حمله Hijacking را
روی کاربرانی که به DNS Server متصل می شوند و از آن سرویس میگیرند , انجام داد.
به این صورت که بعد از اینکه داده های جعلی در کش DNS Server قرار گرفت.
وقتی کاربر به آن مراجعه کرد و در خواست IP address برای دامنه مورد نظر کرد ,
کاربر را به سمت وب سایت مخرب و جعلی هدایت می شود.
مسموم گردن DNS Cache با استفاده از هرزنامه ایمیل : در این روش کدهای نوشته شده
برای DNS Cache Poisoning در لینک های هرزنامه ایمیل قرار می دهند
و با استفاده از روش های مختلف مثل ترساندن و یا روش های مهندسی اجتماعی و...
کاربر را مجاب میکنند که بر روی لینک کلیک کند که باعث آلوده شدن Cache سیستم
و در نهایت متصل شدن به وب سایت جعلی که شبیه وب سایت اصلی است , می شود.
خطرات حاصل از حمله DNS Cache Poisoning
سرقت اطلاعات : یکی از خطرات حاصل از حمله DNS Cache Poisoning
سرقت اطلاعات کاربران و اطاعات شرکت وسازمان ها که روی سیستم های کامندان ,
ذخیره شده است . ممکن است سایت های بانکی و یا فروشگاه های آنلاین معتبر جعل شده باشد
و با اتصال به این سایت های جعلی به منظور خرید و یا استفاده از خدمات بانکی ,
اطلاعات بانکی کاربر به سرقت برود و یا در موارد خاص با متصل شدن کاربر به سایت خاص
که اطلاعات محرمانه و یا شخصی و یا اطلاعات حیاتی یک شرکت (مثل سایت ها
و شرکت های خاص که فضای ابری یا Claude در اختیار می گذارند)ذخیره شده ,
کلمه عبور و پسورد کاربر را متوجه و اطلاعات را به سرقت ببرد و هکر از آن سو استفاده کند
نفوذ بد افزار ها : یکی دیگر از موارد حملات DNS Cache Poisoning نفوذ بد افزار ها
به سیستم کاربران است به این صورت که کاربر با متصل شدن به سایت جعلی
که لینک ها مخرب در آن قرار داده شده موجب می شود بدافزار ها وارد سیستم کاربر شود.
تأخیر در بروز رسانی های امنیتی : یکی دیگر از موارد حاصل از حمله DNS Cache Poisoning
جعل وب سایت های ارائه دهندگان امنیت اینترنتی است . که بروز رسانی ها انجام نمی شود
که به راحتی سیستم کاربر در معرض خطر ویروس ها , تروجان ها و... قرار می گیرد.
روش های جلوگیری از حمله DNS Cache Poisoning
- به روز نگه داشتن آنتی ویروس
- عدم دانلود فایل های مشکوک
- عدم باز کردن ایمیل های مشکوک
- استفاده از ISP و DNS Server معتبر
- پاک کردن DNS Cache کامپیوتر ها
- ریست کردن روتر برای پاک شدن DNS Cache
- تنظیمات دقیق DNS کامپیوتر ها
- تنظیمات دقیق DNS مربوط به DNS Server سازمان
- استفاده از قابلیت DNS Locking , این قابلیت از Overwrite بر روی داده های درون DNS Cache
جلوگیری کرده و هکر نمی تواند داده های جعلی را به جای داده اصلی قرار دهد.
:: موضوعات مرتبط:
آموزش شبکه ,
,
:: برچسبها:
DNS Cache poisoning و راه مقابله با آن ,
روش مقابله با DNS Cache poisoning ,
حمله DNS Cache poisoning ,
DNS Cache poisoning چیست و راه مقابله با آن ,
DNS Cache poisoning چیست و جعلDNS چیست ,
Root Domain name Server ,
Recursive DNS Server ,
,