در این پست به معرفی جامع تر مجموعه داده های جمع آوری شده برای تست سیستم هایش تشخیص نفوذ تحت نام KDD CUP 1999 می پردازم و نشان خواهم داد که یک سیستم تشخیص نفوذ چگونه با استفاده از ویژگی های اتصلات شبکه پی به برای تشخیص حمله استفاده می کند و آخر نیز لینک دانلود مجموعه داده KDD CUP 1999 را قرار می دهم.
نرمافزار
های طراحی شده برای تشخیص نفوذ در شبکه ها ، کامپیوتر را در برابر کاربران
غیر مجاز و یا حتی کابران خودی محافظت می کند.وظیفه یک سیستم خود فراگیر
تشخیص نفوذ ایجاد یک مدل احتمالی ( مثلاً طبقه بندی) است که توانایی تشخیص
بین اتصلات بد که نفوذ یا حمله نامیده میشوند و اتصلات نرمال و خوب را
داشته باشند.
برنامه ارزیابی تشخیص نفوذ دارپا 1998 (DARPA
1998) بوسیله آزمایشگاههای MIT Lincoln تهیه و مدیریت شد.هدف هم بررسی و
ارزیابی سیستمهای تشخیص نفوذ بود. یک مجموعه استاندارد از دادهها مورد
بررسی قرار گرفت ، که شامل طیف گسترده ای از نفوذ های شبیه سازی شده در یک
محیط نظامی می باشد.مجموعه داده تشخیص نفوذ KDD 1999 از نسخهای از این
دیتاست استفاده و بهره برداری می کند.
آزمایش گاه های لینکولن
محیطی را برای بدست آوردن ۹ هفتهای دادهای خام TCP برای یک شبکه محلی
که شبکه محلی نیروی هوایی آمریکا را شبیه سازی مینمود پیادهسازی
نمودند.این شبکه کاملاً همانند شبکه نیروی هوایی عمل مینمود ، اما توسط
چنیدن حمله مورد ارزیابی قرار می گرفت.داده های خام آزمایشی تقریباً ۴ گیگا
بایت بود که شامل دادهای خام دودویی TCP بود که از ترافیک ۷ هفتهای شبکه
بدست آمده بود.که حاصل پردازش ۵ میلیون رکورد های مربوط به اتصلات در این
شبکه بودند. به طور مشابه دو هفته داده آزمایشی دو ملیون رکورد اتصال را به
همراه داشت. یک اتصال دنباله ای از بسته های TCP است که در زمان های تعریف
شده شروع و پایان می یابند و جریان انتقال داده از آدرس آی پی منبع به
آدرس آی پی مقصد تحت پروتکل های شناخته شدهای انجام میشود.هر اتصال به
عنوان نرمال یا حمله برچسب میخورد که دقیقاً مشخص کننده یکی از انواع
حملات می باشد.هر رکورد اتصال تقریباً شامل 100 بایت است.
حملات در ۴ دسته اصلی دسته بندی می شوند.
۱- حملات DOS (denial of service) برای مثال syn flood
۲-R2L: دسترسی غیر مجاز از یک ماشین راه دور .برای مثال حدس زدن رمز عبور
3-U2R : دسرسی غیر مجاز مجاز به دسترسی های کاربر ارشد محلی (ROOT) مثل حملات سر ریز بافر.
۴- نظارت و کاوش برای مثال اسکن نمودن پورت ها
مهم
است که یاآوری کنیم که دادههای آزمایشی(Test Data) از توزیع مشابه
دادههای آموزشی نیستند و ممکن است شامل انواع حملات خاصی باشند که در داده
آموزشی( Training Data) وجود ندارد.برخی از متخصصین نفوذ معتقدند که حملات
جدید نوعی از حملات شناخته شده هستند و داشتن ردپایی از حملات شناخته شده
برای شناخت انواع جدید آنها کافی است.مجموعه داده شامل ۲۴ نوع حمله
آموزشی و مضافا ۱۴ نوع دیگر که تنها در داده آزمایشی وجود داردند.
انواع ویژگیهای مشتق شده( derived features)
Stolfo
et al ویژگیهای سطح بالاتری را که برای تشخیص اتصال های نرمال از اتصلات
غیر نرمال( حملات) به ما کمک می نماید را تعریف می کند.چندین دسته بندی
برای ویژگیهای مشتق شده وجود دارد.ویژگی Same Host تنها اتصالاتی را که
در دو ثانیه قبل مقصد مشابهی در اتصال جاری داشتهاند را مورد آزمایش قرار
میدهد و آمار های وابسته به پروتوکل رفتاری آن را محاسبه می نماید.به شکل
مشابهی ویژگی Same Service تنها اتصالات در دو ثاینه قبل را که سرویس
مشابهی در اتصال جاری داشتهاند را مورد آزمایش قرار می دهد.ویژگی های same
host و same service در کنار یکدیگر ویژگیهای ترافیکی مبتنی بر زمان
(Time Based) از رکورد های اتصال نامیده می شوند.
برخی از
حملات نظارت و کاوش (probing) هاست ها ( یا پورتها) را با استفاده از فاصله
زمانی بزرگتر از دو ثاینه اسکن میکنند ، برای مثال یک بار در
دقیقه.بنابراین رکورد های اتصال براساس هاست مقصد نیز مرتب میشوند ، و
بدین صورت ویژگیها با استفاده از یک پنجره از ۱۰۰ اتصال که هاست مشابهی
دارند ساخته میشوند و از پنجره زمانی استفاده نمی شود. این مجموعه
ویژگیهای ترافیکی بر پایه هاست نیز نامیده می شود. بر عکس حملات DOS و
نظارت و کاوش هیچ الگوی ترتیبی در رکوردهای مربوط به حملات R2L و U2R
مشاهده نمی شود.و علت آن این است که حملات DOS و نظارت وکاوش درگیری تعدای
زیادی اتصلات به تعدادی هاست در یک بازه زمانی کوتاه هستند ولی حملاتR2L و
U2R در قسمت داده بسته ها خود را جاسازی میکنند و تنها درگیر یک اتصال
خواهند بود.
در زیر لیست کاملی از رکورد های یک اتصال را در سه جدول مشاهده می کنیم.
ویژگی های ترافیکی محاسبه شده با استفاده از پنجره زمان دو ثانیه ای
| نام ویژگی | شرح | نوع |
| count | تعداد اتصلات به هاست مشابه در اتصال حاری در دو دقیقه قبل | continuous |
| Note: The following features refer to these same-host connections. نکته : ویژگیهای زیر به اتصلات same host ارجاع داده می شوند |
||
| serror_rate | % of connections that have ``SYN'' errors | continuous |
| rerror_rate | % of connections that have ``REJ'' errors | continuous |
| same_srv_rate | % of connections to the same service | continuous |
| diff_srv_rate | % of connections to different services | continuous |
| srv_count | number of connections to the same service as the current connection in the past two seconds | continuous |
| Note: The following features refer to these same-service connections. | ||
| srv_serror_rate | % of connections that have ``SYN'' errors | continuous |
| srv_rerror_rate | % of connections that have ``REJ'' errors | continuous |
| srv_diff_host_rate | % of connections to different hosts | continuous |
ویژگی های محتوایی یک اتصال که پیشنهاد داده شده اند
| نام ویژگی | شرح | نوع |
| hot | تعداد شاخص های hot | continuous |
| num_failed_logins | تعداد تلاش های برای ورود که با شکست مواجه شده اند | continuous |
| logged_in | اگر با موفقیت وارد شده باشد مقدار ۰ در غیر اینصورت ۱ | discrete |
| num_compromised | تعداد شرایط در معرض خطر | continuous |
| root_shell | اگر پوسته روت بدست آمده باشد ۰ در غیر اینصورت ۱ | discrete |
| su_attempted | اگر دستور su root به کار گرفته شده باشد ۰ در غیر اینصورت ۱ | discrete |
| num_root | تعداد دسترسی های root | continuous |
| num_file_creations | تعداد عملیات های ایجاد فایل | continuous |
| num_shells | number of shell prompts | continuous |
| num_access_files | تعداد عملیات های دسترسی کنترل فایل ها | continuous |
| num_outbound_cmds | تعداد دستورات خارجی در یک نشست ftp | continuous |
| is_hot_login | اگر ورود متعلق به لیست hot باشد ۰ در غیر اینصورت ۱ | discrete |
| is_guest_login | 1 if the login is a ``guest''login; 0 otherwise اگر ورود میهمان باشد ۰ در غیر اینصورت ۱ |
discrete |
ویژگی های پایه یک اتصال منحصر به فرد TCP
| نام ویژگی | شرح | نوع |
| duration | طول اتصال ( تعداد ثانیه ها) | continuous |
| protocol_type | نوع پروتوکل مثل TCP , UDP و غیره | discrete |
| service | سرویس شبکه در مقصد برای مثال http , telnet و غیره | discrete |
| src_bytes | تعداد بایت های داده از منبع به مقصد | continuous |
| dst_bytes | تعداد بایت های داده از مقصد به منبع | continuous |
| flag | حالت نرمال یا خطای یک اتصال | discrete |
| land | اگر اتصال از /به هاست مشابهی بود آنگاه پورت ۰ در غیر اینصورت پورت ۱ | discrete |
| wrong_fragment | تعداد فرگمنت های اشتباه | continuous |
| urgent | تعداد بسته های فوری | conti |
برای دانلود فایل های مربوط به مجموعه داده KDD CUP 1999 به لینک زیر مراجعه نمایید :
در انتخاب چرخ رولت ، چرخ دایرهای (مدور) به همان شکلی که قبلاً توضیح داده شد تقسیم شده است.همانگونه که در شکل نشان داده خواهد شد یک نقطه ثابت در پیرامون چرخ انتخاب میشود و سپس چرخ ، چرخانیده میشود .ناحیه ای از چرخ که در جلوی نقطه ثابت در نظر گرفته شده قرار گیرد به عنوان والد انتخاب می شود.برای انتخاب والد دوم رویه ای مشابهی تکرار می شود. در شکل زیر استفاده از روش چرخ رولت نشان داده شده است

