..

نحوه نصب و راه اندازی مانتیورینگ اسنورت

معمولاً مدیران سرور ها توجه زیادی به معقوله امنیت دارن ولی پیاده‌سازی سرویسی که بتونه تهدیدات رو شناسایی کنه و قابل یادگیری باشه امر سخت و طاقت فرسایی هستش یکی از ابتدایی ترین معقوله ها در این زمینه تأیید دو مرحله برای SSH و یا محدود کردن IP هایی که دسترسی به ریموت دارند هست ولی دیگر سرویس ها آسیب‌پذیر باقی میمونه . در این زمینه ابزار های Intrusion detection system یا به اختصار ids ها توسعه پیدا کردند که به صورت کلی شامل دو نوع host based یا HIDS و network based یا NIDS تقسیم‌بندی میشن. نوع HOST based تنها برای مدیریت یکی از نود ها یا سیستم‌ها هستش یعنی تحلیل پکت ها و لاگ گیری انجام میشه ولی برای یک سیستم . نوع network based روی gateway تعبیه میشه و اقدام به تحلیل پکت ها و سیگنیچر حمله ها میکنه و در صورت حمله از وقوعش جلوگیری یا در صورت خرابکاری به مدیر سیستم اطلاع میده. مورد دیگه درمورد ids ها مدل های پیشگیری یا شناسایی خطرات احتمالی است که شامل دو مدل Signature-based و Anomaly-based میشه . مدلSignature-based با استفاده از الگوها و روش‌هایی که از حملات شناسایی شده اقدام به آنالیز رفتار سیستم و پکت‌ها میکنه از نقطه قوت های این مدل سرعت بالا منطقی بودن و عدم هشدار های کاذب هستش. مدل Anomaly-based در اصل برای شناسایی حملاتی به وجود اومده که به zero-day attack معروف هستن در این حملات اصولاً از روش‌هایی استفاده میشه که ناشناخته هستند. در این روش رفتار نرمال سیستم برای مدتی مورد ارزیابی قرار میگیره و در صورت رفتاری خارج از عادت‌های سیستم اتفاق افتاد به سیس ادمین هشدار میده . از مشکلات این نوع سیستم‌ها میتونه هشدارهای کاذب یا پیچیدگی در فهم باشه . یکی از ابزار هایی که در این زمینه تبدیل به یک استاندارد شده snort هست که NIDS محسوب میشه که از دو مود Anomaly-based و Signature-based به خوبی پشتیبانی میکنه .

###مهم: اگر که با شبکه و زیرساخت و سرویس های لینوکسی و قوائد nix و ruby و bundler و ruby on rails آشنا نیستید این آموزش برای شما طراحی نشده

###نکته: قصد داشتم نحوه نصب و کانفیگ snort رو هم آموزش بدم که دیدم در این سایت آموزش داده پس به پیاده‌سازی یه وب اینترفیس و سیستم تحلیل لاگ بسنده میکنم . البته که سنترالایز کردن لاگ های snort میتونه حرکت خوبی باشه مثل استفاده از graylog ,elasticsearch ولی استفاده از ابزارهای مانیتورینگ امنیتی در محیط های کوچکتر میتونه مفیدتر باشه .

من از ابزار snorby برای این موضوع استفاده میکنم

در قدم اول روبی و gems رو بر روی سیستم نصب میکنیم

sudo apt-get install ruby-full
or
sudo yum install ruby ruby-devel

و گیت البته

sudo apt-get install git
or
sudo yum install git

سپس اقدام به clone کردن snorby میکنیم

git clone https://github.com/Snorby/snorby

مراحل نصب

cd snorby
bundle install
bundle exec rake snorby:setup
rails server -p 8888

تا اینجای کار اگه همه چیز به خوبی و خوشی پیش رفته باشه و در دپندنسی های پکیج های روبی به مشکلی برنخورده باشین ( انتظار میره که بلد باشین پیش نیاز ها رو رفع کنید ) باید بریم سراغ فرستادن لاگ های snort به سمت یکی از دیتابیس های مورد علاقمون که mysql(mariadb) یا postgres هست . متأسفانه از نسخه ۲.۹ به بعد فرستادن لاگ ها از طریق کانفیگ snort غیر فعال شده پس برای این کار نیاز به ابزار دیگه ای به اسم barnyard2 داریم . برای کانفیگ و نصب این ابزار کافیه

sudo autogen.sh

رو وارد کنیم تا فایل configure ساخته بشه سپس در سویچ های configure این خطوط اضافه

./configure --with-mysql –with-mysql-libraries=/usr/lib64/mysql

البته توجه کنید که بنا به معماری سیستم شما این آدرس لایبرری میتونه متفاوت باشه که میتونید با

whereis libmysqlclient

این آدرس رو پیدا کنید در صورت حل شدن دپندنسی ها سراغ کانفیگ بریم حالا هر کجای سیستم شما که barnyard نصب شده به دنبال کانفیگش میگردیم :))) بعد از پیدا کردن کانفیگ توصیه ام این هستش که در پوشه تنظیمات snort کپی بشه که از آشفتگی های بعدی جلوگیری کنه برای مثال

sudo cp /user/local/lib/etc/barnyard2.conf /etc/snort/

حال نوبت اضافه کردن تغییرات به کانفیگ هستش توجه کنید که من از دیتابیس خود snorby جهت ذخیره سازی لاگ های استاندارد snort استفاده میکنم تحت فیلد alert در انتها کانفیگ قرار میدم

nano etc/snort/barnyard2
output database: alert, mysql, user=root password=???? dbname=snorby host=localhost

حال در صورت اجرایی بودن سرویس snortd میشه به راحتی لاگ های دریافتی رو در دیتابیس درج کرد

sudo /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort

حال نوبت لاگین کردن به پنل snorby است که به صورت پیشفرض روی پورت ۳۰۰۰ اجرا می‌شود که من به دلیل درگیر بودن این پورت از سویچ -p استفاده میکنم نکته مهم : حتماً در صورت تست و نهایی شدن از یک وب سرور جهت اجرا کردن وب اپلیکیشن استفاده کنید نام کاربری و رمز پیشفرض به ترتیب : [email protected] و snorby هست که توصیه میکنم حتماً تعویض کنید

وارد داشبود شدید مشاهده میکنید که لاگ در حال ذخیره شدن است . ###برای دوستانی که با سرویس های لاگ منیجمنت و آنالیز آشنایی دارند توصیه میکنم از filebeat جهت ارسال لاگ هابه logstash استفاده کنند .