آشنایی با Splunk User Behavior Analytics(UBA)

UBA مخفف عبارت User behavior analytics یا آنالیز رفتار کاربر، یکی از راهکارهای شناسایی تهدیدات مبتنی بر پایش و تحلیل رفتار کاربران است که از مدلسازی رفتاری و روش تجزیه و تحلیل گروههای کاری همسان و مکانیزم Machine Learning برای آشکارسازی تهدیدات پنهان محیط عملیاتی شما استفاده می کند، UBA بطور خودکار رفتارهای مشکوک را از بین کاربران، تجهیزات و برنامه های کاربردی شناسایی کرده و با ترکیب الگوهای بدست آمده، رفتار های مشکوک را گزارش می کند.

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

UBA با ارائه اطلاعات دقیق و شفاف به تحلیل گران امنیت سازمان کمک می ‏کند تا بر روی تهدیدات و رفتارهای غیر متعارف در طول مراحل شکل گیری حمله (kill Chain) متمرکز شده و باعث افزایش اثربخشی و کارایی کارشناسان امنیت می گردد.

نحوه عملکرد  UBA

UBA داده ها را از پلتفرم Splunk دریافت کرده و عملیات مختلفی را بر روی داده های دریافتی انجام می دهد تا با تحلیل و بررسی دقیق آنها درک بهتری از رفتار کاربران در محیط کسب و کار ارائه دهد.

اولین مرحله، نرمال سازی داده های دریافتی است. UBA پارامترهایی مانند نام تجهیزات، دامین ها و کلیه حساب های کاربری که در داده های سیستم های احراز هویت وجود دارند را تجمیع کرده و در قالب یک شناسه واحد ارائه می کند، با در نظر گرفتن این شناسه واحد، کلیه رویدادهای متاثر از این شناسه را مورد تحلیل و بررسی قرار میدهد بگونه ای که وابستگی بین آدرس IP، نام host و کاربر مشخص شود.

در مرحله بعد UBA برای ایجاد خط مشی رفتاری پارامترهایی نظیر رفتار کاربران، تجهیزات، برنامه های کاربردی، تعاملات بخش‌های مختلف سازمان و گروه‌های کاری همسان را مبنای کار خود قرار می دهد و  در این  راستا با استفاده از الگوریتم‌های نظارت نشده machine learning، میزان انحراف داده­ های رفتاری از رفتار نرمال را مشخص می کند.

بدین ترتیب UBA با در نظر گرفتن میزان انحراف رفتاری از خط مشی رفتار نرمال کاربر و با بکارگیری مدلها، الگوها و قوانینِ تهدید، رفتار های غیر متعارف را شناسایی کرده و آنها را  بعنوان یک تهدید گزارش می کند، چنانکه می دانید یک رفتار نامتعارف یا anomaly ممکن است لزوما نشان دهنده وجود تهدید سایبری در محیط عملیاتی شما نباشد بلکه در یک بازه زمانی مجموعه ای از رفتارهای نامتعارف می توانند بیانگر تهدیدی باشند که باید مورد بررسی و رسیدگی قرار گیرند. درواقع مدلهای تشخیص تهدیدات میتواند رفتارهای نامتعارف را بهم پیوند زده و یک روایت نقطه به نقطه درباره تهدید سایبری واقعی ارائه کنند.

ارتباط UBA با سایر اجزای راهکار Splunk

UBA داده های مورد نیاز خود را از پلتفرم Splunk دریافت می کند،  بر خلاف سایر محصولات امنیتیِ اسپلانک که بصورت برنامه های کاربردی داخل نرم افزار اسپلانک پیاده سازی میشوند، UBA به صورت یک سرویس مجزا و بر روی منابع اختصاصی مجزا مانند سرورهای فیزیکی یا سرورهایی که درون سازمان شما در زیرساخت ابری پیاده سازی شده باشند نصب و پیاده سازی می شود.

This diagram shows how Splunk UBA fits in with other Splunk security products. There is a large box labeled Splunk Enterprise or Splunk Cloud Platform, with Splunk Enterprise Security, Splunk Security Essentials, and Splunk machine Learning Toolkit as apps within the large box. Splunk Phantom and Splunk UBA are outside the box, since they each require their own hardware stack and are not installed as apps on the Splunk platform.

مزیت های یکپارچه سازی UBA با Splunk

