💎 محصول ELK Stack چیست و آیا این محصول یک SIEM است؟

ستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعالستاره غیر فعال
 

💎 محصول ELK Stack چیست و آیا این محصول یک SIEM است؟

محصول ELK یک محصول Open Source شامل سه کامپوننت اصلی از سه پروژه به نام های: Elasticsearch و Logstash و Kibana است. در پشته ELK، Logstash یک نرم‌افزار Open Source و Log Pipeline است که جهت جمع‌آوری، parse کردن logها و پردازش آنها در شبکه می‌ باشد. Kibana نیز یک رابط گرافیکی تحت وب است که می‌تواند جهت جستجو و نمایش Logهایی که Logstash آنها را index گذاری کرده است استفاده شود. هر دو این ابزارها مبتنی بر Elasticsearch هستند که در واقع یک Database از نوع NoSQL است و مبتنی بر موتور جستجوی Lucene می باشد که جهت نگهداری و ذخیره‌سازی logها مورد استفاده قرار می‌گیرد. Elasticsearch، Logstash و Kibana زمانیکه با یکدیگر استفاده می‌شوند به عنوان یک ELK Stack عمل می‌کنند.

📌 از آنجاییکه ابزار Kibana یک ابزار و اینترفیس گرافیکی تحت وب است، بنابراین جهت استفاده از آن نیاز به نصب یک وب سرور (که پیشنهاد شده از NGINX استفاده شود) به عنوان پیشنیاز داریم. 

📌 پیش‌ از نصب پشته ELK می‌بایست بر روی سیستم/سرور خود Java را نصب نمایید، چرا که Elasticsearch و Logstash جهت اجرا به Java نیازمند هستند. 

📌 محصول ELK همچنین از یکسری Security Shieldها یا X-Packها به صورت Plugin یا Add-on برای افزایش امنیت بیشتر و... استفاده می کند که می بایست بسته به نیاز به صورت جداگانه نصب شوند. بعضی از این X-Packها رایگان و برخی جهت استفاده نیازمند پرداخت هزینه خواهند بود.

♻️ معرفی Beats Platform

در واقع Beatsها data shipperهای Open Sourceی هستند که می توانید آنها را به عنوان agentهای خود بر روی سرورهایتان جهت ارسال اطلاعات به Elasticsearch نصب نمایید. Elastic برای capture کردن اطلاعات Beatsهای مختلف را برای شما فراهم می کند از جمله:

📌 ماژول Auditbeat برای Autdi dataها

📌 ماژول Filebeat برای Log fileها

📌 ماژول Functionbeat برای Cloud dataها

📌ماژول Heartbeat برای اطلاعات HA در برقراری Availability

📌 ماژول Journalbeat برای اطلاعات journalهای Systemd 

📌 ماژول Metricbeat برای اطلاعات Metricها

📌 ماژول Packetbeat برای اطلاعات Network trafficها

📌 ماژول Winlogbeat برای اطلاعات Windows event logها

📕📒📗 توجه داشته باشید که با اضافه شدن Beats Platform به محصول ELK گاهی در مستندات از عبارت BELK یا EKEB نیز نام برده می شود.

⭕️ ماژول Auditbeat

توسط این ماژول می توانید به مانیتور کردن user activityها و processها بپردازید. ماژول Auditbeat قادر است به صورت مستقیم با Linux audit framework ارتباط برقرار کرده و اقدام به جمع آوری اطلاعات سرویس auditd و ارسال eventها به Elastic Stack به صورت real-time جهت آنالیز آنها نماید. 

⭕️ ماژول Filebeat

بعد از نصب ELK Stack به عنوان یک Log Analyzer، سوالی که ممکن است مطرح شود این است که چگونه تجهیزات و سرورهای شبکه می‌بایست Logهای generate شده خود را به سمت ELK ارسال نمایند؟ در پاسخ به این سوال می‌بایست اشاره نموده که سرورهای لینوکسی موجود در شبکه می‌توانند توسط بسته Filebeat که به عنوان یک Log Shipping Agent عمل می‌کند، Logهای خود را به ELK ارسال نمایند. این Agent از پروتکل شبکه lumberjack جهت ارتباط با Logstash استفاده می‌کند.

ماژول Filebeat NetFlow و پشتیبانی از پروتکل NetFlow: شما همچنین قادر خواهید بود در یک بورد اختصاصی از محصول ELK اقدام به آنالیز کردن جریان های ترافیکی با جمع آوری و pars کردن آنها توسط ماژول Filebeat NetFlow Module نمایید. 

⭕️ ماژول Packetbeat

در واقع Packetbeat یک Real-Time Network Packet Analyzer است که شما می توانید توسط این ماژول از ELK به همراه Elasticsearch اقدام به application monitoring and performance analytics بپدازید. برای مثال شما می توانید توسط این ماژول اقدام به جمع آوری اطلاعات DNS از شبکه خود نموده و در یک بورد اختصاصی می توانید وضعیت DNS requestها را در بازه های زمانی مشخص مانیتور کرده، DNS Min/Max/Avg Response Timeها را بررسی کرده و خلاصه ای از اطلاعات DNS Queryها را مشاهده نمایید. 

