Snort 3 هو الجيل القادم من Snort IPS (نظام منع التطفل). سيعرض لك هذا الملف ما يقدمه Snort++ وسيرشدك خلال الخطوات بدءًا من التنزيل وحتى العرض التوضيحي. إذا لم تكن على دراية بـ Snort، فيجب عليك إلقاء نظرة على وثائق Snort أولاً. وسوف نتناول المواضيع التالية:
ملخص
التبعيات
تحميل
بناء الشخير
تشغيل الشخير
التوثيق
يصرخ
يتضمن هذا الإصدار من Snort++ ميزات جديدة بالإضافة إلى جميع ميزات Snort 2.X وإصلاحات الأخطاء للإصدار الأساسي من Snort باستثناء ما هو موضح أدناه:
Project = Snort++ Binary = snort Version = 3.0.0 (Build 250) from 2.9.11
فيما يلي بعض الميزات الرئيسية لبرنامج Snort++:
دعم خيوط معالجة الحزم المتعددة
استخدم تكوينًا مشتركًا وجدول السمات
استخدم تكوينًا بسيطًا وقابلاً للبرمجة
اجعل المكونات الرئيسية قابلة للتوصيل
خدمات الكشف التلقائي للتكوين بدون منفذ
دعم المخازن المؤقتة اللزجة في القواعد
إنشاء وثائق مرجعية تلقائيًا
توفير دعم أفضل عبر الأنظمة الأساسية
تسهيل اختبار المكونات
استخدم خريطة شبكة مشتركة
تشمل الميزات الإضافية في خريطة الطريق ما يلي:
دعم خطوط الأنابيب لمعالجة الحزم
دعم تفريغ الأجهزة وتكامل مستوى البيانات
دعم وضع الوكيل
دعم ويندوز
إذا قمت بالفعل ببناء Snort، فقد يكون لديك كل ما تحتاجه. إذا لم يكن الأمر كذلك، احصل على الأحدث:
cmake للبناء من المصدر
daq من https://github.com/snort3/libdaq لحزمة IO
dnet من https://github.com/dugsong/libdnet.git لوظائف الأداة المساعدة للشبكة
flex >= 2.6.0 من https://github.com/westes/flex لمحلل بناء جملة JavaScript
g++ >= 7 أو مترجم C++17 آخر
hwloc من https://www.open-mpi.org/projects/hwloc/ لإدارة تقارب وحدة المعالجة المركزية
LuaJIT من http://luajit.org للتكوين والبرمجة النصية
OpenSSL من https://www.openssl.org/source/ لتوقيعات ملفات SHA وMD5 وخيار قاعدة المحتوى المحمي واكتشاف خدمة SSL
pcap من http://www.tcpdump.org لتسجيل نمط tcpdump
pcre من http://www.pcre.org لمطابقة أنماط التعبير العادي
pkgconfig من https://www.freedesktop.org/wiki/Software/pkg-config/ لتحديد تبعيات البناء
zlib من http://www.zlib.net لفك الضغط
توفر الحزم الإضافية ميزات اختيارية. تحقق من الدليل للمزيد.
يوجد مصدر tarball متاح في قسم التنزيلات على snort.org:
snort-3.0.0-a3.tar.gz
يمكنك أيضًا الحصول على الرمز باستخدام:
git clone https://github.com/snort3/snort3.git
توجد حزم إضافية منفصلة لـ cmake توفر ميزات إضافية وتوضح كيفية إنشاء المكونات الإضافية. مصدر الإضافات موجود في snort3_extra.git repo.
اتبع الخطوات التالية:
إعداد الدليل المصدر:
إذا كنت تستخدم نسخة جيثب:
سي دي شخير3/
بخلاف ذلك، قم بما يلي:
القطران zxf snort-tarballcd snort-3.0.0*
مسار تثبيت الإعداد:
تصدير my_path=/path/to/snorty
تجميع وتثبيت:
للإنشاء باستخدام cmake وmake، قم بتشغيلconfig_cmake.sh. سيقوم تلقائيًا بإنشاء وتعبئة دليل فرعي جديد يسمى "إنشاء".
./configure_cmake.sh --prefix=$my_pathcd build قم بتثبيت -j $(nproc).
ملحوظة :
إذا كان بإمكانك القيام بـ src/snort -V الذي قمت بإنشائه بنجاح.
إذا كنت معتادًا على استخدام cmake، فيمكنك تشغيل cmake/ccmake بدلاً منconfig_cmake.sh.
سوف يقوم cmake --help بإدراج أي مولدات متاحة، مثل Xcode. لا تتردد في استخدام واحدة، ولكن سيتم توفير المساعدة في ذلك بشكل منفصل.
وهنا بعض الأمثلة. إذا كنت تستخدم قواعد و/أو تكوينات Talos، فيجب عليك أولاً تعيين أي متغيرات مطلوبة في الجزء العلوي من snort.lua وsnort_defaults.lua.
يوفر Snort++ الكثير من المساعدة من سطر الأوامر، بما في ذلك:
$my_path/bin/snort --help$my_path/bin/snort --help-moduleقمع$my_path/bin/snort --help-config | موضوع جريب
فحص وتفريغ PCAP. فيما يلي، استبدل a.pcap بالمفضل لديك:
$my_path/bin/snort -r a.pcap$my_path/bin/snort -L dump -d -e -q -r a.pcap
تحقق من التكوين باستخدام القواعد أو بدونها:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules
تشغيل وضع IDS. فيما يلي، استبدل pcaps/ بمسار إلى دليل يحتوي على ملف *.pcap واحد أو أكثر:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -Aalert_test -n 100000
دعونا نلغي 1:2123. يمكننا تعديل conf أو القيام بذلك فقط:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules -r a.pcap -Aalert_test -n 100000 --lua "suppress = { { gid = 1, sid = 2123 } }"
انتقل إلى دليل يحتوي على سلاسل رسائل متعددة للحزم بالكامل:
$my_path/bin/snort -c $my_path/etc/snort/snort.lua -R $my_path/etc/snort/sample.rules --pcap-filter *.pcap --pcap-dir pcaps/ -A تنبيه سريع --max-packet-threads 8
توجد أمثلة إضافية في doc/usage.txt.
ألقِ نظرة على الدليل، الذي يتم إنشاء أجزاء منه بواسطة الكود حتى يظل محدثًا:
$my_path/share/doc/snort/snort_manual.pdf$my_path/share/doc/snort/snort_manual.html$my_path/share/doc/snort/snort_manual/index.html
ليس لديها الكثير حول الكيفية والسبب، ولكنها تحتوي على جميع التكوينات المتاحة حاليًا، وما إلى ذلك. بعض التغييرات الرئيسية في القواعد:
يجب عليك استخدام الخيارات الفرعية للمحتوى المفصول بفواصل مثل هذا: content:"foo"، nocase؛
يجب أن تظهر محددات المخزن المؤقت قبل المحتوى وتظل سارية المفعول حتى يتم تغييرها
تم حذف محددات المخزن المؤقت pcre
تحقق من الدليل لمعرفة المزيد عن Snort++ vs Snort
راجع قسم المرجع اليدوي لفهم كيفية تحديد المعلمات، وما إلى ذلك.
ويغطي أيضًا الميزات الجديدة غير الموضحة هنا:
snort2lua، أداة لتحويل قواعد وقواعد Snort 2.X إلى النموذج الجديد
مفتش HTTP جديد
الموثق، لتعيين التكوين لحركة المرور
معالج للتكوين المستقل عن المنفذ
تحليل محسّن للقواعد - مسافة بيضاء عشوائية، وتعليقات على نمط C، وتعليقات #begin/#end
قذيفة سطر الأوامر المحلية والبعيدة
o")~
نأمل أن تكون متحمسًا بشأن Snort++ مثلنا. أخبرنا برأيك في قائمة مستخدمي الشخير. في هذه الأثناء، سوف نبقي خطمنا على حجر الرحى.