واضح است که فرد مناسبتر دارای سهم بزرگتری در چرخ است و بنابراین شانس بیشتری هم برای ایستادن در مقابل نقطه ثابت هنگامی که چرخ ، چرخانیده میشود دارد.شانس انتخاب یک فرد به طور مستقیم وابسته به مقدار برازش آن است.
در قسمت ذیل یک شبکه کد برای انتخاب توسط چرخ رولت آورده شده است :
for all members of population
sum += fitness of this individual
end for
for all members of population
probability = sum of probabilities + (fitness / sum)
sum of probabilities += probability
end for
loop until new population is full
do this twice
number = Random between 0 and 1
for all members of population
if number > probability but less than next probability then you have been selected
end for
end
create offspring
end loop
نمونه برداری فراگیر تصادفی :Stochastic Universal Sampling (SUS)
.
نمونه برداری فراگیر تصادفی کاملاً مشابه روش انتخاب والد به شیوه چرخ رولت است ، هرچند بجای اینکه تنها یک نقطه ثابت بر روی چرخ داشته باشیم در این شیوه همانگونه که در شکل نشان داده شده است چندین نقطه ثابت بر روی چرخ داریم.بنابراین همه والد ها تنها در یک چرخش از چرخ(دایره) انتخاب می شوند.این شیوه از انتخاب والد اجازه میدهد که افراد که لیاقت بالایی دارند حد اقل یک بار شانس انتخاب شدن داشته باشند.

این نکته را باید بازگوکنم که متدهای انتخاب برازش مناسب در مورادی که برازش میتواند مقدار منفی دریافت کند عمل نمی کنند.
انتخاب مسابقهای (تورنومنتی)
در انتخاب K-Way تورنومنتی ، تعداد k شخص را از بین جمعیت به شکل تصادفی انتخاب میکنیم و بهترین آنها را به عنوان والد بر می گزینیم.پروسه ای مشابه برای انتخاب والد بعدی به همین صورت تکرار می شود.شیوه انتخاب به صورت تورنومنتی برای موقعیت هایی که برازش مقدار منفی دارد نیز مناسب است.

