دانلود با لینک مستقیم و پر سرعت .
تشخیص نفوذهای غیر عادی در بستر شبکه با تشخیص outlier هایی که از قبل بررسی نشده اند
چکیده :
تشخیص ناهنجاری (anomaly) موضوعی حیاتی در سیستم های تشخیص نفوذ به شبکه است (NIDS) . بسیاری از NIDS های مبتنی بر ناهنجاری «الگوریتمهای پیش نظارت شده » را بکار می گیرند که میزان کارایی این الگوریتمها بسیار وابسته به دادها های تمرینی عاری از خطا میباشد . این در حالی است که در محیط های واقعی و در شبکه های واقعی تهیه اینگونه داده ها بسیار مشکل است . علاوه بر اینها ، وقتی محیط شبکه یا سرویسها تغییر کند الگوهای ترافیک عادی هم تغییر خواهد کرد .
این مساله به بالا رفتن نرخ مثبت نمایی در NIDS های پیش نظارت شده منجر می شود . تشخیص یک انحراف کامل (outlier) پیش نظارت نشده میتواند بر موانعی که در راه تشخیص ناهنجاری های پیش نظارت شده وجود دارد غلبه کند . به همین دلیل ما الگوریتم « جنگلهای تصادفی » را که یکی از الگوریتمهای کار امد برای استخراج داده است به خدمت گرفته ایم و آن را در NIDS های مبتنی بر ناهنجاری اعمال کرده ایم . این الگوریتم میتواند بدون نیاز به داده های تمرینی عاری از خطا outlier ها را در مجموعه داده های ترافیک شبکه تشخیص دهد . ما برای تشخیص نفوذهای ناهنجار به شبکه از یک چارچوب کاری استفاده کرده ایم و در این مقاله به شرح همین چارچوب کاری میپردازیم .
در این چارچوب کاری ، الگوی سرویسهای شبکه از روی داده های ترافیکی و با استفاده از الگوریتم جنگلهای تصادفی ساخته شده است . توسط outler تعیین شده ای که با این الگوهای ساخته شده مرتبط هستند نفوذها تشخیص داده می شوند. ما نشان میدهیم که چه اصلاحاتی را روی الگوریتم تشخیص outlier جنگلهای تصادفی انجام دادیم . و همینطور نتایج تجربیات خود را که بر اساس مجموعه داده های KDD 99 انجام شده است گزارش میدهیم .
نتایج نشان میدهد که روش پیشنهادی با سایر روشهای تشخیص ناهنجاری پیش نظارت نشده ای که قبلا گزارش شده اند کاملا قابل مقایسه است . البته روشهایی که بر اساس مجموعه داده های KDD 99 ارزیابی شده اند.
1- معرفی
همراه با رشد فوق العاده زیاد سرویسهای مبتنی بر شبکه و وجود اطالعات حساس روی شبکه ها تعداد حملات به کامپیوترهای تحت شبکه و شدت انها نیز به طور محسوسی افزایش یافته است . در حال حاضر طیف وسیعی از تکنولوژیهای امنیتی وجود دارد که میتوانند از سیستم های تحت شبکه محافظت کنند . تکنولوژیهایی مانند رمز نگاری اطلاعات کنترل دسترسیها و جلوگری از نفوذ اما با وجود این تکنولوژیها هنوز هم راههای زیادی برای نفوذ وجود دارد که تا حلل شناسایی نشده است . به همین دلیل سیتسم های تشخیص نفوذ IDS نقشی حیاتی را در امنیت شبکه ایفا می کنند .
سیستم های تشخیص نفوذ به شبکه NIDS فعالیتهای مختلفی که در شبکه انجام می شود را تحت نظر دارد و از این راه حملات را شناسایی می کند . این در حالی است که سیستم های تشخیص نفوذ به سیستم های تحت Host یعنی HIDS نفوذ به یک host منفرد را شناسایی می کند.
دو تکنیک اصلی برای تشخیص ورودهای نابجا وجود دارد . تشخیص کاربردهای نادرست و تشخیص ناهنجاری anomaly تشخیص کاربردهای نادرست بر اساس الگوهای استخراج شده از نفوذهای شناخته شده حملات را کشف می کند . در روش تشخیص ناهنجاری برای شناسایی حملات به این روش عمل می کند که یکسری پروفایلهایی را برای فعالیتهای عادی ایجاد می کند و سپس بر اسسا این پروفایلها موارد انحراف را تعیین می کند . فعالیتهایی که از حد تعیین شده برای انحرافات فراتر رود جزء حملات شناخته می شوند .
در تکنیک تشخیص کاربردهای نادرست نرخ مثبت نمایی پائین است . اما این تکنیک نمی تواند حملاتی از انواع جدید را شناسایی کند . تکنیک تشخیص ناهنجاری میتواند حملات ناشناخته را کشف کند با این پیش فرض که این حملات ناشی از منحرف شدن از رفتارهای عادی هستند.
در حال حاضر بسیاری از NIDS ها مانند Snort سیستمهای قانونمند شده هستند ، به این معنی که این سیستم ها تکنیکهای تشخیص کاربردهای نادرست را به خدمت میگیرند و بنابراین قابلیت انبساط محدودی برای حملات جدید دارند . برای شناسایی حملات جدید سیستمهای تشخیص ناهنجاری بسیاری توسعه پیدا کرده اند . بسیاری از انها بر مبنای روشهای نظارتی توسعه پیدا کرده اند . به عنوان مثال ADAM در تشخیص نفود ، از الگوریتم قوانین مشترک بهره گرفته است ADAM از فعالیتهای عادی که روی داده های تمرینی عاری از حمله انجام می شود یک پروفایل می سازد .
سپس با پروفایل ساخته شده حملات را شناسایی می کند . مشکل ADAM این است که به داده های تمرینی که برای فعالیتهای عادی استفاده می شوند بیش از حد وابسته است . وقتی که در دنیای واقعی با شبکه های حقیقی کار می کنیم عملا هیچ تضمینی نیست که بتوانین از تمامی حملات جلوگیری کنیم . بنابراین دست یافته به داده های تمرینی عاری ازخطا کار بسیار مشکلی است . در حقیقت هم یکی از مرسوم ترین راههایی که برای تحلیل بردن یک سیستم IDS مبتنی بر ناهنجاری استفاده می شود این است که بخشی از فعالیتهای نفوذی را درون داده های تمرینی وارد کنیم . IDS هایی که با این داده های تمرینی تعلیم دیده اند قابلیت شناسایی این نوع از نفوذها را از دست میدهند .
مشکل دیگر IDS های مبتنی بر نظارت بر رفتارهای ناهنجار این است که وقتی محیط شبکه یا سرویسها تغییر می کند نرخ مثبت نمایی بالا میرود . از انجایی که داده های تمرینی فقط فعالیتهای مطالعه شده را شامل می شود پروفایل مربوط به فعالیتهای عادی فقط شامل الگوهای مطالعه شده ای است که از روی رفتارهای عادی برداشته شده اند . بنابراین فعالیتهای جدید ناشی از تغییر محیط شبکه یا سرویسها از پروفایلی که قبلا ساخته شده تبعیت نمی کند و به عنوان حمله شناسایی می شوند . این مساله باعث بالا رفتن مثبت نمایی ها خواهد شد .
برای غلبه بر محدودیتهای سیستم های مبتنی بر ناهنجاری های نظارت شده تعدادی از IDS ها از روشهای غیر نظارتی استفاده می کنند . در تکنیک تشخیص ناهنجاری به صورت غیر نظارتی نیازی به داده های تمرینی عاری از خطا نیست . این تکنیک برای شناسایی حمله ها به این ترتیب عمل می کند که فعالیتهای غیر معمول داده ها را تعیین می کند . برای این کار دو پیش فرض دارد :
• اکثر فعالیتها عادی هستند
• بر طبق امار اغلب حمله ها با منحرف شدن از فعالیتهای عادی صورت می گیرد.
فعالیتهای غیر معمول همان انحرافهای کامل ( Outlier) هستند که با مجموعه داده های باقیمانده جور در نمی ایند . بنابراین تکنیکهای تشخیص Outlier می توانند روی سیستم هایی که ناهنجاریها را به صورت غیر نظارتی تشخیص می دهند اعمال شوند . در واقع هم اکنون هم تشخیص Outlier در تعدادی از برنامه های عملی مانند شناسایی کردیت کارتهای تقلبی و پیش بینی وضع هوا در حال استفاده است .
ما روشی را پیشنهاد می کنیم که برای تشخیص نفوذهای غیر عادی از تکنیک تشخیص outlier ی که توسط الگوریتم جنگلهای تصادفی تهیه شده است استفاده می کند . جنگلهای تصادفی روشی است که در میان الگوریتمهای استخراج داده موجود تقریبا پیشتاز است .
این الگوریتم تا کنون در برنامه های مختلف بسیار زیادی استفاده شده است . برای مثال در برنامه پیشگویی نظریه احتمالات تجزیه الگو در بازیابی اطلاعات چند رسانه ای مورد استفاده بوده است. متاسفانه تا جایی که ما اطلاع دارمی تا کنون این الگوریتم را در سیستم های تشخیص نفوذهای غیر عادی بکار نبرده اند .
دغدغه اصلی سیستمهای تشخیص نفوذهای غیر عادی این است که مثبت نمایی ها را به حداقل برسانند . تکنیک تشخیص outlier برای کاهش نرخ مثبت نمایی و ارائه یک نرخ شناسایی مطلوب و قابل قبول موثر خواهد بود . روش پیشنهادی توسط مجموعه داده KDD99 ارزیابی شده است .
این مجموعه داده برای سومین مسابقه بین المللی ابزارهای استخراج داده و اکتشاف دانش مورد استفاده بوده است . نتایج تجربیات ما نشان می دهد که میزان کارایی تکنیک تشخیص با روش پیشنهادی ما یعنی تکنیک تشخیص outlier به طور موثری بهبود پیدا کرده است .
این مقاله به این صورت تنظیم شده است . در بخش دوم ما کارهای مربوطه را شرح می دهیم در بخش سوم به صورت تفصیلی روش تشخیص outlier با استفاده از الگوریتم جنگلهای تصادفی را شرح می دهیم . در بخش چهارم تجربیات و ارزیابی های انجام شده برای تعیین میزان کارایی نشان داده می شود . و در اخر در بخش پنجم مقاله را خلاصه می کنیم و طرح تحقیقات آتی خود را مشخص می کنیم .
2- کارهای مربوطه
یکی از موضوعهای مهمی که در تحقیقات مربوط به تشخیص نفوذها وجود دارد ، تشخیص ناهنجاری بوده تا کنون روشهای بسیار متنوعی برای تشخیص ناهنجاری پیش نظارت نشده در NIDS ها یک موضوع تحقیقاتی جدید است اسکین در موضوع تشخیص ناهنجاری نظارت نشده ، سه الگوریتم را بررسی کرده است : تخمین بر مبنای کلاستر ، نزدیکترین همسایه و SVM تک کلاسی . سایر محققان در NIDS های غیر نظارتی روشهای کلاسترینگ را اعمال کرده اند.
سیستم تشخیص ناهنجاریهای پیش نظارت شده در طیف وسیعی مورد مطالعه قرار گرفته است . در همین مبحث ، ADAM پروژه ای است که در عرصه وسیعی شناخته شده و منتشر شده است . این پروژه یک online IDS در بستر شبکه است . ADAM میتواند به همان خوبی که حملات شناخته شده را تشخیص میدهد حملات ناشناخته را هم تشخیص دهد .
به این ترتیب که از رفتارهای عادی مربوط به داده های تمرینی عاری از خطا پروفایل میسازد و این پروفایل را به عنوان یک مجموعه قوانین مشترک ارائه می کند. در زمان اجرا با توجه به این پروفایل ، تماسهای مشکوک را شناسایی می کند . روشهای پیش نظارت شده دیگری هم بر سیستم های تشخیص ناهنجاری اعمال شده اند . روشهایی نظیر الگوریتم ژنتیک و استخراج داده های مبهم و نامعلوم ، شبکه های عصبی و SVM .
در کار قبلی مان ، ما الگوریتم جنگلهای تصادفی را در سیستم تشخیص کاربردهای نادرست misuse اعمال کردیم . در این مقاله تابع تشخیص outlier تهیه شده توسط الگوریتم جنگلهای تصادفی را برای تشخیص ناهنجاری پیش نظارت نشده به خدمت گرفته ایم . دقت و تاثیر این الگوریتم روی مجموعه داده های برگی که دارای ویژگیهای زیادی هستند بیشتر است . مجموعه داده هایی نظیر مجموعه داده های ترافیک شبکه.
3- تشخیص Outlier ها
در این بخش ما چارچوب کاری پیشنهادی برای NIDS را شرح میدهیم و نشان میدهیم که چگونه از این الگوریتم برای تشخیص outlier های روی مجموعه داده ای ترافیک شبکه استفاده می کنیم .
الف – شرح چارچوب کاری
چارچوب کاری پیشنهادی برای تشخیص نفوذهای نوظهور از الگوریتم جنگلهای تصادفی استفاده می کند . چارچوب کاری در شکل 1 نمایش داده شده است.
شکل 1- چارچوب کاری NIDS ناهنجاری پیش نظارت نشده
NIDS از ترافیک شبکه تصویر بردار یمی کند و با پیش پردازش کردن مجموعه داده ها را میسازد . سپس با استفاده از الگوریتم ف از روی مجموعه داده الگوهایی بر مبنای سرویسها ساخته می شود . با الگوهای ساخته شده می توانیم outlier های مربوط به هر الگو را پیدا کنیم . وقتی outlier ها شناسایی شدند سیستم یک اخطار تولید می کند .
بعد از اینکه تصویر برداری از ترافیک شبکه انجام شد پردازش به صورت off-line ادامه خواهد یافت . زیرا الگوریتم تشخیص outlier نیازمندیهای زیادی برای محاسبات لازم دارد . به همین دلیل هم در محیطهای واقعی شبکه پردازشهای online مناسب نیست .
ب – الگوریتم جنگلهای تصادفی
جنگلهای تصادفی یک طرح کامل از طبقه بندی غیر شاخه ای یا درختهای بازگشتی است . این الگوریتم از نظر دقت و صحت در میان الگوریتمهای استخراج داده ای که در حال حاضر وجود دارند بی رقیب است . به خصوص برای مجموعه داده های بزرگی ویژگیهای (feature) زیادی دارند .
این الگوریتم درختهای طبقه بندی زیادی تولید می کند . هر درخت توسط یک نمونه Bootstrap متفاوت از روی داده اولیه ساخته می شود . برای این کار از یک الگوریتم طبقه بندی درختی استفاده می کند . بعد از اینکه جنگل تشکیل شد یک شی جدید که لازم است حتما طبقه بندی شده باشد درختها را تک تک درون جنگل قرار می دهد تا طبقه بندی شوند .
هر درخت یک رای می دهد که این رای نشان دهنده تصمیم آن درخت درباره کلاس شی مذکور است . جنگل با توجه به اکثریت ارایی که درباره کلاس شی مذکور داده شده است ، کلاس ان شی را مشخص می کند . در الگوریتم حجنگلهای تصادفی نیازی به اعتبار سنجی خطی نیست . ژون هر درخت با استفاده از نمونه bootstrap ساخته می شود بنابراین تقریبا یک سوم موارد از نمونه های bootstrap کنار گذاشته می شوند و در تمرین استفاده نمی شوند . این موارد را اصطلاحا خارج از رده یا oob می نامند .
ج – الگوهای استخراج سرویسهای شبکه
بنابراین با استفاده از این الگوریتم ما می توانیم از روی سرویسهای شبکه الگوهایی را بسازیم . این الگوریتم پیش نظارت شده است . بنابراین لازم است که مجموعه داده ها را بر اساس سرویسهای شبکه بر چسب گذاری کرد . در واقع بسیاری از مجموعه داده های مورد استفاده برای ارزیابی NIDS ها میتوانند با اندک تلاشی بر اساس سرویسهای شبکه بر چسب گذاری شوند . مثلا یکی از ویژگیهای مجموعه داده KDD99 ویژگی با عنوان نوع سرویس میباشد که میتواند برای برچسب استفاده شود .
قبل از ساخت الگوها لازم است که پارامترهای الگوریتم را بهینه سازی کنیم . وقتی جنگل در حال رشد است ، از بین تمام ویژگیهای درون داده های تمرینی داده های تصادفی به صورت تصادفی انتخاب شده اند . بهترین انشعاب از این ویژگیهای تصادفی را برای انشعاب گره مورد استفاده قرار میدهند . تعداد ویژگیهای تصادفی به صورت یک ثابت نگهداری شده است (Mtry) . تعداد ویژگیهای بکار گرفته شده در انشعاب دادن هر گره برای هر درخت (Mtry) پارامتر همسو سازی اولیه است . برای بهبود کارایی این الگوریتم این پارامتر باید بهینه سازی شود . و همچنین پارامتر تعداد درختهای درون جنگل
برای یافتن مقدار مناسب برای پارامتر Mtry و تعداد درختان از مجموعه داده استفاده میکنیم . حداقل نرخ خطا با مقادیر بهینه مطابقت دارد . بنابراین برای ساخت جنگل و ارزیابی نرخ خطای جنگل از مقداری متفاوت از Mtry و تعداد درختان استفاده می کنیم . سپس مقداری مطابق با حداقل نرخ خطا را انتخاب می کنیم و با کمک آن الگوهای سرویس را می سازیم .
د – تشخیص Outlier پسش نظارت نشده
با پیدا کردن فعایتهای غیر معمول یا Outlier ها میتوانیم نفوذها را تشخیص دهیم . در NIDS پیشنهادی ما دو نوع Outlier وجود دارد . نوع اول فعالیتهایی هستند که در یک سرویس شبکه یکسان به طور معنی داری از سایر فعالیتهای منحرف شده اند . نوع دوم فعالیتهایی هستند که الگوهای انها به سرویسهای دیگری به جز سرویس اصلی خودشان تعلق دارد . مثلا وقتی یک فعالیت http به عنوان سرویس ftp طبقه بندی شده است . در این حال آن فعالیت به عنوان یک outlier شناسایی خواهد شد .
الگوریتم جنگلهای تصادفی برای پیدا کردن outlier هایی که همجواری انها به تمام موارد دیگر درون کل داده ها عموما کوچک است از همجواریها استفاده می کند . همجواریها یکی از مفیدترین ابزارها در این الگوریتم است . بعد از اینکه جنگل ساخته شد همه موارد در مجموعه داده هر یک از درختها را در جنگل قرار داده اند . اگر موارد n و k در یک برگ مشابه از یک درخت باشند همجواری انها یکی افزایش پیدا می کند . در اخر مقدار همجواریها را بر تعداد درختان تقسیم کرده و به این ترتیب پارامتر همجواریها نرمال سازی می شود .
برای یک مجموعه داده با N مورد ، همجواریها در حالت اولیه یک ماتریس N*N را تشکیل می دهد . پیچیدگی محاسبات هم N*N است . مجموعه داده های ترافیک شبکه حجم بسیار زیادی دارند . بنابراین مقدار زیادی از حافظه و زمان Cpu برا یمحاسبه مورد نیاز است . ما الگوریتم محاسبه همجواریها را تغییر می دهیم تا به این ترتیب کارایی بهبود پیدا کند .
همانطور که قبلا گفتیم اگر فعایتی که مربوط به یک سرویس است در یک سرویس دیگر طبقه بندی شود ان فعالیت به عنوان Outlier شناسایی خواهد شد . بنابراین اگر دو مورد وجود داشته باشند که متعلق به سرویسهای متفاوتی باشند همجواری بین انها اهمیتی ندارد . پارامتر Si بر تعداد موارد در سرویس I دلالت دارد . بعد از این تغییر ، یچیدگی به اندازه Si * Si کاهش پیدا می کند .
با توجه به الگورتیم جنگلهای تصادفی ، Outlier ها میتوانند به عنوان مواردی تعریف شوند که مقدرا همجواری انها به سایر موارد درون یک مجموعه عموما کوچک است . ضریب Outlier بر درجه Outlier بودن دلالت دارد . این پارامتر می تواند از روی همجواریها محاسبه شود . Class(K)=j نشان دهنده این است که K به کلاس j تعلق دارد . Prox(n,k) نشان دهنده همجواری بین موارد n و K است . متوسط مقدار همجواری از مورد N مربوط به کلاس j بر مورد K به این صورت محاسبه می شود :
N نشان دهنده تعداد موارد درون مجموعه داده است . ضریب outlier خام مورد n به این صورت تعریف می شود :
در هر کلاس ، انحراف مطلق و میانی همه ضرایب outlier خام محاسبه شده است . مقدار انحراف میانی از هر مقدار ضریب outlier خام کسر می شود . نتیجه کسر بر مقدار انحراف مطلق تقسیم می شود و ضریب outlier نهایی بدست می اید . اگر مقدرا ضریب outlier مربوط به یک مورد بزرگ باشد همجواری کوچک است و ان مورد به عنوان یک outlier شناخته می شود .
برای شناسایی outlier ها در یک مجموعه داده ترافیک شبکه ما از روی مجموعه داده الگوی سرویسها را میسازیم . سپس همجواری و ضریب outlier هر فعالیت را محاسبه می کنیم . هر فعالیتی که از حد مشخص شده فراتر رود به عنوان outlier شناخته می شود .
4- تجربیات و نتایج
در این بخش ما نتایج تجربیات خودمان برای تشخیص نفوذها با استفاده از تکنیک تشخیص outlier پیش نظارت نشده را خلاصه می کنیم . این تجربیات روی مجموعه داده KDD99 انجام شده است . ابتدا مجموعه داده های استفاده شده در تجربیات را شرح می دهیم . سپس روش خود را ارزیابی کرده و نتایج را شرح می دهیم .
الف – مجموعه داده و پیش پردازش
آزمایشگاه MIT Lincoln ، تحت حمایت DARPA و AFRL اقدام به جمع اوری و توزیع مجموعه داده هایی نموده است که برای ارزیابی سیستم های تشخیص نفوذ به شبکه های کامپیوتری مورد استفاده قرار می گیرند . مجموعه داده DARPA معمول ترین مجموعه داده ای است که برای آزمایش و ارزیابی تعداد زیادی از IDS ها استفاده شده است .
مجموعه داده KDD99 زیر مجموعه ای از مجموعه داده های DARPA است که توسط Stofo و Wenke Lee تهیه شده است. برای پیش پردازش داده ها ، 41 مورد از ویژگیهای داده های tcpdump در مجموعه داده 1998 DARPA استخراج شده بودند ، به عنوان مثال نوع پروتکل سرویس و flag برای اینکه زمان بیشتری را برای پیش پردازش هدر ندهیم میتوانیم از مجموعه داده KDD99 استفاده کنیم . برای اینکه بتوان IDS های متفاوتی را با هم مقایسه کرد باید ان IDS ها روی مجموعه داده های یکسانی کار کنند . در نتیجه ما تجربیات خود را روی مجموعه داده های KDD99 انجام داده ایم .
کل مجموعه تمرینی برای یکی از مجموعه داده های KDD99 ، دارای 4.898.431 اتصال است که مورد حمله قرار گرفته اند . حملات در مجموعه به چهار دسته تقسیم می شوند : DoS ، R2L ، U2R و probing . مجموعه داده بر اساس نوع حملات بر چسب گذاری میشود . روش ما نظارت نشده است . به همین دلیل یکسری نیازمندیهایی لازم دارد که باعث نارضایتی مجموعه داده می شود . بنابراین ما باید برچسبهایی که نشان دهنده انواع حملات هستند را از روی مجموعه داده بر داریم .
برای تولید مجموعه داده های جدید برای تجربیات خودمان ف ابتدا مجموعه داده ها را بر طبق برچسبها به درون دو مخزن میریزیم و انها را از هم جدا می کنیم . یک مخزن شامل اتصالات عادی است . دیگری شامل حملات است . بعد تمام برچسبها را از روی مخازن بر میداریم .
ما برای ساختن الگوی سرویسها به داده های نیاز داریم که بر اساس سرویس برچسب گذاری شده اند . بنابراین از ویژگی سرویس به عنوان بر چسب در مجموعه داده استفاده می کنیم . در نتیجه همه داده ها شامل 40 ویژگی هستند و بر اساس سرویس بر چسب گذاری شده اند .
برای تجربیات خودمان ، ما پنج تا از معمولترین سرویسهای شبکه را انتخاب کردیم . tcpip , pop smtp , http , ftp و telnet . با انتخاب اتصالهای ftp , pop , telnet , http 5 % ئ smtp 10% مجموعه داده ای تحت عنوان مجموعه داده های عادی تولید کرده ایم که شامل 47.426 اتصال عادی است . در آخر با تزریق ناهنجاریها از مخزن حملات به مجموعه داده عادی 4 مجموعه داده جدید تولید می کنیم . مجموعه داده 1% ، 2% ، 5% و 10% . این یعنی 1% ، 2% ، 5% و 10% از اتصالات در مجموعه مورد حمله قرار گرفته اند .
ب- ارزیابی و تشریخ
اولین تجربه خود را روی مجموعه داده 1% انجام دادیم . ابتدا پارامترهای الگوریتم Mtry و تعداد درختان را با کاشتن مجموعه داده درون NIDS بهینه سازی کردیم . NIDS الگوی سرویسهای شبکه را با مقادیر متفاوتی از پارامترها ساخت و سپس نرخ خطای Oob را محاسبه کرد . مقادیر منطبق با کمترین نرخ خطای Oob بهینه سازی شدند .
به کمک پارامترهای بهینه سازی شده الگوی سرویسهای شبکه را می سازیم . NIDS از روی الگوهای ساخته شده ضریب Outlier هر اتصال را محاسبه می کند. شکل 2 ضریب Outlier مجموعه داده 1% را نشان می ده . چون حملات در ابتدای مجموعه داده تزریق شده اند در شکل می بینید که ضریب Outlier حملات از اکثر فعالیتهای عادی بسیار بالاتر است . بعضی از فعالیتهای عادی هم ضریب Outlier بالایی دارند . این مسئله باعث بروز مثبت نمایی می شود . اگر ضریب Outlier یک اتصال از حد مشخصی فراتر رود انگاه NIDS یک علامت هشدار میفرستد .
با استفاده از نرخ تشخیص و نرخ مثبت نمایی ، میزان کارایی سیستم خود را ارزیابی می کنیم نرخ تشخیص برابر با تعداد حملات شناسایی شده توسط سیستم تقسیم بر تعداد حملات موجود در مجموعه داده است . نرخ مثبت نمایی برابر با تعداد اتصالات عادی ( که به اشتباه به عنوان حملات طبقه بندی شده اند ) تقسیم بر تعداد اتصالات عادی در مجموعه داده است . میتوانیم با تغییر استانه ضریب Outlier میازن کارایی را ارزیابی کنیم .
در تشخیص نفوذها ، برای اندازه گیری میزان کارایی IDS ها معمولا از منحنی ROC استفاده می شود . منحنی ROC یک طرح کلی از نرخ شناسایی در مقابل نرخ مثبت نمایی است . شکل 3 منحنی ROC را ترسیم می کند تا ارتباط بین نرخ شناسایی و نرخ مثبت نمایی ها را روی یک مجموعه داده نشان دهد .
شکل 2- ضریب Outlier مجموعه داده های 1%
شکل 3- منحنی ROC برای مجموعه داده 1%
جدول 1- میزان کارایی هر الگوریتم طبق مجموعه داده KDD99
نرخ مثبت نمایی نرخ تشخیص الگوریتم
2% 66% Cluster
0.5% 28% Cluster
4% 11% K-NN
2% 5% K-NN
4% 67% SVM
3% 5% SVM
نتایج نشان میدهد که سیستم ما قادر است که به یک نرخ تشخیص بالا هرماه با یک نرخ مثبت نمایی پائین دست پیدا کند . در مقایسه با دیگر سیستم های مبتنی بر ناهنجاری پیش نظارت نشده سیستم ما روی مجموعه داده KDD99 کارآیی بهتری را فراهم می کند .
جدول شماره 1 لیست برخی از نتایج Eskin را نشان می دهد . نتایج سیستمهای تشخیص دیگر نشان م یدهد که وقتی نرخ مثبت نمایی پائین است نرخ تشخیص به طور معنی داری کاهش می یابد زیر 1% تجربیات ما تحت شرایط متفاوتی انجام شده است .
شکل 3 نشان می دهد که وقتی نرخ مثبت نمایی ها پائین هستند سیستم ما هنوز هم نرخ تشخیص نسبتا بالاتری را فراهم می کند . مثلا وقتی نرخ مثبت نمایی 1% نرخ تشخیص 95% است . وقتی نرخ مثبت نمایی به 0.1% کاهش پیدا می کند ، نرخ تشخیص هنوز روی 60% است .
برای اینکه سیستم خود را با تعداد حملات متفاوتی ارزیابی کنیم ، تجربیات خود را روی مجموعه داده های 1% ، 2% ، 5% و 10% انجام دادیم . شکل ROC4 را برای هر مجموعه داده رسم می کند . نتایج نشان می دهد زمانی که تعداد حملات افزایش می یابد میزان کارایی روب ه کاهش می گذارد .
شکل 4- منحنی ROC برای مجموعه داده ها
ج – پیاده سازی
ما برای توسعه NIDS از WEKA استفاده کردیم . WEKA یک بسته Open source جاوا است که شامل الگوریتمهای یادگیری ماشین برای اعمال مربوط به استخراج داده است . البته WEKA تابع تشخیص Outlier را پیاده سازی نمی کند. بنابراین ما سورس کد WEKA را برای پیاده سازی تابع تشخیص Outlier تغییر دادیم .
5- نتیجه گیری و تحقیقات آینده
در این مقاله ما یک چارچوب کاری جدیدی را برای NIDS ناهنجاریهای پیش نظارت نشده بر مبنای تکنیک تشخیص Outlier در الگوریتم جنگلهای تصادفی مطرح کردیم . چارچوب کاری از روی مجموعه داده هایی که بر اسسا سرویسها بر چسب خورده اند الگوی سرویسهای شبکه را می سازد . با الگوهای ساخته شده چارچوب کاری با استفاده از الگوریتم تشخیص Outlier حملات را در مجموعه داده شناسایی می کند .
به دلیل حجم زیاد مجموعه داده های استفاده شده در NIDS ها پردازشی که برای شناسایی Outlier ها انجام می شود زمان زیادی را هدر می دهد و مقدار زیادی از حافظه را خرج می کند . برای بهبود کارایی الگوریتم اولیه ای که برای تشخیص Outlier داشتیم را طوری اصلاح کردیم که پیچیدگی محاسبات کاهش پیدا کند . با این پیش فرض که هر سرویس شبکه برای فعایتهای عادی خود الگوی خودش را دارد .
در مقایسه با روشهای از پیش نظارت شده روش ما وابستگی را از روی مجموعه داده های تمرینی عاری از خطا بر می دارد . نتایج تجربیات روی مجموعه داده KDD99 تائید می کند که روش ما با استفاده از تکنیک تشخیص پیش نظارت نشده بسیار موثر است .
کارایی سیستم ما با دیگر روشهای تشخیص ناهنجاریهای پیش نظارت شده ایت که تا کنون گزارش شده اند قابل مقایسه است . بخصوص هنگامی که نرخ مثبت نمایی پایین است روش ما به بالاترین نرخ تشخیص دست پیدا می کند . این مساله برای NIDS ها مهم تر است زیرا بالا بودن نرخ مثبت نمایی NIDS را غیر قابل استفاده می کند .
به علت پیچیدگی زیاد الگوریتم تشخیص ناهنجاریهای پیش نظارت نشده پائین بودن میزان کارایی سرعت تشخیص روش مذکور تشخیص زمان حقیقی را نا ممکن می سازد . اما در عین حال این روش میتواند بدون داده های تمرینی عاری از خطا هم حملات جدید را شناسایی کند نفوذهای نوظهور شناسایی شده می توانند در سیستم های تشخیص کاربردهای نادرست پیش نظارت شده برای تمرین در موقع عمل به کار روند . بنابراین سیستم های تشخیص کاربردهای نادرست که مورد تمرین قرار گرفته اند می توانند در موقع عمل نفوذهای جدید را کشف کنند .
علاوه بر این تحقیقات نشان می دهد که با افزایش تعداد اتصالاتی که برای حمله برقرار شده اند میازن کارایی رو به کاهش می گذدارد . این مشکلی است که سیستم های پیش نظارت نشده دارند .
بعضی از حملات ( مثل DoS ) تعداد زیادی اتصال به وجود می اورند و این کار باعث می شود که کارایی سیستم تشخیص ناهنجاری پیش نظارت شده تحلیل برود . برای حل این مسئله ما قصد داریم که در اینده از همکاری هر دو روشی که بر مبنای کاربردهای نادرست و ناهنجاری هستند استفاده کنیم . روش کاربردهای نادرست می تواند حملات شناخته شده را تشخیص دهد .
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 24 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید