loader image
detail-blog
اکتبر 26, 2024

نحوه نوین حمله DNS Cache Poisoning

نحوه نوین حمله DNS Cache Poisoning

محققان امنیت سایبری روشی جدید برای اجرای حملات موسوم به مسموم‌سازی حافظه نهان DNS یا DNS Cache Poisoning کشف کرده‌اند که با نام جدید SAD DNS فعالیت می‌کند.

به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، محققان دانشگاه‌های چینهوا و کالیفرنیا روشی جدید برای اجرای حملات موسوم به مسموم‌سازی حافظه نهان DNS یا DNS Cache Poisoning کشف کرده‌اند که با نام جدید SAD DNS فعالیت می‌کند.

این کشف جدید باگی را که در سال ۲۰۰۸ شناسایی شد و تا پیش از این تصور می‌شد که برای همیشه ترمیم شده است احیا می‌کند.

وظیفه سامانه DNS یا Domain Name System تبدیل نامه دامنه به نشانی IP است. در زمان فراخوانی یک دامنه، مرورگر با کمک سرور DNS، نشانی IP آن را شناسایی می‌کند. به‌منظور بهینه‌سازی این فرایند، نشانی‌های استخراج شده، بر روی دستگاه و سرورهای میانی به اصطلاح کش (Cache) می‌شوند.

عبارت مسموم‌سازی حافظه نهان DNS به دست‌درازی مهاجمان به حافظه نهان (Cache) موجود بر روی سرورهای میانی این سامانه‌ها اشاره دارد.
تصور کنید زمانی که کاربر نشانی www.gmail.com را در مرورگر خود وارد می‌کند بجای نشانی IP صحیح، نشانی IP مورد نظر مهاجم که سایتی جعلی اما کاملا مشابه با Gmail است به مرورگر او باز گردانده

وبلاگ مطالب آموزشی آلفا

شود. با این تکنیک مهاجم قادر به ضبط تمامی اطلاعات وارد شده توسط کاربر در سایت مذکور خواهد بود.

این روش حمله در سال ۲۰۰۸ توسط یک محقق امنیتی با نام Dan Kaminsky کشف شد.
زمانی که دستگاه به دنبال پیدا کردن نشانی IP یک دامنه از طریق DNS است یک شناسه منحصربه‌فرد با عنوان Transaction ID نیز در درخواست ارسالی از سوی دستگاه به سرور DNS درج می‌شود.
هنگامی که سرور به دستگاه، پاسخ (نشانی IP متناظر با نام دامنه اعلامی) را ارسال می‌کند، دستگاه تنها پاسخی که در آن به شناسه Transaction ID صحیحی اشاره شده است را می‌پذیرد. سازوکاری که هدف آن جلوگیری از دریافت نشانی‌های IP جعلی از سوی سرورهای DNS در کنترل مهاجم است.
Kaminsky دریافته بود که تعداد کل شناسه‌های Transaction ID ممکن ۶۵,۵۳۶ عدد است.

بنابراین مهاجم می‌تواند با ارسال چندین پاسخ DNS جعلی با شناسه ۰ تا ۶۵,۵۳۶ ضمن دستیابی به شناسه صحیح، همزمان باعث جلوگیری از کش شدن اولین پاسخ شود.

برای جلوگیری از کش شدن اولین پاسخ، مهاجم اقدام به تغییراتی در دامنه اعلامی می‌کند؛ برای مثال، هر پاسخ شامل یک زیردامنه متفاوت از دامنه مورد نظر است .
با این تکنیک در نهایت مهاجم موفق به کشف شناسه Transaction ID صحیح می‌شود.

بدین‌ترتیب، دفعه بعد که کاربر به gmail.com مراجعه می‌کند، او به سرور مهاجم هدایت شده و در نتیجه حمله با موفقیت اجرا می‌شود.

برای مقابله با حملات مسموم‌سازی حافظه نهان DNS تصادفی‌سازی درگاه مبداء (Source Port Randomization) به‌کار گرفته شد.

هدف از به‌کارگیری آن این بود که حتی اگر مهاجم شناسه Transaction ID را هم به‌درستی حدس زد همچنان نتواند پاسخی جعلی را به دستگاه ارسال کند؛ چرا که از درگاه مبداء که آن هم در تئوری می‌تواند ۶۵,۵۳۶ حالت مختلف داشته باشد اطلاع ندارد.

دور زدن این سازوکار مستلزم حدس میلیاردها احتمال است و عملا غیرممکن تصور می‌شد.
اکنون محققان دانشگاه‌های چینهوا و کالیفرنیا روشی را ارائه کرده‌اند که در آن از یک حمله کانال جانبی (Side-channel Attack) برای کشف شماره درگاه انتخاب شده توسط دستگاه بهره گرفته می‌شود.
با دانستن شماره درگاه، باز هم اجرای موفق حملات مسموم‌سازی حافظه نهان DNS که توسط Kaminsky شناسایی شده بود ممکن می‌شود.