ادغام UBA و پلتفرم splunk و استفاده یکپارچه از آنها مزایای زیر را به همراه خواهد داشت:

  • در صورت تشخیص رفتار نامتعارف، UBA این تهدید را در قالب یک رویداد به سرویس Slunk شما ارسال خواهد کرد، بدین ترتیب رخدادهای خامی که در وقوع این رفتار مشارکت داشته باشند به صورت اطلاعات تکمیلی قابل مشاهده و بررسی خواهند بود.
  • امکان تبادل اطلاعات بین ماژول های مختلف splunk، بطور ویژه قابلیت ارسال رخدادهای قابل تامل از ماژول امنیتی Splunk ES به UBA  و متقابلا ارسال تهدیدات و رفتارهای غیرمتعارف از UBA به ES وجود خواهد داشت و با همگام شدن این دو دسته از اطلاعات، بررسیهای امنیتی مجموعه شما از ثبات و تداوم بیشتری برخوردار خواهد بود.

معماری پیاده سازی Splunk UBA

برای مقیاس بندی مناسب UBA Splunk در یک محیط عملیاتی توزیع شده، task های مشخصی به هر سرور فیزیکی یا هر گره (Node) موجود در cluster اختصاص داده میشود، بدین ترتیب روی هر گره سرویس های ویژه ای برای پشتیبانی از task ها نصب خواهد شد. سرویس های نصب شده بر اساس سایز و اندازه cluster می توانند متنوع باشند، بطور مثال در یک پیاده سازی با هفت گره، سرویسهای Spark  فقط روی گره هفتم نصب میشوند در حالیکه سرویسهای Hadoop روی تمام گره ها غیر از گره شماره ۳ نصب خواهند شد.

در پیاده سازی تک گره ای تمام سرویسها روی یک گره پیاده سازی خواهند شد.

تمام گره های موجود در پیکربندی Splunk UBA باید پیش نیازهای لازم برای پیاده سازی UBA را داشته باشند.

این تصویر یک نمودار معماری نمونه از استقرار Splunk UBA توزیع شده را نشان می دهد. در تصویر سه لایه وجود دارد. لایه بالایی سرور مدیریت Splunk UBA و گره های Splunk UBA را نشان می دهد. دومی بعداً یک سرور جریان و یک سرور دسته ای را نشان می دهد. لایه آخر چندین فرآیند استریم را در سرور استریم و چندین فرآیند دسته ای را در سرور دسته ای نشان می دهد.

Management Server

این سرور میزبان رابط کاری تحت وب UBA Splunk است، شما فقط به یک سرور مدیریتی نیاز خواهید داشت. سروریسهایی که باید روی این سرور نصب شوند عبارتند از:

  • UI server
  • job manager master
  • InfluxDB server
  • PostgreSQL
  • Impala
  • Zookeeper Quorum

Streaming server

سرورهای streaming، سرورهای منطقی ای هستند که وظیفه پردازش داده ها را در مدل‌های گوناگون stream در UBA برعهده دارند، برخی از این مدل ها عبارتند از:

  • Web Beaconing Detection Model
  • Network Transport Model
  • Land Speed Violation Model
  • Unusual Windows Events Sequences Model

سرورهای streaming داده های بدست آمده را بصورت بلادرنگ مورد بررسی قرار میدهند و شدت رخدادهای سایبری را در بازه زمانی کوتاهی (حدود یک ساعت) در یک پنجره جداگانه نمایش میدهند، بر اساس این تجزیه و تحلیل، سرورهای streaming می توانند انبوهی از موارد مانند رفتارهای غیر متعارف، IoC* ها و داده های تحلیلی را در splunk UBA ایجاد کنند.

IoC* مخفف Indicators of Compromise در امنیت سایبری بوده و بخش هایی از فرایند Forensic (پیگیری جرائم رایانه ای) را شامل می شود که متشکل از داده های جمع آوری شده ای هستند که متخصصان امنیت سایبری و فناوری اطلاعات از آنها به عنوان شواهد برای شناسایی، اصلاح و پاسخ به نقض داده ها و حملات امنیتی استفاده می کنند.

عمده سروریسهای نصب شده روی این سرورها عبارتند از:

  • Kafka
  • Docker
  • Kubernetes
  • Zookeeper
  • Redis

سرورهای Streaming را میتوان روی تک گره Splunk UBA و یا روی گره های چندگانه پیاده سازی کرد.

Batch servers

