در این پست تبدیل دیتاست NSL-KDD برای استفاده الگوریتم های یادگیری ماشین در متلب (دیتاست سیستم تشخیص نفوذ) قرار داده شده است. دیتاست NSL-KDD در سال 2009 بعنوان نسخه جدید تجدید نظر شده در مجموعه داده اصلی KDDCup99 ارائه شد که با حجم کم ویژگی های سودمند و چالش برانگیز KDDCup را حفظ کرد. امروزه این دیتاست به عنوان یک مجموعه داده ارزشمند برای بررسی کارایی روش ها و الگوریتم های امنیت سایبری و سیستم های تشخیص نفوذ بکار گرفته می شود. در ادامه شرح مختصری از این دیتاست داده می شود.

دیتاست NSL-KDD

قبل از پرداختن به مسئله تبدیل دیتاست NSL-KDD در متلب شرح کلی از دیتاست داده می شود. همانطور که گفته شد دیتاست NSL-KDD در سال 2009 بعنوان نسخه جدید تجدید نظر شده در مجموعه داده اصلی KDDCup99 ارائه شد. از یک طرف ، NSL-KDD ویژگی های سودمند و چالش برانگیز KDDCup را حفظ کرد. از طرف دیگر ، با حذف رکوردهای اضافی، عقلانی کردن تعداد نمونه ها و حفظ تنوع نمونه های انتخاب شده، به اشکالاتی که از مجموعه داده اصلی به ارث رسیده است پرداخته است. شایان ذکر است که مجموعه داده NSL-KDD برای به حداکثر رساندن سختی پیش بینی، که ویژگی های برجسته آن را تشکیل می دهد، گردآوری شده است.

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

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

NSL-KDDClass
KDDTest-21KDDTest+KDDTrain+
2152971167343Normal
4342745845927DoS
2402242111656PRB
27542754995R2L
20020052U2R
96981283358630Attacks
1185022544125973Total

تبدیل دیتاست NSL-KDD

در تبدیل این دیتاست به دیتاست رقمی و قابل قبول برای الگوریتم های یادگیری از نرم افزار متلب استفاده شده است. ابتدا کل نمونه ها در 5 دسته یا گروه دسته بندی می شوند که برای حالت Normal عدد 1  و برای بقیه حالت های حمله عددهای 2 تا 5 بسته به نوع حمله در نظر گرفته می شود. حملات در 4 دسته Dos، Probing، R2L و U2R دسته بندی می شوند. طبق برنامه نوشته شده در کل 39 حمله در دیتاست وجود دارد که به شرح جدول زیر گروه بندی شده اند.

شماره برچسب گذاریگروه حملهنوع حمله
1Dosback, land, neptune, pod, smurf, teardrop, apache2, mailbomb, processtable, udpstorm
2Probingwarezclient, warezmaster, spy, multihop, phf, ftp_write, guess_passwd, imap, xsnoop, xlock, worm, snmpguess, snmpgetattack, sendmail, named
3R2Lrootkit, perl, loadmodule, buffer_overflow, httptunnel, ps, sqlattack, xterm
4U2Rportsweep, satan, ipsweep, nmap, mscan, saint

مشخصات ویژگی های دیتاست NSL-KDD

همانطور که قبلاً هم گفته شده در این دیتاست 42 ستون وجود دارد که 41 ستون یا ویژگی مربوط به شبکه هست و ستون 42 نیز برای برچسب گذاری نوع حمله و نرمال بودن است. (البته یک ستون 43 نیز وجود دارد که از آن استفاده نمی شود). جدول زیر مشخصات 41 ویژگی یا ستون مربوطه را نمایش می دهد.