⭕️ ماژول Heartbeat

توسط این ماژول می توانید سرویس ها را برای availability با active probing مانیتور نمایید. همچنین Heartbeat می تواند به سادگی uptime و response time سرویس ها به شما در یک بورد اختصاصی نمایش دهد. به این طریق شما می توانید میزان دسترس پذیری سرویس ها و Appهای خود را از طریق Kibana به صورت visualize مشاهده کنید. در واقع ماژول Hearbeat از پروتکل های ICMP و TCP و HTTP جهت ارتباط با سرویس ها و Appها شما استفاده کرده و همچنین TLS و authentication و proxyها را نیز ساپورت می کند. همچنین می توانید از طریق Heartbeat تمامی hostهای خود پشت یک سرور load-balancer را به سادگی توسط DNS resolution مانیتور نمایید.

⭕️ ماژول Journalbeat

ماژول Journalbeat جهت پایش و مانیتور logهای مربوط به journalهای Systemd که جایگزین sys-v init در توزیع های لینوکسی شده مورد استفاده قرار می گیرد و مبتنی بر Apache License 2.0 بوده و شامل مجموعه ای از featureهای کاملاً رایگان است که می تواند با package managerهای yum و apt-get در توزیع های Redhat-based و Debian-based به صورت 32 بیتی یا 64 بیتی نصب شود.

⭕️ ماژول Metricbeat

شما می توانید با پیاده سازی Metricbeat بر روی همه hostهای ویندوز، لینوکس با حتی Macهای خود و برقراری ارتباط آن با Elasticsearch و voila اقدام به مانیتورینگ به صورت System-Level Monitoring نمایید و پارامترهای آماری CPU usage و memory و file system و disk I/O و network I/O را توسط این ماژول برای هر پروسه اجرا شده بر روی سیستم های خود پایش نمایید. (حتی می توانید تک تک Kubernetes Podهای خود و Containerهای موجود در آنها را به این طریق از لحاظ resourceهای مصرفی مانیتور کنید به همین دلیل این ماژول یک ابزار بسیار مناسب برای Container Monitoring نیز محسوب می شود.)

⭕️ ماژول Winlogbeat

توسط این ماژول شما می توانید Windows event logهای خود را مانیتور نمایید. به عنوان مثال Security eventهایی که به موقع logonهای موفق یا ناموفق وجود دارد، logهای یک سرویس نصب شده جدید، یا اینکه چه زمانی یک storage device به سیستمی attach شده و... را در یک بورد اختصاصی پایش کرد و به آنالیز لاگ های آن پرداخت.

پیش از پاسخ دادن به این سوال مطرح شده در عنوان مقاله بهتر است تعریف SIEM را یکبار مرور کنیم:

♻️ تعریف SIEM

منظور از SIEM یا Security Information & Event Management که در لغت به معنای "امنیت اطلاعات و مدیریت رویداد نگاری" یا "مدیریت اطلاعات و رخدادهای امنیتی" است و از مباحث مهم در طراحی یک مرکز عملیات امنیت یا SOC محسوب می شود.

عبارت SIEM‌ برگرفته از دو راه ‌حل متفاوت است که شامل:

  1. Security Information Management – SIM
  2. Security Event Management – SEM

سیستم SIEM‌ تجزیه تحلیل‌های Real-Time از هشدارهای امنیتی دستگاه‌‌ها و نرم‌افزارهای شبکه را فراهم می‌آورد. راه‌حل‌های SIEM مشتمل بر: نرم‌افزار، سخت‌افزار و سرویس‌ها، به منظور وقایع نگاری امنیتی و ارائه گزارش‌های امنیتی می‌باشد. کلمات اختصاری: SIM، SEM و SIEM ‌را می‌توان در مواردی به جای یکدیگر به کار برد، هر چند که اصولاً معانی متفاوتی دارند. در مباحثی نظیر مدیریت امنیت که با Real-Time Monitoring، وقایع‌ نگاری، هشدارها و مسائلی از این دست سروکار دارد، معمولاً با کلمه SEM همراه می‌شود. مبحث دیگر که شامل تحلیل و آنالیز Logها و گزارش‌دهی می‌گردد، معمولاً به عنوان SIM همراه می‌شود.

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

امروزه لزوم برخورداری از SIEM با افزایش پیچیدگی حملات و استفاده گسترده از سرویس‌های مبتنی بر Cloud، که سطح آسیب‌پذیری شبکه‌ها را افزایش می‌دهد، مشهود است.

♻️ ویژگی های یک SIEM

اما می دانیم مهمترین ویژگی ها و moduleهای یک SIEM عبارتند از:

📌 Log Collection

📌 Log Analysis

📌 Log Correlation

📌 Log Forensic

📌 IT Compliance

📌 Application Log Monitoring

📌 Object Access Auditing

📌 Real-Time Alerting

📌 User Activity Monitoring

📌 Dashboards

📌 Reporting

📌 File Integrity Monitoring

📌 System and Device Logi Monitoring

📌 & ,,,

💎 اما آیا محصول ELK Stack یک محصول SIEM است؟

