کلاهبرداری در سامانه نام دامنه

کلاهبرداری در سامانه نام دامنه که با عنوان مسمومیت‌گر سامانه نام دامنه نیز شناخته می‌شود، یک نوع هک امنیتی کامپیوتر است که در آن اطلاعات نادرست سیستم نام دامنه به کش پنهان‌کننده نام دامنه معرفی شده، که باعث می‌شود سرور نام یک نتیجه نادرست رکورد را ارسال کند، به عنوان مثال یک آدرس IP. این امر موجب می‌شود که ترافیک به کامپیوتر مهاجم (یا هر کامپیوتر دیگر) هدایت شود.
یک سرور سامانه نام دامنه، یک نام دامنه قابل خواندن انسان (مانند example.com) را به یک آدرس عددی یعنی آی‌پی که برای ارتباط بین گره‌ها استفاده می‌شود را ترجمه می‌کند.
به‌طور معمول اگر سرور یک انتقال درخواستی را نمی‌داند، از یک سرور دیگر درخواست می‌کند و روند به‌طور بازگشتی ادامه می‌یابد. برای افزایش کارایی، یک سرور معمولاً (حافظه پنهان) این ترجمه‌ها را برای زمان مشخصی به یاد خواهد داشت.
این به این معنی است که اگر درخواست دیگری برای همان انتقال دریافت کند، می‌تواند بدون نیاز به درخواست از سرورهای دیگر پاسخ دهد، تا زمانی که آن حافظه نهان حذف شود.
هنگامی که یک سرور سامانه نام دامنه ترجمه غلطی دریافت کرده و آن را برای بهینه‌سازی عملکرد ذخیره می‌کند، مسموم در نظر گرفته می‌شود و داده‌های دروغین را به مشتریان می‌دهد. اگر یک سرور سامانه نام دامنه مسموم شده باشد، ممکن است یک آدرس IP نادرست را برگرداند، انتقال ترافیک به یک کامپیوتر دیگر (اغلب یک مهاجم).

حملات آلوده سازی کش

معمولاً یک کامپیوتر تحت شبکه، از یک سرور سامانه نام دامنه که توسط ارائه دهنده خدمات اینترنت (ISP) یا یک سازمان خدمات اینترنتی فراهم می‌شود، استفاده می‌کند.
سرورهای سامانه نام دامنه به‌طور کلی به منظور بهبود وضوح عملکرد پاسخ با استفاده از ذخیره کردن نتایج بدست آمده از پرس و جوها، در شبکهٔ یک سازمان استفاده می‌شوند.
حملات مسموم‌کننده روی یک سرور سامانه نام دامنه می‌تواند کاربرانی را که به‌طور مستقیم توسط سرور آسیب دیده، سرویس داده می‌شوند یا به‌طور غیرمستقیم توسط سرور (های) پایین دست آن، در صورت قابل اجرا بودن، تحت تأثیر قرار بدهد.
برای انجام یک حملهٔ مسموم‌کننده کش، مهاجم از نقص موجود در نرم‌افزار سامانه نام دامنه سوء استفاده می‌کند. یک سرور به درستی باید پاسخ‌های سامانه نام دامنه را تأیید کند تا اطمینان حاصل شود که از منابع معتبر هستند (برای مثال با استفاده از DNSSEC)؛ در غیر این صورت سرور ممکن است به صورت محلی، کش کردن ورودی‌های نادرست را متوقف کند و این ورودی‌ها را به کاربرانی که درخواست مشابه داده بودند، بدهد.
این حمله می‌تواند برای تغییر مسیر کاربران از یک وب سایت به سایت دیگری از انتخاب مهاجم استفاده شود. برای مثال، یک مهاجم ورودی‌های آدرس آی‌پی سامانه نام دامنه را برای یک سایت هدف، روی سرور سامانه نام دامنه داده شده، جعل می‌کند و آن‌ها را با آدرس آی‌پی سروری که تحت کنترل خودشان است، جایگزین می‌کند. مهاجم سپس بر روی سرور تحت کنترلش فایل‌هایی با نام‌هایی همانند فایل‌های روی سرور هدف، ایجاد می‌کند. این فایل‌ها معمولاً شامل محتوای مخرب، مانند کرم‌های کامپیوتری یا ویروس‌ها هستند. کاربری که رایانه اش مورد ارجاع سرور سامانه نام دامنه مسموم قرار گرفته‌است، می‌تواند به پذیرش محتوایی که از یک سرور نامعتبر می‌آید فریفته شده و ندانسته، محتوای مخرب را دانلود کند. این روش همچنین می‌تواند برای حملات فیشینگ مورد استفاده قرار گیرد، جایی که یک نسخه ساختگی از یک وب سایت واقعی برای جمع‌آوری اطلاعات شخصی مانند جزئیات کارت بانکی و اعتباری/بدهی ایجاد شده‌است.

انواع

به دنبال انواع مختلف، ممکن است سرور ns.target.example آلوده شده و به سرور مهاجم به آدرس آی پی w.x.y.z منحرف شود.
برای انجام این نوع حملات، مهاجم باید سرور سامانه نام دامنه مورد هدف را مجور به ارسال درخواست به یکی از دامنه‌هایی که توسط مهاجم کنترل مشود بکند.

