بخشی از مقاله
چکیده
نفوذ به شبکه، عملیاتی است برای دسترسی غیر مجاز به شبکه یا سیستمهای کامپیوتری با عبور از مکانیسم امنیتی سیستم. در تشخیص نفوذ، تلاش میشود که با تحلیل ترافیک جاری شبکه یا تحلیل تقاضاها، فعالیتهای نفوذگر شناسایی شود. تاکنون برای تشخیص نفوذ از روشهای متعددی بهرهگیری شده است. سیستمهای دستهبند یادگیر به عنوان ابزاری جدید و مدرن برای ایجاد قوانینی برای پیشبینی نفوذ، میتواند در این زمینه بسیار کارآمد باشد.
بر اساس این سیستمها میتوان قوانینی بر اساس پاداش و جریمه ایجاد نمود تا قوانین بهتر، از محیط، پاداش دریافتکرده و قوانین نامناسب، از محیط جریمه دریافت کنند. در این مقاله از انواع سیستمهای دستهبند یادگیر و به طور خاص از سیستم دستهبند XCS استفاده شده است. البته این روش به تنهایی مورد استفاده قرار نگرفته و از سیستم دستهبند فازی برای ایجاد ورودی در این سیستم استفاده میشود. نتایج حاصل از شبیهسازی الگوریتم پیشنهادی بر روی مجموعه داده KDD99 و مقایسه آن با روشهای موجود، نشان دهنده دقت بیشتر و عملکرد بهتر الگوریتم پیشنهادی است.
-1 مقدمه
نفوذ، به عملیاتی اطلاق میشود که تلاش میکند برای دسترسی غیر مجاز به شبکه یا سیستمهای کامپیوتری از مکانیسم امنیتی سیستم عبور کند. سیستم تشخیص نفوذ1، برنامهایاست که با تحلیل ترافیک جاری شبکه یا تحلیل تقاضاها سعی در شناسایی فعالیتهای نفوذگر مینماید. به دلیل رشد روزافزون استفاده از شبکههای کامپیوتری و مقدار فزاینده تهدید امنیت، مطالعه سیستمهای IDS2 توجه زیادی را در زمینه علم رایانه به خود جلب کرده است.
سیستم طبقه بند یادگیر یا LCS بر اساس یادگیری تقویتی، یادگیری باناظر، الگوریتم تکاملی و الگوریتم ژنتیک کار میکند که در راستای دستهبندی نفوذ به شبکه نیز از آن بهرهگیری شده است. بر اساس LCS ، سیستمهای مبتنی بر سرعتِ XCS شکل گرفتهاند که در آن، برازندگی یک طبقه بند به دقت پیشبینی از میزان پاداشی که هر زمان فعال میگردد بستگی دارد. یکی از تکنیکهای مطرح در زمینه دستهبندی، استفاده از روش فازی با اعمال تکنیک ساخت قوانین مثل الگوریتم ژنتیک است. یکی از ایرادات این نوع دستهبندی، بوجود آمدن قوانین بسیار زیاد برای دسته بندی است.
روشهای متعددی برای کاهش تعداد قوانین ارائه شده است. زیرا اساس منطق فازی، ارائه قوانینی است که توسط انسان قابل فهم و قابل استنباط است. یکی از این روشها، روش Fuzzy-XCS است. دو دلیل اصلی برای توسعه سیستمهای تشخیص نفوذ مبتنی بر دستهبندی فازی XCS ارایه شده است:
-1 افزایش دقت سیستم برای تشخیص حملات با تکرار کم
-2 بهبود پایداری سیستم در ادامه مقاله؛ کارهای انجامشده تاکنون را در بخش 2، مدل پیشنهادی را در بخش 3 ، پیادهسازی و ارزیابی را در بخش 4 و نتیجهگیری و کارهای آینده را در بخش 5 بیان خواهیم کرد.
-2 کارهای انجام شده
در سالهای اخیر به علت کاربردهای روزافزون، تحقیقات در زمینه سیستمهای تشخیص نفوذ به یکی از حوزههای مهم تحقیق بدل گشته و بسیاری از محققین حوزه امنیت سایبری3 و هوش مصنوعی4، توجه خود را به این حوزه جذاب معطوف کردهاند. در نتیجه مقالات و روشهای گوناگونی تاکنون برای بهبود کیفیت سیستمهای تشخیص نفوذ و در نتیجه بهبود امنیت شبکههای کامپیوتری ارائه شدهاند که در ادامه به برخی از آنها اشاره میکنیم.
دادههای مورد استفاده از شبکههامعمولاً توسط تعداد زیادی از ویژگیها توصیف میشوند. ممکن است بسیاری از این ویژگیها برای کاربرد دادهکاوی موردنظر، نامرتبط و دارای افزونگی باشند. وجود تعداد زیادی از این ویژگیهای نامرتبط و زائد در مجموعه داده ای بر عملکرد الگوریتم یادگیری ماشین تأثیر منفی گذاشته و همچنین پیچیدگی محاسباتی را افزایش میدهد.
بنابراین کاهش ابعاد مجموعه داده ای یک وظیفه اساسی در کاربردهای دادهکاوی و یادگیری ماشین است. کاهش ابعاد مجموعه دادهای از یک طرف، پیچیدگی محاسباتی را کاهش داده و از طرف دیگر، باعث کاهش پارامترهای الگوریتم طبقهبندی میشود. در نتیجه، عملکرد الگوریتم طبقهبندی افزایش پیدا می کند. به عبارت دیگر، مدلی که بر اساس ویژگیهای کاهشیافته ساخته می شود، دارای قابلیت تعمیم بالاتری نسبت به مدل اولیه است.
شون و همکارانش[4] در یک پژوهش روش ترکیبی ارائه نمودند که در آن SVM استاندارد5 را با یک روش SVM بدون ناظر6 را مورد استفاده قرار داده بودند. آنها تمرکز خود را بر روی حملات سایبری روز صفر7 مانند کرمها و نرمافزارهای جاسوسی قرار دادند که در حال گسترش و خطرناک شدن بودند. آنها از SVM یک کلاسه8 کهعمولاً برای تشخیص نفوذ به کار میرود برای ایجاد روشی بدون ناظر استفاده نمودند.
تسای و همکارانش[5] در پژوهشی، دو روش را ترکیب کردند. این روش ترکیبی یک محیط نزدیکترین همسایگی9 مثلثیشکل10 را برای سیستم تشخیص نفوذ تشکیل میداد. در این محیط ابتدا آنها از الگوریتم خوشهبندی11 K-Means برای تعیین مرکز خوشهها استفاده کردند. این مراکز، کلاس نفوذگرها را نمایش میداد سپس ناحیه مثلثی به کمک دو مرکز خوشه با یک داده از دیتاست محاسبه می شود و یک خصوصیت جدید برای داده ایجاد میکند.
در نهایت با کمک روش دستهبندیK -NN 12، نفوذگرها بر اساس ویژگی ایجاد شده در مرحله قبل تشخیص داده میشوند. برای شبیهسازی کارآیی الگوریتم، آنها از دیتاست KDDCup99 استفاده کردند. نتایج نشاندهنده این است که روش پیشنهادی میتواند به نحو مناسبی حملات را تشخیص دهد و درصد تشخیص بالاتری را به دست آورد و از طرف دیگر تعداد تشخیصهای غلط را نیز به نحو چشمگیری کاهش میدهد.
در سال 2014 گوماس و همکارانش [6] یک پیاده سازی برخط از الگوریتم Naïve Bayes ارائه کردند. آنها همچنین تنظیم برخط برخی از روشهای یادگیری ماشین را روی دیتاست KDD مقایسه کردند. ایده اصلی روش ایشان این بود که وزندهی به آخرین نمونهها، کلاسیفایر را قادر میسازد که با حملات اخیر بهتر سازگار گردد. روش آنها در مقایسه با KNN از نظر زمان، کارآیی بهتری دارد و از دقت مناسبی نیز برخوردار است.
در سال 2014 فنگوین و همکارانش [7] در پژوهشی، یک کلاسیفایر SVM دارای چند لایه طراحی نمودند که میتوانست تخمین بزند آیا یک عمل مشکوک است یا خیر. آنها همچنین از KPCA به عنوان پیش پردازندهای برای SVM استفاده کردند و به این وسیله مدت زمان یادگیری را کاهش دادند و همچنین از N-RBF برای کاهش نویز استفاده نمودند.
بین و همکارانش نیز در پژوهشی دیگر[8] در سال 2014، روش تولید ویژگی بر اساس محیط چهارضلعی ستارهای را به کار گرفتند که فاصله بین نمونهها را در یک مسئله دستهبندی پنجکلاسه، محاسبه میکرد. بر اساس تصویر چهارضلعی ستارهای، ویژگیهای عددی برای دادههای مشاهده شده در شبکه به دست میآید و به این ترتیب یک سیستم مقابله با نفوذ با تعداد کمتری ویژگی ایجاد می شود. آزمایشهای اعتبارسنجی سیستم پیشنهادی آنها بر روی دیتاست KDDCup99 نشان داد که این سیستم دقت بالایی را در تعمیم دادن13 دارد.
در سال 2015 دیسل و همکارانش[9] در پژوهشی، روشی برای بهبود کارآیی سیستمهای تشخیص نفوذ پیشنهاد دادند. آنها برای دستهبندی نمونهها از تکنیکهای دادهکاوی جریان دادهای استفاده کردند و چهار روش دستهبندی را مورد استفاده قرار دادند. آنها روش پیشنهادی خود را بر روی دیتاست KDD مورد ارزیابی قرار دادند و به تفسیر نتایج پرداختند که این نتایج نشاندهنده بهبود در زمان پاسخگویی است.
در [10] با ترکیب تکنیک فازی و سیستم ایمنی مصنوعی14، به روشی برای تشخیص حملات DoS در شبکههای سنسور بیسیم رسیده است.
در [11] با ترکیب روش Fuzzy-XCS و ارائه تکنیک Hedge به نتایج بهتری برای دستهبندی رسیده است. در نمونه کار شده، با بررسی دیتاست Polish Glass ، دقت بدست آمده از روش Fuzzy-XCS برابر 76.05% و با ترکیب Hedge برابر 80.05% است.
در [12] با ارائه روشی جدید مبتنی بر منطق فازی و ELM به افزایش توان مقایسه کارایی الگوریتمهای تکاملی پرداخته و به مدلی جدید برای سنجش عملکرد دو الگوریتم برای حل یک مسئله خاص دست یافته است. با این روش، می توان به جای مقایسه نتایج عددی حاصل از الگوریتمها که تنها معیار عملکرد بوده است، به بررسی کل فرایند طی شده توسط الگوریتم تکاملی مورد نظر رسید و سپس اقدام به مقایسه الگوریتمها کرد. این کار، باعث بررسی دقیقتر عملکرد الگوریتمهای تکاملی میشود.
-3 مدل پیشنهادی
در مدل پیشنهادی، با روشهای دستهبندیِهشدارهای LCS و XCS و ترکیب آن دو با روشهای فازی، بهبود قابل توجهی در دستهبندی هشدارها در IDS داریم. در ادامه به شرح مدل ها، معرفی راهکار، بانک اطلاعاتی و پیشپردازش روی آن و دستهبندهای یادگیر میپردازیم.
-1-3 شرحی بر مدل
یکی از مشکلات در زمینه شبکههای کامپیوتری، حملات بی وقفه به این شبکهها می باشد . این نوع حملات می تواند به شکلهای مختلفی انجام شود و انواع مختلفی داشته باشد. این نوع حملات شامل بیست و سه نوع میشوند که حملات به صورت مجموعه ای بر اساس چهل و یک ویژگی و یک ویژگی با نام نوع حمله در دیتاستkdd99 توسط دانشگاه MIT جمع آوری شده است.
بر اساس این ویژگیها که شامل مقادیری مانند نوع پروتکل حملهکننده و یا شماره پورت حملهکننده می باشد میتوان به پیشبینی نوع حملاتی که در آینده رخ خواهد داد پرداخت. در این پژوهش از روش ترکیبی دسته بند یادگیر و دسته بندی فازی برای تشخیص درست نوع حملات بر اساس دیتاست KDD99 استفاده می شود. یکی از تکنیکهای مطرح در زمینه دسته بندی، استفاده از روش فازی با اعمال تکنیک ساخت قوانین مثل الگوریتم ژنتیک است.
از جمله ایرادات این نوع دستهبندی، بوجود آمدن قوانین بسیار زیاد برای دستهبندی است. روشهای متعددی برای کاهش تعداد قوانین ارائه شده است زیرا اساس منطق فازی، ارائه قوانینی است که توسط انسان قابل فهم و قابل استنباط است. یکی از این روشها، روش Fuzzy-XCS است که در این پژوهش از آن استفاده شده است.
-2-3 معرفی بخشهای راهکار پیشنهادی
این پژوهش از دو بخش اصلی تشکیل شده است که هر کدام از این بخش ها به معرفی راهکار پیشنهادی خواهد پرداخت که به ترتیب به شکل زیر میباشند:
-1 بررسی دیتاست kdd99 و عملیات پردازشی بر روی داده ها
-2 سیستم های دستهبند یادگیر ارائه شده در این پژوهش.
-3-3 پیشپردازش بر روی دیتاست :kdd99گ
در این بخش به تشریح دیتاست kdd99 و پیشپردازشهای لازم برای تبدیل شدن مقادیر برای استفاده در دستهبند فازی پرداخته میشود. این دیتاست شامل 23 نوع حمله می باشد. این حملات همگی در این دیتاست جمعآوری شدهاند. هر کدام از رکوردهای ذخیره شده در این دیتاست شامل 41 ویژگی میباشند. این دیتاست مجموعه کاملی از انواع حملات را در خود جای داده که میتوان از آن به عنوان مرجعی کامل برای این منظور بهره برد.
-4-3 دستهبند یادگیر LCS
در این بخش به تشریح پارامتر های این دستهبند یادگیر اشاره خواهد شد. هر کدام از این پارامتر ها برای محاسبه قدرت تاثیر گذار هستند در این دستهبند برازندگی یک قانون بر اساس میزان قدرت محاسبه شده برای دسته میباشد. :Action -1 نوع حمله و یا خروجی عمل محیط را نمایش میدهد.
:Strength -2میزان قدرت هر دسته
page4:specificity -3 این پارامتر در محاسبه قدرت هر دسته تاثیر گذار است.
bid -4 این پارامتر بر اساس پارامترrisk factor محاسبه میشود و این پارامتر نیز در محاسبه قدرت تاثیر گذار است.
RISK Factor-5
:MAX_COND_WIDTH -6 طول دسته ها میباشد.
برای محاسبه قدرت در برنامه از قطعه کد شکل - 1 - استفاده میشود.
شکل : - 1 - محاسبه قدرت در الگوریتم LCS
-5-3 دستهبند یادگیر XCS
این سیستم از قسمت های مختلفی از جمله موتور دستهبندی، عملیات پوشش، عملیات GA بر روی مجموعه نظیر، سیستم تخصیص اعتبار - الگوریتم - Q-learning و غیره استفاده شده است. فلوچارت این الگوریتم در شکل - 3 - نشان داده شده است .بر اساس فلوچارت ارائه شده در این الگوریتم دادههای ورودی، محدوده عددی برای چهل و یک ویژگی میباشند که هر کدام از این محدودههای عددی در یک ماتریس با دو سطر همچنین چهل و یک ستون در نظر گرفته شده که هر کدام از این ماتریسها در واقع نشاندهنده یک دسته و یا قانون میباشند و بر اساس محدودههای عددی که برای هر یک از ویژگی ها در نظر گرفته شده یک نوع حمله به عنوان خروجی هر دسته مد نظر قرار گرفته است. بر اساس این ورودی که به عنوان نقطه شروع الگوریتم می باشد می توان عملیات را بر روی هر کدام از دستهها اعمال کرد و در طول الگوریتم و با استفاده از الگوریتم ژنتیک این سیستم به سمت بهبود دستهها پیش میرود.
-6-3 دستهبند یادگیر FXCS
در این بخش به توضیح سیستم فازی برای الگوریتم دستهبند یادگیر XCS پرداخته میشود. برای این منظور ابتدا دادههای موجود در دیتاست را در بیست و سه دسته با استفاده از دستهبندی فازی قرار داده خواهد شد و تابع تعلق هرکدام از داده ها استخراج می شود. حال باید به این نکته توجه کرد که پس از استخراج تابع تعلق برای دیتاست KDD99 باید بتوان تشخیص داد که چه محدوده عددی میتواند نشان دهنده هر کدام از دسته حملات باشد به عنوان مثال آیا رکوردهایی که مقدار تابع تعلق آنها برای دسته حملات اول مقداری بین 0.01 تا 0.2 داشته باشند و برای دسته حملات دوم مقداری بین 0.3تا0.4 داشته باشند و همینطور تا دسته بیست و سه که تعداد حملات میباشد قوانینی بر اساس تابع تعلق برای دستهبندی حملات تعیین کرد یا نه ؟ که برای حل این مشکل میتوان ماتریسهای تعلق و محدودههای عددی را به عنوان ورودی به سیستم دسته بند یادگیر وارد نمود. شکل - 2 - کد مربوط به دستهبندی فازی در نرم افزار matlab میباشد.