سیستم تشخیص نفوذ Intrusion Detection System [1] یا به اختصار IDS وظیفه تشخیص هر گونه استفاده غیرمجاز به سیستم، سوء استفاده یا آسیبرسانی توسط کاربران را بر عهده دارند. تشخیص و جلوگیری از نفوذ، امروزه به عنوان یکی از مکانیزمهای اصلی در برآوردن امنیت شبکهها و سیستمهای کامپیوتری مطرح است و عمومأ در کنار فایروال ها و به صورت مکمل امنیتی برای آنها مورد استفاده قرار میگیرند.
مقدمه
در سال های اخیر، تعداد افرادی که از اینترنت استفاده می کنند، به سرعت افزایش یافته است، که نشان دهنده الزام یک سیستم حفاظت مناسب می باشد. به طور کلی، نفوذ مخرب یا حمله به سیستمها و پایگاه های اطلاعاتی ممکن است خط مشی های امنیتی سیستمها، یعنی محرمانه بودن Confidentiality، یکپارچگی Integrity و قابلیت دسترسی Availability را از بین ببرد. تکنیک های سنتی مانند تکنیک های رمزگذاری داده، مکانیزم های تأیید هویت کاربر و فایروال ها به عنوان ضروریات حفاظت برای محافظت از کامپیوترها و شبکه ها اعمال می شود. علاوه بر این سیستم ها، سیستم های تشخیص نفوذ و سیستم های پیشگیری از نفوذ Intrusion Prevention Systems به عنوان ابزار امنیتی در لایه شبکه می توانند مسئولیت بازدارندگی در کنار تجهیزات ذکر شده برای شناسایی و جلوگیری از فعالیت های مخرب، را بر عهده بگیرند و محافظت موثر را فراهم کند.
این سیستم ها می توانند به صورت یک دستگاه سخت افزاری اجرا شوند و همچنین به عنوان یک محصول نرم افزاری نیز می توانند به صورت اتوماتیک ترافیک شبکه را تجزیه و تحلیل کنند و در صورت نیاز گزارش های امنیتی را به دفتر مدیریت گزارش دهند. علاوه بر این، IDS ها نیاز به تجزیه و تحلیل در زمینه های بیشتری در مقایسه با فایروال هایی که فقط چند زمینه از یک بسته را تجزیه و تحلیل می کنند دارند.
نفوذ چیست و چگونه انجام می شود؟
در واقع نفوذ به مجموعه ی اقدامات غیرقانونی و غیر مجاز که سه عامل صحت و محرمانگی و یا دسترسی به یک منبع را به خطر می اندازد اطلاق می گردد. نفوذ ها می توانند به دو دسته ی داخلی و خارجی تقسیم شوند. نفوذهای خارجی توسط افراد مجاز و یا غیرمجاز از خارج شبکه به درون شبکه ی داخلی صورت می گیرد و نفوذهای داخلی توسط افراد مجاز در سیستم و شبکه ی داخلی، از درون خود شبکه انجام می پذیرد. نفوذگرها عموماً از عیب های نرم افزاری، شکستن کلمات رمز، استراق سمع ترافیک شبکه و نقاط ضعف طراحی در شبکه، سرویس ها و یا کامپیوترهای شبکه برای نفوذ به سیستم ها و شبکه های کامپیوتری بهره می برند.
ضرورت استفاده از سیستم های تشخیص نفوذ
در دنیای امروز، کامپیوتر و شبکه های کامپیوتری متصل به اینترنت نقش عمده ای در ارتباطات و انتقال اطلاعات ایفا می کنند. در این بین افراد سودجو با دسترسی به اطلاعات مهم مراکز خاص یا اطلاعات افراد دیگر و با قصد اعمال نفوذ یا اعمال فشار و یا حتی به هم ریختن نظم سیستم ها، عمل تجاوز به سیستم های کامپیوتری را در پیش گرفته اند Intruder و Cracker ،Hacker کلماتی هستند که امروزه کم و بیش در محافل کامپیوتری مطرح می باشند و اقدام به نفوذ به سیستمهای دیگر کرده و امنیت آن ها را به خطر می اندازد. بنابراین لزوم حفظ امنیت اطلاعاتی و حفظ کارآیی در شبکه های کامپیوتری که با دنیای خارج ارتباط دارند، کاملأ محسوس است.
از آنجا که از نظر فنی ایجاد سیستم های کامپیوتری بدون نقاط ضعف و شکست امنیتی عملأ غیرممکن است، تشخیص نفوذ در تحقیقات سیستم های کامپیوتری با اهمیت خاصی دنبال می شود. سیستم های تشخیص نفوذ برای کمک به مدیران امنیتی سیستم در جهت کشف نفوذ و حمله به کار گرفته شده اند. هدف یک سیستم تشخیص نفوذ جلوگیری از حمله نیست و تنها کشف و احتمالأ شناسایی حملات و تشخیص اشکالات امنیتی در سیستم یا شبکه های کامپیوتری و اعلام آن به مدیر سیستم است. عمومأ سیستم های تشخیص نفوذ در کنار فایروال ها و به صورت مکمل امنیتی برای آن ها مورد استفاده قرار می گیرند.
مزایای استفاده از سیستم های تشخیص نفوذ
- کارایی بیشتر در تشخیص نفوذ،در مقایسه با سیستم های دستی
- منبع دانش کاملی از حملات
- توانایی رسیدگی به حجم زیادی از اطلاعات
- توانایی هشدار نسبتا بلادرنگ که باعث کاهش خسارت می شود
- دادن پاسخ های خودکار،مانند قطع ارتباط کاربر،غیر فعال سازی حساب کاربر،اعمال مجموعه دستورهای خودکار وغیره
- افزایش میزان بازدارندگی
- توانایی گزارش دهی
طبقه بندی سیستم های تشخیص نفوذ
به طور کلی، سیستم های تشخیص نفوذ را از دو دیدگاه نوع تکنولوژی Technology type و روش تشخیص Detection methodology قابل بررسی است. از دیدگاه نوع تکنولوژی می توان دو حالت سیستم تشخیص نفوذ مبتنی بر میزبان Host based مبتنی بر شبکه Network based در نظر گرفت و همچنین سیستم های تشخیص نفوذ از دیدگاه روش تشخیص بر اساس دو تکنیک متمایز، یعنی تطابق الگو misuse detection و ناهنجاری های آماری anomaly detection عمل می کنند.
سیستم تشخیص نفوذ مبتنی بر میزبان Host based
این سیستم، شناسایی و تشخیص فعالیتهای غیرمجاز بر روی کامپیوتر میزبان را بر عهده دارد. سیستم تشخیص نفوذ مبتنی بر میزبان میتواند حملات و تهدیداتی از قبیل دسترسی به فایلها، تروجان ها و … را که توسط سیستم های تشخیص نفوذ مبتنی بر شبکه قابل تشخیص نیستند را تشخیص دهد.
سیستم تشخیص نفوذ مبتنی بر شبکه Network based
شناسایی و تشخیص نفوذهای غیرمجاز قبل از رسیدن به سیستمهای بحرانی، به عهدهٔ سیستم تشخیص نفوذ مبتنی بر شبکهاست. NIDS، به عنوان دومین نوع IDSها، در بسیاری از موارد عملاً یک Sniffer هستند که با بررسی بستهها و پروتکلهای ارتباطات فعال، به جستجوی تلاشهایی که برای حمله صورت میگیرد میپردازند. به عبارت دیگر معیار NIDS، تنها بستههایی است که بر روی شبکهها رد و بدل میگردد. از آن جایی که انآیدیاسها تشخیص را به یک سیستم منفرد محدود نمیکنند، عملاً گستردگی بیشتری داشته و فرایند تشخیص را به صورت توزیع شده انجام میدهند. با این وجود این سیستمها در رؤیایی با بستههای رمزشده یا شبکههایی با سرعت و ترافیک بالاکارایی خود را از دست میدهند.
روش تشخیص بر اساس تطابق الگو misuse detection
سیستم تشخیص نفوذ مبتنی بر تطابق الگو، که به نام IDS یا مبتنی بر سوء استفاده نامیده می شود، می تواند الگوهای حمله شناخته شده ای را که امضاهای آنها در پایگاه داده IDS ذخیره شده اند، بررسی کند. در این مدل، حسابرسی برای وقایع تفسیر شده به عنوان نشانه های حمله قبلی جستجو می شوند؛ به همین ترتیب، سیستم تشخیص نفوذ، یک هشدار حمله ایجاد می کند تا مدیر امنیت شبکه را مطلع کند. معایب اصلی سیستم های تطبیق الگو، عدم توانایی آنها در شناسایی حملات ناشناخته است که امضای آنها در پایگاه داده IDS نیست.
روش تشخیص بر اساس ناهنجاری های آماری anomaly detection
در سیستم های مبتنی بر آنومالی آماری که IDS مبتنی بر آنومالی نامیده می شود الگوهای رفتارهای عادی در پایگاه داده IDS ذخیره شده اند. در این سیستم ها، تمام اقدامات در سراسر شبکه تحت نظارت و دقیق تجزیه و تحلیل قرار می گیرند، هر گونه انحراف از الگوهای نرمال به عنوان یک حمله در نظر گرفته شده است که در آن سیستم تشخیص نفوذ زنگ هشدار می دهد تا مدیر امنیت شبکه را در مورد حملات شناسایی شده جدید اطلاع دهد. مزیت اصلی سیستم های تشخیص مبتنی بر آنومالی توانایی تشخیص حملات ناشناخته است.
بیشتر بدانید
طبقهبندی حملات در لایه های مختلف شبکه های بین خودرویی [3]
دسته بندی متون احساسی با ویژگی های BIGRAM مبتنی بر الگوریتم تکاملی [4]
پاورپوینت آموزش شبیه سازی شبکه با استفاده از NS2 [5]
استفاده از داده کاوی در سیستم تشخیص نفوذ
همانطور که قبلا اشاره شد، عملیات IDS های مبتنی بر آنومالی یا ناهنجاری anomaly detection کاملا وابسته به الگوهای طبیعی ذخیره شده است. به همین ترتیب، ارائه پایگاه داده جامع منجر به دقت تشخیص بالا است. علاوه بر این، تهیه یک پایگاه داده مناسب برای سیستم های مبتنی بر آنومالی شامل مراحل آموزش و تست می شود. الگوهای طبیعی در فاز آموزش تعریف می شوند و ترافیک فعلی با مشخصات ذخیره شده در مرحله تست مقایسه می شوند. برای بهبود بهره وری IDS ها، تکنیک های مبتنی بر هوش مصنوعی، مبتنی بر یادگیری ماشین، داده کاوی، دستور زبان، تکنیک های الهام گرفته از طبیعت و غیره مورد استفاده قرار می گیرند.
اصلیترین روش تشخیص نفوذ روش دوم یعنی IDS های مبتنی بر آنومالی یا ناهنجاری هست. در این روش استفاده از الگوریتمهای یادگیری ماشین بسیار رایج است. در روش های یادگیری ماشین با توجه به دستهبندی، مدلی استخراج میشود که بر اساس آن میتوان با دقت مناسب تشخیص نفوذ در سیستم جدید را انجام داد. یافتههای قبلی بر اساس یادگیری از متریکهای بهدستآمده از حملات نشان میدهد ارتباط قوی بین این متریکها و تشخیص نفوذ وجود دارد. الگوریتمهای مختلفی برای دستهبندی وجود دارد از جملهی این روشها میتوان به درخت تصمیم، الگوریتم k همسایه نزدیک [6]، الگوریتم نیوبیزین [7]، بردار پشتیبانی ماشین [8] و شبکههای عصبی [9] میباشد.
دیتاست یا مجموعه داده سیستم تشخیص نفوذ IDS
دیتاست KDD99 به عنوان يك دادهي استاندار براي ارزيابي سيستم هاي تشخيص نفوذ پذيرفته شده و مورد استفاده قرارگرفته است. اين داده اعتبار خود را از سومين مسابقه بين الملي كشف دانش و داده كاوي كسب كرده است. گروه IST از آزمايشگاه MIT Lincoln زير نظر DARPA و AFRL/SNHS ، اولين داده هاي استاندارد براي بررسي و ارزيابي سيستم هاي تشخيص نفوذ را جمع آوري نمودند. اين اطلاعات در طول چند هفته در يك شبيه سازي براي آزمايش سيستم تشخيص نفوذ DARPA به كار رفته اند. اين مجموعه داده ها براساس سال جمع آوري اطلاعات ( 1998 – 1999 ) طبقه بندي شده است. دیتاست KDD99 شامل ركوردهاي اتصال استانداردي مي باشد كه مجموعه اي از حملات و نفوذهاي شبيه سازي شده در يك شبكه نظامي را شامل مي شود.
يك اتصال با پروتكل TCP ،UDP و يا ICMP است كه در زمان هاي مشخص شروع و پايان مي يابد و بين آن زمان ها، داده ها از آدرس IP مبدأ به آدر س IP مقصد و برعكس تحت يك پروتکل تعريف شده جريان دارند. هر اتصال به عنوان نرمال (Normal) يا حمله (Attack) برچسب گذاري مي شود و در مورد حمله، نوع آن دقيقاً مشخص مي گردد.
حملاتي كه در اين مجموعه داده مشاهده مي شوند، در چهار دسته اصلي U2R ،R2L ، DOS و Probe قرار مي گيرند. دیتاست KDD99 در قالب چند فايل سازماندهي گرديده اند. در اين مجموعه از فايل ها، دو فاي به نام هاي 10_percent و corrected وجود دارند كه در بسيار ي از پژوهش ها از دیتاست 10_percent براي آموزش و آزمايش سيستم هاي طراحي شده به استفاده میگردد.
جزئیات دیتاست KDD99
مجموعه داده KDD99 یا همان فایل 10_percent در مخزن داده ای UCI موجود است و می توانید از اینجا دانلود کنید. همانطور که قبلا هم گفته شد حملاتي كه در اين مجموعه داده مشاهده مي شوند، در چهار دسته اصلي U2R ،R2L ، DOS و Probe قرار مي گيرند. اما در خود فایل 10_percent در 23 دسته مختلف قرار دارد از این رو طبق مقالات و رفرنس های متنوع ما نیز این دسته بندی را بصورت زیر در 4 گروه انجام می دهیم. و اعداد جلوی آنها مربوط به تعداد رکوردهای موجود است.
There are total of 23 types of attack, and all of them belong to the four main attack categories (DoS, R2L, U2R, Probing) and normal.
%normal.=normal. =97278
%DoS=back. land. neptune. pod. smurf. teardrop. =391458
%R2L=warezclient. warezmaster. spy. multihop. phf. ftp_write. guess_passwd. imap.=1126
%U2R=rootkit. perl. loadmodule. buffer_overflow.= 52
%Probing=portsweep. satan. ipsweep. nmap.= 4107
بنابراین ما 5 کلاس داریم که یک کلاس مربوط به حالت نرمال و 4 کلاس مربوط به حمله است. تعداد کل داده های 10 درصدی494021 رکورد می باشد. این دیتاست شامل 41 ویژگی یا ستون است و ستون 42 نیز معرف نوع حمله یا نرمال بودن است. در زیر تصویری از این دیتاست مشاهده می شود.
هر کدام از ستون ها معرف یک خصیصه از یک اتصال است که در فایل دانلودی از سایت UCI قابل مشاهده است.
بیشتر بدانید
تبدیل دیتاست KDD99 برای استفاده الگوریتم های یادگیری ماشین در متلب [10]
سمینار پروتکل های پوششی آگاه از انرژی در شبکه های حس گر بی سیم [11]
پروتکلهای مسیریابی انرژی کارآمد در شبکههای حسگر بیسیم [12]
استفاده از الگوریتم های تکاملی در سیستم های تشخیص نفوذ
یکی از مسائل اصلی در استفاده از دیتاست سیستم های تشخصیص نفوذ، حجم زیاد ویژگیها است که باعث کاهش دقت نتایج دستهبندی توسط الگوریتم های یادگیری میشود. برای انتخاب ویژگیهای موثر و برای حل این مشکل از روش کاهش ابعاد ویژگیها استفاده میکنند انتخاب ویژگی های موثر برای کلاس بندی یک مسئله NP-Hard است و می توان با استفاده از الگوریتم های تکاملی آن را حل کرد. پس یکی از راه کارها استفاده از الگوریتم های تکاملی همچون الگوریتم ژنتیک [13]، PSO [14]، گرگ خاکستری [15]، الگوریتم وال [16]، الگوریتم زنبور عسل [17]، الگوریتم شعله و پروانه [18] الگوریتم کلونی مورچگان [19] و … می باشد.
الگوریتم ژنتیک
در الگوریتم ژنتیک دو فاز داریم . فاز اول آموزش است که اطلاعات اولیه مورد نیاز سیستم را به آن آموزش می دهیم. فاز دوم تشخیص است که سیستم، نفوذ را بر اساس آموزش های فاز اول نفوذها را تشخیص می دهد. در سیستم های تشخیص نفوذی که از الگوریتم ژنتیک برای آموزش استفاده می نمایند، یک سری قوانین اولیه دسته بندی شده در پایگاه داده قرار می دهیم و با بکارگیری الگوریتم ژنتیک 15 قوانین جدیدی تولید شده و به قواعد قبل اضافه می شوند. در شکل زیر ساختار یک الگوریتم ژنتیک ساده نشان داده شده است.
الگوریتم های ژنتیک، از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می کند. راه حل ها طبق یک الگو کد گذاری می شوند که تابع هر راه حل کاندید را ارزیابی می کند که اکثر آن نام دارد و برازندگی می شوند. تکامل از یک مجموعه کاملا تصادفی از جامعه اولیه شروع می شود و در نسل های بعدی تکرار می شود. این فرآیند تکرار می شود تا این که به آخرین مرحله برسیم.