در این بخش سورس کد تشخیص نفوذ با الگوریتم یادگیری KNN در متلب قرار داده شده است. در این سورس کد دیتاست معروف سیستم تشخیص نفوذ یعنی NSL-KDD با استفاده از الگوریتم یادگیری ماشین k نزدیکترین همسایه دسته بندی یا کلاس بندی Classfication شده است. این سورس کد به همراه یک فیلم آموزش نحوه اجرا و توضیحات کلی برنامه همراه با یک گزارش کار 5 صفحه ای در قالب Word آماده دانلود می باشد.

سیستم تشخیص نفوذ

سیستم تشخیص نفوذ Intrusion Detection System یا به اختصار IDS وظیفه تشخیص هر گونه استفاده غیرمجاز به سیستم، سوء استفاده یا آسیب‌رسانی توسط کاربران را بر عهده دارند. تشخیص و جلوگیری از نفوذ، امروزه به عنوان یکی از مکانیزم‌های اصلی در برآوردن امنیت شبکه‌ها و سیستم‌های کامپیوتری مطرح است و عمومأ در کنار فایروال ها و به صورت مکمل امنیتی برای آن‌ها مورد استفاده قرار می‌گیرند.  سیستم های تشخیص نفوذ از دیدگاه روش تشخیص بر اساس دو تکنیک متمایز، یعنی تطابق الگو  misuse detection و ناهنجاری های آماری anomaly detection عمل می کنند.

اصلی‌ترین روش تشخیص نفوذ IDS های مبتنی بر آنومالی یا ناهنجاری هست. در این روش استفاده از الگوریتم‌های یادگیری ماشین بسیار رایج است. در روش های یادگیری ماشین با توجه به دسته‌بندی، مدلی استخراج می‌شود که بر اساس آن می‌توان با دقت مناسب تشخیص نفوذ در سیستم جدید را انجام داد. یافته‌های قبلی بر اساس یادگیری از متریک‌های به‌دست‌آمده از حملات نشان می‌دهد ارتباط قوی بین این متریک‌ها و تشخیص نفوذ وجود دارد. الگوریتم‌های مختلفی برای دسته‌بندی وجود دارد از جمله‌ی این روش‌ها می‌توان‌ به درخت تصمیم، الگوریتم k‌ همسایه نزدیک، الگوریتم نیوبیزین، بردار پشتیبانی ماشین و شبکه‌های عصبی می‌باشد.

الگوریتم K همسایه نزدیک

روش k همسایه‌ نزدیک K Nearest Neighbors یا (KNN) یک روش یادگیری موردی ‌است و از جمله ساده‌ترین الگوریتم‌های یادگیری ماشین می‌باشد که به روش K نزدیک ترین همسایه نیز معروف است. در این الگوریتم یک نمونه با رای اکثریت از همسایه‌هایش دسته‌بندی می‌شود و این نمونه در عمومی‌ترین کلاس مابین k همسایه نزدیک تعیین می‌شود. K یک مقدار مثبت صحیح و عموماً کوچک است. اگر k=1 باشد نمونه به سادگی در کلاس همسایگان نزدیکش تعیین می‌گردد. فرد بودن مقدار k مفید می‌باشد چون با این کار جلوی آراء برابر گرفته می‌شود.

روش k همسایه‌ نزدیک، برای بسیاری از روش‌ها کاربرد دارد، زیرا اثربخش، غیرپارامتریک و دارای پیاده‌سازی راحت می‌باشد. با این حال زمان دسته‌بندی‌اش طولانی است و یافتن مقدار k بهینه مشکل است. بهترین انتخاب از k، وابسته به داده‌ها می‌باشد به طور کلی مقدار بزرگ از k اثر نویز روی دسته‌بندی را کاهش می‌دهد، اما مرز مابین کلاس‌ها کمتر متمایز می‌شود.

تشخیص نفوذ با الگوریتم یادگیری KNN در متلب

به منظور طبقه بندی سوابق به پنج سطح ، مجموعه داده های اولیه با استفاده از چندین طبقه بندی معیار مورد ارزیابی قرار گرفت و هر نمونه با تعداد پیش بینی های موفقیت آمیز آن حاشیه نویسی شد. برای هر گروه، میزان سوابق انتخاب شده معکوس با درصد ضبط از مجموعه داده اصلی KDDCup 99 است. در کل 42 ویژگی برای دیتاست در نظر گرفته شده که 41 ویژگی مربوط به داده های جمع آوری شده و ویژگی آخر نیز به عنوان برچسب هدف با عنوان نرمال یا حمله می باشد.

در این تحقیق از مجموعه های KDDTrain+ ، KDDTest+  و KDDTest-21 مجموعه داده های NSL-KDD استفاده شده است. مجموعه +KDDTrain به عنوان مجموعه داده برای آموزش شامل 125973 نمونه است که شامل 58630 مورد ترافیک حمله و 67343 نمونه ترافیک عادی است. مجموعه +KDDTest شامل 22544 نمونه است و برای تست از آن استفاده می شود و به عنوان زیر مجموعه ای از مجموعه +KDDTest، مجموعه KDDTest-21 شامل کل 11850 نمونه است. اعتبارسنجی متقابل بر روی مجموعه +KDDTrain در آزمایشات انجام می شود.

در این سورس کد ابتدا پوشه Datasets به درون برنامه addpath می شود تا فایل های درون این پوشه قابل استفاده باشند. دیتاست های آموزش   KDDTrainو تست    KDDTest و KDDtest_21 لود می شوند تا آماده شوند. در ادامه نیز داده های آموزشی و تست از لحاظ لیبل آخر و ویژگی ها تقسیم بندی می شوند و سپس برای دسته بندی به الگوریتم یادگیری KNN داده می شوند.

قسمت هایی از سورس کد

ویدئوی معرفی

درباره محصول

سورس کد تشخیص نفوذ با الگوریتم یادگیری KNN در متلب عنوان محصولی است که در این پست به آن پرداخته شده است. محصول در نرم افزار متلب نوشته شده و دارای یک فایل ورد با تعداد 5 صفحه می باشد. این سورس کد بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید.

1 دیدگاه برای تشخیص نفوذ با الگوریتم یادگیری KNN در متلب

  1. امین جلیل زاده

    نظرات خود را با ما در میان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

اطلاعات فروشنده