6 نکته مهم درباره DNS
اگر علاقه به بازیهای کامپیتری دارید یا میخواهید به یک سایت خاص و تحریمشده از طرف شرکتهای خارجی مانند گوگل ادز یا بازیهای آنلاینی که ایران را تحریم کردهاند دسترسی پیدا کنید، یکی از بهترین راهها تغییر DNS خواهد بود. قطعا بارها و بارها زمان باز کردن یک سایت در مرورگر خود، با مشکل مواجه شدهاید و یا سایت با نمایش خطاهایی مانند خطای ۴۰۳ (403 Error) اجازهی دسترسی به شما نمیدهد. این مشکل، یا به دلیل فیلترشدن این سایت از سوی سرویس ارائهدهندهی کشورتان رخ میدهد یا سایت مورد نظر، IP منطقهی مکانی شما را تحریم کرده است.
در این وضعیت، برای دسترسی به سایت یا سرور مورد نظر، استفاده از ابزارهای تغییر IP مانند VPN، یکی از سادهترین راهحلها به نظر خواهد رسید، اما ازآنجا که ترافیک اینترنت شما از یک واسطهی ناشناس رد میشود، حریم خصوصی و امنیتتان در این روش به خطر خواهد افتاد. ابزار DNS در این حالت، بهترین و امنترین جایگزین برای دسترسی به سرورها و سایتهایی است که بنا به دلایل متفاوت، اجازهی دسترسی IP شما را به صفحهی مورد نظر نمیدهند.
اگر گیمر باشید یا توسعهدهندهی سیستمعامل و نرمافزارهای مختلف، احتمالاً با کلمه DNS آشنایی کامل دارید و بهصورت کلی، میدانید که این ابزار چه کارایی دارد. با این وجود، بد نیست که به شکل عمیقتری با سازوکار DNS آشنایی پیدا نمایید.
DNS چیست؟
DNS مخفف Domain Name System و بهمعنای «سیستم نام دامنه» است. تمامی کامپیوترهای موجود در اینترنت، از تلفن هوشمند یا لپتاپ گرفته تا سرورهای وبسایتها، با استفاده از اعداد یکدیگر را شناسایی و ارتباط برقرار مینمایند. این اعداد همان IP نام دارند. هنگامیکه میخواهید وارد وبسایتی شوید و با سرور آن ارتباط برقرار نمایید، نیازی نیست آدرس IP آن را وارد کنید؛ بلکه تنها کافی است نام دامنه وبسایت را درج و عملیات تبدیل نام دامنه به IP را به دی ان اس بسپارید. در این فرآیند نام دامنه قابلفهم برای انسان، به IP قابل درک برای ماشین تبدیل خواهد شد.
شش مورد مهم درباره DNS که باید بدانید.
1) DNS چگونه کار میکند:
کارکرد دیاناسها بر اساس نوع آنها با یکدیگر متفاوت است، زیرا از هر کدام در شرایطی متفاوت استفاده میشود. در ادامه توضیح خواهیم داد، که هر دی ان اس چگونه کار میکند.
. DNS Recursor
این سرور به عنوان کتابدار یک کتاب خانه بزرگ در نظر گرفته میشود، که وظیفه پیدا کردن کتابهای خاص را به عهده دارد. این دی ان اس به صورت سروری طراحی شده و وظیفه آن پرس و جو از سیستم کاربر از طریق برنامههایی مثل مرورگرهای وب و همچنین این سرور مسئول ایجاد درخواستهای اضافه جهت پاسخ به کوئری کاربر است.
. Root Name Servers
سرور Root در جایگاه اولین قدم در ترجمه اسم میزبان به آدرس IP است. این مورد به مانند فهرستی داخل یک کتابخانه بزرگ است که کتابهای چند قفسه را شامل میشود. به طور معمول سرور Root به عنوان یک مرجع جهت آدرسهای خاص و متعدد عمل مینماید.
. Authoritative Nameserver
سرور نام معتبر، سروری است که بهصورت رسمی و معتبر اطلاعات دامنه را نگهداری و ارائه میدهد. این سرور شامل رکوردهای DNS یک دامنه خاص است و میتواند پاسخهای قطعی برای کوئریهای مربوط به آن دامنه ارائه دهد. انواع سرور نام معتبر به شرح زیر است:
.. Primary (Master) Nameserver
این سرور حاوی نسخه اصلی و اصلیترین اطلاعات (Zone File) مربوط به یک دامنه است.
هرگونه تغییر در رکوردهای دی ان اس ابتدا روی این سرور اعمال میشود.
.. Secondary (Slave) Nameserver
این سرور یک کپی از دادههای سرور اولیه را نگهداری میکند.
اطلاعات خود را از Primary Nameserver دریافت و بهروزرسانی میکند.
وظیفه آن، افزایش دسترسپذیری و بهبود تحملپذیری خطا است.
.. تفاوت Authoritative Nameserver با Recursive Resolver
Recursive Resolver (مانند DNS سرورهای ISPها) درخواستهای کاربران را دریافت و پاسخ مناسب را از دیگر سرورها دریافت میکند.
Authoritative Nameserver به درخواستهایی که مستقیماً به دامنه تحت مدیریت خود مربوط هستند، پاسخ میدهد.
.. نحوه عملکرد Authoritative Nameserver
- کاربر در مرورگر خود آدرسی مثل example.com را وارد میکند.
- درخواست به Recursive DNS Resolver ارسال میشود.
- اگر رکورد در کش موجود نباشد، Resolver به Root Nameserver مراجعه میکند.
- Root Server آدرس TLD Nameserver (مثل .com) را برمیگرداند.
- TLD Nameserver آدرس Authoritative Nameserver دامنه example.com را ارائه میدهد.
- Authoritative Nameserver اطلاعات نهایی (مثلاً IP Address) را به Resolver بازمیگرداند.
- کاربر به آدرس IP صحیح هدایت میشود.
.. نمونههایی از Authoritative Nameserver
ns1.example.com
ns2.example.com
سرورهای Cloudflare, Google Cloud DNS, AWS Route 53 که بهعنوان در ان اسهای معتبر استفاده میشوند.
2)DNS Cache
در هر سیستم یک حافظهی Cache مخصوص به دی ان اس موجود است. برای مثال فرض کنید یک بار آدرس google.com را در مرورگر وارد کردهاید ، در صورتی که این آدرس در سیستم موجود نباشد به سراغ DNS Server رفته و از آن جهت بررسی کمک گرفته میشود. سپس این آدرس در حافظهی DNS Cache ذخیره خواهد شد. حال اگر مجددا این آدرس را در همان سیستم جست و جو کنیم دیگر از DNS Server برای یافتن آن کمکی گرفته نخواهد شد و آدرس وب سایت از درون DNS Cache استخراج میگردد.
3) TTL در DNS
TTL مخفف عبارت Time To Live است که به صورت زمان زندگی در فارسی ترجمه میشود. این زمان زندگی به بستهها نسبت داده شده است. حال در ادامه مبحث ( TTL در DNS و شبکه به چه معناست) ابتدا به تعریف TTL در شبکه و پس از آن به تعریف TTL در دی ان اس خواهیم پرداخت.
منظور از TTL در شبکه
TTL در شبکه به زمان زندگی یک بسته در هنگام انتقال بین دو یا چند سیستم معنی شده است.
یک Node در شبکه در زمان ارسال یک پکت ، زمان زندگی ( TTL ) برای آن پکت در نظر گرفته و بعد از به پایان رسیدن آن زمان بسته به طور کل از بین خواهد رفت.
مثلا شما برای دیدن TTL یک بسته، میتوانید از دستور Ping استفاده نمایید و متوجه مقدار TTL بسته ICMP خود گردید.
4) انواع حملات DNS
۱– حملات DoS و DDoS
این حملات با هدف غرق کردن سرورهای DNS در حجم عظیمی از درخواستها انجام میشود. یک فروشگاه بسیار شلوغ را فرصض نمایید که مشتریان زیادی به طور همزمان به آن هجوم میآورند و باعث ایجاد اختلال در خدماترسانی میشوند. در حملات DNS نیز، مهاجمان و هکرها با ارسال تعداد بسیار زیادی درخواست به سرور DNS، آن را اشباع کرده و باعث میشوند که سرور نتواند به درخواستهای قانونی کاربران پاسخگو باشد.
انواع مختلفی از حملات DoS وDDoS وجود دارد که هر کدام از هکرها متدهای خاصی برای ایجاد اختلال دارند، برای مثال، در حمله تقویتکننده، مهاجم از دستگاههای آلوده برای ارسال درخواستهای بسیار بزرگ به سرور DNS استفاده مینماید. این درخواستها باعث میشوند که سرور DNS پاسخهای بسیار بزرگتری را ارسال نماید و در نهایت از کار بیافتد.
۲– مسمومیت حافظه پنهان DNS
حافظه پنهان دی ان اس مانند یک دفترچه تلفن کوچک عمل مینماید، که در آن آدرسهای IP وبسایتها ذخیره میشود. در حمله مسمومیت حافظه پنهان، مهاجمان اطلاعات نادرستی را در این دفترچه تلفن وارد مینمایند. به این ترتیب، وقتی شما آدرس یک وبسایت را در مرورگر خود وارد میکنید، به جای اینکه به وبسایت اصلی متصل شوید، به یک وبسایت جعلی منتقل میشوید.
مثلا پیش آمده است که مهاجمی اطلاعات نادرستی را در مورد آدرس IP بانک شما در حافظه پنهان دی ان اس وارد کند. به این ترتیب، وقتی شما سعی مینمایید به سایت بانک خود متصل شوید، به یک سایت جعلی منتقل خواهید شد که از نظر ظاهری بسیار شبیه به سایت اصلی بانک طراحی شده است.
۳– سرقت دامنه
در این نوع حمله، مهاجمان کنترل یک دامنه را به دست میآورند. آنها ممکن است این کار را با هک کردن حساب ثبتکننده دامنه، یا با سوء استفاده از آسیبپذیریهای موجود در سیستمهای ثبتکننده دامنه، انجام دهند. پس از تصاحب دامنه، مهاجمان میتوانند محتوای وبسایت را تغییر یا حتی از آن برای اهداف مخرب دیگری استفاده نمایند.
مثلا، مهاجمی ممکن است دامنه یک شرکت معروف را تصاحب و سپس محتوای وبسایت را به یک سایت فیشینگ تغییر دهد. به این ترتیب، کاربران گول خورده و اطلاعات شخصی و بانکی خود را در اختیار مهاجم قرار خواهند داد.
۴– تونلزنی DNS
تونلزنی DNS روشی است که در آن هکرها از پروتکل دی ان اس برای انتقال دادههای مخفی استفاده مینمایند. این دادهها ممکن است شامل اطلاعات بسیار مهم و حساس مانند رمزهای عبور، شماره کارتهای اعتباری و یا حتی کدهای مخرب باشد. از آنجا که پروتکل DNS معمولا مورد بررسی دقیق قرار نخواهد گرفت، مهاجمان میتوانند دادههای مخفی خود را به راحتی از شبکه خارج نمایند.
۵– جعل DNS
در حمله جعل کردن DNS، مهاجمان با ارسال پاسخهای جعلی به درخواستهایDNS، کاربران را به سمت وبسایتهای مخرب جهت دریافت اطلاعات هدایت میکنند. برای مثال، مهاجمی ممکن است پاسخ جعلی به درخواست DNS برای وبسایت یک بانک ارسال و کاربر را به یک وبسایت جعلی جهت دریافت اطلاعات بانکی هدایت نماید.
۶– حملات ساب دامین (Subdomain)
در این نوع حمله، مهاجمان با ایجاد تعداد بسیار زیادی زیر دامنه برای یک دامنه خاص مشخص، منابع سرور نام اصلی را تخلیه مینمایند. این موضوع باعث میشود که سرور توانایی پاسخ داد به درخواستهای قانونی کاربران از دست بدهد و در نتیجه وبسایت از دسترس خارج شود.
5) چرا DNS به لایههای امنیتی بیشتری نیاز دارد؟
DNS همانند دفترچه تلفن اینترنت است. دی ان اس سرورها، نامهای دامنه قابلخواندن توسط انسان را به آدرسهای IP قابلدرک توسط ماشین ترجمه مینماید. به صورت کلی میتوان گفت، پرسشها و پاسخهای DNS بهصورت متن ساده از طریق UDP ارسال میشوند، به این معنی که میتوانند توسط شبکهها،ISP ها یا هر سرویسی که قادر به نظارت بر انتقال است، خوانده شوند. حتی اگر وب سایتی از HTTPS استفاده کند، پرس و جوی DNS موردنیاز برای پیمایش به آن وبسایت در معرض دید قرار میگیرد.
این نبود حریم خصوصی، تأثیر زیادی بر امنیت و در برخی موارد حقوق بشر دارد. به صورت کلی اگر کوئریهای DNS خصوصی نباشند، فیلتر اینترنت برای دولتها و ایجاد مزاحمت توسط مهاجمان برای کاربران آسانتر خواهد شد.
یک درخواست DNS معمولی و رمزگذاری نشده را مانند یک کارتپستال در فرض نمایید، که از طریق پست ارسال میشود. هرکسی که نامه را جابجا خواهد کرد، ممکن است نگاهی اجمالی به متن نوشتهشده در پشت آن بیاندازد. پس عاقلانه نیست که کارتپستالی حاوی اطلاعات حساس یا خصوصی را از طریق پست ارسال نماییم.
DNS OVER TLS و DNS OVER HTTPS دو استاندارد مهم هستند که برای رمزگذاری و ترافیک DNS متن ساده بهمنظور جلوگیری از امکان تفسیر دادهها توسط هکرها، شرکتهای تبلیغاتی،ISP ها و غیره ایجاد شدهاند. در ادامه قیاس، هدف این استانداردها قرار دادن یک پاکت در اطراف همه کارتپستالهایی خواهد بود، که از طریق پست ارسال میشود، بهطوریکه هرکسی میتواند یک کارتپستال بفرستد بدون اینکه نگران باشد کسی آن را مطالعه خواهد کرد.
6)منظور از Anycast DNS چیست و چگونه کار میکند؟
Anycast DNS روشی برای مسیریابی شبکه است که در آن به جای یک سرور DNS واحد، از تعدادی سرور با آدرس IP یکسان استفاده خواهد شد. درخواستهای DNS به نزدیکترین سرور در دسترس ارسال خواهند و این موضوع باعث کاهش زمان پاسخگویی و افزایش کارایی میشود.
مزایای Anycast DNS عبارتند از:
- زمان پاسخگویی را کاهش میدهد: با ارسال درخواستها به نزدیکترین سرور، Anycast DNS میتواند زمان لازم برای دریافت پاسخ را به طرز قابل توجهی کاهش دهد و مانع از اتلاف زمان شود.
- قابل اعتماد بودن: اگر یک سرور Anycast از کار بیفتد، ترافیک به سرور دیگری در شبکه هدایت خواهد شد.
- مقیاس پذیری بیشتر: انی کست DNS با افزودن سرورهای جدید به شبکه، مقیاس پذیرتر است. بدین ترتیب، برای برنامههایی که ترافیک زیادی مصرف مینمایند، مثل وبسایتها و سرویسهای ابری، مناسبتر خواهد بود.
- امنیت: Anycast DNS میتواند به محافظت در برابر حملات DDoS کمک بسزایی نماید. با توزیع ترافیک در بین چندین سرور، انی کست DNS بار حمله را به شدت کاهش خواهد داد.
نتیجهگیری:
DNS یکی از ابزارهای مهم اینترنت است که نام دامنه را به آدرس IP تبدیل میکند. این سیستم برای دور زدن تحریمها و افزایش امنیت و سرعت اینترنت کاربرد دارد. عملکرد DNS شامل بخشهایی مانند DNS Recursor، Root Name Servers و Authoritative Nameserver است. همچنین، حافظه کش DNS باعث افزایش سرعت بارگذاری سایتها میشود. این سیستم در برابر حملاتی مانند DDoS، مسمومیت کش، جعل و سرقت دامنه آسیبپذیر است و نیاز به لایههای امنیتی بیشتری دارد. فناوریهایی مانند over TLS و over HTTPS برای افزایش امنیت پیشنهاد شدهاند. همچنین، Anycast DNS باعث بهبود عملکرد، مقیاسپذیری و امنیت در برابر حملات میشود.