در این پست تبدیل دیتاست 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-KDD Class
KDDTest-21 KDDTest+ KDDTrain+
2152 9711 67343 Normal
4342 7458 45927 DoS
2402 2421 11656 PRB
2754 2754 995 R2L
200 200 52 U2R
9698 12833 58630 Attacks
11850 22544 125973 Total

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

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

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

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

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

نوع ویژگی نام ویژگی شماره ویژگی
continuous duration 1
symbolic protocol_type 2
symbolic service 3
symbolic flag 4
continuous src_bytes 5
continuous dst_bytes 6
continuous land 7
continuous wrong_fragment 8
continuous urgent 9
continuous hot 10
continuous num_failed_logins 11
continuous logged_in 12
continuous num_compromised 13
continuous root_shell 14
continuous su_attempted 15
continuous num_root 16
continuous num_file_creations 17
continuous num_shells 18
continuous num_access_files 19
continuous num_outbound_cmds 20
continuous is_host_login 21
continuous is_guest_login 22
continuous count 23
continuous srv_count 24
continuous serror_rate 25
continuous srv_serror_rate 26
continuous rerror_rate 27
continuous srv_rerror_rate 28
continuous same_srv_rate 29
continuous diff_srv_rate 30
continuous srv_diff_host_rate 31
continuous dst_host_count 32
continuous dst_host_srv_count 33
continuous dst_host_same_srv_rate 34
continuous dst_host_diff_srv_rate 35
continuous dst_host_same_src_port_rate 36
continuous dst_host_srv_diff_host_rate 37
continuous dst_host_serror_rate 38
continuous dst_host_srv_serror_rate 39
continuous dst_host_rerror_rate 40
continuous dst_host_srv_rerror_rate 41

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

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

شماره گذاری انواع نام ویژگی
1 to 3 icmp, tcp, udp protocol_type
1 to 70 IRC, 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, whois service
1 to 11 OTH, REJ, RSTO, RSTOS0, RSTR, S0, S1, S2, S3, SF, SH flag

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

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

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

 

 

 

 

 

درباره محصول

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

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

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

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

  2. وحید

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

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

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

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

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