أمن المعلومات

تعرف على أداة snort – الجزء الأول

تعرف على أداة snort – الجزء الأول

ما هي أداة snort؟

أداة Snort هي أداة مجانية ومفتوحة المصدر تستخدم كنظام كشف التسلل (IDS) أو نظام منع التسلل (IPS). تم برمجتها وتطويرها من قبل Martin Roesh في عام 1998. يتم تطويرها الآن من قبل شركة sourcefire. تم تصنيفها في 2009 كأحد افضل البرامج مفتوحة المصدر المستخدمة في أمن المعلومات.

 

تدعم هذه الأداة جميع أنظمة التشغيل المعروفة (ويندوز,لينكس,يونكس ,ماك) ويمكن استخدامها في ثلاثة أشكال وهي :

  • استخدامها للتنصت على الشبكة (Sniffer Mode) بحيث تقوم الأداة بقراءة الحزم التي يتم تراسلها على الشبكة واظهارها أمامك على الشاشة.
  • استخدامها لحفظ وتخزين الحزم (Packet Logger) بحيث تقوم بتخزين الحزم التي يتم تراسلها على الشبكة بملف على الجهاز (Log File).
  • استخدامها كجهاز كشف/ منع التسلل (IDS/IPS) ويعتبر هذا الاستخدام هو الإستخدام الشائع لهذه الأداة.

سنقوم في البداية بشرح كيف يتم استخدام هذه الأداة كأنظمة كشف ومنع التسلل (IDS/IPS) وبعدها سنتطرق في بقية دروس هذه السلسلة لاستخداماتها الاخرى.

 

سنعتمد في شروحاتنا على نظام تشغيل أوبنتو لينكس بحيث سنقوم في هذا الدرس بشرح كيفية تنصيب الأداة عليه و إجراء بعض الإعدادات الخاصة بها ولكن يمكنكم تنصيبها على أي نظام تشغيل آخر أو أي توزيعة لينكس أخرى.

لتثبيت الأداة على أوبنتو سنقوم في البداية بكتابة الأمر التالي في سطر الأوامر (اذا لم يكن لديك خبرة بالتعامل مع لينكس ننصحك بمتابعة الدورة التالية والتي تؤهلك للوصول الى مستوى جيد : http://technawi.net/?cat=12 )

 

sudo apt-get install snort

بعد تثبيت الأداة سنقوم بكتابة الأمر التالي لمعرفة إصدار الأداة

snort -V

snort-1

سنقوم الآن ببدء إجراء الإعدادات الخاصة بهذه الأداة (Snort), حيث يتوجب علينا في البداية معرفة عنوان الإنترنت الذي سنقوم بإعداد الأداة عليه, حيث سنقوم بكتابة الأمر التالي والذي سيظهر لنا جميع كروت الشبكة المتوفرة على نظام التشغيل

ifconfig

يمكن أن يختلف اسم الشبكة الذي ترغب بإجراء اعدادات الأداة عليه ولكن في الغالب سيكون اسمه eht0 وفي حالتنا هنا اسمه مختلف وهو ens33 كما في الصورة التالية

 

snort-2

 

الان نذهب ونأخذ عنوان الإنترنت كما هو موضح في الصورة التالية (وهو في حالتنا هذه 192.168.66.140)

 

snort-3

 

سنقوم الآن بإجراء تعديلات على ملف الإعدادات الخاص بالأداة و الموجود في المسار التالي

/etc/snort/snort.conf

سنقوم بكتابة الأمر التالي و الذي سيقوم بفتح الملف بإستخدام محرر النصوص gedit

sudo gedit /etc/snort/snort.conf

ملاحظة : يجب ان تكون قد قمت بتنصيب محرر نصوص gedit أو يمكن استخدام أي محرر نصوص آخر مثل vi editor أو غيره. ولتنصيب محرر نصوص gedit يجب عليك كتابة الأمر التالي :

apt-get install gedit

الآن وبعد أن يتم تشغيل محرر النصوص وفتح ملف الإعدادات, قم بالذهاب للمكان كما في الصورة التالية

 

snort-4

 

نقوم الآن بكتابة السطر التالي

ipvar HOME_NET [network]

حيث نقوم بإستبدال [network] بعنوان الشبكة الخاصة بنا وهو نفس عنوان الإنترنت السابق مع حذف آخر خانة و استبدالها بـ 0 و اضافة /24 وفي حالتنا يصبح التالي

192.168.66.0/24

اي في نهاية المطاف يصبح السطر الذي سنقوم بإضافته كالآتي :

ipvar HOME_NET 192.168.66.0/24

سيصبح الملف بعد اضافة السطر كالآتي (مع مراعاة كتابة السطر في المكان الموضح في الصورة)

 

 

snort-5

 

سنقوم الآن بكتابة أمر خاص (rule) وذلك لفحص أي عملية ping داخل الشبكة, وللقيام بذلك يجب علينا أن نقوم بفتح الملف الخاص بالقواعد (rules) الخاصة بالأداة والذي يوجد في المسار التالي

/etc/snort/rules/local.rules

حيث سنقوم بفتحه بإستخدام محرر نصوص gedit بالأمر التالي

sudo gedit /etc/snort/rules/local.rules

هذا الملف فارغ ولا يوجد به أي شيء, لذلك سنقوم بكتابة السطر التالي الخاص بفحص أوامر الـ ping في الشبكة ومن ثم سنقوم بحفظ الملف و إغلاقه

alert icmp any any -> $HOME_NET any (msg:”ICMP test”; sid:1000001; rev:1; classtype:icmp-event);

دعونا الآن نوضح المقصود بالسطر السابق والذي أضفناه على ملف قواعد الـ Snort :

  • alert : تعني بأن يتم إظهار تحذير ان تحقق الشرط في القاعدة المكتوبة.
  • icmp : تعني بأن هذه القاعدة تتحقق فقط على الحزم الخاصة ببروتوكول ICMP (المستخدم من قبل الأمر ping).
  • any الأولى : تشير الى عنوان الإنترنت للجهاز الذي يقوم بتنفيذ الأمر ping وهي تعني أن الأداة ستراقب جميع عناوين الإنترنت.
  • any الثانية : تشير الى رقم المنفذ الذي سيتم المراقبة عليه وهي تعني أن الأداة ستراقب جميع المنافذ.
  • الإشارة <- : تعني هذه الإشارة اتجاه الحزم من عنوان الإنترنت للمصدر الى عنوان الإنترنت للجهاز المقصود.
  • $HOME_NET : عنوان الإنترنت للجهاز المراد تنفيذ الأمر ping عليه وهو في هذه الحالة
  • any : تشير الى رقم المنفذ على الجهاز المراد فحصه وهي تعني أن الأداة ستراقب جميع المنافذ.
  • آخر جزء في القاعدة والموجود بين الأقواس هو جزء إختياري وشرحه كالآتي :
  • msg:”ICMP test” : سيتم اضافة هذه العبارة على أي تحذير تظهره الأداة.
  • sid:1000001 : تعني رقم القاعدة الخاصة بالأداة حيث أن الأرقام التي هي أقل من “مليون” محجوزة مسبقاً من الأداة.
  • rev:1 : يستخدم لتوثيق القاعدة ولتسهيل عمليات معالجتها وتتبعها في المستقبل.
  • classtype:icmp-event : يقصد به تصنيف القاعدة بأنها من نوع icmp-event وهي تصنيفات معرفة مسبقاً في هذه الأداة. حيث تساعدنا في عملية تنظيم القواعد.

سنقوم الآن بإستخدام هذه الأداة للعمل كنظام لكشف عمليات التسلل (IDS). وللقيام بذلك سنقوم بكتابة الأمر التالي في سطر الأوامر :

sudo snort -A console -q -c /etc/snort/snort.conf -i eht0

مع ملاحظة وجوب تغيير إسم الشبكة من eth0 للإسم الموجود عندك كما في جهازي وهو enss3

توضيح الأمر :

  • -A تعمل على طباعة التحذيرات التي تصل على الشاشة.
  • q- تعمل على عدم إظهار بعض المعلومات مثل الـ banner وغيرها عند التشغيل.
  • c لتحديد مسار ملف إعدادت الأداة.
  • -i لتحديد كرت الشبكة.

سنقوم الآن بتنفيذ الأمر وستجد بأنه لا يوجد أي تحذيرات بسبب عدم وجود أي جزم من نوع ICMP خاصة بتنفيذ الأمر ping, لذا سنقوم بالذهاب الى جهاز آخر وهو نظام تشغيل كالي لينكس وسنقوم بعمل ping على جهاز داخل الشبكة كما يظهر في الصورة.

snort-6

نعود مرة أخرى لنظام التشغيل الذي قمنا بتنصيب الـ sonrt عليه لنجد بأنه قد أظهر النتائج كما في الصورة التالي ولإيقاف تنفيذ الأمر نقوم بالضغط على ctrl + c.

snort-7

 

نلاحظ بأن هذه الأداة أظهرت لي بأن هنالك من يقوم بتنفيذ الأمر ping على الشبكة كما في الصورة السابقة.

دعونا الآن نقوم بكتابة قاعدة جديدة لكشف أي محاولة اتصال ببروتوكول ftp من الشبكة, حيث كما هو معروف فإن بروتوكول ftp يبعث الحزم على شكل حزم tcp عبر منفذ رقم 21 وبالتالي ستكون القاعدة الخاصة كما يلي مع ضرورة تغيير العنوان حسب العنوان المراد (عنوان الإنترنت) :

alert tcp 192.168.x.x any -> $HOME_NET 21 (msg:”FTP connection attempt”; sid:1000002; rev:1;)

حيث سنقوم بكتابة الأمر أو القاعدة بالملف السابق بعد فتحه بإستخدام أي محرر نصوص مثل gedit. مع ضرورة ايقاف القاعدة الأولى بوضع اشارة # قبلها لإلغاء تفعيلها, ليصبح شكل الملف بعد اجراء التعديلات كما يلي :

 

حيث أنه في المثال الحالي نريد فقط اظهار تحذيرات فقط اذا حاول العنوان 192.168.66.33 أن يقوم بإجراء اتصالات من نوع ftp. بعد ذلك سنقوم بتشغيل الـ snort عبر الأمر التالي :

snort-8

sudo snort -A console -q -c /etc/snort/snort.conf -i eht0 -K ascii

حيث يساعدنا الخيار -K ascii على تسجيل أي تحذير بترميز ascii.

سنحاول الآن الإتصال على الجهاز من جهاز آخر عبر الشبكة على منفذ 21 (بروتوكول ftp) وذلك كما في الصورة

snort-9

 

نلاحظ بأن الأداة قد أظهرت التحذيرات التالية

snort-10

 

ملاحظة : يقوم الـ snort بتخزين ملفات السجلات (log files) لأي تحذيرات أو رسائل في ملفات داخل المسار التالي :

/var/log/snort/

لذا إذا اردنا فحص هذه الملفات وتتبعها بشكل إحترافي فما علينا الا فتح برنامج wireshark لتحليل الشبكات وبعدها الذهاب الى File ومن ثم Open وبعدها نذهب للمسار السابق ونقوم بإختيار أي ملف مراد ومن ثم نقوم بفتحه ليظهر بالشكل التالي :

 

snort-11

الى هنا نكون قد إنتهينا من الجزء الأول من سلسلة شروحات أداة Snort, نرجو ان يكون الدرس مفيد لكم ولا تنسوا متابعتنا بشكل مستمر لكل ماهو جديد ومميز.

 

عن الكاتب : عمر مرقه ابلغ من العمر 17 سنة مهتم بمجال امن المعلومات من الأردن.

المقال بتصرف من موقع infosecinstitute.

 

 

لمتابعة المزيد من الأخبار و المقالات و الفيديوهات التعليمية, تابعونا على صفحتنا على موقع فيسبوك عبر الرابط التالي : صفحة موقع تكناوي.نت

 

الوسوم

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

17 + 19 =

إغلاق