Snort

مقدمة

اهلاً بكم، في هذا المقال سوف اقوم بالحديث عن برنامج Snort.
الجزء الأول

عناصر المقالة

  • مقدمة
  • مصطلحات مهمة
  • استخدامات Snort
  • اعداد Snort
  • طريقة كتابة القواعد Rule
  • خاتمة

مقدمة في Snort

snort يعد برنامج مجاني مفتوح المصدر، يُستخدم لعدة استخدامات مختلفة، اشهرها NIDS بإمكانك تحميله على مختلف الأنظمة Windows,Linux and Mac في هذا الشرح سوف استخدم نظام Linux, Ubuntu 19

هنا رابط وخطوات التحميل

مصطلحات مهمة

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

  • Intrusion Detection System

الترجمة الحرفيه لها بالعربية كاشف التسلل، كلمة (تسلل لا تعبر عن المعنى الحقيقي )، المعنى لها هو اكتشاف الهجمات او البرمجيات الخبيثة على الشبكة؛ عن طريق تحليل الشبكة أو النظام، IDS من الممكن ان يكون عبارة عن جهاز (Hardware) او برنامج (Software).

يوجد نوعين من (IDS) وهما:

Network intrusion detection systems (NIDS)

هذا النوع من IDS يتم وضعه على كامل الشبكة بالتالي يقوم بتحليل الشبكة كاملةً وكل ما يخرج أو يدخل إليها.

Host intrusion detection systems (HIDS)

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

الصورة توضح الفرق

  • Intrusion Prevention System

بالعربية تعني مانع التسلل وكما اسلفت كلمة تسلل قد لا تعبر عن المعنى المطلوب، ولكن معناها منع الهجمات او الحد من انتشار البرمجيات الخبيثة، مثل IDS قد يوجد على شكل جهاز (Hardware) او برنامج (Software). وله نوعين NIPS و HIPS وايضا الفرق بينهما كما الفرق بين HIDS و NIDS وأود ان اوضح هنا ان في IPS تتم الخطوة الأولى خطوة اكتشاف الهجمة او البرمجية الخبيثة بمثل آلية الكشف ب IDS ولا يوجد اي اختلاف بينهما. ب الذكر عن آليات الكشف سوف أقوم ب توضيحهما.

Signature-based
لكل هجمة او برمجية خبيثة يوجد لها اسلوب معين ما يسمى ب Pattern او، Signature، يتم قراءتها على شكل byte عند وجود او اكتشافها يتم التعرف عليها فوراً بالتالي يظهر التنبيه او الانذار، وهذا ما يسمى ب Signature-based

Anomaly-based
هذا النوع يهدف ل إكتشاف البرمجيات الخبيثة او الهجمات الجديدة التي لم يسبق التعرف عليها والتعرف على اسلوبها، وذلك ب استخدام تقنيات ذكية تهدف الى المقارنة والتحليل، في هذا النوع قد يكثر ما يسمى ب الإنذار الخاطئ (False Positives)

استخدامات Snort

تستطيع استخدام snort ب ثلاث استخدامات مختلفة:

  • Snort باستخدامة ك IDS يمكنك استخدام snort ك IDS ب استخدام الخيار التالي -A الخيار -c لتحديد ملف الإعداد (configuration file ).
    الأمر
      snort -A console -c /your/configurationfile/path

هنا صورة للتوضيح:

  • Snort باستخدامة ك sniffer
    يمكنك استخدام snort لعرض ومعرفه ما يحدث ب الشبكة ب التفصيل ما يتم ارسالة من والى الشبكة معلومات المرسل والمستقبل البروتوكول المستخدم وتفاصيل اخرى.

يوجد هناك ثلاث خيارات لهذا الإستخدام
snort -v
هنا سيتم عرض عنوان IP و معلومات tcp/udp/icmp
snort -d
هنا يتم عرض معلومات الطبقة السابعة من طبقات tcp/ip وهي طبقة Application
snort -e
هنا يتم عرض معلومات الطبقة الثانية من طبقات tcp/ip وهي طبقة Data Link

هنا توضيح بالصورة لنتيجة تطبيق الأمر  snort -vde

  • Snort باستخدامة ك Packet Logger

يمكنك استخدام snort لتخزين هذه التفاصيل ب ملف على شكل log باستخدام الخيار التالي -l

الأمر
snort -vde -l ./yourlogfolder

لا يمكن قراءة شكل الملف بشكل مباشر سيظهر ب شكل غير مفهوم.
لذلك لقراءة وعرض هذه الملف استخدم الخيار -r
الأمر
snort -r yourlogfile

اعداد snort

في البداية بعد تحميل snort هناك عده خطوات يجب القيام بها، لتعديل ملف snort.conf الخطوات:

  1. الدخول لملف snort.conf ب داخل المجلد الخاص ب snort.
  2. تعديل قيمة $HOME_NET الي عنوان ال IP الخاص بك مثل 192.168.100.0/24.
  3. تعديل قيمة ال $EXTERNAL_NET الى !$HOME_NET وذلك يعني اي عنوان اخر خارج نطاق العنوان الخاص بك يعد عنوان خارجي.
  4. اضافة ملف rule الخاص بك بكتابة الأمر include $RULE_PATH/myrules.rules

هنا صورة لتوضيح:

طريقة كتابة القواعد Rule

برامج IDS,IPS او Firewalls تقوم باتابع مجموعه من القواعد؛ ل تمرير او رفض او التنبيه عند حدوث اتصال معين من داخل الشبكة لخارجها او العكس.

ل كتابه القواعد في snort هناك ترتيب واسلوب معين يجب اتباعه؛

الأوامر وهي

  • alert اظهار تنبيهات للاتصال.
  • log تسجيل بيانات الاتصال.
  • pass تجاهل الاتصال.
  • reject رفض الاتصال مع تسجيل البيانات (Log) وارسال رسالة الرفض للمرسل.
  • sdrop رفض الاتصال بدون تسجيل بيناته.

البروتوكول (tcp udp او icmp )
msg: الرسالة التي تظهر عند ظهور التنبيه.

يوجد تفاصيل أكثر بما يخص كتابة القواعد سأذكرها بالجزء الثاني من المقال ان شاء الله.

مثال بسيط

سنقوم ب التنبه عند استخدام اي من مستخدمي الشبكة ل موقع معين Youtube كمثال

  • داخل مستند myrules.rules الذي قمنا بإنشاءة في خطوات اعداد snort
    قم بكتابه القاعدة التالية

alert tcp any any -> $EXTERNAL_NET any (content:"youtube.com";msg:"Going to youtube"; sid:1000001; )

  • ب سطر الأوامر قم بكتابة الأمر التالي
      snort -A console -c /your/configurationfile/path
  • عند زيارة موقع Youtube ستظهر التنبيهات بالشكل التالي

خاتمة

في هذه المقاله تحدثنا عن Snort، اهم المصطلحات استخدامته المختلفة، والهدف منه. هذا الجزء الأول بما يخص snort بإذن الله سأتحدث ب الجزء الثاني عن القواعد بشكل مفصل اكثر.

جميع الحقوق محفوظة

شكرا لقراءتك سارة آل جابر

كُتب في 26/03/2020