این موضوع همیشه بین علما جای بحث و جدل بوده اما با توجه به تعریف SIEM و ویژگی ها و ماژول های آن نمی توان ELK Stack را به عنوان یک SIEM دسته بندی نمود (حتی با وجود نصب تمامی X-packهای آن)، هر چند که در vision جدید این شرکت که محصول ELK Stack را به Elastic Stack یا Elastic SIEM تغییر نام داده چنین دیدگاه و ادعایی مشاهده می شود اما به دلایل زیر نمی توان گفت که ELK یک SIEM است:

⭕️ این محصول دارای قابلیت/ماژول Correlation Engine نیست که مهترین ماژول یک SIEM محسوب می شود. به عبارت دیگر ELK قادر به پشتیبانی از Correlation ruleها نیست. (هر چند Logstash در ELK به عنوان یک log aggregator می تواند اقدام به جمع آوری و process کردن اطلاعات/لاگ ها از هر data sourceی در شبکه شما نموده و آنها را فیلتر، پروسس و correlate نماید. اما یک ماژول Correlation Engine که در SIEMها می شناسیم نیست. به این موضوع در مقاله ای جداگانه به آن خواهیم پرداخت). 

⭕️ این محصول ELK دارای قابلیت/ماژول Alerting به صورت built-in نیست (هر چند می توان این قابلیت را با نصب X-packهای تجاری یا pluginهای Open Source به Elastic اضافه نمود).

⭕️ این محصول دارای قابلیت/ماژول Incident Management که یکی از ماژول های اصلی در SIEMهاست، نیست و شما نیازمند hooking با ابزارهای اضافه در کنار ELK هستید.

⭕️ این محصول دارای قابلیت/ماژول User Activity Monitoring که یکی از ماژول های اصلی در NG-SIEMها محسوب می شود نیست. (به عنوان مثال ماژول UEBA در محصول Splunk). هر چند که اشاره کردیم توسط ماژول Auditbeat تا حدی می تواند User Activity Monitoring را انجام دهد اما به هیچ وجه در حد ماژولی هچون UEBA نیست.

⭕️ این محصول دارای قابلیت/ماژول Automation & Orchestration که یکی از ماژول های اصلی در NG-SIEMها محسوب می شود نیست. (به عنوان مثال ماژول SOAR در محصول Splunk) هر چند شما توسط Elastic Stack می توانید threatها را مانیتور کرده، evidenceها را بر روی یک timeline تعاملی جمع آوری نموده، pin و annotate کرده و incidentها را به یک سیستم ticketing یا پلتفرم SOAR فوروارد نمایید و به این طریق از این محصول به عنوان یک ابزار interactive برای تیم های امنیتی و کارشناسان SecOpsها و Threat Hunterهای خود استفاده کنید.

⭕️ این محصول در گزارشات سالیانه موسسه Gartner برای SIEMها هیچ وقت مطرح نبوده (به عنوان مثال گزارش گارتنر در سال 2018 از محصولات SIEM در تصویر فوق آمده است)

🌐 در نهایت در مقاله ای از Daniel Berman در لینک زیر، اشاره شده است که با وجود اینکه ELK قابلیت هایی همچون: Log collection و Log Processing و Storage و Querying و Dashboardsها را دارد اما به دلیل نداشتن قابلیت Correlation ruleها، Alertها و Incident Management نمی توان آن را یک SIEM دانست.

https://logz.io/blog/elk-siem/

💎 نتیجه گیری:

با توجه به توضیحات ارائه شده نمی توان ELK Stack را به عنوان یک SIEM دسته بندی نمود (شاید بتوان گفت یک SIEM ناقص یا نه یک All-In-One SIEM) ولی با رویکرد جدید و تغییر نام این محصول تحت عنوان Elastic SIEM/Elastic Stack و کامل تر شدن آن در آینده بتوان آن را در دسته محصولات SIEM گنجاند. از این رو شاید بهتر باشد ELK را با محصولی همچون ManageEngine LogAnalyzer یا Sawmill و... مقایسه نمود. ابزار ELK شامل هیچ پشتیبانی ای technicalی نمی شود اما می تواند در محیط های Big Data در به صورت On-Premises یا تحت Cloud به عنوان یک SaaS از طریق پلاگین ES-Hadoop که Elasticsearch ارائه داده، اطلاعات را از دیتابیس Hadoop دریافت کرده و به Elasticsearch جهت نالیز big data در کلاسترهای Hadoop بپردازد.

🌀 میثم ناظمی

@iranopensource🐧

تهران - بلوار كشاورز، خيابان شهيد نادري پائين تر از خيابان ايتاليا، پلاك ۲ واحد ۵۰۵
۷۳ ۴۲۲ (۰۲۱)
۴۲۲۳۸۰۰۰ (۰۲۱)
۱۴۱۶۶۱۳۶۶۹
info{at}apk-group.net
یزد - خیابان شهید دکتر چمران، روبـروی کارخانه درخشان
۳۶۲۹۰۹۹۰ (۰۳۵)
۸۹۱۶۷۱۵۹۵۷

 امن پردازان کویر