نوع ویژگینام ویژگیشماره ویژگی
continuousduration1
symbolicprotocol_type2
symbolicservice3
symbolicflag4
continuoussrc_bytes5
continuousdst_bytes6
continuousland7
continuouswrong_fragment8
continuousurgent9
continuoushot10
continuousnum_failed_logins11
continuouslogged_in12
continuousnum_compromised13
continuousroot_shell14
continuoussu_attempted15
continuousnum_root16
continuousnum_file_creations17
continuousnum_shells18
continuousnum_access_files19
continuousnum_outbound_cmds20
continuousis_host_login21
continuousis_guest_login22
continuouscount23
continuoussrv_count24
continuousserror_rate25
continuoussrv_serror_rate26
continuousrerror_rate27
continuoussrv_rerror_rate28
continuoussame_srv_rate29
continuousdiff_srv_rate30
continuoussrv_diff_host_rate31
continuousdst_host_count32
continuousdst_host_srv_count33
continuousdst_host_same_srv_rate34
continuousdst_host_diff_srv_rate35
continuousdst_host_same_src_port_rate36
continuousdst_host_srv_diff_host_rate37
continuousdst_host_serror_rate38
continuousdst_host_srv_serror_rate39
continuousdst_host_rerror_rate40
continuousdst_host_srv_rerror_rate41

شماره گذاری ویژگی ها

از 41 ویژگی موجود 3 ویژگی با خاصیت symbolic یا سمبلیک وجود دارد که عددی نیست و باید بصورت عددی تغییر کنند تا برای الگوریتم های یادگیری ماشین قابل فهم باشند و بقیه بصورت continuous یا پیوسته هستند که بصورت عددی است و لازم نیست دستکاری شوند. 3 ویژگی با خاصیت سمبلیک هر کدام شامل نوع های مختلفی هستند که بسته به جایگاهشان و دیده شدن در هر سطر دیتاست به ترتیب از شماره 1 الی آخرین نوع شماره گذاری شده اند. جدول زیر این نوع ها را نشان می دهد.

شماره گذاریانواعنام ویژگی
1 to 3icmp, tcp, udpprotocol_type
1 to 70IRC, X11, Z39_50, aol, auth, bgp, courier, csnet_ns, ctf, daytime, discard, domain, domain_u, echo, eco_i, ecr_i, efs, exec, finger, ftp, ftp_data, gopher, harvest, hostnames, http, http_2784, http_443, http_8001, imap4, iso_tsap, klogin, kshell, ldap, link, login, mtp, name, netbios_dgm, netbios_ns, netbios_ssn, netstat, nnsp, nntp, ntp_u, other, pm_dump, pop_2, pop_3, printer, private, red_i, remote_job, rje, shell, smtp, sql_net, ssh, sunrpc, supdup, systat, telnet, tftp_u, tim_i, time, urh_i, urp_i, uucp, uucp_path, vmnet, whoisservice
1 to 11OTH, REJ, RSTO, RSTOS0, RSTR, S0, S1, S2, S3, SF, SHflag

محتویات فایل دانلودی

برنامه مربوط به تبدیل دیتاست NSL-KDD برای استفاده الگوریتم های یادگیری ماشین در متلب شامل 9 فایل می باشد که 5 فایل txt. برای خواندن اطلاعات دیتاست خام می باشد و 3 فایل mat. که با علامت قرمز در تصویر نشان داده شده همان دیتاست های آماده می باشد که توسط فایل prepare.m ایجاد شده و آماده استفاده در الگوریتم های یادگیری ماشین می باشد. تصویر زیر محتویات فایل دانلودی را نشان می دهد.

تبدیل دیتاست NSL-KDD

 

 

 

 

 

درباره محصول

سورس کد آماده تبدیل دیتاست NSL-KDD خام به دیتاست رقمی در متلب در متلب 2017 نوشته شده است. این کد بصورت کامل توسط گروه پشتیبانی پی استور تست و اجرا شده است محصول دارای نشان تضمین کیفیت پی استور می باشد. برای دانلود محصول آن را خریداری کنید. بمحض خرید محصول لینک دانلود در دسترس خواهد بود.

2 دیدگاه برای تبدیل دیتاست NSL-KDD برای استفاده الگوریتم های یادگیری ماشین در متلب

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

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

  2. وحید

    سلام
    امکان تبدیل این دیتاست جهت استفاده در پایتون هم وجود دارد؟

    • امین جلیل زاده

      سلام
      برای تبدیل این دیتاست در پایتون باید کد مربوط به پایتون نوشته بشه.

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

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

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

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