برنامج واير شارك (Wireshark)
مقدمة
تُعدُّ مراقبة حركة البيانات في الشبكات الحديثة أحد أهم التحديات التي تواجه مهندسي الشبكات وأمن المعلومات على حدٍّ سواء. يأتي برنامج واير شارك (Wireshark) كحلّ مفتوح المصدر ومجانيّ يسمح بالتقاط وتحليل حزم البيانات (packets) المارة عبر واجهات الشبكة بأنواعها المختلفة. يوفر واير شارك رؤية مفصّلة لمحتوى الحزم، بدءًا من الطبقة الفيزيائية وحتى طبقات تطبيقات الإنترنت، ما يجعله أداةً لا غنى عنها لأغراض التشخيص، والتحليل الأمني، وتطوير التطبيقات الشبكية.
تاريخ وتطور واير شارك
بدأ مشروع واير شارك في عام 1998 تحت اسم Ethereal، أُطلقه المهندس جيرالد كومبس (Gerald Combs) بهدف إنشاء أداة مفتوحة المصدر لتحليل الشبكة. في أبريل 2006، انتقل المشروع إلى اسم Wireshark بعد نزاع على العلامة التجارية. منذ ذلك الحين، نما المجتمع حوله بشكل كبير، وصارت الإصدارات الدورية ترافقها تحسينات في الأداء ودعم مزيد من البروتوكولات، بالإضافة إلى تطوير واجهات المستخدم الرسومية والنسخ النصية (TShark).
المفاهيم الأساسية في تحليل الحزم
يعتمد واير شارك على مكتبة libpcap (أو WinPcap/NPcap على نظام ويندوز) لالتقاط الحزم قيد الإرسال والاستقبال. تتيح هذه المكتبة الوصول إلى البيانات الخام قبل أن تعالجها الأنظمة التشغيلية، فتلتقطها لحظيًا وتعرضها للمستخدم. تتكوّن الحزمة الواحدة من رأس (Header) يحتوي معلومات التحكم والتوجيه، وجزء بيانات (Payload) يحمل محتوى الاتصالات.
الميزات الرئيسية لواير شارك
- دعم واسع للبروتوكولات: أكثر من 2000 بروتوكول مسجّل ومُفسَّر.
- مرشحات الالتقاط والعرض: تتيح تحديد الحزم ذات الصلة دون استنزاف موارد النظام.
- واجهة استخدام رسومية ونصية: Wireshark للواجهة الرسومية، وTShark للبيئات النصية.
- إمكانية إعادة بناء الجلسات: مثل جلسات HTTP وTCP لإعادة عرض المحتوى بالكامل.
- التصدير والتوثيق: يدعم التصدير إلى صيغ متنوعة (PCAP، XML، CSV، إلخ).
تثبيت Wireshark
على نظام ويندوز
يمكن تحميل مثبت واير شارك من الموقع الرسمي، مع تضمين WinPcap أو NPcap لالتقاط الحزم. يفضّل اختيار NPcap حديثًا لضمان التوافق مع الإصدارات الأحدث من ويندوز.
على نظام لينكس
يمكن تثبيت Wireshark عبر مديري الحزم:
sudo apt-get install wireshark
على ديبيان/أوبونتو، أو
sudo yum install wireshark
على ريدهات/سنت أوإس.
على نظام ماك
يتوفر عبر Homebrew:
brew install wireshark
، مع إمكانية الاختيار لتثبيت NPcap أو تشغيل كـ«جذر» (root) لالتقاط الحزم.
بدء جلسة التقاط الحزم
بعد تشغيل البرنامج، يعرض قائمة بواجهات الشبكة المتصلة حالياً. يختار المستخدم الواجهة المناسبة (مثل Ethernet أو Wi-Fi)، ثم يضغط زر البدء لبدء التقاط الحزم في الزمن الحقيقي. يمكن إيقاف الجلسة في أي وقت وحفظ ملف الالتقاط بصيغة PCAP لفتحه لاحقاً.
أنواع المرشحات في واير شارك
يُميّز واير شارك بين نوعين من المرشحات:
- مرشحات الالتقاط (Capture Filters): تُطبَّق عند بدء الالتقاط لتحديد الحزم المطلوب التقاطها فعلياً.
- مرشحات العرض (Display Filters): تُطبَّق بعد الالتقاط على البيانات المخزّنة لعرض الحزم المطابقة فقط.
الخاصية | مرشح الالتقاط | مرشح العرض |
---|---|---|
التوقيت | قبل الالتقاط | بعد الالتقاط |
الأداء | أفضل لتقليل حجم البيانات | ضاغط وليس مكثفاً |
المرونة | محدد مسبقاً | تفاعلي وقابل للتعديل في أي وقت |
الصيغة | مطابقة عناوين ومنافذ بسيطة (مثال: port 80 ) |
تعابير معقدة متعددة الشرط (مثال: http.request.method == "GET" ) |
المرشحات التفصيلية في واير شارك
أمثلة على مرشحات الالتقاط
host 192.168.1.10
: فقط الحزم بين المضيف الحالي والعنوان المحدد.port 53
: حزم DNS.tcp and port 443
: حصراً حزم HTTPS.
أمثلة على مرشحات العرض
ip.src == 10.0.0.5
: حزم مصدرها العنوان 10.0.0.5.tcp.analysis.retransmission
: حزم TCP التي أعِيد إرسالها.frame.len > 1500
: حزم يتجاوز طولها 1500 بايت.
التعمق في البروتوكولات المدعومة
يدعم واير شارك أكثر من 2000 بروتوكول؛ من أشهرها:
- TCP/UDP: الطبقة الناقلة الخطية وغير الخطية.
- HTTP/HTTPS: تحليل طلبات واستجابات الويب؛ مع القدرة على إعادة بناء الجلسات لعرض محتوى الصفحة.
- DNS: تحليل استفسارات ومُجيب اسم النطاق.
- VoIP (SIP/RTP): فك ترميز المكالمات الصوتية عبر الإنترنت.
- SSL/TLS: فك ترميز بعض الاتصالات المشفرة حال توفير الشهادات المناسبة.
- Bluetooth, USB, CAN Bus: بروتوكولات خاصة بتطبيقات الصناعة والإنترنت المادي.
تطبيقات عملية لواير شارك
تشخيص الأخطاء في الشبكة
باستخدام واير شارك يمكن اكتشاف مشكلات الاتصال مثل فقدان الحزم (packet loss)، وزمن الاستجابة العالي (latency)، ومشكلات إعادة الإرسال (retransmissions). يعرض الرسم البياني لزمن الوصول round-trip time لكل جلسة TCP لمراقبة الأداء بشكل مرئي.
تحليل أداء التطبيقات
يسمح بفحص الطلبات المتسلسلة في تطبيقات الويب، وقياس زمن تحميل الملفات الكبيرة، والتعرف على عنق الزجاجة (bottleneck) بين الخادم والعميل.
مراقبة الأمان واكتشاف التسلل
يساعد في رصد الأنماط المشبوهة مثل عمليات المسح (scanning) أو هجمات رفض الخدمة (DoS)، وفصل الحزم الغريبة باستخدام المرشحات المتقدمة.
أفضل الممارسات عند استخدام واير شارك
- استخدام مرشحات الالتقاط لتقليل حجم البيانات المسجلة.
- حفظ الجلسات بصيغ PCAP لتبادلها مع زملاء العمل أو فرق الأمن.
- العمل بحساب مستخدم يملك صلاحيات محدودة عند الإمكان لتجنب المخاطر الأمنية.
- تحديث واير شارك بانتظام للحصول على دعم البروتوكولات الجديدة وتصحيحات الأمان.
تحليل الحزم المشفرة: فك تشفير SSL/TLS
تُعد شبكة الإنترنت اليوم محمية بنسبة كبيرة بواسطة بروتوكولات SSL/TLS لحماية خصوصية البيانات. ومع ذلك، قد يحتاج مهندس الشبكة أو محلل الأمان إلى فحص حركة HTTPS لأغراض التشخيص أو التحقيق الجنائي الرقمي، وذلك بالاعتماد على إمكانات واير شارك في فك التشفير عند توفر المفاتيح اللازمة.
متطلبات فك التشفير
- الوصول إلى مفتاح الخادم الخاص (Private Key) في حال استخدام تشفير RSA التقليدي.
- إعداد متغير البيئة
SSLKEYLOGFILE
في متصفح كروم أو فايرفوكس لحفظ مفاتيح الجلسة (Pre-Master Secret). - نسخة حديثة من واير شارك تدعم TLS 1.3 والمفاتيح الديناميكية.
خطوات الإعداد
- تعيين مسار ملف المفاتيح من متصفحك:
export SSLKEYLOGFILE=~/ssl-keys.log
- بدء واير شارك وتحديد بروتوكول TLS في خيارات التفضيلات:
Edit ▶ Preferences ▶ Protocols ▶ TLS ▶ (Pre)-Master-Secret log filename
وتحديد المسار السابق. - التقاط الحزم التي تحتوي على جلسات TLS ثم تطبيق فلتر عرض:
tls
أوssl
لعرض البيانات المفككة.
القيود والملاحظات
- لا يدعم واير شارك فك تشفير الاتصالات التي تستخدم Perfect Forward Secrecy (DHE، ECDHE) عبر مفتاح الخادم وحده؛ بل يتطلب مفاتيح الجلسة المُسجَّلة.
- فك التشفير يزيد من زمن المعالجة، لذا يُنصح بتطبيق فلتر الالتقاط على رقم المنفذ 443 أو عنوان الخادم المراد تحليله.
تطوير الملحقات وإضافات Lua
يمكن تمديد قدرات واير شارك من خلال كتابة ملحقات بلغة Lua لإضافة مُحلِّلات (dissectors) جديدة أو أتمتة معالجة خاصة. تتيح هذه الملحقات تفسير بروتوكولات غير مدعومة أصلاً أو إضافة حقل تحليل مخصّص.
مثال على ملحق Lua بسيط
-- hiworld.lua
local proto_hiworld = Proto("hiworld", "Hi World Protocol")
function proto_hiworld.dissector(buffer, pinfo, tree)
pinfo.cols.protocol = proto_hiworld.name
local subtree = tree:add(proto_hiworld, buffer(), "Hi World Data")
subtree:add(buffer(0,4), "Magic: " .. buffer(0,4):string())
subtree:add(buffer(4,1):uint(), "Version")
end
-- ربط الملحق على منفذ برتوكول UDP رقم 7777
local udp_port = DissectorTable.get("udp.port")
udp_port:add(7777, proto_hiworld)
لحفظ هذا الملف في مجلّد الملحقات (Plugins) الخاص بواير شارك ثم إعادة تشغيله، ستظهر بيانات “Hi World” في قائمة البروتوكولات عند التقاط حركة UDP على المنفذ 7777.
أتمتة التحليل باستخدام TShark
يُعتبر TShark النسخة النصية من واير شارك، مناسبة للعمليات الخلفية والسكربتات. يمكن من خلاله استخراج إحصائيات أو تصدير البيانات إلى CSV/JSON، مما يسهل دمجه مع أدوات أخرى أو معالجة النتائج برمجياً.
أمثلة شائعة على أوامر TShark
الغرض | الأمر |
---|---|
عدّ الحزم في ملف PCAP | tshark -r file.pcap -q |
تصدير الحزم إلى CSV | tshark -r file.pcap -T fields -e frame.number -e ip.src -e ip.dst -E header=y -E separator=, > output.csv |
استخراج تدفقات TCP | tshark -r file.pcap -q -z conv,tcp |
فلتر عرض مباشر | tshark -Y "http.request.method == \"POST\"" -r file.pcap |
تكامل واير شارك مع أدوات أخرى
- Zeek (Bro): تحليل شبكي ديناميكي وإنشاء سجلات مفصّلة، يمكن تمرير حزم wyreshark إلى Zeek ثم استخدام its Intelligence Framework.
- Elastic Stack: إرسال إخراج TShark بصيغة JSON إلى Elasticsearch ثم تصور البيانات في Kibana.
- Snort/Suricata: استخدام واير شارك لفحص الحزم المكتشفة كتنبيه وإجراء تحقيق يدوي معمّق.
دراسات حالة عملية
الكشف عن هجوم ARP Spoofing
في سيناريوهات انتحال العناوين المحلية (ARP Spoofing)، يمكن استخدام فلتر العرض:
arp.duplicate-address-detected
بالإضافة إلى مراقبة استجابة ARP requests حيث يظهر عنوان MAC مختلف عن المتوقع. يسمح ذلك بتحديد المضيف المخترق ومراقبة تأثير الهجوم على حركة الشبكة.
تحقيق في هجوم حرمان الخدمة (DoS)
بواسطة فلتر الالتقاط:
tcp.flags.syn==1 and tcp.flags.ack==0
يمكن تسجيل عدد هائل من طلبات SYN غير مكتملة؛ ومن ثم استخدام الإحصائيات المدمجة:
Statistics ▶ IO Graphs ▶ Y Axis: Packets/tick ▶ Filter: tcp.flags.syn==1 and tcp.flags.ack==0
لمراقبة ارتفاع هجوم DoS زمنياً.
تحسين أداء واير شارك
- تقليل عمق الالتقاط إلى
-s 128
بايت للحزم التي لا تحتاج فحص حمولة كبيرة. - استخدام
-B
لتعيين حجم المخزن المؤقت (buffer) في TShark عند التعامل مع كميات كبيرة من الحزم. - تشغيل واير شارك على أجهزة ذات ذاكرة وسرعة معالجة عالية عند تحليل ملفات PCAP كبيرة.
المجتمع والمساهمة المفتوحة المصدر
يضمّ مشروع واير شارك آلاف المساهمين حول العالم، حيث يقدّمون:
- ملحقات Lua جديدة للبروتوكولات المتخصصة.
- قوائم التعابير (display filter) الجاهزة للاستخدام في GitHub وويكي واير شارك.
- وثائق تقنية ومقالات متقدمة على الموقع الرسمي والمنتديات.
للمساهمة: يمكن رفع ملحقات جديدة أو إصلاح أخطاء عبر منصة GitLab الخاصة بالمشروع، بعد اتباع إرشادات المطورين.
المزيد من المعلومات
هو أداة رسومية مفتوحة المصدر مصممة لالتقاط وتحليل وتصفية حركة المرور للبيانات.
واجهة المستخدم الرسومية سهلة الاستخدام، مما يجعلها أداة أولى رائعة ومناسبة للمبتدئين، كما أنها في نفس الوقت تتمتع بقدرات تصفية الحزمة المتقدمة.
يُتيح Wireshark أيضاً التقاط الحزم على أي واجهة شبكة نظام، بافتراض أن لديك الأذونات المناسبة للقيام بذلك، وأن بطاقة الشبكة الخاصة بك تدعم Sniffing، يمكن ل Wireshark عرض الحزم بمجرد التقاطها في الوقت الفعلي.
بشكل افتراضي، يعرض Wireshark الحزم في ثلاث “ألواح Panels” :
قائمة الحزم Packet List :
تعرض هذه اللوحة الحزم التي تم التقاطها، واحدةً لكل سطر، مع تفاصيل موجزة جداً عنها؛ يتضمن هذا عادةً الوقت الذي تم فيه التقاط الحزمة، وعنوان IP الخاص بالمصدر والوجهة.
تفاصيل الحزمة Packet Details :
يعرض هذا تفاصيل البروتوكولات في جميع الطبقات التي يمكن ل Wireshark تفسيرها.
حزم البيانات Packet Bytes :
يُظهر التمثيل السداسي العشري و ASCII للحزمة، بما في ذلك بيانات الطبقة الثانية.
لتنزيل البرنامج اضغط هنا
اتجاهات مستقبلية
تواصل فرق التطوير العمل على:
- دعم بروتوكولات إنترنت الأشياء (MQTT، CoAP) بشكل أفضل.
- تكامل الذكاء الاصطناعي لتحليل أنماط حركة الشبكة غير الطبيعية.
- تحسين واجهة الويب لعرض التقارير التفاعلية دون الحاجة لبيئة المكتب.
خاتمة
يمثّل واير شارك أداة لا غنى عنها لفهم حركة الشبكة بعمق وتقوية الإجراءات الأمنية وتحسين أداء التطبيقات. من خلال إمكاناته الواسعة في فك التشفير، وملحقاته القابلة للتطوير، وأتمتته عبر TShark، يظل الخيار الأمثل للمهندسين والمحققين الرقميين على حد سواء. إن الإسهام في تطويره واستخدامه بشكل صحيح يساهمان في رفع مستوى الأمان والأداء على مستوى الشبكات العالمية.
الاستنتاج
يمثل برنامج واير شارك حجر الزاوية في أدوات تحليل الشبكات، إذ يجمع بين قوة الأداء ودقة الفحص وسهولة الاستخدام. بفضل دعم بروتوكولات متعدد وتخصيص المرشحات بمستويات عالية من التعقيد، يُنصح به لكل مهندس شبكات، ومحلل أمني، ومطور تطبيقات تسعى إلى فهم عميق لحركة البيانات داخل شبكاتهم.
المراجع
- Wireshark Official Documentation. Available at: https://www.wireshark.org/docs/
- Gerald Combs et al., “Wireshark User’s Guide,” Wireshark Foundation, 2025.
- Packet Capture Library (libpcap) Documentation, The tcpdump group, 2024.
- RFC 5145 – TCP Packet Capture, 2022.