سلام، من محمد قنبری هستم و شما دارید به اپیزود هشتم پادکست سیمباز گوش میدید.
این پادکست برای اوناییه که دورهٔ Splunk Enterprise Security من رو گذروندن یا در مسیر یادگیریش هستن و همچنین مهندسان SIEM طراحی شده و هدفمان اینه که مفاهیم تاکتیکی، تجربههای واقعی، و دیدگاههای تحلیلی رو بیرون از فضای کلاس، با زبانی سادهتر ادامه بدیم.
بریم شروع کنیم.
تا حالا از خودتون پرسیدید تیمهای امنیتی در اقیانوسی از دادهها، در میان میلیاردها لاگ که هر روز تولید میشه، چطور یک تهدید واقعی رو پیدا میکنند؟ چطور سوزن رو از انبار کاه بیرون میکشند؟ این کار شبیه یک جادو به نظر میرسه، اما در واقع ترکیبی از علم، هنر و ابزارهای قدرتمنده.
در قسمت امروز، میخواهیم به قلب تپنده عملیات امنیتی یعنی سیستمهای SIEM سفر کنیم و به طور خاص، قدرت جستجو و هشدار در این سیستمها رو رمزگشایی کنیم. همانطور که در منابع معتبر آمده، “قدرت واقعی یک SIEM از توانایی آن در جستجوی سریع و چابک در میان چندین منبع داده ناشی میشود.”
در این اپیزود، ابتدا در مورد پیشنیازهای یک جستجوی مؤثر صحبت میکنیم. بعد، چهار تکنیک اصلی تحلیل و کشف تهدید رو با هم بررسی میکنیم، از پیدا کردن بدیهای شناختهشده تا شکار ناهنجاریهای پنهان. در ادامه، میبینیم که چطور این تکنیکها در یک ابزار واقعی مثل Splunk پیادهسازی میشن و در نهایت، یاد میگیریم چطور این جستجوها رو به هشدارهای هوشمند و خودکار تبدیل کنیم تا همیشه یک قدم از مهاجمان جلوتر باشیم.
پس بیایید شروع کنیم و ببینیم چطور میتونیم زیرساخت خودمون رو برای یک جستجوی قدرتمند آماده کنیم.
بنیاد جستجوی قدرتمند: پیشنیازها
قبل از اینکه بتونیم هرگونه جستجوی معناداری انجام بدیم، باید یک پایه و اساس محکم داشته باشیم. این بخش شاید جذابترین بخش ماجرا نباشه، اما موفقیت کل سیستم SIEM به اون بستگی داره و یک امر غیرقابل مذاکره است. بدون این زیرساخت، حتی بهترین تحلیلگرها هم نمیتونن کاری از پیش ببرن.
برای اینکه یک جستجوی مؤثر و سریع داشته باشیم، چند پیشنیاز اساسی وجود داره:
- جمعآوری دادههای کلیدی: اولین قدم اینه که مطمئن بشیم لاگهای درست و تاکتیکی رو جمعآوری میکنیم. هر لاگی ارزش یکسانی نداره. باید روی منابعی تمرکز کنیم که بیشترین دید امنیتی رو به ما میدن.
- پارس و غنیسازی دادهها: لاگهای خام مثل یک زبان ناشناخته هستن. ما باید اونها رو به دادههای ساختاریافته و قابل فهم تبدیل کنیم. این فرآیند که بهش «پارس کردن» و «غنیسازی» میگیم، به ما اجازه میده تا فیلدهای مشخصی مثل آدرس IP، نام کاربری یا نوع رویداد رو به راحتی جستجو کنیم.
- ذخیرهسازی برنامهریزیشده: دادهها باید روی سختافزار مناسب و به شیوهای بهینه ذخیره بشن. این یک توصیه نیست، یک الزام است. اگر ذخیرهسازی شما کند باشد، SIEM شما در یک حادثه واقعی بیفایده است. شما منتظر پایان یک جستجو خواهید بود در حالی که مهاجم در حال پاک کردن ردپای خود است. این یک قابلیت «داشتنش خوبه» نیست؛ این یک نیاز حیاتی برای مأموریت است.
وقتی این پایهها رو ساختیم، میتونیم از دو نوع جستجو استفاده کنیم: جستجوهای دستی که توسط تحلیلگران برای تحقیقات عمیق و تیمهای شکار تهدید (Hunt Teaming) انجام میشه، و جستجوهای خودکار که برای تولید گزارشها، داشبوردها و مهمتر از همه، هشدارها و اقدامات خودکار به کار میرن.
کار کردن با یک SIEM خیلی شبیه به یک “ازدواج” میمونه. نیاز به صرف زمان و انرژی داره. اما اگر این زمان رو سرمایهگذاری کنید، نتایج فوقالعادهای به دست میارید. میتونید سیستمهایی با پیکربندی نادرست، نقض سیاستهای امنیتی و حتی فعالیتهای مهاجمان پس از نفوذ رو شناسایی کنید.
خب، حالا که میدونیم چه زیرساختی برای یک جستجوی موفق لازمه، بیایید ببینیم چگونه باید جستجو کنیم.
تکنیکهای اصلی کشف و تحلیل
جستجو در SIEM فقط تایپ کردن یک کلمه کلیدی نیست. بلکه مجموعهای از تکنیکهای تحلیلیه که باید به صورت ترکیبی استفاده بشن تا بهترین نتیجه رو بدن. امروز میخوایم چهار تکنیک اصلی رو با هم مرور کنیم. اما یادتون باشه، اتکا به تنها یکی از اینها مثل تلاش برای حفاظت از یک قلعه فقط با یک دیوار بلنده. یک دفاع واقعی به دیوار (لیستهای انکار)، نگهبانانی که کارت شناسایی را چک میکنند (لیستهای مجاز)، گشتهایی که به دنبال نقاط ساکت غیرعادی میگردند (تحلیل دم بلند) و حسگرهایی برای لرزشهای عجیب در زمین (تشخیص ناهنجاری) نیاز دارد.
۱. لیستهای انکار (Deny Lists): جستجو برای موارد شناختهشده بد
سادهترین و رایجترین تکنیک، “جستجو برای موارد شناختهشده بد” هست. این روش رو به بازی “موشکور” یا “whack-a-mole” تشبیه میکنند. شما یک لیست از آدرسهای IP، دامنهها یا هش فایلهای مخرب دارید و به محض دیدن هر کدوم از اونها در لاگها، یک هشدار دریافت میکنید.
- مزایا: راهاندازی و نگهداری این روش خیلی ساده است.
- معایب: متاسفانه دور زدن اون هم برای مهاجمان آسونه. این روش نمیتونه حملات جدید و ناشناخته رو شناسایی کنه.
اما یک کاربرد هوشمندانهتر هم برای این تکنیک وجود داره: “جستجو برای موارد غیرمنتظره شناختهشده”. فرض کنید شما یک پوشه در شبکه دارید به اسم UltraSensitiveDoNotLook. هیچکس، تحت هیچ شرایطی، نباید به این پوشه دسترسی داشته باشه. شما یک قانون مینویسید که هرگونه تلاش برای دسترسی به این پوشه، یک هشدار فوری و با اولویت بالا ایجاد کنه. در واقع شما یک تله دیجیتال یا به اصطلاح تخصصی، یک “هانی توکن” (honeytoken) کار گذاشتهاید.
۲. لیستهای مجاز (Allow Lists): نادیده گرفتن موارد خوب و بررسی بقیه
این تکنیک دقیقاً برعکس روش قبلیه. منطقش اینه: “هر چیزی که در محیط شما مجاز و شناختهشده است را نادیده بگیرید و هر چیز جدیدی را بررسی کنید.” برای این کار، شما باید یک “خط پایه” (baseline) از وضعیت نرمال شبکه و سیستمهاتون ایجاد کنید.
- مزایا: این روش فوقالعاده قدرتمنده. چون هم موارد بد شناختهشده و هم موارد بد ناشناخته رو شناسایی میکنه و دقت بسیار بالایی داره.
- معایب: نگهداری از این لیستها بسیار پرهزینه و زمانبره و برای همه نوع لاگی مناسب نیست. مثلاً تلاش برای ایجاد لیست مجاز از IPهای اینترنتی که کاربران به آنها متصل میشوند، به دلیل استفاده گسترده از شبکههای توزیع محتوا (CDN) و تغییرات مداوم DNS، تقریباً غیرممکن و بیفایده است.
حالا بیایید یک مثال عملی رو تصور کنیم. تصور کنید SIEM شما ساکت است… همه چیز عادی به نظر میرسد. ناگهان، یک هشدار با اولویت بالا فعال میشود. نه سیلی از هشدارها، فقط یکی. یک سرویس جدید روی یکی از سرورها ایجاد شده: "Window Updater". این “w” در ابتدای کلمه شاید شبیه یک اشتباه تایپی به نظر برسد، اما برای یک چشم آموزشدیده، این یک آژیر خطر оглушитель است. این قدرت لیست مجاز است؛ شما را در نویز غرق نمیکند، بلکه با لیزر به تنها چیزی که اشتباه است، اشاره میکند.
۳. تحلیل دم بلند (Long Tail Analysis): تمرکز بر رخدادهای نادر
این تکنیک یعنی “جستجوی رویدادهایی که کمترین تکرار را در مجموعه دادههای بزرگ دارند”. منطق پشت این روش بسیار جالبه: رویدادهایی که هزاران بار تکرار میشن، معمولاً فعالیتهای عادی سیستم هستن. اما رویدادهایی که در میان میلیونها لاگ، فقط یک یا دو بار اتفاق افتادن، بسیار مشکوک هستن و نیاز به بررسی دارن. و یادتون باشه، این تکنیک تنها زمانی کار میکند که دادههای شما به درستی پارس شده باشند. شما نمیتوانید کمتکرارترین Event ID را پیدا کنید اگر سیستم شما اصلاً نداند فیلد Event ID چیست. به همین دلیل است که آن کارهای پایهای که قبلاً بحث کردیم، غیرقابل مذاکره است.
- مزایا: این روش برای تحلیل مجموعه دادههای بسیار بزرگ عالی عمل میکنه.
- معایب: بیشتر به تحلیل دستی نیاز داره و برای دادههای کوچک کاربردی نداره.
یک مثال عالی از این تکنیک، تحلیل Event ID های ویندوز هست. رویدادهایی مثل 4624 (لاگین موفق) و 4634 (لاگآف) میلیونها بار در روز اتفاق میافتن و در قسمت پر تکرار نمودار قرار میگیرن. اینها معمولاً مربوط به اکانتهای کامپیوتری هستند – میتونید از علامت دلار $ در انتهای نامشان مثل DC01$ تشخیص دهید – و کماهمیت هستند. اما در انتهای نمودار، یعنی “دم بلند”، ممکنه ببینید که Event ID شماره 7045 (ایجاد یک سرویس جدید) فقط یک بار با یک نام سرویس عجیب و غریب مثل CTFAUPFmjEeADPyT ثبت شده. این یک رویداد بسیار نادره و با احتمال زیاد به یک سیستم آلوده اشاره داره.
۴. تشخیص ناهنجاری (Anomaly Detection): جستجو برای هر چیز غیرعادی
این تکنیک یعنی “جستجوی هر چیزی که نرمال نیست”. چالش اصلی این روش اینه که اول باید بدونیم “نرمال” دقیقاً یعنی چی.
- مزایا: این روش میتونه موارد بد ناشناخته، پیکربندیهای نادرست سیستمها و نقض سیاستهای امنیتی رو شناسایی کنه.
- معایب: نیاز به یک خط پایه تثبیتشده داره و اگر به درستی تنظیم نشه، ممکنه هشدارهای کاذب (False Positive) زیادی تولید کنه.
دو مثال این موضوع رو روشن میکنه:
- مثال اول (افزایش ناگهانی ترافیک): فرض کنید نمودار پهنای باند شبکه رو نگاه میکنید و ناگهان یک جهش بزرگ در ترافیک خروجی یک سیستم میبینید. این یک ناهنجاریه. اما بعد از بررسی متوجه میشید که یکی از کارمندان تیم IT داشته یک فایل ISO بزرگ رو دانلود میکرده. این یک ناهنجاری خوشخیم بود و اهمیت تحلیل انسانی رو نشون میده.
- مثال دوم (درخواستهای HTTP): حالا یک مثال واقعیتر. در حالت عادی، در ترافیک وب، تعداد درخواستهای GET (دریافت اطلاعات) بسیار بیشتر از درخواستهای POST (ارسال اطلاعات) هست. فرض کنید وضعیت نرمال شما ۱۱۸۸ درخواست GET در مقابل فقط ۵۴ درخواست POST است. این وضعیت نرمال ماست. حالا ناگهان در نمودارها میبینید که وضعیت کاملاً برعکس شده: فقط ۱۶۴ درخواست GET اما ۱۵۳۱ درخواست POST، که بیش از ۹۵ درصد آنها از یک آدرس IP خاص میآید. این یک ناهنجاری بسیار مشکوکه و به احتمال زیاد نشون میده که اون سیستم آلوده شده و داره اطلاعات رو به یک سرور فرماندهی و کنترل ارسال میکنه.
خب، این تکنیکها ابزارهای قدرتمندی در جعبه ابزار ما هستند. اما قدرت واقعی زمانی مشخص میشود که بتوانیم آنها را در یک پلتفرم واقعی به کار بگیریم و از تئوری به عمل برسیم.
پیادهسازی عملی با Splunk
ابزارها و رابطهای کاربری، پل ارتباطی بین تحلیلگر و اقیانوس دادهها هستن. یک ابزار قدرتمند مثل Splunk این تکنیکهای تئوری رو به عمل تبدیل میکنه و به تحلیلگران اجازه میده تا به سرعت و با دقت، تهدیدات رو کشف کنن.
رابط کاربری Splunk، محیط اصلی یک تحلیلگر امنیته. اونها بیشتر وقت خودشون رو در این محیط برای جستجو، تحلیل دادهها و ساخت داشبوردها صرف میکنن. قدرت اصلی Splunk در زبان جستجوی اون یعنی SPL (Search Processing Language) نهفته است.
بیایید چند مثال ساده از زبان جستجوی Splunk (SPL) رو ببینیم:
- برای جستجوی یک رشته ساده در تمام دادهها:
index=* "string" - برای جستجوی همون رشته، اما فقط از یک محدوده IP خاص:
index=* "string" src_ip="192.168.0.0/24" - برای پیدا کردن ترافیک روی پورتهای بالاتر از ۱۰۲۴:
index=* dest_port > 1024 - و برای جستجو با یک شرط منطقی OR:
index=* "string" OR dest_port=80
یکی از قدرتمندترین قابلیتهای یک SIEM، داشبوردها هستن. من نمیتونم بگم چند بار در طول حرفهام مجبور شدم این کار را انجام دهم. ما دو نوع داشبورد میسازیم. یکی داشبورد “حالت بازدیدکننده” است. پر از نقشههای چشمکزن و تجسم حملات جهانی. این همان چیزی است که وقتی مدیریت مهمان دارد نشان میدهیم. اما به محض اینکه تور تمام میشود، به داشبوردهای “واقعی” برمیگردیم—آنهایی که شبیه صفحات گسترده تقویتشده هستند اما دقیقاً همان چیزی را که باید بدانیم به ما میگویند.
اما قدرت واقعی در داشبوردهای فعال (Active Dashboards) در Splunk نهفته است. این داشبوردها به کاربر اجازه میدن با کلیک روی نمودارها، دادهها رو فیلتر کنن، در جزئیات عمیق بشن و فرآیند تحقیق رو بسیار سادهتر و سریعتر کنن.
جستجو و مصورسازی برای تحقیقات زنده عالیه، اما برای پیشدستی کردن بر تهدیدات، باید این فرآیند رو خودکار کنیم. اینجاست که به مبحث هشدارها میرسیم.
از جستجو تا هشدار خودکار
هشدارها، گام منطقی بعدی بعد از جستجوی دستی هستن. اونها به سیستم اجازه میدن به طور خودکار و ۲۴ ساعته، موارد مشکوک رو شناسایی کنن و به ما اطلاع بدن.
به زبان ساده، هشدار یعنی: “روشی خودکار برای اینکه سیستم به شما بگه، هی، بهتره این مورد رو بررسی کنی!”.
اما نکته کلیدی اینجاست: هشدارها باید عملیاتی (Actionable) باشن. فرض کنید هر تحلیلگر روزانه “۱۰۰,۰۰۰ هشدار” دریافت کنه. این وضعیت هیچ ارزشی نداره و فقط باعث خستگی و نادیده گرفته شدن هشدارهای واقعی میشه. ما باید قوانین هشدار رو با دقت تنظیم کنیم تا فقط روی موارد مهم و معنادار تمرکز کنیم.
چند مثال از هشدارهای کاربردی و عملیاتی:
- ۵۰ تلاش ناموفق برای ورود به سیستم در عرض ۵ دقیقه از یک آدرس IP.
- قطع شدن ناگهانی ارسال لاگ از یک سرور مهم و حیاتی.
- اضافه شدن یک عضو جدید به یک گروه حساس در Active Directory مثل گروه Domain Admins.
- تلاش برای دسترسی به یک پوشه حساس (مثل همون هانیتوکن) توسط یک کاربر غیرمجاز.
ایجاد هشدار فقط محدود به موتور جادویی SIEM نیست. هشدارها را میتوان در مراحل مختلفی ایجاد کرد، مثلاً در زمان دریافت لاگ یا پس از ذخیرهسازی با جستجوهای دورهای. به عنوان مثال، پلتفرمهای یادگیری ماشین اغلب از جستجوی پس از ذخیرهسازی برای تحلیل و تولید هشدار استفاده میکنند.
سیستم هشدار داخلی و قدرتمند Splunk به ما اجازه میده این کار رو به بهترین شکل انجام بدیم. Splunk به کاربران اجازه میده بر اساس هر جستجوی SPL که مینویسن، هشدارهای پیچیدهای با شرایط فعالسازی (trigger) دقیق و اقدامات (actions) متنوع تعریف کنن. این اقدامات فقط ارسال یک ایمیل نیست. شما میتوانید یک اسکریپت را اجرا کنید تا به طور خودکار یک IP را در فایروال مسدود کند، یا یک تیکت با تمام اطلاعات لازم در سیستم پشتیبانی ایجاد کند. این یعنی تبدیل یک هشدار به یک پاسخ فعال.
جمعبندی و نتیجهگیری
خب، در این اپیزود یک مسیر کامل رو با هم طی کردیم. از درک پیشنیازهای یک جستجوی قدرتمند شروع کردیم، چهار تکنیک کلیدی تحلیل یعنی لیستهای انکار، لیستهای مجاز، تحلیل دم بلند و تشخیص ناهنجاری رو یاد گرفتیم، دیدیم که چطور این تکنیکها در ابزاری مثل Splunk پیادهسازی میشن و در نهایت، یاد گرفتیم چطور این فرآیند رو از طریق هشدارهای هوشمند، خودکار کنیم.
پیام اصلی این پادکست اینه: “یک سیستم SIEM تنها به اندازه فکر و استراتژی که برای جستجو و هشدارهای آن صرف میشود، قدرتمند است.” ابزار به تنهایی کافی نیست؛ این دانش و تکنیکهای ماست که به اون قدرت میده.
به عنوان یک فراخوان به عمل، از شما میخوام یکی از تکنیکهایی که امروز یاد گرفتید، مثلاً تحلیل دم بلند، رو روی دادههای سازمان خودتون امتحان کنید. به دنبال نادرترین رویدادها بگردید. شاید شما هم بتونید سوزنی رو در انبار کاه پیدا کنید که بقیه ندیدن.
ممنونم که در این قسمت با من همراه بودید. تا قسمت بعد، امن بمانید.
دیدگاهتان را بنویسید