سرورهای batch، سرورهای منطقی ای هستند که وظیفه پردازش داده برای مدلهای متنوع batch در UBA Splunk را بر عهده دارند. بطور مثال برخی از مدلهای batch مربوط به تهدیدات سایبری و رفتارهای نامتعارف عبارتند از:

  • مدل تعیین مقادیر غیر معمول از رخدادهای احراز هویت برای هر کاربر
  • مدل اسکن شبکه
  • مدل تشدید دسترسی غیر مجاز
  • مدل تهدید حرکات جانبی Lateral Movement Threat Model
  • مدل محاسبه تهدید (جهت متمایز کردن تهدید از رفتار غیر متعارف)

سرورهای batch، داده های ورودی را در بازه زمانی بزرگتری بطور مثال ۲۴ ساعت، تجزیه و تحلیل می ‏کنند، معمولا task های مربوطه به دلیل نیاز به توان پردازشی زیاد، شبها اجرا می شوند و داده های موجود در Splunk UBA از جمله داده های فهرست شده از سرورهای stream را جمع آوری می کنند، به عبارت دیگر سرورهای batch تهدیدات سایبری تولید شده و رفتارهای غیرمتعارف را جهت بررسی های آتی در UBA فراهم می کنند.

عمده سرویس هایی که روی  سرورهای batch پیاده سازی میشوند عبارتند از  Apache Spark و HDFS

برای مشاهده لیست کامل مدلهای Batch کافیست در UBA وارد مسیر System > Models شده و batch models را انتخاب کنید.

مقیاس پیاده سازی Splunk UBA

Splunk UBA را می توانید روی تک سرور یا سرورهای توزیع شده نصب کنید، یک محیط پیاده سازی توزیع شده به شما کمک می کند تا فرایند نصب UBA را با بکارگیری سرورهای streaming و batch بصورت افقی مقیاس پذیر کنید. در پیاده سازی توزیع شده UBA، گره ها نیازمند حجم بیشتری از محاسبات و ارتباطات شبکه ای پر سرعت تر میباشند. بنابراین بهتر است از پیاده سازی  Splunk UBAدر نقاط جغرافیایی پراکنده خودداری کنید، چنانچه سایتهای متنوعی دارید می توانید یک cluster Splunk UBA را بعنوان نسخه duplicate و در نقش سیستم جایگزین گرم پیکربندی کنید.

چه سایز cluster ای نیاز داریم؟

از پارامترهای زیر میتوانیم بعنوان راهنمای پیاده سازی Splunk UBA استفاده کنیم. لازم به ذکر است عبور از محدودیتهای HBA اثر منفی روی کارایی سیستم خواهد داشت و می تواند به عدم پردازش یا از قلم افتادن رخدادهای امنیتی منجر شود.

  • حداکثر تعداد رخدادها در ثانیه بیانگر نرخ اوج رخدادهای پردازش شده توسط Splunk UBA هنگام دریافت داده ها از Splunk Enterprise باشد.
  • حداکثر تعداد شناسه ها نشان دهنده مجموع شناسه های مانیتور شده در splunk UBA مانند user، admin، system و سایر شناسه‌های سیستمی است.
  • حداکثر تعداد تجهیزات نشان دهنده مجموع شناسه تجهیزات مانیتور شده در splunk UBA است.
  • حداکثر تعداد منابع داده نشان دهنده مجموع منابع داده پیکربندی شده در splunk UBA جهت دریافت دیتا از Splunk Enterprise می باشد.
اندازه clusete  (تعداد گره ها) حداکثر تعداد رخدادها در ثانیه حداکثر تعداد شناسه ها حداکثر تعداد تجهیزات حداکثر تعداد منابع  داده
۱ ۴K up to 50K up to 100K ۶
۳ ۱۲K up to 50K up to 200K ۱۰
۵ ۲۰K up to 200K up to 300K ۱۲
۷ nodes ۲۸K up to 350K up to 500K ۲۴
۱۰ nodes ۴۰K-45K up to 350K up to 500K ۳۲
۲۰ nodes ۷۵K-80K up to 750K up to 1 Million ۶۴

