مشروع Dshell المستخدم في network forensics

مشروع Dshell هو عباره عن مشروع مختص في تحليل ترايفك الشبكة والمستخدم في network forensics, المشروع من تطوير US Army Research Lab وتمت كتابته بلغة البايثون ويعتمد على بعض المكتبات مثل pypcap , PyCrypto, IPy  وغيرها. المشروع يعمل من خلال مجموعة من الـ decoders التي تم تطويرها من قبل مطوري المشروع , كل decoder يختص بالبحث عن نوع معين من المعلومات واستخراجها. قوة الاداة تكمن في فكرة اضافة الـ decoders وتطويرها كذلك تشغيل اكثر من decoder في نفس الوقت. يمكن استخدام المشروع لاستخراج المعلومات بشكل مباشرة في الشبكة او من ملف pcap. نتائج الاداة يمكن تصديرها الى ملفات xml , html , csv او json.

سوف اعطي لمحه عن بعض  الـ decoders التي يمكن استخدامها

  • country : يستخدم لعرض الاتصالات بحسب الدولة حيث يمكن تحديد المصدر والهدف وسوف يتم عرض الاتصالات الخاصة بالدولتين
  • grep : يستخدم للبحث عن pattern معين في مع بعض الخيارات المفيده اذا تم تطابق النص الملطلوب سوف يعرض السطر بالكامل مع معلومات الاتصال الذي وجده فيه الـ pattern
  • protocol : يستخدم لعرض اي اتصالات تحمل بروتوكول غير معروف, البروتوكولات المعروفة مثل tcp , udp , icmp وغيرها تم تحديدها في ال decoder ولكن اذا كان هناك بروتوكول غير تلك المعتاد عليها سوف يعرضها على الفور
  • bitcoin : يستخدم لمعرفة الاتصالات الخاصة بالـ bitcoin سواء كانت stream mining او bitcoin transactions وغيرها من المعلومات المفيده ليس فقط معلومات الاتصال
  • joomla-cve-2015-8562 : هذا مثال لـ Decoder يبحث في الاتصالات على استغلال لثغرة معروفة , في هذا الـ decoder يتم البحث عن اتصالات لاستغلال ثغرة الـ joomla-cve-2015-8562
  • snort : يستخدم لعرض الاتصالات وتصنيفها على حسب قواعد snort

هناك الكثير من الـ decoders لم اذكرها وانما اردت اعطائكم فكرة عن نوع الـ decoders الموجوده. يمكنك زيارة صفحة الـ github للمشروع من الرابط التالي والتي تحتوي على بعض الامثلة ايضا

https://github.com/USArmyResearchLab/Dshell

لا يوجد اسهل من عملية تنصيب هذا المشروع , بعد عملية التنصيب قم بتشغيل الامر decode -l لعرض كل الـ decoders الموجودة  اذا اردت معلومات اكثر عن decoder معين قم بتنفيذ الامر decode -d decoder_name وسوف يتم عرض المعلومات الكافية مع الخيارات الخاصة بالـ decoder. يمكن الاستفادة من المشروع من خلال برمجه سكربتات خاصة للبحث عن معلومات معينة في بيانات الشبكة.

المطلوب منك : ان تقوم بتنزيل الاداة وتستخدم امر decode -d  مع كل decoder واقرا عنهم كلهم واعرف ماهو الممكن عملة بالاضافة الى بعض الاوامر التي تساعد في تصدير النتائج .

لتجربة المشروع قد تحتاج الى امثلة لملفات pcap للتجربة عليها, يمكنك تنزيل هذه الامثلة من موقع wireshark

https://wiki.wireshark.org/SampleCaptures

استراتيجيات الانتقال الى ipv6

الجيل الحالي والاكثر استخداما من عناوين الايبي هو IPv4 وهو الاكثر استخداما من البروتوكول الجديد IPv6. بشكل سريع سوف اذكر اهم سبب لانشاء الـ IPv6 هو بسبب ان العناوين المقدمه من IPv4 قليله ولن تكفي لكل مستخدمين الانترنت . كذلك الجوانب التطويرية التي حصلت للبروتوكول نفسه يجب اخذها بعين الاعتبار ولكن اكثر ما يتم ذكره كسبب لانشاء البروتوكول الجديد هو عدد العناوين القليله المقدمه من IPv4 وهي بالفعل كانت المشكلة الرئيسية .

عدد العناوين التي سوف يقدمها لنا الـ IPv6 هو

340, 282, 366, 920, 938, 463, 374, 607, 431, 768, 211, 456 عدد كبير جدا

لا انوي الخوض في التفاصيل الخاصة بالبروتوكول وانما الاستراتيجيات التي  سوف تستخدم ليتم الانتقال من الـ IPv4 الى الـ IPv6 . العملية ليست سهلة كما تظن بسبب العدد الكبير والضخم لمستخدمي الانترنت واجهزة الانترنت كذلك التغيرات التقنية التي يجب ان تدعمها الانظمه لتفهم الـ IPv6 لهذا تجد ان الانتقال الكامل كان متوقع منذ سنوات وكل فتره تاتي الاحصائيات بان الانتقال الكامل سوف يكون في عام كذا ويتم تمديد الفتره وهكذا و يعود السبب الى التعقيد في عملية الانتقال .

الانتقال من الـ IPv4 الى IPv6 :

عملية الانتقال سوف تكون بشكل تدريجي سوف يتم الاعتماد على ثلاث استراتيجيات للانتقال

  • Dual Stack
  • Tunneling
  • Header Translation

هذه هي الاستراتيجيات الثلاث التي سوف يتم الاعتماد عليها حتى الانتقال الكامل الى IPv6 وهذا ياخذ وقت ليس بالقليل ابدا .

Dual Stack:

في هذه الخطة سوف يتم  دعم الانظمه بكلا من IPv4 و IPv6 لتتمكن من فهم الpackets التي تاتي من اجهزه بالفعل انتقلت الى IPv6 . بهذه الطريقة سوف نضمن ان الاجهزه التي انتقلت بالفعل تستطيع التخاطب مع الاجهزه التي لم تنتقل والعكس صحيح

Tunneling:

هنا يتم استخدام هذه الاستراتيجية عندما يكون جهاز يريد التخاطب مع جهاز اخر وكلا الجهازين يستخدموا IPv6 ولكن الاجهزة التي في المنتصف (routers ) تتستخدم الـ IPv4 . يجب على الـ packet ان تحتوي على عناوين ipv4 ايضا . في هذه الحالة يتم استخدام مفهوم الـ encapsulation ويتم تغليف الـ IPv6 packet بـ IPv4 packet وكان الحزمه دخلت في نفق حتى وصلت الى الجهاز المقصود والذي يفهم عناوين IPv6 .

Header Translation:

هذه الاستراتيجية الثالثة وهي عندما يكون هناك جهاز يستخدم IPv6 يريد ان يتخاطب مع جهاز اخر يستخدم IPv4 في هذه الحالة يتم استخدام ما يسمى Header Translation وهي عملية تحويل الHeader الخاص بالـ packet الى نفس نوع الـ Header الذي موجود في الجهاز المراد ارسال البيانات اليه .

حتى الان عملية الانتقال لم تتم بالكامل وذلك لأسباب تقنية عديده , الامر ليس محصور فقط بان يتم دعم كل الاجهزه  بـ ipv6 فقط. هناك العديد من المشاكل التي ظهرت اثناء الانتقال منها اسباب امنية تتعلق بان اذا كل جهاز حصل على ايبي بشكل مباشر سوف كون هناك مشاكل امنية بالهجوم على هذه الاجهزه بسبب  ان الـ NAT تقوم بعملية اخفاء ما يوجد خلف الروتر.  كذلك مشكلة اخرى وهي الـ Routing Table الخاص بالروترات سوف يكون كبير جدا بشكل لا يمكن تخيلة بسبب ان كل جهاز له ايبي خاص  حتى جهاز الايباد الذي يلعب فيه ابنك الصغير سوف يكون له ايبي خاصة فيه اذا تم الانتقال والاستفاده بالكامل من الـIPv6 , لذلك الـRouting Table سوف يكون كبير الى حد ان الروترات لا يمكنها تحمله ومعالجته. في الحقيقه هناك العديد من التحديات التي يجب تخطيها والعمل عليها ليتم الانتقال بشكل كامل .

الصور من كتاب : data communication and networking forouzan