ELK Stack چیست و چطور از آن به عنوان سامانه SIEM استفاده کنیم؟

ELK Stack چیست و چطور از آن به عنوان سامانه SIEM استفاده کنیم؟

ELK Stack چیست و چطور می‌توان از آن به عنوان سامانه SIEM برای بررسی و تحلیل خودکار لاگ‌ها استفاده کرد؟ برای آشنایی با سامانه ELK Stack و آموزش استفاده از آن به صورت سامانه SIEM این مقاله را بخوانید.

امروزه هر سازمانی چندین سرور یا رایانه شخصی در اختیار دارد که سرویس‌ها و پرتال‌های مختلفی بر روی آن‌ها نصب است. اکثریت این سرویس‌ها برای انجام کارهای سازمان مورد استفاده قرار می‌گیرند که از جمله آن‌ها می‌توان به سامانه‌های اشتراک اطلاعات همانند Sharepoint، سرویس پست الکترونیکی، اشتراک فایل، اتوماسیون اداری و... اشاره کرد. برخی دیگر از این سرویس‌ها نیز ممکن است برای حفظ امنیت سایبری سازمان مورد استفاده قرار گیرند که از آن جمله می‌توان به سرور‌های دیواره‌ آتش، ضدویروس و ... اشاره کرد. حتی یک اداره کوچک هم حداقل بین ۱۰ تا ۲۰ سرور یا رایانه شخصی دارد. این ماشین‌ها به طور مداوم داده و لاگ تولید می‌کنند. این داده‌ها و لاگ‌ها حاوی داده‌های مهمی هستند. برای شناسایی حمله به سازمان خود یا پیدا کردن نقص‌های امنیتی باید این لاگ‌ها را به دقت بررسی کنید. طبیعی است که بررسی لاگ‌های ایجاد شده توسط تعداد زیادی ماشین، عملی زمان‌بر است که شاید انجام دستی آن غیر ممکن باشد. 

سامانه‌های SIEM برای خودکارسازی بررسی و تحلیل لاگ‌های رایانه‌های سازمان توسعه پیدا کرده‌اند. سازمان‌ها می‌توانند با استفاده از سامانه‌های SIEM کلیه لاگ‌های درون سازمانی را در یک محل تجمیع و تحلیل کنند. یک سامانه SIEM قدرتمند علاوه بر اینکه لاگ‌ها را جمع‌آوری می‌کند، می‌تواند ارتباط بین آن‌ها را شناسایی کند و برای مثال، لاگ‌های مرتبط با هم را به صورت یک لاگ خلاصه‌شده قابل فهم به شما نمایش دهد.

امروزه استفاده از سامانه‌های SIEM و ایجاد واحد SOC به نیازی اساسی جهت افزایش امنیت سازمان‌ها تبدیل شده است. عموما سامانه‌های SIEM به صورت تجاری ارائه می‌شوند و از مهم‌ترین آن‌ها می‌توان به AlienVault USM، IBM QRadar، ArcSight و... اشاره کرد. با این حال، چندین سامانه SIEM رایگان نیز موجود هستند که می‌توانند در تحلیل لاگ‌ها، کمک زیادی به سازمان‌ها برسانند. یکی از این سامانه‌ها، ELK Stack نام دارد که ترکیبی از سه پروژه Elasticsearch، Logstash و Kibana است. 

 

elk stack چیست

 

Elasticsearch یکی از مطرح‌ترین موتورهای جستجو توزیع‌شده (distributed search engines) موجود است و می‌توان آن را قلب سامانه ELK Stack دانست. شما می‌توانید با ترکیب Elasticsearch‌ با سامانه‌های Logstash و Kibana یک SIEM رایگان (البته تنها با قابلیت‌های ابتدایی) به نام ELK stack بسازید. ELK مخفف سه سامانه Elasticsearch، Logstash و Kibana است.

در این مقاله آموزشی به شما خواهیم گفت که قابلیت‌های ELK Stack چیست و سپس، نحوه نصب و راه‌اندازی آن را در سازمان توضیح خواهیم داد و در انتها با شیوه ارسال لاگ‌های محصولات سایبرنو از جمله کیوسک امن سایبرنو، پویشگر چندموتوره و درایو امن سایبرنو به سامانه ELK Stack آشنا خواهید شد. با مجله سایبرنو همراه باشید.

