في هذا المقال سنتعرف على DNS – Domain Name System والهجمات الإلكترونية dns spoofing التي تستهدفه و لمحة عن كل هجوم إلكتروني منها وطرق الحماية منها. في البداية لنقم بالتعرف على الـ DNS وطريقة عمله.
إن معرفة عنوان IP لحاسب بعيد ليس بالأمر السهل دائماً وذلك لصعوبة تذكره. فتخيل أنك ستكون بحاجة لحفظ العنوان 72.163.4.161 بدلاً من www.cisco.com عندما تريد تصفح موقع سيسكو.
لكن لحل هذه المشكلة تم إيجاد DNS وهو عبارة عن قاعدة بيانات هرمية ومزوعة وتؤمن الربط بين عناوين IP وأسماء الأجهزة المرتبطة بها.
نظام أسماء النطاقات DNS:
وهو خدمة على الشبكة تقوم بتحويل اسم النطاق إلى العنوان الرقمي (عنوان IP) المقابل له. شبكة الانترنت تعمل باستخدام عناوين IP ومن الصعب على المستخدم تذكر عناوين IP . من هنا أتت ضرورة DNS. يقوم مخدم أو خدمة الـ DNS بتحويل اسم الموقع أو اسم الدومين إلى عنوان IP المقابل له مثل: www.google.com إلى 216.58.205.238.
أي أنه يقوم بترجمة أسماء النطاقات من الكلمات إلى أرقام (عنوان IP). يستخدم هذا النظام لسهولة تذكر وحفظ الأسماء بدلاً من حفظ العناوين الرقمية، بشكل مشابه لدليل أرقام الهاتف.
قبل استخدام DNS كانت هذه العملية تتم من خلال ملف يسمى Host File موجود في نظام التشغيل Windows ضمن المسار التالي:
C:\Windows\System32\drivers\etc\hosts file
ولكن مع زيادة عدد الأجهزة على الشبكة تم تصميم DNS لاستبدال ملفات HOST بقاعدة بيانات موزعة. وتم تحسين الأداء من خلال استخدام بنية هرمية لتعريف عناصر النطاق domain.
تعتمد تقنية التسمية على عملية التجميع الهرمي للأسماء حيث تُعرف النطاقات Domains ضمن عدة مستويات مختلفة في بنية هرمية.
وهذه المستويات هي:
- Root: يمثل أعلى مستوى في البنية الهرمية ويشار إليه بنقطة (.)
- Top Level Domains: يمثل هذا المستوى باختصارات من حرفين أو ثلاثة، تعبر عن نوع الموقع (تجاري com، تعليمي edu و حكومي gov..)
- Second Level Domains: يمكن أن يحتوي هذا المستوى على مستخدمين، وعلى نطاقات أخرى تسمى Sub domains
- Host Names: إشارة إلى اسم الأجهزة الموجودة على الشبكة.
البحث ضمن أسماء النطاق Domains
عادةً ما يكون عنوان سيرفر DNS مُعرف في إعدادات الشبكة على جهاز المستخدم . وبعد أن يقوم المستخدم بطلب اسم معين من مخدم DNS يتم البحث في السيرفر الرئيسي عن النطاق المطلوب.يتم ذلك من خلال سؤال المخدمات الرئيسة العامة Root Server ومن ثم المخدمات المسؤولة عن النطاق العلوي الذي يتبع له النطاق الفرعي. تستمر هذه العملية إلى أن تصل إلى أحد المخدمات المسؤولة عن ذلك النطاق ويرسل إليها الطلب.
يقوم مخدم أسماء النطاقات المسؤول عن النطاق بالبحث في ملف النطاق المتوفر لديه عن المعلومة المطلوبة. ومن ثم يرد على ذلك الاستعلام query بالعنوان الرقمي لذلك النطاق. ويتم إرسال الرد إلى المستخدم بالنتيجة التي حصل عليها. ويتم تخزين النتيجة في السجلات المؤقتة في سيرفر DNS (حتى يستخدم عند طلب نفس الاستعلام من قبل مستخدم آخر خلال مدة معينة).
الهجوم الإلكتروني DNS Poisoning/Spoofing
يحاول المهاجم في هذه الحالة أن يقوم بعملية إعادة توجيه للهدف إلى مخدم server مخادع بدل المخدم الشرعي. وهذا يتم من خلال التلاعب بمدخلات جدول DNS وهذا سيؤدي إلى ترجمة عناوين نطاقات Domains إلى عناوين IP مخادعة.
هكذا عندما يحاول الضحية الوصول لموقع ويب فإن المهاجم يتلاعب بمدخلات جدول DNS لذلك فإن جهاز الضحية سيتم توجيهه إلى رابط مخادع وهو الرابط الخاص بسيرفر المهاجم.
هذا الهجوم يمكن أن يتم من خلال السيناريوهات التالية:
- داخل الشبكة
- عبر الانترنت
- باستخدام سيرفر وكيل Proxy Server
- DNS Cache Poisoning
المهاجم داخل الشبكة:
يحاول المهاجم القيام بهذا الهجوم من خلال انتحال DNS الخاص بالشبكة المحلية بمساعدة تقنيات أخرى مثل ARP poisoning. وللقيام بهذا الهجوم يجب أن يكون المهاجم متصل مع نفس الشبكة وقادر على التقاط حركة البيانات داخل الشبكة. فإذا نجح المهاجم بإلتقاط طلب DNS فيمكنه الرد بإرسال إجابة تحوي على عنوان خبيث قبل أن يقوم سيرفر DNS الفعلي بالرد على هذا الطلب.
قام المهاجم في المثال السابق بانتحال صفة الراوتر من خلال arp spoofing. حالما قام جهاز الهدف بإرسال DNS request إلى الراوتر فإن هذا الطلب سيتم إرساله إلى جهاز المهاجم. سيقوم ذلك الجهاز بالرد من خلال إرسال إجابة مزورة تعمل على توجيه المستخدم الضحية إلى موقع مزور مٌعد من قبل المهاجم.
الهجوم عبر الانترنت:
يُعرف هذا النوع من الهجوم أيضاً باسم Remote DNS Poisoning. من الممكن أن يتم ضد هدف واحد أو عدة أهداف في أي مكان في العالم. وللقيام بهذا النوع من الهجوم فإن المهاجم يعمل على إعداد سيرفر DNS مخادع له عنوان IP ثابت Static IP.
هذا الهجوم يتم بمساعدة برمجيات خبيثة (أحصنة طروادة Trojans) . ومن خلاله يستطيع المهاجم تغيير عنوان سيرفر DNS الأساسي في جهاز الضحية واستبداله بعنوان السيرفر المخادع الخاص بالمهاجم. وعندها سيتم توجيه طلبات الضحية بحسب القيم الخاصة بسيرفر المهاجم.
المثال التالي يظهر قيام المهاجم بهذا الهجوم من خلال إصابة جهاز الضحية ببرمجية خبيثة (حصان طروداة) trojan تعمل على تغيير عنوان سيرفر DNS في جهاز الضحية
الهجوم الإلكتروني من خلال سيرفر وكيل Proxy Server:
يقوم المهاجم بإعداد مخدم وكيل proxy في نظام الهدف ليعمل على إعداده كمخدم DNS مخادع،. ثم يقوم بتغيير إعدادات المخدم الوكيل ضمن نظام الهدف بمساعدة برمجية خبيثة. وليتم بعدها تعيين الـ Proxy على أنه سيرفر DNS الأساسي.
كما يظهر في المثال التالي فإن المهاجم قد قام بإرسال برمجية خبيثة للهدف تعمل على تغيير إعدادات المخدم الوكيل ضمن المتصفح ليتم بعدها توجيه طلبات الضحية إلى مواقع مخادعة.
الهجوم الإلكتروني DNS Cache Poising:
يتم هذا الهجوم من خلال تبديل أو إضافة سجلات DNS مخادعة ضمن الذاكرة المؤقتة DNS cache. إن آلية عمل DNS تعتمد على ذاكرة مؤقتة تقوم بحفظ الطبات التي تم ترجمتها مؤخراً. والمهاجم يقوم بالتلاعب بها لإضافة مدخلات عنوان IP لموقع مزور. وعندما يقوم المستخدم بطلب الموقع المستبدل فسوف يقوم DNS أولاُ بفحص DNS cache وإذا كان العنوان موجود فسيتم إرساله إلى المستخدم وعندها سيتم توجييه إلى العنوان -المزور- الذي حدده المهاجم بدلاً عن العنوان الحقيقي للموقع المطلوب.
الحماية من هجمات DNS spoofing
الإجراءات المضادة التي تساعد على التخفيف أو منع هجمات :DNS Spoofing
- تطبيق DNSSEC – Domain Name System Security Extension
- استخدام SSL – Secure Socket Layer لحماية حركة البيانات
- إيجاد كل الإجابات لطلبات DNS ضمن سيرفر DNS محلي
- منع إرسال طلبات DNS لسيرفرات خارجية
- إعداد الجدار الناري ليقوم بالحد من طلبات اكتشاف سيرفر DNS الخارجية
- تركيب أنظمة كشف الاختراق IDS استخدام static ARP and IP tables
- استخدام أدوات كشف التنصت sniffing detection
- الاعتماد على سيرفرات بروكسي موثوقة
- مراقبة حركة البيانات