DNS Spoofing که با عنوان DNS Cache Poisoning نیز شناخته میشود، نوعی حمله سایبری است که در آن مهاجم با دستکاری اطلاعات ذخیرهشده در حافظه کش سرور DNS، کاربران را به سایتهای جعلی هدایت میکند، سایتی که ممکن است از نظر ظاهری کاملاً مشابه نسخه اصلی باشد و کاربر متوجه تفاوت آن نشود. در این سناریو، کاربر قربانی ممکن است بدون آگاهی اطلاعات ورود خود را (مانند نام کاربری و رمز عبور) در این سایت جعلی وارد کند، در حالی که تصور میکند در حال ورود به حساب واقعی خود است. به این ترتیب، مهاجم میتواند این اطلاعات حساس را جمعآوری کرده و از آنها برای دسترسی به حسابها یا دادههای ارزشمند قربانی استفاده کند. علاوه بر سرقت اطلاعات، وبسایت جعلی ممکن است به صورت مخفیانه بدافزار، جاسوسافزار یا ویروسهایی را روی دستگاه کاربر نصب کند. این بدافزارها میتوانند به مهاجم اجازه دهند تا به صورت بلندمدت به سیستم قربانی دسترسی داشته باشد، فعالیتهای او را زیر نظر بگیرد یا دادههای بیشتری سرقت کند.
زمانی که شما یک وبسایت را در مرورگر خود باز میکنید، سیستم برای پیدا کردن آدرس IP آن وبسایت از سرویسی به نام DNS Resolver کمک میگیرد. این سرویس آدرس IP مربوط به نام دامنهای که وارد کردهاید (مثلاً example.com) را پیدا میکند و به مرورگر شما بازمیگرداند. برای افزایش سرعت پاسخدهی در دفعات بعدی و کاهش فشار روی سرورهای DNS، این اطلاعات برای مدت مشخصی در حافظه موقت (یا همان DNS Cache) ذخیره میشوند. مدت زمان ذخیرهسازی هر پاسخ، بر اساس عددی به نام TTL (Time to Live) تعیین میشود. TTL مشخص میکند که اطلاعات تا چه زمانی معتبر هستند و بعد از آن باید دوباره از منبع اصلی بازیابی شوند. به این ترتیب، تا زمانی که TTL تمام نشده است، اگر دوباره همان وبسایت را باز کنید، سیستم شما مستقیماً از کش استفاده میکند و دیگر نیازی به پرسوجو از سرورهای مختلف DNS نخواهد بود. این کار باعث افزایش سرعت، کاهش مصرف پهنای باند و بهبود عملکرد شبکه میشود.
پاسخ DNS Uncached:
پاسخ DNS Cached:
مهاجمان میتوانند با جعل DNS nameservers و ارسال درخواست به DNS resolver و سپس جعل پاسخ زمانی که DNS resolver از یکnameserver پرسوجو میکند، اقدام به آلوده کردن DNS cache کنند. این امکان به دلیل استفاده DNS از پروتکل UDP به جای TCP و عدم وجود تایید برای صحت اطلاعاتDNS فراهم میشود.
فرآیند DNS Cache Poisoning:
Poisoned DNS Cache:
در ارتباطات DNS به جای استفاده از پروتکل TCP که پیش از برقراری ارتباط نیازمند انجام فرآیند handshake بین دو طرف ارتباط است، از پروتکل UDP استفاده میشود. برخلاف TCP، در UDP هیچ تضمینی وجود ندارد که ارتباط برقرار شده باشد یا گیرنده برای دریافت داده آماده باشد. همین ویژگی باعث میشود UDP نسبت به جعل آسیبپذیر باشد؛ زیرا مهاجم میتواند تنها با دستکاری اطلاعات هدر، پیامی را از طریقUDP ارسال کرده و آن را بهعنوان پاسخ جعلی از یک سرور معتبر جا بزند. اگر یک DNS resolver پاسخ جعلی را دریافت کند، آن را بدون هیچگونه تایید و بررسی ذخیره میکند زیرا هیچ راهی برای بررسی صحت اطلاعات و تایید اینکه آیا این اطلاعات از یک منبع معتبر آمده است، وجود ندارد. با وجود آسیبپذیریهای قابل توجه در فرآیند DNS cache، اجرای حملات DNS poisoning کار سادهای نیست و دلیل اصلی آن، این است که DNS resolver درخواست را به authoritative nameserver ارسال میکند، بنابراین مهاجم تنها یک بازه زمانی بسیار کوتاه(در حد چند میلیثانیه) فرصت دارد تا پاسخ جعلی خود را قبل از رسیدن پاسخ واقعی ازauthoritative nameserver به مقصد برساند.
حمله DNS Spoofing یا DNS Poisoning میتواند پیامدهای گسترده و مخربی برای کاربران و سازمانها به همراه داشته باشد. در ادامه، مهمترین تهدیدهای ناشی از این نوع حمله بررسی میشود:
یکی از رایجترین پیامدهای DNS Poisoning، هدایت کاربران به وبسایتهای فیشینگ است. این وبسایتها معمولاً ظاهری مشابه نسخههای اصلی دارند و هدف آنها فریب کاربر و دریافت اطلاعات حساس است. مهاجم پس از بهدست آوردن این دادهها میتواند از آنها برای نفوذ به حسابهای کاربر استفاده کند یا آنها را به سایر مجرمان سایبری بفروشد.
در این نوع حمله، کاربر به وبسایتی مخرب هدایت میشود که بدون اطلاع او، بدافزاری را روی سیستمش نصب میکند. این فرآیند ممکن است از طریق Drive-by Download (دانلود ناخواسته و خودکار بدافزار هنگام باز کردن صفحه) یا کلیک روی لینکهای آلوده انجام شود. بدافزارهایی مانند تروجانها یا باتنتها میتوانند کنترل سیستم را در اختیار مهاجم قرار دهند و زمینهساز حملات پیچیدهتر شوند.
یکی از پیامدهای حملات DNS Spoofing، مسدود شدن روند بهروزرسانی نرمافزارهای امنیتی است. در این نوع حمله، مهاجم با جعل آدرس وبسایت رسمی شرکتهای ارائهدهنده خدمات امنیتی یا آنتیویروس، تلاش میکند مسیر ارتباطی میان سیستم کاربر و سرور واقعی بهروزرسانی را منحرف کند. زمانی که سیستم کاربر برای دریافت جدیدترین بستههای امنیتی تلاش میکند به سرور اصلی شرکت امنیتی متصل شود، بهجای آن، به یک سرور جعلی هدایت میشود که ممکن است هیچ پاسخی ندهد یا اطلاعات نادرست ارائه کند. در نتیجه، فرآیند بهروزرسانی متوقف شده و سیستم کاربر بدون دریافت پچهای امنیتی باقی میماند. این وضعیت میتواند عواقب جدی به همراه داشته باشد؛ زیرا بهروزرسانیهای امنیتی معمولاً برای رفع آسیبپذیریهای شناساییشده طراحی شدهاند. اگر این آسیبپذیریها بدون اصلاح باقی بمانند، زمینه برای نفوذ و حملات بعدی به سیستم فراهم میشود.
DNS Poisoning همچنین میتواند بهعنوان ابزاری برای اعمال دستکاری اطلاعات مورد استفاده قرار گیرد. برای مثال، در برخی کشورها مانند چین، دولت با تغییر و دستکاری DNS، دسترسی به بسیاری از وبسایتها را مسدود کرده و تنها اجازه مشاهدهی سایتهایی را میدهد که از نظر آنها مجاز هستند. این روش یکی از متداولترین شیوههای اعمال کنترل بر اینترنت در سطح ملی محسوب میشود.
در مجموع، حمله DNS Poisoning نه تنها حریم خصوصی و امنیت کاربران را به خطر میاندازد، بلکه میتواند ابزار قدرتمندی برای انتشار بدافزار، جاسوسی سایبری و محدودسازی دسترسی به اطلاعات باشد.
در ادامه، یک سناریو از حملهیDNS Cache Poisoning را بررسی میکنیم. در این حمله، مهاجمی با آدرس IP به ظاهر ۱۹۲٫۱۶۸٫۳٫۳۰۰، ارتباط میان یک کاربر با آدرس IP برابر با ۱۹۲٫۱۶۸٫۱٫۱۰۰ و یک سرور واقعی متعلق به سایت www.estores.com با IP برابر با ۱۹۲٫۱۶۸٫۲٫۲۰۰ را قطع و دستکاری میکند.
مراحل اجرای حمله:
echo 1 > /proc/sys/net/ipv4/ip_forward
باعث میشود تمام بستههای IP که میان کاربر و سرور رد و بدل میشوند، از طریق سیستم مهاجم عبور کنند.
یکی از نمونههای بارز حملات DNS Spoofing در دنیای واقعی، در سال ۲۰۱۸ رخ داد. در این حمله، یک هکر با دستکاری یک ارائهدهنده خدمات اینترنتی (ISP)، ترافیک مربوط به سرویس DNS Amazon Route 53 را تغییر مسیر داد و کاربران وبسایت ارز دیجیتال MyEtherWallet را مورد هدف قرار داد. در این حمله، هنگامی که کاربران تلاش میکردند به سایت مذکور دسترسی پیدا کنند، به طور خودکار به یک سایت فیشینگ تقلبی هدایت میشدند که بر روی سرور جعلی میزبانی میشد. در صورتی که کاربران اطلاعات ورود خود را وارد میکردند، هکر قادر بود به حسابهای آنها دسترسی پیدا کرده و مبلغی بالغ بر ۱۵۰,۰۰۰ دلار ارز دیجیتال را سرقت کند. این حمله به مدت دو ساعت ادامه داشت تا اینکه شناسایی و متوقف شد.
راهکارهایی برای مالکان وبسایتها و ارائهدهندگان خدمات DNS:
مالکان وبسایتها و شرکتهای ارائهدهنده سرویس DNS نقش مهمی در جلوگیری از حملات DNS ایفا میکنند. با بهکارگیری اقدامات امنیتی مناسب میتوان از هدایت کاربران به وبسایتهای جعلی جلوگیری کرد:
توصیههای امنیتی برای کاربران:
کاربران نیز هدف اصلی حملات DNS هستند. با رعایت نکات زیر میتوان تا حد زیادی از خطر این نوع حملات در امان ماند: