چطور ترافیک شبکه رو زیر نظر بگیریم و ناهنجاری‌هاش رو کشف کنیم؟ یه راهنمای خودمونی!

امروز میخوام درباره یه موضوع باحال و البته خیلی مهم حرف بزنم: شناسایی ناهنجاری‌ها توی ترافیک شبکه، اونم با کمک NetFlow و روش‌های هوشمند مثل یادگیری ماشین. حالا شاید بپرسی اصلاً این اسم‌ها یعنی چی و چرا مهمه؟ بیا با هم جلو بریم، قشنگ توضیح میدم!

اولا همه‌مون می‌دونیم که این روزا فناوری اطلاعات و ارتباطات (که خلاصش میشه ICT) حسابی نقشش تو زندگیمون پررنگ شده. هم ارتباط رو راحت‌تر کرده، هم کارها رو سرعت داده، هم کلی امکان جدید به ما داده. ولی خب، هرچی بیشتر بهش وابسته میشیم، امنیتش هم مهم‌تر میشه، چون هکرها و تهدیدهای سایبری هم بیکار ننشستن!

توی این سیستم‌ها کلی داده لحظه به لحظه رد و بدل میشه که اگه بخوای امنیت رو حفظ کنی، باید حالت همیشه آنالیزشون کنی تا بفهمی تهدید جدی وجود داره یا نه. اینجاست که NetFlow میاد وسط! NetFlow یه جور پروتکل شبکه‌اس (یعنی یه قانون برای رد و بدل کردن اطلاعات تو شبکه) که به کمکش میشه ترافیک شبکه رو زیر نظر گرفت، IP آدرس‌ها رو جمع کرد و اگه چیزی خارج از روال بود (یعنی ناهنجاری یا همون anomaly)، سریع متوجه شدیم.

حالا این مقاله که دارم براتون تعریف می‌کنم، اومده با روش تحقیق به اسم Design Science Research (یا همون طراحی علمی – یه روش برا این که مدل‌سازی و راه‌حل ارائه بدی واسه مسائل جدید) تحقیقش رو پیش برده. هدفش چی بوده؟ این که یه سری ویژگی خوب و کاربردی برای آنالیز داده‌های NetFlow پیدا کنه تا با کمک یادگیری ماشین بشه ناهنجاری یا رفتار مشکوک رو تشخیص داد.

یادگیری ماشین یعنی چی؟ یعنی سیستم رو آموزش بدی که خودش از دل داده‌ها الگو پیدا کنه و بتونه چیزهای غیرعادی رو تشخیص بده. مثلاً سیستم خودش بفهمه ترافیک معمولاً چه شکلیه، و اگه یه دفعه یه چیز عجیب ببینه، بهت خبر بده.

برای این کار، نویسنده‌های مقاله اومدن دوتا مدل معروف رو استفاده کردن:

  • K-means clustering: یه مدل که داده‌ها رو تو چندتا گروه مشابه دسته‌بندی می‌کنه و اگه داده‌ای خیلی با بقیه فرق داشته باشه (یعنی ناهنجار باشه)، اون رو جدا نشون می‌ده. جالبه بدونی این روش نیاز به برچسب هم نداره، یعنی خودش داده‌ها رو گروه‌بندی می‌کنه.
  • LSTM یا همون Long Short-Term Memory: یه مدل از خانواده شبکه‌های عصبی (یعنی مدل‌هایی که از مغز انسان الهام گرفتن)، مخصوص یادگیری از سری‌های زمانی مثل ترافیک‌هایی که پشت سر هم میان. این مدل کمک می‌کنه الگوهای زمانی کشف بشن و اگه یه چیز غیرمنتظره دید، بگه خب این غیرعادیه!

حالا نکته جالب اینجاست که برای K-means یه مجموعه ۲۴تایی از ویژگی‌ها (یعنی چیزهایی مثل تعداد بسته‌ها، حجم ترافیک، مدت زمان، و…) و برای LSTM یه لیست ۱۴تایی از ویژگی‌هایی که برای تحلیل کافی و به دردبخور باشه درست کردن.

ضمناً نویسنده‌ها اومدن یه راه جالب امتحان کردن: خروجی‌های هر دو مدل رو ترکیب کردن تا تصمیم‌گیری بهتر و مطمئن‌تری داشته باشن. برای این کار به سراغ قضیه بیز رفتن (Bayes’ theorem: یه فرمول آماری که می‌گه چطور می‌تونی با توجه به اطلاعات قبلی، احتمال درست بودن یه پیش‌بینی رو بهتر حساب کنی)، که دیگه خیالت از نتیجه راحت‌تر باشه. همچنین، بررسی کردن که مدل‌ها قبلاً کجاها درست کار کردن و کجاها نه، اینجوری ترکیب جواب‌هاشون هوشمندانه‌تر میشه!

در کل، این تحقیق نشون میده که هم مدل‌های خوشه‌بندی مثل K-means و هم مدل‌های سری زمانی مثل LSTM می‌تونن هرکدوم از یه زاویه به موضوع نگاه کنن و اگه هوشمندانه ترکیب بشن، میشه سیستم‌های هوش مصنوعی قوی‌تر و مطمئن‌تر واسه امنیت شبکه ساخت. خلاصه اگه علاقه‌مند به امنیت شبکه، یادگیری ماشین، یا حتی صرفاً یه آدم خوره دیتا هستی، کلی نکته خفن میشه از این روش یاد گرفت!

منبع: +