ELK Stack چیست و چطور میتوان از آن به عنوان سامانه SIEM برای بررسی و تحلیل خودکار لاگها استفاده کرد؟ برای آشنایی با سامانه ELK Stack و آموزش استفاده از آن به صورت سامانه SIEM این مقاله را بخوانید.
امروزه هر سازمانی چندین سرور یا رایانه شخصی در اختیار دارد که سرویسها و پرتالهای مختلفی بر روی آنها نصب است. اکثریت این سرویسها برای انجام کارهای سازمان مورد استفاده قرار میگیرند که از جمله آنها میتوان به سامانههای اشتراک اطلاعات همانند Sharepoint، سرویس پست الکترونیکی، اشتراک فایل، اتوماسیون اداری و... اشاره کرد. برخی دیگر از این سرویسها نیز ممکن است برای حفظ امنیت سایبری سازمان مورد استفاده قرار گیرند که از آن جمله میتوان به سرورهای دیواره آتش، ضدویروس و ... اشاره کرد. حتی یک اداره کوچک هم حداقل بین ۱۰ تا ۲۰ سرور یا رایانه شخصی دارد. این ماشینها به طور مداوم داده و لاگ تولید میکنند. این دادهها و لاگها حاوی دادههای مهمی هستند. برای شناسایی حمله به سازمان خود یا پیدا کردن نقصهای امنیتی باید این لاگها را به دقت بررسی کنید. طبیعی است که بررسی لاگهای ایجاد شده توسط تعداد زیادی ماشین، عملی زمانبر است که شاید انجام دستی آن غیر ممکن باشد.
سامانههای SIEM برای خودکارسازی بررسی و تحلیل لاگهای رایانههای سازمان توسعه پیدا کردهاند. سازمانها میتوانند با استفاده از سامانههای SIEM کلیه لاگهای درون سازمانی را در یک محل تجمیع و تحلیل کنند. یک سامانه SIEM قدرتمند علاوه بر اینکه لاگها را جمعآوری میکند، میتواند ارتباط بین آنها را شناسایی کند و برای مثال، لاگهای مرتبط با هم را به صورت یک لاگ خلاصهشده قابل فهم به شما نمایش دهد.
امروزه استفاده از سامانههای SIEM و ایجاد واحد SOC به نیازی اساسی جهت افزایش امنیت سازمانها تبدیل شده است. عموما سامانههای SIEM به صورت تجاری ارائه میشوند و از مهمترین آنها میتوان به AlienVault USM، IBM QRadar، ArcSight و... اشاره کرد. با این حال، چندین سامانه SIEM رایگان نیز موجود هستند که میتوانند در تحلیل لاگها، کمک زیادی به سازمانها برسانند. یکی از این سامانهها، ELK Stack نام دارد که ترکیبی از سه پروژه Elasticsearch، Logstash و Kibana است.
Elasticsearch یکی از مطرحترین موتورهای جستجو توزیعشده (distributed search engines) موجود است و میتوان آن را قلب سامانه ELK Stack دانست. شما میتوانید با ترکیب Elasticsearch با سامانههای Logstash و Kibana یک SIEM رایگان (البته تنها با قابلیتهای ابتدایی) به نام ELK stack بسازید. ELK مخفف سه سامانه Elasticsearch، Logstash و Kibana است.
در این مقاله آموزشی به شما خواهیم گفت که قابلیتهای ELK Stack چیست و سپس، نحوه نصب و راهاندازی آن را در سازمان توضیح خواهیم داد و در انتها با شیوه ارسال لاگهای محصولات سایبرنو از جمله کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو به سامانه ELK Stack آشنا خواهید شد. با مجله سایبرنو همراه باشید.
در این مقاله میخوانید:
۲- آموزش نصب و راهاندازی ELK Stack
۳- ارسال لاگهای محصولات سایبرنو به ELK Stack
نمایی از داشبورد Elastic Security در شکل زیر ارائه شده است:
از جمله قابلیتهای اصلی ELK Stack میتوان به موارد زیر اشاره کرد:
حالا که گفتیم قابلیتهای ELK Stack چیست، وقت آن است تا در رابطه با نصب و راهاندازی این سامانه SIEM صحبت کنیم. همچنان با سایبرنو همراه باشید.
در این بخش آموزش مقدماتی نصب ELK Stack را به صورت Centralized و بدون Clustering ارائه میدهیم. برای شروع نصب، باید سیستم عامل Ubuntu حداقل نسخه 20.04 با حداقل 8 گیگابایت حافظه اصلی به همراه 4 هسته پردازنده داشته باشید.
در مرحله اول دستورات زیر را بزنید تا Elasticsearch نصب شود:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt-get update
sudo apt-get install elasticsearch
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
sudo systemctl status elasticsearch
بعد از اجرای دستورات بالا، باید برخی از تنظیمات Elasticsearch را تغییر دهید. فایل تنظیمات را با دستور زیر باز کنید:
sudo nano /etc/elasticsearch/elasticsearch.yml
سپس فیلد network.host را برابر آدرس آیپی رایانه فعلی (سرور ELK) قرار دهید و دستورات زیر را به فایل اضافه کنید:
discovery.type: single-node
حالا سرویس elastic را با دستور زیر دوباره راهاندازی کنید:
sudo systemctl restart elasticsearch
در مرحله بعدی باید Logstash را نصب کنید. نصب Logstash به سادگی با اجرای دستورات زیر قابل انجام خواهد بود:
sudo apt-get install logstash
sudo systemctl start logstash
sudo systemctl enable logstash
sudo systemctl status logstash
در مرحله بعدی باید Kibana را نصب کنید. برای نصب Kibana دستورات زیر را وارد کنید:
sudo apt-get install kibana
sudo systemctl start kibana
sudo systemctl enable kibana
sudo systemctl status kibana
حالا یک توکن جهت احراز هویت بسازید. این توکن توسط ابزار Kibana برای ارتباط با Elasticsearch مورد استفاده قرار میگیرد:
sudo /usr/share/elasticsearch/bin/elasticsearch-service-tokens create elastic/kibana devdashboard
مقدار توکن ایجادشده در خروجی این دستور را به طور موقت در جایی ذخیره کنید. جهت اطمینان از درست بودن توکن خود دستور زیر را اجرا کنید (به جای YOUR_TOKEN مقدار Token خود را قرار دهید):
curl -k -H "Authorization: Bearer YOUR_TOKEN" https://192.168.1.116:9200/
اگر خروجی دستور بالا چیزی همانند شکل زیر بوده است، یعنی Token شما معتبر است و به درستی کار میکند. در صورتی که با خطایی همانند Authentication Failed مواجه شدید، به این معناست که Token معتبر نیست.
سپس باید تنظیمات Kibana را انجام دهید. فایل تنظیمات Kibana را باز کنید:
sudo nano /etc/kibana/kibana.yml
تنظیمات زیر را در این فایل اعمال کنید:
sudo /usr/share/kibana/bin/kibana-encryption-keys generate
بعد از اعمال تنظیمات بالا یک بار سرویس Kibana را دوباره راهاندازی کنید:
sudo systemctl restart kibana
اگر همه چیز به درستی تنظیم شده باشد، سرویس Kibana باید بتواند با سرویس Elasticsearch ارتباط برقرار کنید. شما میتوانید همانند شکل زیر، با وارد کردن آدرس http://your_ip:5061/ به داشبورد Kibana دسترسی پیدا کنید.
نکته: نام کاربری ورود به داشبورد عبارت elastic است و رمز عبور به طور تصادفی در هنگام نصب ساخته شده است. جهت ریست کردن رمز عبور کاربر میتوانید از دستور زیر استفاده کنید:
sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic
مطابق شکل زیر، بعد از ورود به Elasticsearch قابلیت Elastic Security را فعال کنید:
سامانه ELK Stack به طور پیشفرض دارای ماژولهایی برای ارسال لاگ سامانههای مطرح همانند Web Serverهای Apache، Nginx و ... است اما برای سایر ابزارها و برنامهها شما باید فرمت لاگها را تعریف کنید تا ELK Stack بتواند لاگها را به خوبی Decode کند. در این بخش چگونگی ارسال لاگ محصولات کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو، به سامانه ELK Stack را توضیح میدهیم.
برای ارسال لاگهای این محصولات به ELK Stack، ابتدا ابزار FileBeat را بر روی سرور محصول نصب کنید. برای این کار در ترمینال سرور دستورات زیر را وارد کنید:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
sudo apt-get update
sudo apt-get install filebeat
sudo systemctl enable filebeat
سپس، همانند تصویر زیر، در پنل مدیریتی محصولات سایبرنو قابلیت ارسال لاگها به آدرس 127.0.0.1 را فعالسازی کنید:
سپس، باید تنظیمات Filebeat را انجام دهید. فایل تنظیمات Filebeat را با اجرای دستور زیر باز کنید:
sudo nano /etc/filebeat/filebeat.yml
بخش output.elasticsearch را Comment کرده و بخش output.logstash را از حالت Comment خارج کنید (تا لاگها ابتدا به logstash ارسال شود). مطابق شکل زیر، به جای localhost آدرس آیپی سرور Elastic را قرار دهید:
مطابق شکل زیر، در زیر عبارت filebeat.inputs کدهای زیر را قرار دهید تا Filebeat بتواند لاگهای محصولات سایبرنو را تجزیه و تحلیل کند:
https://gist.github.com/cyberno-ir/62f5d3a8183d7a71585f8251205ce449#file-elk-stack-log-yml
بعد از اعمال تنظیمات بالا، یک بار سیستم را راهاندازی مجدد کنید. بعد از انجام این کار شما میتوانید مثل شکل زیر، لاگهای محصولات سایبرنو را در داشبورد Elastic Security ببینید:
نکته: چنانچه میخواهید لاگهایی که در آن بدافزار یافت شدهاند را در بین لاگها پیدا کنید، میتوانید از Query زیر استفاده کنید:
{"query":{"bool":{"should":[{"exists":{"field":"malware.normal.*"}},{"exists":{"field":"malware.compressed.*"}}]}}}
نکته: این راهنما تنها برای ۳ محصول کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو قابل استفاده است. چنانچه نیاز به ارسال لاگهای سایر محصولات سایبرنو به سامانه Elastic Security را دارید، میتوانید از طریق پیشتیبانی سایبرنو با ما در ارتباط باشید.
ELK Stack نوعی سامانه SIEM رایگان برای تحلیل و بررسی خودکار لاگهای ایجاد شده توسط کامپیوترها و دیگر ماشینهای یک سازمان است. این سامانه دارای قابلیتهایی شامل شخصیسازی نحوه نمایش تحلیل لاگها و رخدادهای درون سازمان، قابلیت یکپارچهسازی با Elastic EDR، شناسایی بدافزارها، تحلیل لاگها با ابزارهای Beats و قابلیت شناسایی آسیبپذیریها و آنومالیها در لاگها است. برای نصب این سامانه باید Elasticsearch، Logstash و Kibana را روی یک سیستم Ubuntu نصب کنید. همچنین، امکان ارسال لاگهای محصولات سایبرنو به سامانه ELK Stack وجود دارد که آموزش آن در بخش آخر مقاله ارائه شد.