چناچه پیش نیازهای محیط شما در جدول فوق نمی گنجید می توانید از خدمات مهندسی سایبرلاجیک برای پوشش موضوع کمک بگیرید، همچنین میتوانید از اسکریپت های backup و restore برای مهاجرت از سیستم فعلی به ساختار بزرگتر استفاده کنید. بعد از عملیاتی شدن Splunk UBA، برای نگهداری و پشتیبانی Splunk UBA باید میزان تهدیدات سایبری و رفتارهای نامتعارف را در محیط عملیاتی خود مدیریت کنید.

مثال: اختصاص مقیاس در پیاده سازی Splunk  UBA

در مثال زیر چگونگی تعریف مقیاس پیاده سازی مناسب در یک محیط عملیاتی نمونه نمایش داده شده است.

  1. از tstats query در Splunk Enterprise استفاده کنید، این Query وضعیت EPS (تعداد رخدادها در ثانیه) را در یک ماه گذشته نشان میدهد.

| tstats count as eps where index=* earliest=-30d@d groupby index, sourcetype _time span=1s | stats count as NumSeconds max(eps) perc99(eps) perc90(eps) avg(eps) as avg_eps by index, sourcetype | addinfo | eval PercentageOfTimeWithData = NumSeconds / (info_max_time – info_min_time) | fields – NumSeconds info* | eval EffectiveAverage = avg_eps * PercentageOfTimeWithData | fieldformat PercentageOfTimeWithData = round(PercentageOfTimeWithData*100,2) . “%”

۲. خروجی را در یک فایل csv ذخیره کنید.

۳. با استفاده از نرم افزار excel فایل مربوطه را باز کرده و تمام ردیفهایی که به splunk UBA وارد نمیشوند را حدف کنید. منابع داده ای که مورد نیازتان میباشد میتواند بر اساس محیط عملیاتی و محتوایی که میخواهید در Splunk UBA مشاهده کنید متفاوت باشد.

۴. مجموع EPS ها را در ستونهای ۹۰% و ۹۹% جدول زیر میتوانید مشاهده کنید، اساس پیش نیازهای مقیاس محیط عملیاتی خود را  مطابق ستون ۹۹%  تنظیم کنید و بدین ترتیب ازمزایای ایجاد زیرساخت مورد نیاز گره های اضافه در cluster بهره مند شوید.

در جدول فوق نمایش حدود ۵۰۰۰ EPS و کمتر از ۱۰ منبع داده بدین معنی است که اختصاص ۳ گره در ساختار پیاده سازی شما کافیست.

معرفی Best practice برای بهینه سازی عملکرد Splunk UBA

عملکرد Splunk UBA بسته به تعداد و سایز منابع داده، Indexer و میزان پردازنده مصرفی و توان شبکه شما می تواند متفاوت باشد. اقدامات زیر در پیاده سازی هرچه بهتر و موثرتر UBA Splunk کمک خواهد کرد.

  • تقسیم منابع داده بزرگ به منابع داده کوچکتر

هر منبع داده در Splunk UBA به ارتباط TCP منحصر به خود درپلترفتم Splunk نیاز دارد. UBA پیاده سازی شده با ارتباطات TCP چندگانه در مقایسه با UBA پیاده سازی شده با یک ارتباط بزرگ TCP، بمراتب کارایی و مقیاس پذیری بهتری خواهد داشت. منابع داده کوچکتر به شما در کاهش تاخیر دریافت داده ها کمک می کند.

  • محاسبه پنهای باند مورد نیاز در سطح TCP

از فرمول زیر برای تعیین حداقل پهنای باند مورد نیاز برای هر ارتباط TCP استفاده کنید. بطور مثال محاسبه پهنای باند مورد نیاز برای دستیابی به ۴۰K رخداد در ثانیه به این صورت انجام می گیرد:

(میانگین سایز رخداد (بایت)  * (۴۰K / تعداد منابع داده )* ۸ )/۱۰۲۴ / ۱۰۲۴

بطور مثال با استفاده از ۴۱۰ بایت بعنوان متوسط سایز رخداد، به ۴.۶Mbits در ثانیه برای هر ارتباط TCP نیاز خواهیم داشت.

۴۱۰*۴۰.۰۰۰ / ۲۷ * ۸/۱۰۲۴ / ۱۰۲۴ = ۴.۶ Mbits

  • بررسی بار لود شده روی indexer های پلتفرم splunk

ایجاد سربار در Indexer های پتلفرم اسپلانک می تواند باعث ایجاد تاخیر در روند دریافت داده شما شود یا حتی به حذف و نادید گرفتن یک یا چند رخداد امنیتی منجر شود.