در این مقاله می‌خوانید:

۱- معرفی قابلیت‌های ELK Stack

۲- آموزش نصب و راه‌اندازی ELK Stack

۱-۲- نصب Elasticsearch

۲-۲- نصب Logstash

۳-۲- نصب Kibana

۳- ارسال لاگ‌های محصولات سایبرنو به ELK Stack

 

معرفی قابلیت‌ها ELK Stack

نمایی از داشبورد Elastic Security در شکل زیر ارائه شده است:

 

داشبورد elk

 

از جمله قابلیت‌های اصلی ELK Stack‌ می‌توان به موارد زیر اشاره کرد:

  • با توجه به اینکه ELK از Kibana برای نمایش اطلاعات استفاده می‌کند، لذا کاملا قابل شخصی‌سازی است. همچنین، قالب داشبوردهای زیادی نیز از پیش در سامانه وجود دارد تا بتوانید به راحتی اتفاقات درون سازمان خود را تحت رصد داشته باشید.
  • ELK قابلیت یکپارچه‌سازی با Elastic EDR‌ را دارد و در نتیجه می‌تواند برای شناسایی بدافزار و باج‌افزار در رایانه‌های سازمان نیز مورد استفاده قرار گیرد.
  • ELK انواع مختلفی از ابزارها را برای جمع‌آوری لاگ ارائه می‌دهد. این سامانه علاوه بر داشتن ماژول برای تحلیل لاگ برنامه‌های شناخته‌شده، مجموعه ابزاری به نام خانواده Beats دارد که برای جمع‌آوری داده‌های متنوع از منابع مختلف مورد استفاده قرار می‌گیرد. از شناخته‌شده‌ترین ابزارهای خانواده Beats می‌توان به AuditBeat، FileBeat و WinlogBeat اشاره کرد.
  • ELK از فناوری Machine Learning جهت شناسایی خودکار تهدیدات و ناهنجاری‌ها در بین لاگ‌ها و اطلاعات رسیده به ELK استفاده می‌کند (البته این قابلیت در Elastic Security رایگان نیست).

 

قابلیت های beats elk stack


آموزش نصب و راه‌اندازی ELK Stack

حالا که گفتیم قابلیت‌های ELK Stack چیست، وقت آن است تا در رابطه با نصب و راه‌اندازی این سامانه SIEM صحبت کنیم. همچنان با سایبرنو همراه باشید.

 

مرحله اول: نصب Elasticsearch

در این بخش آموزش مقدماتی نصب 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 را نصب کنید. نصب Logstash‌ به سادگی با اجرای دستورات زیر قابل انجام خواهد بود:

sudo apt-get install logstash
sudo systemctl start logstash
sudo systemctl enable logstash
sudo systemctl status logstash

 

مرحله سوم: نصب Kibana

در مرحله بعدی باید 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 معتبر نیست.

 

توکن elk stack

 

سپس باید تنظیمات Kibana را انجام دهید. فایل تنظیمات Kibana را باز کنید:

sudo nano /etc/kibana/kibana.yml

تنظیمات زیر را در این فایل اعمال کنید:

  • مقدار فیلد server.port را برابر 5061 قرار دهید، تا Kibana بر روی این پورت شنود کند.
  • فیلد server.host را نیز برابر 0.0.0.0 قرار دهید تا Kibana بر روی کلیه کارت‌های شبکه شنود کند. 
  • فیلد elasticsearch.hosts را برابر آدرس سرور Elasticsearch قرار دهید. با توجه به اینکه ما Elasticsearch‌ را بر روی همین سیستم نصب کرده‌ایم، لذا باید آدرس آیپی همین رایانه را بدهیم. به عنوان نمونه اگر آدرس IP رایانه شما 192.168.1.116‌ باشد، آنگاه مقدار این فیلد را برابر ["https://192.168.1.116:9200"] قرار دهید.
  • فیلد elasticsearch.serviceAccountToken را برابر مقدار Tokenی که قبلا ساخته‌اید قرار دهید.
  • در صورتی که گواهی HTTPS سرور Elasticsearch‌ به صورت Self-Signed می‌باشد، فیلد elasticsearch.ssl.verificationMode را برابر none قرار دهید. البته انجام این کار در سرور SIEM واقعی سازمان پیشنهاد نمی‌شود. در سرورهای سازمان توصیه می‌گردد یک گواهی HTTPS معتبر برای سرور Elasticsearch درست کرده و مسیر CA آن را به Kibana‌ بدهید.
  • توصیه می‌شود با دستور زیر کلیدهای رمزنگاری را درست کرده و آن را به انتهای فایل تنظیمات Kibana‌ اضافه نمایید:

sudo /usr/share/kibana/bin/kibana-encryption-keys generate

بعد از اعمال تنظیمات بالا یک بار سرویس Kibana‌ را دوباره راه‌اندازی کنید:

sudo systemctl restart kibana

اگر همه چیز به درستی تنظیم شده باشد، سرویس Kibana‌ باید بتواند با سرویس Elasticsearch ارتباط برقرار کنید. شما می‌توانید همانند شکل زیر، با وارد کردن آدرس http://your_ip:5061/ به داشبورد Kibana دسترسی پیدا کنید. 

 

ورود به پنل elk stack

 

نکته: نام کاربری ورود به داشبورد عبارت elastic است و رمز عبور به طور تصادفی در هنگام نصب ساخته شده است. جهت ریست کردن رمز عبور کاربر می‌توانید از دستور زیر استفاده کنید:

sudo /usr/share/elasticsearch/bin/elasticsearch-reset-password -i -u elastic


مطابق شکل زیر، بعد از ورود به Elasticsearch قابلیت Elastic Security‌ را فعال کنید:
 

فعال کردن Elastic Security

 

ارسال لاگ‌های محصولات سایبرنو به ELK Stack

سامانه 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 را فعال‌سازی کنید:

 

ارسال لاگ به elk stack در پنل مدیریتی سایبرنو

 

سپس، باید تنظیمات Filebeat‌ را انجام دهید. فایل تنظیمات Filebeat را با اجرای دستور زیر باز کنید:

sudo nano /etc/filebeat/filebeat.yml

بخش output.elasticsearch را Comment کرده و بخش output.logstash را از حالت Comment خارج کنید (تا لاگ‌ها ابتدا به logstash ارسال شود). مطابق شکل زیر، به جای localhost آدرس آیپی سرور Elastic‌ را قرار دهید:
 

آدرس آی پی سرور elastic

 

مطابق شکل زیر، در زیر عبارت filebeat.inputs‌ کدهای زیر را قرار دهید تا Filebeat بتواند لاگ‌های محصولات سایبرنو را تجزیه و تحلیل کند: 

https://gist.github.com/cyberno-ir/62f5d3a8183d7a71585f8251205ce449#file-elk-stack-log-yml

 

لاگ محصولات سایبرنو در filebeat

 

بعد از اعمال تنظیمات بالا، یک بار سیستم را راه‌اندازی مجدد کنید. بعد از انجام این کار شما می‌توانید مثل شکل زیر، لاگ‌های محصولات سایبرنو را در داشبورد 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 وجود دارد که آموزش آن در بخش آخر مقاله ارائه شد.

تاریخ انتشار: 1402/02/20
تاریخ بروزرسانی: 1402/02/21
user avatar
نویسنده: امیر گوران اوریمی هم‌بنیان‌گذار سایبرنو
امیر گوران بیش از 15 سال در حوزه تحلیل بدافزار و مهندسی معکوس در سیستم عامل‌های ویندوز و لینوکس به طور تخصصی فعالیت می‌کند. وی هم‌بنیان‌گذار ۲ شرکت دانش‌بنیان در حوزه امنیت سایبری (سایبرنو و بیت‌بان) و یک شرکت دانش‌بنیان در حوزه مهندسی معکوس سخت‌افزار می‌باشد. رتبه دوم المپیاد کامپیوتر، رتبه دوم جشنواره بین‌المللی خوارزمی، برنده ‌Bug Bounty از چند شرکت تولیدکننده ضدویروس خارجی و نشر چندین کتاب و مقاله در حوزه امنیت سایبری از دیگر دست‌آوردهای وی می‌باشد.
برچسب‌های مرتبط
این مطلب را با دوستان خود به اشتراک بگذارید
نظرات کاربران

برای دریافت خبرنامه و اخبار

آدرس پست الکترونیکی خود را وارد کنید

تمامی حقوق مادی و معنوی این سایت متعلق به شرکت مهندسی دنیای فناوری امن ویرا (سایبرنو) می‌باشد.