کشف حمله‌های شبکه فقط با دیتای سالم – مدل عجیب و غریب خودکارها و SVM تک‌کلاسه!

امروز میخوام براتون درباره یه روش خیلی جالب برای پیدا کردن نفوذ یا حمله‌های سایبری به شبکه بگم که هم ساده‌ست، هم هوشمنده، و هم خیلی دردسر جمع کردن دیتای ناسالم رو نداره!

می‌دونیم که تو اکثر سازمان‌ها، تشخیص اینکه شبکه‌شون مورد حمله قرار گرفته یا نه، کار خیلی مهمیه. واسه این کار معمولاً از سیستم‌هایی به اسم NIDS استفاده میشه. یعنی Network Intrusion Detection Systems که وظیفه‌شون اینه از توی ترافیک شبکه بفهمن کدوم حرکت‌ها عادیه و کدومشون مشکوکه یا حمله‌ست. معمولاً مدل‌های مبتنی بر یادگیری عمیق (Deep Learning) تو این حوزه حسابی موفق بودن، اما یه مشکل بزرگ دارن: باید هم داده‌ی سالم (یعنی عادی) و هم داده‌ی ناسالم (یعنی حمله) بهشون بدی تا آموزش ببینن. خب تو عمل جمع کردن داده‌های حمله خیلی سخته. اولاً جمع‌آوریش امنیتی و پر دردسره، دوماً هزینه بره (چون باید آدم متخصص بشینه و داده‌ها رو برچسب بزنه)، سوماً حتی گاهی محدودیت‌های حریم خصوصی هم وجود داره و حتی ممکنه اصلاً نتونی بعضی از داده‌های حمله رو داشته باشی.

حالا راه‌حل چیه؟

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

✔️ روش چطوریه؟

این مدل پیشنهادی دوتا بخش داره: یکیش One-Class Support Vector Machine یا همون OC-SVM (یه مدل معروف یادگیری ماشین که فقط روی یه دسته داده، مثلاً فقط داده‌های سالم، یاد می‌گیره بقیه هرچی هست غیرعادیه)، یکی دیگه AutoEncoder (یه معماری شبکه عصبی که کارش یادگیری الگوهای مهم داده و فشرده‌سازی اوناست و همینطور پیدا کردن داده‌هایی که طبق معمول نیستن!).

اول، میان و مدل OC-SVM رو فقط با ترافیک سالم شبکه آموزش میدن، بعد این مدل برای هر جریان ترافیکی از شبکه، یه «امتیاز تصمیم» صادر می‌کنه که نشون میده آیا این جریان بنظرش سالمه یا عجیب.

حالا خلاقیت این مقاله اینجاست: این امتیازهای تصمیم OC-SVM رو به صورت یه ویژگی (feature) دیگه به داده‌ها اضافه می‌کنن و بعد کل این پکیج رو می‌فرستن به AutoEncoder. یعنی در واقع autoencoder علاوه بر داده‌های معمولی، این امتیاز تصمیم OC-SVM رو هم به عنوان یه سر نخ اضافه درنظر می‌گیره!

📊 نتیجه این کار چی میشه؟

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

حتی یه تکنیک جالب دیگه هم تو این مقاله گفته شده: تنظیم پارامتر trade-off تو OC-SVM همیشه سخته، چون باید هم تعادل بین حساسیت و دقت حفظ شه و هم معمولاً نیاز به داده‌های حمله هم هست تا بهترین عدد پیدا کنی. اما تو این مدل پیشنهادی، یه راه میانبر ارائه شده که فقط با داده‌های سالم، میشه این پارامتر رو تقریباً مثل وقتی که داده‌های ناسالم داری، بهینه کنی. اینجوری بدون دردسر داده‌های حمله، همون دقت رو به دست میاری!

وقتی این مدل رو روی دیتاست معروف حملات شبکه UNSW-NB15 آزمایش کردن (این یه دیتاست کاملاً شناخته شده بین متخصص‌ها برای تست کردن NIDS هست)، مدل OCSVM-AE خیلی خوب عمل کرد. حتی در تشخیص حمله‌های که تا حالا بهش ندیده بود هم دقتش از مدل‌های کلاسیک و حتی مدل‌های عمیق تک‌کلاسه بالاتر بود!

در ضمن، خوبی این مدل اینه که سرش تو برف نیست یعنی هیچ پیش‌فرض خاصی درباره توزیع داده‌ها نمی‌گیره، پس برای انواع شبکه‌ها قابل استفاده‌ست. بعلاوه میشه کنارش از روش‌های مبتنی بر امضای حملات (Signature-based) هم استفاده کرد تا هرچی بیشتر شبکهتون رو ایمن کنید.

خلاصه اگر دنبال یه راه باحال، کم‌هزینه و کاربردی برای تشخیص حمله‌ها تو شبکه بدون نیاز به کلی داده‌ی برچسب‌خورده و سخت جمع‌آوری هستید، این مدل پیشنهادی با ترکیب OC-SVM و AutoEncoder می‌تونه حسابی به کارتون بیاد!

منبع: +