تحليلات الشبكات Network Forensics · شبكات الحاسوب Computer Networks

تحليل بيانات الشبكات بأستخدام ال (tcpdump)


المقدمة:

من المعلوم ان شبكات الحاسوب قائمة على اساس تبادل البيانات وان هذه البيانات يتم تناقلها وتبادلها بصيغة رقمية (digital) وهناك الكثير من البرامج المنتشرة الان لتحليل هذه البيانات لمعرفة ما تحتويه من عناوين الاجهزة المرسلة والمستلمة ونوع البروتوكولات المستخدمة في انشاء وارسال واستقبال هذه البيانات والكثير الكثير من المعلومات الاخرى التي تساعد مختصي امن المعلومات والشبكات على تشخيص المشاكل ومعالجتها بشكل مستمر.

وتعتبر مهارة تحليل البيانات (traffic analysis) من اهم مهارات مهندسي الشبكات ومهندسي امن المعلومات والتي تندرج تحت مصطلح اكبر هو التحليل الجنائي لبيانات الشبكات (Network Forensics).

هناك الكثير من برامج مسك وتسجيل وتحليل بيانات الشبكات ويميل اغلب مهندسي الشبكات وامن المعلومات الى استخدام ادوات ذات واجهات رسومية (GUI) في عملهم (مثل ال Wireshark) لسهولة استخدامها ولكن ذلك يعتبر خطأ كبير. لأنه في مجال معتمد بشكل اساسي على فهم حقيقة ما يجري والمباديء الاساسية وراء كل عملية تناقل بيانات مثل مجال تحليل بيانات الشبكات، فأنه من المهم البقاء في ادنى طبقة من التفاصيل القابلة للفهم وطبعاً هذه الطبقة تتمثل في سطر الاوامر (terminal) حيث يمكن رؤية تفاصيل طقم ال (TCP/IP) وبروتوكولاتها بشكل يسمح بتتبع الخطأ ومصادر المشاكل ومعالجتها بشكل اسرع واضمن.

من النصائح الاخرى في هذا المجال انه حين نحاول ايجاد اداة لرؤية بيانات الشبكة فمن الافضل وضع العبء الاكبر على البشر وليس على التطبيقات نفسها لأن التطبيقات كلما كانت اسهل للأستخدام كانت ابطأ في الاستجابة والجميع يعرف ان معركة المخترقين ومختصي امنية الشبكات هي معركة اجزاء من الثانية في الكثير من الاحيان ولذلك ينصح اغلب مختصي امن الشبكات والمعلومات بأستخدام ادوات مثل ال (tcpdump) لمراقبة وتسجيل وتحليل مرور الشبكة بدلاً من البرامج الرسومية مثل ال (Wireshark, Tshark) وغيرها.

السؤال الان كيف نستخدم هذه الاداة المهمة والضرورية في حياة مهندسي الشبكات وامن المعلومات اليومية؟

طبعاً في البداية قد تبدو هذه الاداة صعبة ومعقدة وكثيرة التفاصيل ولكن بمرور الوقت وتكرار استخدامها فأن خياراتها تبدأ بالوضوح اكثر واكثر فتابعوا معنا كيفية استخدامها من البداية:

بيئة العمل:

بداية فأن هذه الاداة تعمل في بيئة اللينكس وبشكل ادق في سيرفرات وحواسيب مدراء الشبكات ومسؤولي امن المعلومات في المؤسسات والشركات والدوائر العامة واما مكافئتها في بيئة الويندوز فهي (windump) والتي تعمل بنفس الخيارات بالضبط مما يعني ان اتقان التعامل مع ال (tcpdump) سيفيد مدراء شبكات الويندوز ايضاً حيث يمكنهم تطبيق نفس الخطوات في برنامج ال (windump) والذي هو برنامج مجاني يمكن تنزيله والتعامل معه بسهولة.

الفرق الوحيد بين ال (tcpdump) وال (windump) هو ان علامات الاقتباس المستخدمة مع ال (tcpdump) مفردة (‘ ‘) في حين مع ال(windump) تكون مزدوجة (“  “).

 الان لنبدأ مع ال (tcpdump):

هذه الاداة تكون منصبة تلقائياً في اغلب توزيعات اللينكس (ويفضل طبعاً استخدام توزيعة كالي لينكس Kali Linux  في حالة مدير امن الشبكة فهذه التوزيعة مخصصة لقضايا الامن اكثر من غيرها وتكون ال (tcpdump) احد ادواتها الاساسية) وفي حالة لم تكن منصبة في احدها فيمكن تنصيبها بطباعة الايعازات التالية في ال (terminal):

sudo apt-get install tcpdump

وكذلك يمكن تحديث البرنامج ان كان منصباً فعلاً من خلال

sudo apt-get upgrade tcpdump

خيارات الاستخدام

والان سنقوم بأدراج جدول يبين اهم ملحقات البرنامج (وهي الخيارات التي تضاف بعد عبارة (tcpdump) في سطر الاوامر (terminal) في اللينكس لتغيير نوعية اخراج الايعاز) ثم نقوم بذكر بعض الامثلة عن هذه الخصائص:

-n لمنع اظهار اسماء الحواسيب وعرض عناوين ال (IP address) دائماً
-X لعرض البيانات بطريقتين بال (ascii code) وبال (hexadecimal).
-S لتغيير طريقة عرض الارقام التسلسلية (sequence numbers) من الطريقة النسبية (relative) الى الطريقة المطلقة (absolute) لأن النسبية تخفي اي شذوذ في هذه الارقام وقد تخفي معلومات مهمة يحتاجها محلل البيانات لأكتشاف ثغرات محتملة.
-s number لعرض العدد المطلوب من البايتات من كل حزمة بيانات (packet) حيث ان العدد التلقائي الذي تقوم ال (tcpdump) بعرضه هو اول 96 بايت من كل (packet) ويفضل اختيار 0 لعرض كل شيء.
-i any للأصغاء الى كل كروت الشبكة (network interfaces) وعرض بياناتها الصادرة والواردة
-i eth0 لعرض بيانات الكرت (eth0) فقط  ويمكن تبديل ال (eth0) بأسم اي كرت اخر في الجهاز
-D لعرض قائمة كل الكروت الموجودة في الجهاز الذي نعمل عليه
-nn لمنع عرض اسماء الحواسيب او اسماء المنافذ (ports) اي عرض الارقام مثل ما هي بدون تغيير
-q لعرض بيانات اقل عن كل حزمة من البيانات المرسلة او المستقبلة
-XX لعرض البيانات بطريقتين (ascii and hexadecimal) ولكنه يعرض ال (Ethernet header) ايضاً اضافة الى ال (IP header) مما يعني بيانات اكثر وقدرة تحليل اكبر.
-v لعرض بيانات اكثر عن كل حزمة (packet) وهو يعمل عكس عمل ال (-q)
-vv لعرض بيانات اكثر من ال (-v)
-vvv لعرض بيانات اكثر من ال (-vv) كلما قمنا بزيادة عدد ال (v) زادت التفاصيل المعروضة
-c number لعرض عدد محدد (number) من البكتات (packets) ثم التوقف تلقائياً
icmp لعرض بيانات ال (icmp) فقط وهو يشبه فلتر ال(Wireshark)
-e عرض ال (ehternet header) ايضاً مثل ال (-XX) الا ان الفرق انه يعرض ال (Ascii) فقط
-E لفك تشفير بيانات ال (IPSEC) عند توفر مفتاح التشفير (encryption key)

ملاحظة: لضمان عمل الايعازات جميعها يجب استخدام (sudo) قبلها لأنها تحتاج صلاحيات مدير النظام لتعمل.

طريقة الاستخدام:

طبعاً ليس هناك طريقة قياسية محددة للأستخدام ولكن نوعية الاستخدام تعتمد على ما الذي نبحث عنه وما الذي نريد عرضه وهذا الشيء يختلف من وقت لأخر ومن شبكة لأخرى ولكن الامثلة التالية هي المستخدمة في اغلب الاحيان

  • tcmdump -nS لعرض بيانات الاتصال الاساسية فقط

1.png

  • tcpdump -nnvvS لعرض تفاصيل اكثر عن البيانات وايضاً معلومات الاتصال الاساسية فقط

2.png

  • tcpdump -nnvvXS للغوض اعمق في تفاصيل البيانات وعرضها ك (hexadecimal) ايضاً

3

  • tcpdump -nnvvXSs 1550 لعرض كامل الحزمة (packet) بتأثير ال (s) الاخيرة حيث انه سيعرض 1550 بايت وهو عادة الحجم الطبيعي لحزم بيانات ال (Ethernet).

4.png

  • tcpdump -nnvXSs 0 -c2 icmp لعرض حزمتين (2 packets) فقط من ترافيك البروتوكول (icmp) وهي فقط ال (ping) وال(reply) الاول الخاص بها كما سنرى في الصورة التالية:
  • 5

من الادوات المهمة الاخرى التي يحتويها ال (tcpdump) هي فلترة الترافيك (traffic filtering) المطلوب مسكه ومراقبته بحسب النوع (type) واتجاه البيانات (direction) ونوع البروتوكول المستخدم (protocol) وهو بذلك يشابه الى حد كبير عمل الفلاتر الخاصة بال (Wireshark) وامثاله من البرامج الاخرى وكما سنرى في الامثلة التالية:

  • tcpdump host 192.168.1.1 ويعني مراقبة الترافيك الخاص بالجهاز (host) الذي عنوانه (168.1.1) فقط.

6

  • tcpdump src 192.168.1.1 وتعني طلب عرض البيانات التي مصدرها (src) الجهاز ذو العنوان (168.1.1) فقط:
  • 7

ملاحظة: يمكن استخدام (dst) بدل ال (src) ان اردنا مراقبة البيانات التي هدفها (destination) هو الجهاز ذو العنوان المذكور.

  • tcpdump net 192.168.1.0/24 وتعني مراقبة ترافيك الشبكة التي عنوانها (168.1.0/24):

8

  • tcpdump icmp لعرض بيانات التراسل التي تستخدم البروتوكول (icmp ) فقط:

9

  • tcpdump port 8080 وتعني عرض بيانات الشبكة التي تستخدم المنفذ (port) الذي رقمه (8080).
  • tcpdump src port 1024 and tcp وتعني عرض بيانات الشبكة التي تحتوي (source port) رقمه (1024) ويستخدم البروتوكول tcp:

10.png

ملاحظة: يمكن استخدام اي تركيبة من اي بروتوكول واي منفذ واي عنوان مصدر او هدف اي يمكن تركيب اي مجموعة من الخيارات المذكورة سابقاً وبحسب حاجة مدير الشبكة او مسؤول امن المعلومات.

  • tcpdump portrange 21-26 وتعني عرض بيانات الشبكات التي تستخدم المنافذ من 21 الى 26.
  • tcpdump less 32 وتعني عرض بيانات الشبكات التي يكون حجم البكت (packet) الخاص بها اقل من 32 بايت.
  • tcpdump greater 256 وتعني عرض بيانات الشبكة التي يكون حجم ال (packet) الخاص بها اكبر من 256 بايت.

ملاحظة: يمكن استخدام الاشارات ايضاً مثلاً (tcpdump >555) او (tcpdump <33) او (tcpdump >= 444) وهكذا.

الى هنا تنتهي تدوينة اليوم احبتي وطبعاً هي تمثل فقط الخطوة الاولى في شرح هذا العالم الكبير المسمى تحليل ترافيك الشبكات حيث تمثل ال (tcpdump) واحدة من اهم ادواته واكثرها كفاءة. تحياتي وتمنياتي للجميع بالتوفيق.

سيكون لهذه التدوينة حلقات تكميلية اخرى تتكلم عن كيفية التعامل مع ادوات ال (TCPDUMP) الاخرى وكيفية خزن نتائجها في ملفات وكيفية استعادتها وتحليلها بشكل اكثر تفصيلاً ان شاء الله فأنتظرونا

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s