الخميس، 18 يوليو 2013

الحلقة776: ماهو DNS cache snooping وما هو دوره

يعتبر DNS هو ذلك النظام الذي يسهل علينا تذكر عناوين الايبي ، مدام ان المنظومة المعلوماتية لاتقبل سوى الارقام  فإن نظام الــ DNS يعمل على تحويل اسماء النطاقات التي نكتبها إلى عناوين آيبي  فمثلا لو كتبت موقع www.Th3professional.com في المتصفح ، فإن هذا الاخير سيعمل على تحويل إسم النطاق إلى عنوان آيبي  108.162.198.187 ، هكذا فإن نظام DNS يعمل على البحث عن كل إسم نطاق والايبي المرافق له ، وذلك من خلال الإجابة على الطلبات بطريقتين Recursive و  non -Recursive .

عند تفعيل Recursive في سرفر DNS فإن هذا الاخير في حالة إذا لم يجد إجابة على طلبك  فإنه سيبحث عن الإجابة في سرفرات DNS  اخرى مرتبط بها ، بطريقة اخرى مثلا لو كتبت إسم نطاق www.Th3professional.com فإن سرفر DNS في حالة إذا لم يتوفر على آيبي السرفر المقابل لهذا النطاق في  cache  سيتحول سرفر الــ DNS بدوره إلى عميل  ويبحث لك عن ايبي الموقع في سرفرات DNS مرتبط بها  . 


اما في حالة تفعيل NON -Recursive فإن السرفر لن يعمل على البحث عن عنوان الايبي الخاص بالنطاق المرافق للدومين الذي كتبته في سرفرات DNS وسيتكفي في حالة لم يجد الإجابة في الـ cache  فإن السرفر بإرسال  رابط إحالة فقط. 

DNS cache snooping ماهو ؟ وما هو دوره ؟

طبعا بعدما فهمنا اليات عمل DNS الان السؤال الذي قد تطرحه على نفسك ماهو DNS cache snooping ؟  وهو موضوع هذا الدرس . طبعا كما اشرت في مقدمة هذا الموضوع فإن الــ DNS  يبحث عن ايبي الموقع في ذاكرته الخاصة والتي تدعى DNS cache  ، والــ cache يمكنك ان تتخيلها كجدول يحتوي على العديد من المواقع وكل موقع يقابله عنوان آيبي الخاص به ففي حالة عدم تواجد الموقع في الــ cache فإن سرفرDNS يبحث عن الإجابة في سرفرات اخرى ، بعد ان يجد الإجابة يقوم بتدوينها في سجلاته الخاصة ، لهذا قد يعمل بعض الهاكرز وهو الامر الخطير في الموضوع بإدخال بيانات خاطئة إلى هذه الذاكرة او مايسمى بتسميم الكاش DNS cache poisoning  بالتالي فإنه من الضروري على المهاجم  قبل تطبيق بعض الهجمات معرفة ما إذا كان سرفر DNS  يحتوي في ذاكرة تخزينه المؤقتة على الموقع الهدف ، ففي حالة عدم تواجد الموقع فإن الهاجم سيسرل طلب خبيث لسرفر الــ DNS  يجعل هذا الاخير يسجل بيانات خاطئة عن الموقع في ذاكرته اي ان المهاجم سيتلاعب بالآيبي المقابل لإسم النطاق فمثلا لو كان موقع المحترف  www.th3professional.com يقابله عنوان الايبي 108.162.198.187  ونفترض ان  الموقع غير متواجد في سرفر 8.8.8.8 الخاص بجوجل  (google DNS ) ، فإن المهاجم قد يرسل طلب خبيث يتضمن ان موقع www.Th3professional.com عنوان الايبي الخاص به هو 95.12.34.65  الاخير الذي قد يكون عنوان سرفر المهاجم الذي يتوفر على صفحة إختراق ، الامر الذي سيجعل DNS جوجل يسجل   في سجلات  ذاكرة التخزين المؤقت معلومات خاطئة   وفي هذه الحالة اي شخص كتب موقع www.th3professional.com في متصفحه سيضهر  له رسالة ان الموقع مخترق .

كيفية عمل  DNS cache snooping 
لكي نستطيع معرفة ما إذا كان موقع يتواجد على ذاكرة التخزين المؤقت لسرفر DNS فيمكننا تطبيق الامر الاتي من خلال موجه الاوامر الدوس :
nslookup -norecursive -type=A www.elmohtaref.com
Server:  8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
*** Can't find www.elmohtaref.com: No answer

لاحظ معي ان عند كتابة الامر norecursive فإننا اخبرنا سرفر جوجل 8.8.8.8 اننا نود معرفة ما إذا كان موقع www.elmohtaref.com  يتواجد على ذاكرة التخزين المؤقت للسرفر وكما تلاحظ ان الإجابة كانت ان الموقع غير متواجد  في مقابل إذا ارسلنا الطب بإستعمال  recursive فإننا سنجبر السرفر على البحث عن عنوان الايبي للموقع في سرفرات اخرى كما ستلاحظ معي من خلال المثال الاتي :
# nslookup -recursive -type=A www.elmohtaref.com
Server:  8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.elmohtaref.com
Address: 50.11.27.10

طبعا الخطوة بسيطا كما تضهر للوهلة الاولى ، لكن ماذا إذا كان سرفر DNS غير مفعل لـ NON-recursive فكيف لنا معرفة إن كان الموقع متواجد في ذاكرة التخزين المؤقت لسرفر الــ DNS ؟ سؤال وجيه والإجابة هي متعددة ولكن ساقتصر في هذا الدرس على شرح طريقة واحدة وهي عن طريق حساب مدة إجابة السرفر ، وذلك عن طريق الفرضية الاتية :
إذا كان الموقع متواجد في ذاكرة التخزين المؤقت سرفر الــ DNS  فإن مدة الإجابة ستكون اقل من مدة الإجابة في حالة إذا لم يكن ذلك لان السرفر سيبحث عن الإجابة في سرفرات اخرى و من الطبيعي ان يأخد وقت اطول ... لهذا سنستعين باداة dig والتي ستساعدنا في حساب وقت إجابة السرفر من خلال الامر الاتي :

; <<>> DiG 9.3.2 <<>> @8.8.8.8 www.google.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1094
;; flags: qr rd ra; QUERY: 1, ANSWER: 16, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.google.com. IN A

;; ANSWER SECTION:
www.google.com. 235 IN A 81.192.190.208
www.google.com. 235 IN A 81.192.190.216
www.google.com. 235 IN A 81.192.190.229
www.google.com. 235 IN A 81.192.190.234
www.google.com. 235 IN A 81.192.190.223
www.google.com. 235 IN A 81.192.190.219
www.google.com. 235 IN A 81.192.190.249
www.google.com. 235 IN A 81.192.190.241
www.google.com. 235 IN A 81.192.190.218
www.google.com. 235 IN A 81.192.190.230
www.google.com. 235 IN A 81.192.190.240
www.google.com. 235 IN A 81.192.190.238
www.google.com. 235 IN A 81.192.190.227
www.google.com. 235 IN A 81.192.190.245
www.google.com. 235 IN A 81.192.190.251
www.google.com. 235 IN A 81.192.190.212

;; Query time: 35 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jul 18 15:42:15 2013
;; MSG SIZE  rcvd: 288

لاحظ معي اننا تعمدنا البحث على وقت الإجابة لـموقع جوجل  www.google.com لاننا نعلم ان جوجل حتما متواجد في ذاكرة التخزين المؤقت لـ جوجل وعليه كما تلاحظ فإن الوقت المستغرق هو 35 msec  في مقابل إذا قمنا بحساب مدة سرعة إستجابة موقع www.elmohtaref.com فإننا سنلاحظ ان الموقع يأخد وقت اطول قريب من الضعف وهذا دليل على ان الموقع غير متواجد في ذاكرة التخزين المؤقت لسرفر 8.8.8.8 (google dns)


; <<>> DiG 9.3.2 <<>> @8.8.8.8 www.elmohtaref.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 460
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.elmohtaref.com. IN A

;; ANSWER SECTION:
www.elmohtaref.com. 3127 IN CNAME elmohtaref.com.
elmohtaref.com. 127 IN A 50.63.202.16

;; Query time: 104 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jul 18 15:51:28 2013
;; MSG SIZE  rcvd: 66

يمكنك التقرب اكثر من موضوع اليوم من خلال هذا الشرح المصور 

ليست هناك تعليقات:

إرسال تعليق