تغییر مسیر هدف سامانه نام دامنه

اولین نوع آلوده سازی حافظه کش سامانه نام دامنه با تغییر مسیر دادن نام سرور دامنه مهاجم به نام سرور دامنه هدف بوده و پس از آن نسبت دادن نام سرور با آدرس آی پی ای که که توسط مهاجم انتخاب مشیود.
درخواست سرور سامانه نام دامنه: رکوردهای آدرس برای subdomain.attacker.example چیست؟
 subdomain.attacker.example. IN A
پاسخ مهاجم:
 :Answer
 (no response)
 :Authority section
 .attacker.example. 3600 IN NS ns.target.example
 :Additional section
 ns.target.example. IN A w.x.y.z
یک سرور آسیب‌پذیر، آدرس آی‌پی اضافی را برای ns.target.example، کش خواهد کرد، که به مهاجم اجازه می‌دهد پرس و جوها به تمام دامنهٔ target.example را برطرف کند.

تغییر مسیر رکورد سرور نام به دامنه هدف دیگر

نوع دوم از آلودگی کش DNS، شامل تغییر مسیر سرور نام دامنهٔ دیگر است که با درخوست اصلی به یک آدرس آی‌پی که توسط مهاجم مشخص شده‌است، نامربوط است.
درخواست سرور DNS: رکوردهای آدرس برای subdomain.attacker.example چیست؟
 subdomain.attacker.example. IN A
پاسخ مهاجم:
 :Answer
 (no response)
 :Authority section
 .target.example. 3600 IN NS ns.attacker.example
 :Additional section
 ns.attacker.example. IN A w.x.y.z
یک سرور آسیب‌پذیر ممکن است که اطلاعات نامربوط برای کل نام‌های سرور target.example را در کش خود ذخیره کند که به مهاجم اجازه می‌دهد که تمامی کوئری‌های مربوط به دامنه target.example را ببیند.

پیشگیری و مقابله با آن

بسیاری از حملات آلوده سازی کش در سامانه نام دامنه را می‌توان با کم‌تر اعتماد کردن به اطلاعاتی که برای آن‌ها توسط دیگر سرورهای سامانه نام دامنه ارسال می‌شود یا نادیده گرفتن هرگونه اطلاعاتی که به کوئری‌ها مربوط نیستند، جلوگیری کرد.
به عنوان مثال، نسخه‌های BIND 9.5.0-P1 و بالاتر، این بررسی‌ها را انجام می‌دهند. رندوم سازی منبع پورت برای درخواست‌های سامانه نام دامنه، ترکیب شده با رمزنگاری امن با اعداد تصادفی، و برای جفت منبع پورت و رمزنگاری ۱۶ بیت یی، می‌توان حجم زیادی از احتمالات حمله به سامانه نام دامنه را کاهش داد.
با این حال، هنگامی که مسیریاب‌ها، فایروال‌ها، پروکسی‌ها و سایر دستگاه‌های geteway، کار ترجمه آدرس شبکه (NAT) را انجام می‌دهند، یا به‌طور خاص، ترجمه آدرس پورت (PAT). به منظور ردیابی حالت ارتباط، پورت‌های مبدأ را دوباره بازنویسی می‌کنند. به هنگام تغییر پورت‌های مبدأ، دستگاه‌های PAT، ممکن است پورت‌های مبدأ که توسط سرور نام به صورت تصادفی پیاده‌سازی شده‌اند را پاک کرده وجایگزین آن‌ها می‌کند. 
DNS امن (DNSSEC) از امضای الکترونیکی رمزنگاری شده توسط یک گواهی کلید عمومی معتبر برای مشخص کردن اصالت داده‌ها، استفاده می‌کند. DNSSEC می‌تواند با حملات مسموم‌کننده مقابله کند، اما از سال ۲۰۰۸ تا الآن به‌طور گسترده توسعه نیافته‌است. در سال ۲۰۱۰، DNSSEC در سرورهای‌های ریشهٔ منطقهٔ اینترنت پیاده‌سازی شد.
این نوع حملات می‌توانند در لایه حمل و نقل یا لایه کاربردی، هنگامی که ارتباط برقرار شد، با اعتبارسنجی نقطه به نقطه، کاهش یابند.
یک مثال معمول از این نوع، استفاده از امنیت لایه حمل و نقل و امضای دیجیتال است. برای مثال، با استفاده از HTTPS (نسخه امن HTTP)، کاربران می‌توانند چک کنند که آیا گواهی دیجیتالی سرور معتبر است و متعلق به صاحب مورد انتظار وب سایت است. به‌طور مشابه، پوسته امن برنامه ورود به سیستم از راه دور، گواهینامه‌های دیجیتال را در نقطه‌های پایانی (اگر شناخته شده) قبل از ادامه جلسه، بررسی می‌کند. برای برنامه‌های کاربردی که بارها به صورت خودکار دانلود می‌شوند، برنامه می‌تواند یک کپی از گواهی امضای خود را به صورت محلی جاسازی کند و امضا ذخیره شده در بروزرسانی نرم‌افزار را در برابر گواهی جاسازی شده تأیید کند.