امکان تشخیص درگاه مبداء از نحوه پردازش درخواست‌های ICMP در برخی سیستم‌های عامل ناشی می‌شود.

در این سیستم‌های عامل به‌منظور صرفه‌جویی در میزان اشغال پهنای باند یک Rate Limiter (محدودکننده درخواست) لحاظ شده تا درخواست‌های ورودی در هر ثانیه بیشتر از مقدار تعیین شده در تنظیمات نباشد. این مقدار در Linux به‌طور پیش‌فرض ۱۰۰۰ بسته در هر ثانیه است. برای ردیابی این درخواست‌ها نیز از یک شمارنده (Counter) استفاده می‌شود.

برای هر درخواست دریافتی که در آن به یک درگاه غیرباز اشاره گردیده مقدار شمارنده یکی کسر شده و به فرستنده پاسخ Unreachable ارسال می‌شود. بنابراین اگر در یک ثانیه ۱۰۰۰ بسته به درگاه‌های مختلفی ارسال شود که هیچ‌یک باز نیستند ارتباط مهاجم با آنها قطع می‌شود. اما در عین حال با این روش مشخص می‌شود که تمامی ۱۰۰۰ حدس نادرست بوده است. جالب اینکه مقدار شمارنده برای هر درخواستی که به درگاه صحیحی اشاره دارد کسر نمی‌شود و بدیهی است که پاسخ Unreachable نیز ارسال نمی‌شود. پس در هر ثانیه مهاجم می‌تواند با سرریز کردن یک هزار بسته جعلی بر روی درگاه‌های تصادفی سرویس‌گیرنده DNS دستگاه را مورد حمله قرار دهد. با این رویکرد، در عرض چند ثانیه مهاجم قادر به دستیابی به درگاه‌های باز بر روی دستگاه هدف خواهد بود.

با اطلاع از درگاه صحیح، مهاجم می‌تواند باگ Kaminsky را مورد بهره‌جویی (Exploit) قرار داده و موجب اجرای موفق حمله مسموم‌سازی DNS شود.

چندین سیستم DNS از جمله BIND، Unbound و dnsmasq از این آسیب‌پذیری جدید که منجر به مسموم‌سازی حافظه نهان DNS می‌شود تأثیر می‌پذیرند. آسیب‌پذیری مذکور، SAD DNS – برگرفته شده از Side-channel AttackeD DNS – نامگذاری شده و به آن شناسه CVE-۲۰۲۰-۲۵۷۰۵ تخصیص داده شده است.

و اما راهکار این است:  همچون انتخاب تصادفی درگاه مبداء که با افزایش پیچیدگی، مانع از اجرای موفق حمله می‌شد، تخصیص تصادفی مقدار Rate Limiter، بجای استفاده از عددی ثابت نیز می‌تواند در مقابله با حمله SAD DNS مؤثر باشد.

سازوکار اصلاحی اشاره شده در ۲۵ مهر ماه در Linux Kernel اعمال شده.
بدین‌منظور در فایل icmp.c یک مقدار تصادفی به شمارنده – که با عنوان Credit شناخته می‌شود – تخصیص داده می‌شود. اما می‌توان انتظار داشت که اعمال آن بر روی تمامی سرورها زمان‌بر خواهد داد.

وبلاگ مطالب آموزشی آلفا

سایر راهکارهایی که از سوی محققان پیشنهاد شدند به تخریب کانال جانبی توجه دارند؛ برای مثال از طریق غیرفعال کردن ICMP، کاهش مهلت (Timeout) پرس‌وجوی DNS – برای به حداقل رساندن فرصت حمله – و استفاده از فناوری‌هایی نظیر DNSSEC، کوکی‌های DNS یا استفاده از کدگذاری به‌منظور افزودن رمز در پیام‌های DNS.

با این حال، برخی محققان مسدودسازی کامل ترافیک ICMP را به دلیل استفاده‌های معتبر از آن در مواردی همچون در فرایند IPv۶ Fragmentation و بروز اختلال در بعضی معماری‌های جاری توصیه نمی‌کنند.

محققان شرکت بلو کت نیز استفاده از یک اسکریپت Shell را برای تغییر مستمرRate Limiter پودمان ICMP به‌عنوان راهکاری موقت در برابر حملات SAD DNS پیشنهاد کرده‌اند. نمونه‌هایی از این اسکریپت‌ها در لینک زیر قابل دریافت است:
https://github.com/bluecatlabs/network-vip/tree/main/icmp_ratelimit

