باافزایش استفاده از کامپیوترو شبکه کامپیوتری، امنیت سیستم های کامپیوتری بسیار پراهمیت شده است. هر روزه حملات از انواع جدیدی برای صنایع بوجود آمده است. ازآنجائیکه تهدیدات سال به سال به یک موضوع جدی تبدیل شده است، تکنولوژی شناسایی نفوذها برای امنیت کامپیوتروشبکه ضروری می باشند. انواع راهکارهای شناسایی این نفوذها برای رفع کردن این موضوع جدی مطرح شده است. اما مشکل اصلی، کارایی می باشد. افزایش نرخ شناسایی و کاهش نرخ هشدار اشتباه در حوزه شناسایی نفوذ مهم است. برای شناسایی نفوذ، راهکارهای متفاوت در طی دهه گذشته توسعه داده شده و مطرح گردیده است .
روشی که در این پایان نامه از آن استفاده شده هوش ازدحامی است که از مزیتهای این روش قابلیت خودسازماندهی و رفتار توزیع شده را می توان نام برد که برای تشخیص نفوذ مناسب می سازد.
یکی از الگوریتم های هوش ازدحامی کلونی مورچه ها می باشد که علاوه بر مسائل بهینه سازی در الگوریتم های داده کاوی هم مورد استفاده قرار گرفته است.
این پایان نامه الگوریتم کلونی مورچه ها را برای استخراج قواعد تصمیم گیری بهبود داده است. ابتدا یک تابع ارزیابی برای تولید قواعد جدید به منظور افزایش دقت تصمیم گیری ایجاد و سپس یک روش وزندهی به منظور مقابله با مشکلات موجود در تولید قواعد در مجموعه داده های نامتعادل به کار گرفته شده است.
نتایج آزمایش ها در این پایان نامه نشان داده که با انتخاب تابع هدف مناسب و با در نظر گرفتن نامتعادل بودن مجموعه داده مورد آزمایش توانسته الگوریتم Ant-miner را به عنوان یک روش پایه استخراج قوانین طبقه بندی بر پایه کلونی مورچه در حوزه داده کاوی و تشخیص نفوذ بهبود بخشد.
منابع و مراجع:
دانشگاه خوارزمی http://www.khu.ac.ir
ایران داک http://www.irandoc.ac.ir
با توجه به افزایش حجم داده ها و اهمیت آنها در حوزه های مختلف تکنیک های آماری و ابزار مدیریت سنتی برای آنالیز این داده ها کافی نیست. داده کاوی کوششی برای بدست آوردن اطلاعات مفید از میان داده هاست
کتاب مفاهیم و تکنیک های داده کاوی ، نوشته مهدی اسماعیلی این منبع که ترجمه و گردآوری خوبی از کتاب معروف "Data Mining: Concepts and Techniques" نوشته Han و Kamber می باشد.یکی از کتاب هایی است که مفاهیم و الگوریتم های مورد استفاده در زمینه داده کاوی را به زبانی ساده و کامل همراه با مثال های عددی تشریح کرده است.
در این کتاب خواهید خواند:
این کتاب را می توان به صورت رایگان از لینک زیر دانلود نمایید.
لینک دانلود : http://www.irstu.com/?p=13971
در بحث شناسایی نفوذ سیستم با استفاده ار داده های استاندارد مثل KDD cup و مجموعه داده DARPA تست می شود. هر کدام از این مجموعه داده را در ادامه با جزئیات خواهیم دید.
این مجموعه داده برای سومین مسابقه بین المللی ابزارهای داده کاوی و کشف دانش مورد استفاده قرار گرفته است. فعالیت مسابقه ساختن سیستم شناسایی نفوذ برای تشخیص ارتباطات خوب و بد بود. به زبان دیگر ما می توانیم بگوییم که با کمک این مجموعه داده ما می توانیم متجاوزین و حمله کنندگان را تشخیص دهیم. این پایگاه داده حاوی یک مجموعه داده استاندارد برای بررسی می باشد که دارای نفوذهای متنوع شبیه سازی شده در کاربردهای نظامی است.
این مجموعه داده جستجویی در پایگاه داده توسط ترجیح کابران برای اقلام مختلف می باشد. پبشنهاد اقلام برای کاربران و تاریخچه پیشینه دنبال شده توسط کابران. در مقایسه با دیگر مجموعه داده هایی که تا حال منتشر گردیده است این مجموعه دارای مقیاس بزرگتر می باشد. همچنین این مجموعه داده حاوی اطلاعات با ارزش تری در حوزه های چندگانه از جمله پروفایل کاربر، گراف عمومی، دسته بندی اقلام دارد که ممکن است موجب استخراج ایده های با دقت و روشهای جدید گردد. برای کابران این مجموعه داده که میلیونها نفر هستند اطلاعاتی همچون کلمات کلیدی پروفایل و تاریخچه دنبال شده، برای تولید یک مدل تخمین گر خوب در دسترس است. برای حفاظت کردن از استقلال کاربران، ID مربوط به کاربران و اقلام پیشنهادی بصورت اعداد تصادفی انتخاب می گردند که هیچ گونه طبقه بندی فاش نشود. بعلاوه، اطلاعات آنها وقتی بصورت زبان چینی باشد بصورت رشته ها و اعداد تصادفی کدگذاری می گردد. بنابراین هیچ رقیبی که به زبان چینی آشناست، سودی از آن عاید نمی شود. برچسب زمان اگر توصیه نیاز باشد تهیه می گردد.
سیستمهای کامپیوتری و خوشه تکنولوژی (قبلا گروه ارزیابی شناسایی نفوذDAPRA) تحت نظر نمایندگی پروژه های تحقیقاتی پیشرفته دفاعی(DAPRA ITO) و آزمایشگاه تحقیقات نیروی هوایی (AFRL/SNHS) اولین مجموعه داده استاندارد را برای ارزیابی سیستمهای شناسایی نفوذ شبکه های کامپیوتری جمع آوری و منتشر کرد. ما همچنین با آزمایشگاه تحقیقات نیروی هوایی هماهنگ بودیم که اولین، تکرار پذیر و همچنین ارزیابی مهم آماری سیستم های شناسایی نفوذ در سال 1998 و 1999 انجام شد. این ارزیابی ها شانس شناسایی و احتمال هشدار اشتباه هر سیستم تحت آزمایش را اندازه گیری می کرد. این ارزیابی بطور موثری به حوزه تحقیقاتی شناسایی نفوذ با ارائه جهت برای تلاش محققان و همچنین درجه بندی عملی برای کارهای تحقیقاتی در این زمینه کمک می کند. برای همه محققان کاربر روی مسائل عمومی ایستگاه کار و شناسایی نفوذ شبکه دارای جذابیت می باشد. تخمین طوری طراحی شده است که برای تمرکز بر روی موضوع تکنولوژی و برای تشویق کردن برای مشارکت ممکن هر چه بیشتر بوسیله از هم باز کردن نگرانیهای امنیت و استقلال و بوسیله تهیه انواع داده ها که بطور معمول توسط اکثریت سیستمهای شناسایی نفوذ مورد استفاده قرار می گیرند، آسان باشد.
جدول 1 : بررسی ویژگی های رکوردهای موجود در KDD CUP 99 مرجع[1]
نوع ویژگی |
توضیحات |
نام ویژگی |
ردیف |
Numeric |
مدت زمان اتصال |
duration |
1 |
Nominal |
نوع پروتکل TCP,UDP,ICMP |
protocol_type |
2 |
Nominal |
نوع سرویس شبکه Telnet,Http,etc. |
service |
3 |
Nominal |
نرمال یا اشکال داشتن اتصال را مشخص می کند |
flag |
4 |
Numeric |
تعداد بایت های داده از منبع به مقصد |
src_bytes |
5 |
Numeric |
تعداد بایت های داده از مقصد به منبع |
dst_bytes |
6 |
Nominal |
اگر 1 باشد یعنی اتصال از یک پورت است در غیر این صورت 0 می شود |
land |
7 |
Numeric |
تعداد قطعات اشتباه |
wrong_fragment |
8 |
Numeric |
تعداد بسته های urgent |
urgent |
9 |
Numeric |
تعداد شاخص های hot را نمایش میدهد |
hot |
10 |
Numeric |
تعداد login های دارای نقص |
num_failed_logins |
11 |
Nominal |
اگر 1 باشد یعنی موفقیت آمیز بوده درغیر اینصورت 0 می شود |
logged_in |
12 |
Numeric |
تعداد شرط های compromised |
num_compromised |
13 |
Numeric |
با 0 و یا 1 شدن وضعیت root shell را مشخص می کند |
root_shell |
14 |
Numeric |
با 0 و یا 1 شدن وضعیت su root را مشخص می کند |
su_attempted |
15 |
Numeric |
تعداد دسترسی هایی که به root انجام گرفته است |
num_root |
16 |
Numeric |
تعداد فایل های عملیاتی ایجاد شده |
num_file_creations |
17 |
Numeric |
تعداد هسته های آماده |
num_shells |
18 |
Numeric |
تعداد عملیات روی فایل های کنترل دستیابی |
num_access_files |
19 |
Numeric |
تعداد دستورات خارج شده در نشست ftp |
num_outbound_cmds |
20 |
Nominal |
با 0 و یا 1 شدن مشخص می کند که آیا login عضو لیست hot شده یا نه |
is_hot_login |
21 |
Nominal |
با 0 و یا 1 شدن وضعیتguest بودن login را مشخص می کند |
Is_guest_login |
22 |
Numeric |
تعداد اتصالاتی که از یک host در یک اتصال جاری بیش از 2 ثانیه بطول بکشد |
count |
23 |
Numeric |
تعداد اتصالاتی که از یک سرویس در یک اتصال جاری بیش از 2 ثاتیه بطول بکشد |
srv_count |
24 |
Numeric |
درصد اتصالاتی که اشکال SYN دارند |
serror_rate |
25 |
Numeric |
درصد اتصالاتی که اشکال SYN در سرویس دارند |
srv_serror_rate |
26 |
Numeric |
درصد اتصالاتی که اشکال REJ دارند |
rerror_rate |
27 |
Numeric |
درصد اتصالاتی که اشکال REJ در سرویس دارند |
srv_rerror_rate |
28 |
Numeric |
درصد اتصالاتی به سرویس های یکسان |
same_srv_rate |
29 |
Numeric |
درصد اتصالاتی به سرویس های مختلف |
diff_srv_rate |
30 |
Numeric |
درصد اتصالاتی به host های مختلف |
srv_diff_host_rate |
31 |
Numeric |
تعداد host های مقصد |
dst_host_count |
32 |
Numeric |
تعداد سرویس host های مقصد |
dst_host_srv_count |
33 |
Numeric |
درصد اتصالاتی که از یک host با یک سرویس به یک host مقصد در یک بازه زمانی انجام شده است |
dst_host_same_srv_rate |
34 |
Numeric |
درصد اتصالاتی که از یک host با سرویس های مختلف به یک host مقصد در یک بازه زمانی انجام شده است |
dst_host_diff_srv_rate |
35 |
Numeric |
درصد اتصالاتی که از یک host با یک پورت منبع انجام شده است |
dst_host_same_src_port_rate |
36 |
Numeric |
درصد اتصالاتی که از یک host به host دیگر با سرویس متفاوت انجام شده است |
dst_host_srv_diff_host_rate |
37 |
Numeric |
نرخ اشکالات SYN در host منبع |
dst_host_serror_rate |
38 |
Numeric |
نرخ اشکالات SYN سرویس host منبع |
dst_host_srv_serror_rate |
39 |
Numeric |
نرخ اشکالات host منبع |
dst_host_rerror_rate |
40 |
Numeric |
نرخ اشکالات سرویس host منبع |
dst_host_srv_rerror_rate |
41 |
سیستم های تشخیص نفوذ را می توان از جهات مختلف دسته بندی کرد. شکل 1-1 یک نمونه از این دسته بندی را نشان می دهد[2].
روش تشخیص امضاء بر اساس داشتن الگویی از نفوذهای شناخته شده عمل میکند. در این روش، مسأله تشخیص نفوذ به یک مسأله دسته بندی تبدیل میشود و سیستم تشخیص نفوذ قادر است حمله هایی را که پیشتر الگوی آنها را در یک مرحله آموزشی فرا گرفته، تشخیص دهد. مهمترین خصیصه این روش آن است که سیستم امنیتی قادر است حمله های شناخته شده را با دقتی بالا و نرخ هشدار غلط خیلی کمتشخیص دهد. منظور از هشدار غلط هشداری است که هنگام عدم وقوع حمله توسط سیستم تشخیص نفوذ اعمال میگردد. وجود هشدار غلط حتی به میزان کم چنانچه بار ترافیکی عادی شبکه بالا باشد، باعث وقوع هشدارهای متعدد و خسته کننده میگردد. به همین دلیل نرخ تولید هشدار غلط توسط یک سیستم تشخیص نفوذبایستی تا حد امکان پایین باشد. البته ذکر این نکته ضروری است که پایین نگه داشتن نرخ مزبور سببکاهش توانایی سیستم در تشخیص حملات محتمل میگردد. به عبارتی بایستی میان دقت تشخیص بالا و نرخ هشدار غلط پایین نوعی تعادل برقرار نمود.]3[
نوع دیگر سیستمهای تشخیص نفوذ با نام تشخیص ناهنجاری شناخته میشود. در این سیستمها مدلی برپایه داده های آماری از فعالیت عادی شبکه ساخته میشود. چنانچه در هر لحظه بار ترافیکی شبکه ازمرزی که بین فعالیتهای عادی و غیر عادی توسط سیستم مشخص شده تخطی کند، سیستم هشداریمبنی بر وقوع حمله میدهد. بدیهی است که سیستم هایی که با این روش پیاده سازی میشوند تواناییتشخیص حمله های جدید را دارند. در عین حال معمولا تعیین مرز میان رفتار عادی و غیر عادی درسیستمهای مزبور کار مشکلی است.
پس می توان گفت تکنیک های مبتنی بر ناهنجاری براین فرض بنا شده که بتوان رفتارهای مخربانه را از رفتارهای عادی سیستم تفکیک کرد[4]
تکنیکهای متعددی از تشخیص نفوذ در شبکه مبتنی بر تشخیص ناهنجاری تا کنون ارائه شده است که شامل تکنیکهای آماری تک متغیره و چند متغیره، مدلهای سری زمانی، ماشین حالت محدود، زبانهای توصیفی، سیستمهای خبره، شبکه های بیزین، مدلهای مارکوف، شبکه های عصبی، منطق فازی، الگوریتمهای ژنتیک، خوشه بندی و تشخیص دورافتاده می شوند
با توجه به انواع روشهای ذکر شده برای تشخیص نفوذ به شبکه، مشخص است که هر روش نقاط ضعف وقوت مربوط به خودش را دارا میباشد. دقت بالا در تشخیص حملات و نرخ هشدار غلط پایین از جملهویژگیهای اصلی در روش تشخیص امضاء میباشد. در عین حال روش مزبور توانایی تشخیص حمله های جدید را دارا نمی باشد. روش تشخیص ناهنجاری با وجود داشتن توانایی بالا در تشخیص حمله های جدید،دارای نرخ هشدار غلط بالایی است.
در این روش که معمولا روش بهتری محسوب می شود سیستم تشخیص نفوذ مزایای دو حالت قبل را با هم مورد استفاده قرار می دهد. ابتدا سیستم حملات شناخته شده را بر اساس تکنیک های روش مبتنی بر امضاء پیدا می کند و برای سایر حملات جدید که الگویی برای شناسایی آنها در پایگاه اطلاعاتی خود ندارد از روش مبتنی بر ناهنجاری استفاده می کند[[6],[7 .[5],
این سیستمها داده ای را که در کامپیوتری که بعنوان میزبان یک سرویس است مثل سرور شبکه جمع آوری و مورد آزمایش قرار می دهند. در حالتیکه داده یک کامپیوتر جمع آوری گردید، می تواند بصورت محلی مورد بررسی قرار گیرد یا به ماشین آنالیز مرکزی یا مجزا فرستاده شود. یکی از سیستمهای برپایه میزبان برنامه هایی هستند که بر روی یک سیستم عمل میکنند و پیگیری وقایع برنامه های کاربردی یا سیستم عامل را دریافت می کنند. این برنامه ها برای شناسایی سوء استفاده های داخلی بسیار موثر هستند. اگر یکی از این کاربران تلاش کند تا فعالیت غیرقانونی انجام دهد، سیستمهای بر مبنای میزبان معمولاً بیشترین اطلاعات مربوطه را در سریعترین حالت ممکن جمع آوری و شناسایی می کنند.
• مزایا:
1. قابلیت نشان دادن سریع شکست یا موفقیت یک حمله
2. نظارت سطح پایین
3. تشخیص و واکنش تقریبا بلادرنگ
4. قابلیت عمل در محیطهای رمز شده
5. اثربخشی و اقتصادی بودن
• معایب:
1. امکان غیرفعال شدن سیستم در بخشی از حمله
2. نیاز به انباره زیاد برای ذخیره اطلاعات
3. سربار محاسباتی برای میزبان[8]
برخلاف نظارت بر فعالیتهایی که در یک شبکه خاص اتفاق می افتد، شناسایی نفوذ بر مبنای شبکه بسته های داده ای را بررسی می کند که در شبکه واقعی منتقل می شوند. این بسته ها مورد آزمایش قرار می گیرند و در بعضی اوقات با داده های تجربی مقایسه می شوند تا ذات آنها: با خطر یا بی خطر مورد بازبینی قرار گیرد: از آنجائیکه آنها مسئول بررسی شبکه هستند، سیستمهای شناسایی نفوذ بر مبنای شبکه (NIDS) تمایل به انتشار بیشتری نسبت به سیستمهای شناسایی برپایه میزبان دارند. نرم افزار یا سخت افزار دستگاه در بعضی از موارد، در یک یا چند سیستم متصل می شود و برای آزمایش داده همچون بسته های شبکه مورد استفاده قرار می گیرد. بجای آنالیز اطلاعاتی که در کامپیوتر تولید و مستقر میشوند، سیستم شناسایی نفوذ از تکنیکی به نام packet-sniffing برای اخذ داده از پروتکل TCP/IP یا دیگر بسته های پروتکل انتقالی در طول شبکه استفاده می کند. تحت نظر گرفتن ارتباطات بین کامپیوترها باعث می شود تا سیستم شناسایی نفوذ بر پایه شبکه در شناسایی تلاشها برای دسترسی به شبکه مورد اعتماد از بیرون بصورت قوی عمل کند. در حالت کلی، سیستم های بر پایه شبکه در شناسایی فعالیتهای زیر بهترین عملکرد را دارند:
دسترسی از بیرون غیرمجاز: زمانیکه یک کاربر غیرمجاز با موفقیت وارد می شود یا برای ورود تلاش می کند، ردپای این کاربران به بهترین نحو توسط سیستم شناسایی نفوذ بر پایه میزبان تعقیب می گردد. درحالیکه، شناسایی کاربران غیر مجاز قبل از ورود آنها و در حال تلاش برای ورود توسط سیستم شناسایی نفوذ بر مبنای شبکه به بهترین نحو انجام می گردد.
دزدی پهنای باند/ رد کردن سرویس: این حملات از خارج شبکه منابع شبکه را برای سوء استفاده انتخاب می کنند. بسته هایی که این حملات را حمل می کنند به بهترین صورت می توانند توسط سیستم شناسایی نفوذ بر مبنای شبکه شناخته شوند.
• مزایا:
1. قابلیت تشخیص حملاتی که سیستمهای مبتنی بر میزبان آنها را از دست می دهند چون ترافیک شبکه را در لایه انتقال نظارت می کنند.
2. دشوار کردن حذف شواهد توسط مهاجم
3. تشخیص و واکنش بلادرنگ
4. قابلیت تشخیص حملات ناموفق و سوء قصدهای مخرب
5. عدم تداخل با عملکرد معمولی شبکه
• معایب :
1. عدم قابلیت عمل در محیطهای رمز شده مثل VPN
2. نقاط کور شبکه که قادر به دیدن آنها نیستند.
3. عدم عملکرد صحیح در ترافیک سنگین[8]
شکل 2 : NIDS باید در جایی قرار داشته باشد که ترافیک کل شبکه را مورد بررسی قرار دهد.
بدیهی است بهترین حالت وقتی است که ترکیبی از دو حالت قبل یعنی NIDS و HIDS برای تشخیص حملات در شبکه داشته باشیم.
3) دسته بندی از لحاظ معماری:
از لحاظ معماری می توان سیستم های تشخیص نفوذ را به دو حالت متمرکز و توزیع شده تقسیم بندی کرد. در حالت اول تمام پردازش ها دریک سیستم مرکزی انجام می پذیرد اما در حالت دوم هر سیستم بصورت جداگانه پردازش بسته ها را انجام می دهد.(در این حالت از Agent ها برای این پردازش ها استفاده می کنند.
برحسب اینکه بعد از تشخیص حملات چه عملیاتی توسط سیستم های تشخیص نفوذ انجام بگیرد به دو دسته فعال و غیر فعال می توان این سیستم ها را تقسیم بندی کرد. درحالت فعال سیستم، بعد از تشخیص حملات اقدام به هدایت فرد متخاصم به سمت کوزه عسل[2] و یا اقداماتی از این قبیل می نماید.
و درنهایت سیستم های تشخیص نفوذ را بر اساس زمانبندی آنالیزها می توان به دو دسته تقسیم بندی کرد: بررسی بسته های شبکه بصورت ممتد یا همان بلادرنگ و بررسی بصورت دوره ای که در این حالت داده ها را ابتدا ذخیره کرده و در بازه های زمانی مختلف به تحلیل آنها و پیدا کردن حملات می پردازند و در صورت پیدا کردن نشانه های از حملات به مدیر شبکه هشدار می دهد.
اصولا چهار نوع حمله به شبکه شناسایی شده اند و هر یک از انواع حملات دیگر در این چهار دسته قرار می گیرند که عبارتند از :