Logها و رویدادها، پایه و اساس نظارت، بررسی، فارنزیک (Forensic) و سیستمهای SIEM مدرن هستند. با توجه به این مهم، در ادامه این مطلب، به طور دقیق و کامل با نحوه جمعآوری Log، پردازش، نگهداری و همچنین نحوه بهکارگیری آنها در مرکز عملیات امنیت (SOC) آشنا خواهیم شد.
جمعآوری Log یا Log Aggregation چیست؟
جمعآوری Log عبارت است از فرآیند گردآوری Logها از سیستمهای کامپیوتری مختلف، تجزیه آنها، استخراج دادههای ساختاریافته از آنها و در نهایت قرار دادن آنها در یک قالب قابل جستجو و کاوش توسط ابزارهای داده مدرن.
چهار روش رایج برای جمعآوری Log وجود دارد (بسیاری از سیستمهای جمعآوری Log از ترکیبی از روشهای مختلف استفاده میکنند)
- Syslog: یک پروتکل ثبت Log استاندارد است. مدیران شبکه میتوانند یک سرور Syslog راهاندازی کنند تا Logها را از سیستمهای مختلف دریافت کرده و در یک قالب فشرده و مقرونبهصرفه، به گونهای که به سادگی اجرای Query بر روی آنها ممکن باشد، ذخیره کند. ابزارهای جمعآوری Log میتوانند به طور مستقیم دادههای Syslog را خوانده و پردازش کنند.
- Event Streaming: پروتکلهایی مانند SNMP، Netflow و IPFIX به دستگاههای شبکه امکان ارائه اطلاعات استاندارد درباره فعالیتهای خود را میدهند. ابزارهای جمعآوری Log قادر هستند این اطلاعات را دریافت کرده و پس از تجزیه و تحلیل، به مخزن Log مرکزی اضافه کنند.
- جمعآوریکننده Log: عوامل نرمافزاری که بر روی دستگاههای شبکه اجرا میشوند، اطلاعات Log را ضبط کرده و پس از تجزیه، برای ذخیرهسازی و تحلیل به یک مولفه جمعآوریکننده مرکزی ارسال میکنند.
- دسترسی مستقیم: ابزارهای جمعآوری Log میتوانند با استفاده از API یا پروتکلهای شبکه مستقیما به دستگاههای شبکه یا سیستمهای کامپیوتری متصل شده و Logها را به طور مستقیم دریافت کنند. این رویکرد نیازمند یکپارچهسازی سفارشی و مخصوص برای هر منبع داده است.
پردازش Log چیست؟
پردازش Log عبارت است از دریافت Logهای سیستمی خام از منابع مختلف، شناسایی ساختار یا الگوی آنها و تبدیل آنها به یک منبع داده منسجم و استاندارد.
روند پردازش Log
- تجزیه Log: هر Log از مجموعهای از فیلدهای داده و مقادیر متناظر تشکیل شده است. با این حال، فرمت Logها در سیستمهای مختلف و حتی Logهای مختلف یک سیستم متفاوت است.
تجزیهکننده Log مولفهای نرمافزاری است که قادر است Logهایی با یک فرمت مشخص را به عنوان ورودی دریافت کرده و آنها را به دادههای ساختاریافته تبدیل کند. نرمافزارهای جمعآوری Log شامل دهها یا صدها تجزیهکننده هستند است که برای پردازش Logهای سیستمهای رایج نوشته شدهاند.
- نرمالسازی و دستهبندی Logها: نرمالسازی، رویدادهای حاوی دادههای متفاوت را در یک فرمت کاهشیافته، که شامل ویژگیهای مشترک رویدادها است، ادغام میکند. بیشتر Logها اطلاعات پایه مشابهی – مانند زمان، آدرس شبکه، عملیات صورت گرفته و … – را ضبط میکنند.
دستهبندی شامل افزودن معنی به رویدادها – شناسایی Logهای داده مربوط به رویدادهای سیستم، احراز هویت، عملیاتهای راه دور/محلی و … – است.
- غنیسازی Log: غنیسازی Log فرایندی است که طی آن اطلاعاتی مهم که منجر به مفیدتر شدن Logها میشود، به این دادهها افزوده میشود.
به عنوان مثال، در صورتی که Logها شامل آدرسهای IP اما فاقد مکان فیزیکی واقعی کاربرانی دسترسییابنده به یک سیستم باشند، یک تجمیعکننده Log میتواند از یک سرویس داده موقعیت جغرافیایی استفاده کرده و پس از یافتن موقعیتها، آنها را به دادهها اضافه کند.
- نمایهسازی Log: شبکههای مدرن، مقادیر بسیار زیادی از دادههای Log تولید میکنند. برای جستوجو و کاوش کارا بر روی دادههای Log، لازم است تا نمایهای از ویژگیهای مشترک تمام دادههای Log ایجاد شود.
در مقایسه با اسکن کامل دادههای Log، جستوجوها یا Queryهایی که از ایندکس استفاده میکنند، به مراتب سریعتر انجام میشوند.
- ذخیرهسازی Log: با توجه به حجم بسیار زیاد دادههای Log و رشد نمایی آنها، فناوری ذخیرهسازی Log به سرعت در حال تکامل است. به طور سنتی، جمعآوریکنندگان Log، این دادهها را در یک مخزن مرکزی ذخیره میکردند. اما امروزه، Logها به طور فزایندهای بر بستر فناوری Data Lake و ابزارهایی مانند مانند Amazon S3 یا Hadoop ذخیره میشوند.
دریاچههای داده قادر هستند از حجم ذخیره نامحدود با هزینه ذخیره افزایشی کم پشتیبانی کرده و از طریق موتورهای پردازش توزیعشدهای همچون MapReduce یا ابزارهای تجزیه و تحلیل کارا، دسترسی به داده را تامین کنند.
جمعآوری Log چه اطلاعاتی را ضبط میکند؟
ابزارهای جمعآوری Log، فایلهای Log رویدادها را از برنامهها و دیگر منابع زیرساخت IT ضبط میکنند. Logهای رویدادها، در زمانی وقوع انواع به خصوصی از رویدادها در برنامه به طور خودکار توسط سیستمهای کامپیوتری تولید میشوند. با توجه به شدت رویداد و همچنین میزان ضرورت موردنیاز برای پاسخگویی، Logهای رویدادها را میتوان صورت زیر طبقهبندی نمود:
- اطلاعات: Logهای اطلاعاتی تغییرات در وضعیت برنامه یا تغییرات در موجودیتهای درون برنامه را مستند میکنند. این Logها برای تعیین وقایع رخ داده در یک بازه زمانی مشخص در برنامه مفید هستند. یک Log اطلاعاتی ممکن است در صورت وقوع یکی از موارد زیر ایجاد شود:
- خاتمه یک Batch زمانبندی شده
- بارگیری موفق برنامه
- کپی برخی از فایلها توسط یک کاربر
- مقداردهی صحیح اولیه یک Driver.
درحالی که سایر دستههای Log برای ثبت و گزارش عملیاتهای ناموفق مورد استفاده قرار میگیرند، Logهای اطلاعاتی بر روی وظایفی که با موفقیت خاتمه یافتهاند، تمرکز دارند.
- خطاها/خرابیهای برنامه: برنامهها باید در صورت مواجهه با خطا بهطور خودکار Logهایی از دسته خطا ایجاد کنند. در اینجا خطا به معنای عملکرد نادرست برنامه و عدم امکان بازیابی بوده و ممکن است کاربران محیط تولید را تحت تأثیر قرار داده و منجر به قطع خدمات و تجربه ضعیف مشتریان شود. برای به حداقل رساندن تأثیر خطاهای برنامهای که بر سرویسهای حیاتی تأثیرگذار هستند، Logهای خطا نیاز به رسیدگی فوری دارند.
- هشدارها/ اختلالها در عملکرد برنامه: یک Log هشدار زمانی ایجاد میشود که یک برنامه علیرغم ناتوانی در انجام عملیات موردنظر، قادر به بازیابی و ارائه سرویس باشد.
هشدارها و خطاها تا حدودی شبیه به یکدیگر به نظر میرسند؛ با این حال، میتوان از توصیف زیر برای تمایز آنها استفاده کرد:
- در صورتی که یک برنامه در نتیجه فراخوانی پایگاه داده X، که به واسطه یک عمل صورت گرفته توسط یک کاربر انجام شده، از کار بیافتد، نتیجه یک Log خطا است.
- در صورت که یک برنامه در نتیجه فراخوانی پایگاه داده X، که به واسطه یک عمل صورت گرفته توسط یک کاربر انجام شده، با تاخیر بیش از حد انتظار مواجه شود، نتیجه یک Log هشدار است.
Logهای هشدار به اندازه Logهای خطا اورژانسی نیستند؛ با این حال باید با رسیدگی نسبتا سریع به آنها از تاثیرات منفی بر روی خدمات مشتریان پیشگیری شود.
- رویدادهای امنیتی مثبت: بیشتر برنامهها در نتیجه خاتمه موفقیتآمیز یک رویداد امنیتی یک پاسخ Login ایجاد میکنند. از جمله چنین رویدادهای امنیتی میتوان به مواردی همچون ورود کاربر به کامپیوتر، ورود کاربر به یک پایگاه داده یا یک برنامه، پاسخ کاربر به یک سوال امنیتی یا انجام هر نوع دیگری از احراز هویت (رمز یکبارمصرف، دادههای بیومتریک، مکان، احراز هویت Out-of-band و غیره) اشاره کرد.
- رویدادهای امنیتی منفی: ابزارهای جمعآوری Log، علاوه بر ثبت رویدادهای با موفقیت خاتمهیافته، رویدادهای امنیتی ناموفق را نیز ردیابی میکنند. هر بار که رمز اشتباه توسط یک کاربر وارد میشود، پاسخی اشتباه به یک سوال امنیتی داده میشود یا به طریقی دیگر فرایند احراز هویت با شکست روبرو شود، یک Log برای ثبت رویداد ایجاد میشود.
علاوه بر نوع رویداد، Logها معمولا شامل موارد زیر هستند:
- دادههایی که رویداد بر روی آنها واقع شده
- زمانی وقوع رویداد
- توصیفی از رویداد و در صورت امکان یک کد خطا
- پروفایل کاربر فعال در زمان وقوع رویداد
- نام کامپیوتر یا نقطه پایانی شبکه که رویداد در آن واقع شده
- یک شماره شناسایی رویداد برای ارجاع
- منبع رویداد
منابع: