جعل سامانه نام دامنه

جعل سامانه نام دامنه (به انگلیسی:  DNS spoofing) یا آلوده‌کردن کش سامانه نام‌دامنه (به انگلیسی: DNS cache poisoning)، یک حملهٔ هک کامپیوتری است که به موجب آن، داده‌هایی که در کش پایگاه دادهٔ یک کارساز سیستم نام دامنه قرار گرفته‌اند، هنگام مسیریابی مجدد یک درخواست برای یک صفحه وب، منجر به بازگرداندن یک آدرس آی‌پی اشتباه شده و ترافیک را به سمت رایانهٔ دیگری (معمولاً متعلق به مهاجم) منحرف می‌کند.

سیستم نام دامنه

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

آلوده کردن کش سیستم نام دامنه

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

انواع

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

تغییرمسیر کارساز نامِ دامنهٔ هدف

اولین نوع آلوده کردن "DNS"، شامل هدایت کردن کارساز نام دامنهٔ مهاجم به کارساز نام دامنهٔ هدف و سپس نسبت دادن یک آدرس آی‌پی مشخص شده توسط مهاجم به کارساز نام است.
درخواست کارساز "DNS": رکوردهای آدرس برای 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" تغییر دهد.

پیشگیری و کاهش خطرات

می‌توان با استفاده از اعتماد کمتر نسبت به اطلاعاتی که از طریق سایر کارسازهای "DNS" به آن‌ها ارسال می‌شود، و با نادیده گرفتن هر رکورد "DNS" که به عقب برگردانده شده و مستقیماً به پرس و جو مرتبط نیستند، جلوی بسیاری از حملات "cache poisoning" را گرفت.
مسیریاب‌ها، دیوار آتش‌ها، پراکسی‌ها و دیگر وسایل دروازه‌ای (به انگلیسی: Gateway)، که کار برگردان نشانی شبکه ("NAT") انجام می‌دهند، یا به‌طور خاص‌تر، برگرداندن نشانی پورت (PAT) را انجام می‌دهند، به منظور ردیابی حالت ارتباط، پورت‌های مبدأ را دوباره‌نویسی می‌کنند. به هنگام تغییر پورت‌های مبدأ، وسایل "PAT"، معمولاً پورت‌های مبدأ که توسط کارساز نام به صورت تصادفی پیاده‌سازی شده‌اند را پاک کرده وجایگزین می‌کند.
DNS امن (DNSSEC) از امضای الکترونیکی رمزنگاری امضا شده توسط یک گواهی کلید عمومی معتبر برای مشخص کردن اصالت داده‌ها، استفاده می‌کند.DNSSEC می‌تواند با حملات مسموم‌کننده مقابله کند، اما از سال ۲۰۰۸ تا الآن به‌طور گسترده مستقر نشده‌است. در سال 2010، DNSSEC در کارسازهای منطقهٔ ریشهٔ اینترنت پیاده‌سازی شد. اگرچه برخی از کارشناسان امنیتی ادعا می‌کنند با استفاده از DNSSEC به تنهایی، بدون رمزنگاری لایه کاربرد، مهاجم هنوز هم می‌تواند داده جعلی فراهم کند.
این نوع حملات همچنین می‌توانند در لایهٔ کاربرد یا لایهٔ انتقال، هنگامی که ارتباط برقرار شد، با اعتبارسنجی نقطه به نقطه، کاهش یابند. برای مثال با استفاده از HTTPS (نسخهٔ امن "HTTP")، کاربران می‌توانند چک کنند که آیا گواهی دیجیتالی کارساز معتبر است و وب‌گاه متعلق به کسی است که ادعا می‌کند. به‌طور مشابه، پوسته امن (به انگلیسی: Secure Shell) برنامهٔ ورود به سیستم از راه دور.