DNS پودمانی نسبتاً غیرامن است که در طراحی آن بیشتر از آن که به الزامات امنیتی توجه شده باشد بر روی سرعت و کارایی بالا تمرکز شده است. حتی لحاظ کردن بهبودهایی نظیر DNS-over-HTTPS یا همان DoH هم نتوانسته از مورد سوءاستفاده قرار گرفتن DNS جلوگیری کند

نحوه انجام حمله DNS Cache Poisoning

در ابتدا فایل etter.conf   را ویرایش کرده و سطر های انتخاب شده تصویر زیر را تغییر می دهیم و ذخیره میکنیم.

[privs]
ec_uid = 0
ec_gid = 0

سپس فایل etter.dns   را ویرایش کرده و سطر زیر را به ابتدا اضافه می کنیم.

*               A     192.168.1.106

با اضافه شدن این سطر، قربانی هر وبسایتی را باز کند، به 192.168.1.106 ، هدایت می شود.

می کنیم. با اینکار درواقع http server را run می کنیم بطوری که اگر آی پی kali linux را در هرکدام از device های متصل به شبکه باز کنیم، هر چیزی که در پوشه var/www/html در kali linux وجود دارد، نمایش داده خواهد شد. ما باید صفحه دلخواه خودمان را در این پوشه قرار دهیم.

سپس نرم افزار Ettercap را اجرا می کنیم و Device های متصل به شبکه را اسکن می کنیم وآنها را لیست می کنیم. سپس  Target را مشخص کرده و حمله ARP Poisoning را روی قربانی اجرا می کنیم. روش کار در گزارش کارِ تمرین قبل توضیح داده شده است.

روی پلاگین dns_spoof دوبار پشت سرهم کلیک می کنیم تا فعال شود. با اینکار یک ستاره در سمت چپِ dns_spoof ظاهر می شود که به معنی فعال شدن آن است..

برای دیدن نتایج حمله کافی است در Device قربانی یک وبسایت با پروتکل http را باز کنیم. مشاهده می کنیم که بجای آن وبسایت، صفحه ای که ما مشخص کرده بودیم نمایش داده می شود.

پیشگیری از این حمله از دید مدیر شبکه:

1- از ابزار ها و نرم افزار هایی که این حمله را تشخیص می دهند استفاده کنیم.

2- استفاده از DNSSEC(Domain name system security extensions) بجای DNS معمولی.

3- استفاده از رمزنگاری End to end برای ارسال کردن درخواست ها و پاسخ های DNS.

4- استفاده از DNS Server اختصاصی

-5استفاده از SSL روی دامنه وبسایت ها

6-تصادفی کردن resolver port و query ID برای کاهش احتمال موفقیت attacker

پیشگیری از این حمله از دیدگاه کاربر نهایی:

1-همیشه از وبسایت هایی که دارای SSL هستند استفاده کنیم و اگر وبسایتی SSL نداشت، آن را باز نکنیم.

2- هر از گاهی DNS Cache را Flush کنیم تا اگر این حمله روی ما اتفاق افتاده بود، خنثی شود.

3- استفاده از VPN

4-اسکن کردن مداوم سیستم برای پیدا کردن ویروس ها یا بدافزار های احتمالی

نظرات کاربران

دیدگاهی بگذارید

Your email address will not be published.

AlPHA.Co - گروه برنامه نویسی آلفا- ALPHA - alpha- 4lph4 -آلفا -الفا-گروه برنامه نویسی الفا-صفحه اصلی الفا-آلفاهای ایرانی-وبسایت آلفا های ایرانی-الفاهای ایرانی-طراحی سایت-امنیت اطلاعات-امنیت فضای مجازی-لینوکس-ویندوز-برنامه نویسی لینوکس-گیت هاب-iranian alpha

ارومیه ، خیابان امام خمینی، سه راهی سرداران

info[at]4lph4[dot]ir

نشان اعتماد
نشان اعتماد
۷ روز هفته، ۲۴ ساعته پاسخگوی شما هستیم
 

کلیه حقوق این سایت متعلق به مجموعه آلفا کمپانی می باشد

بستن

کالاها

دسته بندی ها

  • ورود با پیامک
  • ورود با رمز
user

زمینه‌های نمایش داده شده را انتخاب نمایید. بقیه مخفی خواهند شد. برای تنظیم مجدد ترتیب، بکشید و رها کنید.
  • تصویر
  • امتیاز
  • قیمت
  • موجودی
  • موجودی
  • وزن
  • طول
  • اطلاعات
برای مخفی‌کردن نوار مقایسه، بیرون را کلیک نمایید
مقایسه
emptycart
هیچ محصولی در سبد نیست