Uncategorized

DNS Cache poisoning و راه مقابله با آن

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 و راه مقابله با آن

How do work DNS

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 جلوگیری کرده و هکر نمی تواند داده های جعلی را به جای داده اصلی قرار دهد .

برای مشاهده محصولات دیگر سایت ما اینجا کلیک کنید .

برای مشاهده محصولات متنوع تر به سایت NKTECH مراجعه نمایید .

برای مشاهده محصولات برند LAFAND به سایت لافند مراجعه نمایید .

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *