جدول المحتويات
تعتبر أداة سنورت (Snort) واحدة من أهم الأدوات التي يجب على أي شخص مهتم بمجال الأمن السيبراني أن يتعلمها. سنورت هو برنامج مفتوح المصدر يعمل كنظام كشف ومنع التسلل، حيث يقوم بمراقبة حركة البيانات على الشبكة، واكتشاف أي نشاط مشبوه، ومنعه قبل حدوث أي اختراق.
الفرق بين أنظمة كشف التسلل وأنظمة منع التسلل
نظام كشف التسلل (IDS – Intrusion Detection System)
هو أداة تقوم بمراقبة الشبكة والبحث عن أي نشاط مشبوه أو محاولات اختراق، لكنه لا يقوم بمنع التهديدات. كل ما يفعله هو إرسال تنبيه لمسؤول الشبكة لاتخاذ الإجراءات اللازمة.
نظام منع التسلل (IPS – Intrusion Prevention System)
هذه الأداة لا تقوم فقط بمراقبة الشبكة، بل تتخذ إجراءات تلقائية لمنع أي تهديدات، مثل حظر الاتصال أو تعطيل الهجمات قبل أن تؤثر على الشبكة.
دور سنورت
تتميز أداة سنورت بأنها تجمع بين الوظيفتين، حيث يمكن استخدامها كنظام كشف أو كنظام منع للتسلل حسب طريقة التهيئة.
الميزات الرئيسية لأداة سنورت
1. مراقبة حركة البيانات في الوقت الحقيقي (Real Time Monitoring)
يقوم البرنامج بمراقبة كل حركة البيانات الداخلة والخارجة من الشبكة، ويصدر تنبيهات عند اكتشاف أي حزم مشبوهة أو تهديدات أمنية. هذه الميزة مهمة جداً لأنها تساعد مسؤولي الشبكات على اتخاذ إجراءات سريعة لتأمين الشبكة.
2. تسجيل الحزم (Packet Sniffing)
يقوم سنورت بجمع وتسجيل جميع الحزم (Packets) التي تمر عبر الشبكة. يتم تنظيم هذه الحزم في مجلدات هرمية بناءً على عناوين IP الموجودة على الشبكة، مما يوفر سجلاً شاملاً لكل الأنشطة ويساعد في تحليل البيانات.
3. تحليل البروتوكولات بشكل عميق (Protocol Analysis)
يقوم سنورت بتحليل البروتوكولات بشكل مفصل، وهذه العملية مهمة جداً خاصة عند الحاجة لمعرفة تفاصيل دقيقة عن كيفية تواصل الأجهزة والبروتوكولات على الشبكة، مثل بروتوكول TCP/IP.
4. مطابقة المحتوى (Content Matching)
يجمع البرنامج القواعد (Rules) حسب البروتوكول، ثم يحدد القواعد التي تحتوي على محتوى معين أو التي لا تحتوي عليه. القواعد التي تحتوي على محتوى تستخدم آلية متعددة الأنماط (multi-pattern matcher) لتحسين أداء وسرعة سنورت.
5. تحديد بصمة نظام التشغيل (OS Fingerprinting)
كل نظام تشغيل لديه TCP/IP Stack خاص به، والذي يستخدمه سنورت لتحديد نظام التشغيل للجهاز الذي يحاول الاتصال بالشبكة. هذه الميزة مهمة لاكتشاف الأجهزة المشبوهة أو غير المصرح بها على الشبكة.
6. التوافق مع مختلف البيئات الشبكية
يعمل سنورت على أي بيئة شبكية، سواء كنت تستخدم لينكس أو ويندوز. كونه مفتوح المصدر يعني أنه مجاني بالكامل ويمكن لأي شخص يحتاج لحماية شبكته أن يقوم بتحميله واستخدامه.
7. سهولة الاستخدام
تتميز قواعد سنورت بسهولة التنفيذ، حيث توفر وسيلة قوية وسريعة لتأمين الشبكة. لغة القواعد مرنة وسهلة، مما يسمح للمستخدمين بإنشاء قواعد جديدة بكل بساطة، سواء لتحديد النشاط الطبيعي أو الكشف عن الأنشطة الخبيثة.
أوضاع تشغيل سنورت الرئيسية
1. وضع التقاط الحزم (Packet Sniffing Mode)
في هذا الوضع، تقوم أداة سنورت بقراءة كل الحزم التي تمر عبر الشبكة وعرضها مباشرة على الشاشة، مثل أدوات تحليل الشبكة.
2. وضع تسجيل الحزم (Packet Logging Mode)
في هذه الحالة، يقوم سنورت بتسجيل كل الحزم الداخلة والخارجة، مما يوفر سجلاً شاملاً عن من دخل إلى الشبكة، والأنظمة والبروتوكولات المستخدمة.
3. وضع الكشف والوقاية من التسلل (NIPDS Mode – Network Intrusion and Prevention Detection System)
في هذا الوضع، يرصد سنورت فقط الحزم المشبوهة بناءً على القواعد الموجودة، ويطبق الإجراءات الأمنية المناسبة عند اكتشاف أي تهديد.
أهمية استخدام قواعد سنورت
تعتبر القواعد المكتوبة في سنورت أساس عمله، وهي التي تحدد كيفية استجابته لأي حركة بيانات على الشبكة. من خلال القواعد، يستطيع سنورت:
- رصد الحزم وجمع البيانات التي تمر عبر الشبكة.
- اكتشاف الأخطاء في حركة المرور ومساعدة في تصحيح أي مشاكل في التهيئة.
- إنشاء تنبيهات عند اكتشاف نشاط مشبوه مثل هجمات الاختراق أو محاولات المسح الضوئي.
- السماح للمستخدمين بإنشاء قواعد جديدة حسب احتياجاتهم، مثل منع هجمات الباب الخلفي (backdoor) أو البحث عن محتوى معين داخل الحزم.
- التمييز بين النشاط الطبيعي والأنشطة المشبوهة لمنع الهجمات دون التأثير على حركة المرور الشرعية.
كيفية تثبيت سنورت
لبدء استخدام سنورت، قم بتشغيل جهاز أوبونتو ونفذ الأمر التالي في الطرفية:
sudo apt install snort
بعد تحميل وتثبيت سنورت، ستجد ملفات الإعدادات في المسار التالي:
cd /etc/snort
هنا ستجد ملفات مهمة مثل snort.conf
، حيث يمكنك إضافة القواعد، وإدارة السجلات، وضبط سنورت حسب احتياجاتك.
استخدام قاعدة ICMP في سنورت
الهدف
هذه القاعدة تقوم بإنشاء تنبيه كلما تم إرسال حركة مرور ICMP إلى عنوان IP 8.8.8.8. هذا مفيد لاكتشاف طلبات ping أو أي رسائل ICMP أخرى موجهة لهذا الخادم.
إعداد قاعدة محلية لسنورت
أولاً، يجب تعديل ملف local.rules
لإضافة القواعد المخصصة. افتح الملف بالأمر التالي:
sudo nano rules/local.rules
بداخل الملف، اكتب القاعدة التالية مع الالتزام بصيغة القواعد الصحيحة:
alert icmp any any -> 8.8.8.8 any (msg: "ICMP traffic to 8.8.8.8 detected"; sid:1000001; rev:1;)
بعد إدخال القاعدة، اضغط CTRL + X
، ثم Y
، ثم Enter
لحفظ التعديلات.
تفصيل الأمر
alert
: يحدد القاعدة كتنبيه.icmp
: البروتوكول المراقب هو ICMP (يستخدم لاختبارات الاتصال مثل ping).any any
: يعني أي عنوان IP مصدر وأي منفذ مصدر.->
: يحدد اتجاه الحركة من المصدر إلى الوجهة.8.8.8.8 any
: الوجهة هي عنوان IP 8.8.8.8 وأي منفذ (ICMP لا يستخدم المنافذ).msg: "ICMP traffic to 8.8.8.8 detected"
: الرسالة التي ستظهر عند تفعيل القاعدة.sid:1000001
: معرف سنورت فريد (SID) لهذه القاعدة. القواعد المخصصة تبدأ من 1,000,000 لتجنب التعارض مع القواعد المدمجة.rev:1
: رقم مراجعة القاعدة، يزداد عند تعديلها.
تطبيق قاعدة سنورت
نفذ الأمر التالي لتشغيل سنورت وتفعيل القاعدة:
sudo snort -A console -l /var/log/snort -i enp0s3 -c /etc/snort/snort.conf -q
تفصيل الأمر
sudo
: تشغيل سنورت بصلاحيات مرتفعة (مطلوبة لمراقبة الشبكة).snort
: تشغيل أداة سنورت.-A console
: عرض التنبيهات في الطرفية مباشرة.-l /var/log/snort
: تخزين بيانات الحزم في/var/log/snort
.-i enp0s3
: تحديد واجهة الشبكة التي سنراقبها (enp0s3).-c /etc/snort/snort.conf
: استخدام ملف الإعدادات (snort.conf
) لتعريف القواعد.-q
: تشغيل سنورت بوضع الصمت (يقلل من المخرجات غير الضرورية).
اختبار القاعدة
افتح طرفية جديدة بالضغط على CTRL + Shift + T
، ثم أرسل ping إلى 8.8.8.8 لاختبار القاعدة:
ping 8.8.8.8
بعد تنفيذ الأمر، ستلاحظ في الطرفية الأولى ظهور تنبيهات سنورت، مما يعني أن القاعدة تعمل بشكل صحيح.
قاعدة TCP للاتصال بمنفذ 4444
الهدف
هذه القاعدة تقوم بإنشاء تنبيه كلما تم إنشاء اتصال TCP مع المنفذ 4444 على أي عنوان IP. هذا المنفذ يستخدم عادة من قبل البرمجيات الضارة أو الأبواب الخلفية مثل Metasploit reverse shell، مما يجعلها قاعدة مفيدة لاكتشاف أي محاولات وصول غير مصرح بها.
إضافة القاعدة إلى سنورت
افتح ملف local.rules
باستخدام الأمر:
sudo nano rules/local.rules
بداخل الملف، أضف القاعدة التالية:
alert tcp any any -> any 4444 (msg: "Connection to remote IP on port 4444"; sid:1000002; rev:1;)
بعد إدخال القاعدة، اضغط CTRL + X
، ثم Y
، ثم Enter
لحفظ التعديلات.
تفصيل القاعدة
alert
: يجعل القاعدة تعمل كتنبيه.tcp
: يحدد البروتوكول الذي تتم مراقبته وهو TCP.any any
: يراقب الحركة من أي IP مصدر وأي منفذ مصدر.->
: يحدد اتجاه الاتصال من المصدر إلى الوجهة.any 4444
: يطابق أي حركة مرور موجهة لأي IP على المنفذ 4444.msg: "Connection to remote IP on port 4444"
: الرسالة التي ستظهر عند تفعيل القاعدة.sid:1000002
: معرف فريد للقواعد المخصصة في سنورت.rev:1
: رقم مراجعة القاعدة، يزداد عند تعديلها.
تطبيق القاعدة في سنورت
شغل سنورت بالأمر التالي:
sudo snort -A console -l /var/log/snort -i enp0s3 -c /etc/snort/snort.conf -q
تفصيل الأمر
sudo
: تشغيل سنورت بصلاحيات مرتفعة.snort
: تشغيل أداة سنورت.-A console
: عرض التنبيهات في الطرفية مباشرة.-l /var/log/snort
: حفظ السجلات في/var/log/snort
.-i enp0s3
: مراقبة واجهة الشبكة enp0s3.-c /etc/snort/snort.conf
: استخدام ملف الإعداداتsnort.conf
.-q
: تشغيل سنورت بوضع الصمت (لإخفاء المخرجات غير الضرورية).
اختبار القاعدة باستخدام hping3
افتح طرفية جديدة ونفذ الأمر التالي لإرسال حزمة TCP SYN إلى المنفذ 4444 لاختبار القاعدة:
sudo hping3 -c 1 -p 4444 -S example.com
تفصيل الأمر
sudo
: تشغيل الأمر بصلاحيات مرتفعة.hping3
: أداة لإرسال حزم مخصصة واختبار بروتوكولات الشبكة.-c 1
: إرسال حزمة واحدة فقط.-p 4444
: استهداف المنفذ 4444.-S
: إرسال حزمة TCP SYN لمحاكاة بدء اتصال TCP.example.com
: عنوان الوجهة (يمكن استبداله بعنوان IP محدد).
الهدف من الاختبار
يرسل هذا الأمر حزمة SYN واحدة إلى المنفذ 4444 على example.com. يستخدم لفحص فتح المنفذ على الهدف، أو لمحاكاة هجوم اختبار أمني (network security test).
مراقبة التنبيه في سنورت
بعد تشغيل الأمر، إذا كانت القاعدة تعمل، سيظهر تنبيه في سنورت بوجود محاولة اتصال على المنفذ 4444.
أمثلة على قواعد سنورت
1. قاعدة لاكتشاف طلب HTTP GET إلى نطاق معين
هذه القاعدة ستنشئ تنبيهًا إذا رصدت اتصال بروتوكول التحكم بالنقل على المنفذ 80 (بروتوكول نقل النص التشعبي) مع طلب GET إلى النطاق “example.com”.
alert tcp any any -> any 80 (msg: "Possible HTTP GET request"; content: "GET"; http_method; content: "example.com"; http_host; sid:1000001; rev:1;)
2. قاعدة لاكتشاف سلسلة User-Agent مشبوهة
هذه القاعدة ستنشئ تنبيهًا إذا رصدت اتصال بروتوكول التحكم بالنقل يحتوي على سلسلة User-Agent تحتوي على كلمة “curl”، والتي غالبًا ما تستخدم من قبل المهاجمين لتنفيذ هجمات أو القيام باستطلاعات أمنية.
alert tcp any any -> any any (msg:"Suspicious User-Agent detected"; flow:to_server,established; content:"User-Agent|3a| "; nocase; content:"curl|2f|"; nocase; sid:1000002; rev:1;)
3. قاعدة لاكتشاف ثغرة أمنية محددة في تطبيق ويب
هذه القاعدة ستنشئ تنبيهًا إذا رصدت اتصال بروتوكول التحكم بالنقل يحتوي على طلب POST إلى صفحة تسجيل الدخول “/login.php” مع حقول اسم المستخدم وكلمة المرور متبوعة باقتباس مفرد (‘)، وهو مؤشر شائع على محاولة حقن استعلامات لغة الاستعلامات البنيوية.
alert tcp any any -> any any (msg: "Possible SQL Injection attempt"; flow:to_server, established; content: "POST"; nocase; content:"/login.php"; nocase; content: "username="; nocase; content: "password="; nocase; content:"'"; sid:1000003; rev:1;)
4. قاعدة لاكتشاف استعلام نظام أسماء النطاقات مشبوه
هذه القاعدة ستنشئ تنبيهًا إذا رصدت اتصال بروتوكول مخطط بيانات المستخدم على المنفذ 53 (نظام أسماء النطاقات) مع استعلام لنطاق “example.com”. تستخدم القاعدة خيار “العمق” لتحديد أن التحقق يجب أن يتم فقط لأول 6 بايت من الاستعلام، وهي حقول رأس نظام أسماء النطاقات القياسية.
alert udp any any -> any 53 (msg: "Suspicious DNS Query detected"; content:"|00 01 00 00 00 01|"; depth:6; content: "example.com"; nocase; sid:1000004; rev:1;)
5. قاعدة لاكتشاف توقيع برمجي خبيث معروف في حركة المرور
هذه القاعدة ستنشئ تنبيهًا إذا رصدت اتصال بروتوكول التحكم بالنقل يحتوي على حمولة تحتوي على تسلسل معين من البايتات (في هذه الحالة، السلسلة “ZOOM”). هذا التسلسل معروف بأنه توقيع لشبكة الروبوتات الخبيثة Zeus، والتي تستخدم في عمليات الاحتيال المالي وغيرها من الأنشطة الضارة.
alert tcp any any -> any any (msg:"Possible Zeus Botnet C&C Traffic"; flow:established,to_server; content:"|5a 4f 4f 4d 00 00|"; depth:6; sid:1000005; rev:1;)
الخاتمة
في هذا الدليل، استكشفنا أساسيات سنورت، بدءًا من التثبيت وصولاً إلى كتابة واختبار القواعد البسيطة. من خلال إعداد القواعد لاكتشاف حركة مرور بروتوكول رسائل التحكم في الإنترنت والاتصالات عبر بروتوكول التحكم بالنقل إلى منافذ معينة، رأينا كيف يمكن لسنورت مراقبة النشاط على الشبكة وإطلاق التنبيهات بفعالية.
يتيح لك هذا النظام لكشف التسلل ومنعه إنشاء قواعد مخصصة تلبي احتياجاتك الأمنية المحددة، مما يجعله أداة مرنة وأساسية في الدفاع عن الشبكات. سواء كنت تؤمن مختبراً منزلياً أو شبكة شركة، فإن فهم كيفية تكوين وتطبيق قواعد سنورت هو مهارة أساسية في حماية الشبكات من التهديدات المحتملة.