مقدمة
Snort هو أحد أشهر أنظمة الكشف عن التسلل (Intrusion Detection System – IDS) والوقاية من التهديدات (Intrusion Prevention System – IPS) في عالم الأمن السيبراني. تم تطويره لأول مرة في عام 1998 من قبل Martin Roesch، ويُستخدم على نطاق واسع لحماية الشبكات من الهجمات الإلكترونية عبر فحص حركة مرور الشبكة واكتشاف الأنماط المشبوهة.
سواء كنت مسؤولًا عن أمن الشبكة أو مدير نظام، فإن Snort يوفر مرونة كبيرة في مراقبة حركة مرور البيانات عبر الشبكة، وتحديد السلوكيات غير الطبيعية، وتوفير قدرات كشف ومنع للتهديدات.
مكونات Snort
يتكون Snort من عدة مكونات رئيسية:
Packet Sniffer: يقوم بالتقاط الحزم المارة عبر الشبكة وتحليل محتوياتها باستخدام مكتبة libpcap. يعد هذا المكون مهمًا لرصد حركة المرور.
Packet Logger: يسجل الحزم الملتقطة في ملفات ليتم تحليلها لاحقًا. يُستخدم هذا المكون بشكل أساسي في عملية تسجيل الأحداث وتحليلها في وقت لاحق.
Intrusion Detection System (IDS): يعمل Snort كـ IDS عبر مقارنة حركة المرور مع قواعد محددة مسبقًا لاكتشاف أنماط تشير إلى هجمات أو أنشطة غير طبيعية، وعند اكتشاف تلك الأنماط، يُصدر النظام تنبيهًا.
Intrusion Prevention System (IPS): عند تشغيل Snort في وضع IPS، يمكنه اتخاذ إجراءات فورية ضد الهجمات المكتشفة، مثل إسقاط الحزم الضارة أو منع الوصول غير المصرح به.
أنماط التشغيل في Snort
Sniffer Mode (وضع الشم): يقوم بالتقاط وتحليل حركة المرور في الوقت الفعلي وعرضها على الشاشة. هذا الوضع مفيد للمراقبة الفورية لحركة الشبكة.مثال لتشغيل Snort في وضع الشم:
snort -v
Packet Logger Mode (وضع التسجيل): يُستخدم لتسجيل الحزم إلى ملفات لتحليلها لاحقًا. هذا الوضع يساعد على الاحتفاظ بسجل كامل لحركة المرور لفحصها في أوقات لاحقة.
مثال لتشغيل Snort في وضع التسجيل:
snort -l /var/log/snort
Intrusion Detection Mode (وضع الكشف عن التسلل): يقوم Snort بفحص حركة المرور بحثًا عن أنماط تطابق القواعد المحددة مسبقًا للكشف عن الأنشطة الضارة، ويصدر تنبيهات عند حدوث تطابق.
مثال لتشغيل Snort في وضع الكشف عن التسلل:
snort -c /etc/snort/snort.conf
Intrusion Prevention System (IPS): عند تشغيل Snort في وضع IPS، يمكنه اتخاذ إجراءات فورية ضد الهجمات المكتشفة، مثل إسقاط الحزم الضارة أو منع الوصول غير المصرح به.
snort -c /etc/snort/snort.conf --daq afpacket -Q
نظام كشف التسلل (IDS) ونظام الوقاية من التسلل (IPS)
IDS (Intrusion Detection System): هو نظام يراقب حركة المرور ويحللها ويكتشف الأنشطة غير المصرح بها أو المشبوهة بناءً على مجموعة من القواعد. يعمل IDS كمراقب ولا يتدخل في حركة المرور، بل يصدر تنبيهات عندما يكتشف نشاطًا مريبًا.
IPS (Intrusion Prevention System): هو نظام يشبه IDS لكنه يمتلك القدرة على اتخاذ إجراءات فورية عند اكتشاف تهديدات. في هذا الوضع، يمكن للنظام إسقاط الحزم المشبوهة أو إغلاق الاتصالات غير المصرح بها.
باختصار، يعمل IDS على اكتشاف الهجمات وتنبيه المسؤولين عنها، بينما يعمل IPS على منع الهجمات مباشرة عن طريق اتخاذ إجراءات.
كتابة القواعد في Snort
تعتبر القواعد هي الأساس الذي يعتمد عليه Snort للكشف عن التهديدات. القواعد هي مجموعات من الشروط التي توضح كيف يمكن لـ Snort التعرف على الحزم الضارة أو المشبوهة واتخاذ إجراءات بناءً على تلك الحزم.
مكونات القاعدة في Snort:
Rule Header: يحتوي على البروتوكول وعناوين IP والمنافذ.
Rule Options: تتضمن الشروط الإضافية مثل مطابقة المحتوى أو التعبيرات النمطية (regex).
مثال على قاعدة Snort:
alert tcp any any -> 192.168.1.0/24 80 (msg:"HTTP traffic detected"; sid:1000001;)
alert: الإجراء الذي سيتم اتخاذه عند مطابقة القاعدة (في هذه الحالة، إصدار تنبيه).
tcp: نوع البروتوكول.
any any: أي عنوان IP وأي منفذ مصدر.
192.168.1.0/24 80: عنوان IP الوجهة ومنفذ 80.
msg: رسالة التنبيه التي سيتم تسجيلها “HTTP traffic detected”
sid: معرف القاعدة 1000001 (Signature ID)
مثال على قاعدة لمطابقة محتوى محدد:
alert tcp any any -> 192.168.1.0/24 80 (msg:"Malicious request detected"; content:"/cmd.exe"; sid:1000002;)
تطابق هذه القاعدة حركة مرور تحتوي على /cmd.exe
في طلب HTTP، والذي قد يشير إلى محاولة هجوم.
الإجراءات (Actions) في Snort
عندما يكتشف Snort تطابقًا مع قاعدة معينة، يتخذ إجراءً بناءً على ما تم تحديده في القاعدة. هناك عدة أنواع من الإجراءات في Snort، وهي:
alert: إصدار تنبيه عند اكتشاف تهديد.
alert tcp any any -> 192.168.1.0/24 80 (msg:"HTTP traffic detected"; sid:1000001;)
log: تسجيل حركة المرور المطابقة للقاعدة دون إصدار تنبيه.
log udp any any -> 192.168.1.0/24 53 (msg:"DNS query detected"; sid:1000002;)
pass: تجاوز حركة مرور معينة وعدم اتخاذ أي إجراء ضدها.
pass tcp 192.168.1.100 any -> 192.168.1.200 80 (msg:"Trusted HTTP traffic"; sid:1000003;)
drop: إسقاط الحزم المشبوهة في وضع IPS.
drop tcp any any -> 192.168.1.0/24 80 (msg:"HTTP attack dropped"; sid:1000006;)
reject: رفض الحزم وإبلاغ المرسل بعدم نجاح الاتصال.
reject tcp any any -> 192.168.1.0/24 80 (msg:"HTTP request rejected"; sid:1000007;)
sdrop: إسقاط الحزم بصمت بدون تسجيلها أو إصدار تنبيه.
sdrop tcp any any -> 192.168.1.0/24 80 (sid:1000008;)
أهمية Snort في الأمن السيبراني
المرونة والتخصيص: يمكن تخصيص Snort بسهولة ليناسب احتياجات الشبكات المختلفة من خلال كتابة قواعد مخصصة للكشف عن التهديدات الفريدة.
التكامل مع SIEM: يمكن دمج Snort مع أنظمة إدارة معلومات الأمن والأحداث (SIEM) مثل Splunk و Elastic Stack لتحليل التهديدات بعمق واكتشاف الأنماط المشبوهة.
التوافق مع الأنظمة الكبيرة: يُستخدم Snort في العديد من المؤسسات الكبرى لحماية الشبكات من التهديدات المتقدمة.