مقدمه سیستم تشخیص نفوذ
در سالهای اخیر، تعداد افرادی که از اینترنت استفاده میکنند، به سرعت افزایش یافته است، که نشان دهنده الزام یک سیستم حفاظت مناسب میباشد. به طور کلی، نفوذ مخرب یا حمله به سیستمها و پایگاههای اطلاعاتی ممکن است خط مشیهای امنیتی سیستمها، یعنی محرمانه بودن 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 ذخیره شدهاند. در این سیستمها، تمام اقدامات در سراسر شبکه تحت نظارت و دقیق تجزیه و تحلیل قرار میگیرند، هر گونه انحراف از الگوهای نرمال به عنوان یک حمله در نظر گرفته شده است که در آن سیستم تشخیص نفوذ زنگ هشدار میدهد تا مدیر امنیت شبکه را در مورد حملات شناسایی شده جدید اطلاع دهد. مزیت اصلی سیستمهای تشخیص مبتنی بر آنومالی توانایی تشخیص حملات ناشناخته است.
استفاده از داده کاوی در سیستم تشخیص نفوذ
همانطور که قبلا اشاره شد، عملیات IDSهای مبتنی بر آنومالی یا ناهنجاری anomaly detection کاملا وابسته به الگوهای طبیعی ذخیره شده است. به همین ترتیب، ارائه پایگاه داده جامع منجر به دقت تشخیص بالا است. علاوه بر این، تهیه یک پایگاه داده مناسب برای سیستمهای مبتنی بر آنومالی شامل مراحل آموزش و تست میشود.
الگوهای طبیعی در فاز آموزش تعریف میشوند و ترافیک فعلی با مشخصات ذخیره شده در مرحله تست مقایسه میشوند. برای بهبود بهره وری IDSها، تکنیکهای مبتنی بر هوش مصنوعی، مبتنی بر یادگیری ماشین، داده کاوی، دستور زبان، تکنیکهای الهام گرفته از طبیعت و غیره مورد استفاده قرار میگیرند.
اصلیترین روش تشخیص نفوذ روش دوم یعنی IDSهای مبتنی بر آنومالی یا ناهنجاری هست. در این روش استفاده از الگوریتمهای یادگیری ماشین بسیار رایج است. در روشهای یادگیری ماشین با توجه به دستهبندی، مدلی استخراج میشود که بر اساس آن میتوان با دقت مناسب تشخیص نفوذ در سیستم جدید را انجام داد. یافتههای قبلی بر اساس یادگیری از متریکهای بهدستآمده از حملات نشان میدهد ارتباط قوی بین این متریکها و تشخیص نفوذ وجود دارد.
الگوریتمهای مختلفی برای دستهبندی وجود دارد از جملهی این روشها میتوان به درخت تصمیم، الگوریتم k همسایه نزدیک، الگوریتم نیوبیزین، بردار پشتیبانی ماشین و شبکههای عصبی میباشد.
دیتاست یا مجموعه داده سیستم تشخیص نفوذ IDS
دیتاست KDD99 به عنوان یک دادهی استاندار برای ارزیابی سیستمهای تشخیص نفوذ پذیرفته شده و مورد استفاده قرارگرفته است. این داده اعتبار خود را از سومین مسابقه بین الملی کشف دانش و داده کاوی کسب کرده است. گروه IST از آزمایشگاه MIT Lincoln زیر نظر DARPA و AFRL/SNHS ، اولین دادههای استاندارد برای بررسی و ارزیابی سیستمهای تشخیص نفوذ را جمع آوری نمودند.
این اطلاعات در طول چند هفته در یک شبیه سازی برای آزمایش سیستم تشخیص نفوذ DARPA به کار رفتهاند. این مجموعه دادهها براساس سال جمع آوری اطلاعات ( ۱۹۹۸ – ۱۹۹۹ ) طبقه بندی شده است. دیتاست KDD99 شامل رکوردهای اتصال استانداردی میباشد که مجموعهای از حملات و نفوذهای شبیه سازی شده در یک شبکه نظامی را شامل میشود.
یک اتصال با پروتکل TCP ،UDP و یا ICMP است که در زمانهای مشخص شروع و پایان مییابد و بین آن زمانها، دادهها از آدرس IP مبدأ به آدرس IP مقصد و برعکس تحت یک پروتکل تعریف شده جریان دارند. هر اتصال به عنوان نرمال (Normal) یا حمله (Attack) برچسب گذاری میشود و در مورد حمله، نوع آن دقیقاً مشخص میگردد.
حملاتی که در این مجموعه داده مشاهده میشوند، در چهار دسته اصلی U2R ،R2L ، DOS و Probe قرار میگیرند. دیتاست KDD99 در قالب چند فایل سازماندهی گردیدهاند. در این مجموعه از فایلها، دو فایل به نامهای 10_percent و corrected وجود دارند که در بسیار ی از پژوهشها از دیتاست 10_percent برای آموزش و آزمایش سیستمهای طراحی شده به استفاده میگردد.
جزئیات دیتاست KDD99
همانطور که قبلا هم گفته شد حملاتی که در این مجموعه داده مشاهده میشوند، در چهار دسته اصلی U2R ،R2L ، DOS و Probe قرار میگیرند. اما در خود فایل 10_percent در ۲۳ دسته مختلف قرار دارد از این رو طبق مقالات و رفرنسهای متنوع ما نیز این دسته بندی را بصورت زیر در ۴ گروه انجام میدهیم. و اعداد جلوی آنها مربوط به تعداد رکوردهای موجود است.
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
بنابراین ما ۵ کلاس داریم که یک کلاس مربوط به حالت نرمال و ۴ کلاس مربوط به حمله است. تعداد کل دادههای ۱۰ درصدی۴۹۴۰۲۱ رکورد میباشد. این دیتاست شامل ۴۱ ویژگی یا ستون است و ستون ۴۲ نیز معرف نوع حمله یا نرمال بودن است. در زیر تصویری از این دیتاست مشاهده میشود.
استفاده از الگوریتم های تکاملی در سیستم های تشخیص نفوذ
یکی از مسائل اصلی در استفاده از دیتاست سیستمهای تشخصیص نفوذ، حجم زیاد ویژگیها است که باعث کاهش دقت نتایج دستهبندی توسط الگوریتمهای یادگیری میشود. برای انتخاب ویژگیهای موثر و برای حل این مشکل از روش کاهش ابعاد ویژگیها استفاده میکنند.
انتخاب ویژگیهای موثر برای کلاس بندی یک مسئله NP-Hard است و میتوان با استفاده از الگوریتمهای تکاملی آن را حل کرد. پس یکی از راه کارها استفاده از الگوریتمهای تکاملی همچون الگوریتم ژنتیک، PSO، گرگ خاکستری، الگوریتم وال، الگوریتم زنبور عسل، الگوریتم شعله و پروانه الگوریتم کلونی مورچگان و … میباشد.
الگوریتم ژنتیک
در الگوریتم ژنتیک دو فاز داریم. فاز اول آموزش است که اطلاعات اولیه مورد نیاز سیستم را به آن آموزش میدهیم. فاز دوم تشخیص است که سیستم، نفوذ را بر اساس آموزشهای فاز اول نفوذها را تشخیص میدهد.
در سیستمهای تشخیص نفوذی که از الگوریتم ژنتیک برای آموزش استفاده مینمایند، یک سری قوانین اولیه دسته بندی شده در پایگاه داده قرار میدهیم و با بکارگیری الگوریتم ژنتیک ۱۵ قوانین جدیدی تولید شده و به قواعد قبل اضافه میشوند. در شکل زیر ساختار یک الگوریتم ژنتیک ساده نشان داده شده است.
الگوریتمهای ژنتیک، از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده میکند. راه حلها طبق یک الگو کد گذاری میشوند که تابع هر راه حل کاندید را ارزیابی میکند که اکثر آن نام دارد و برازندگی میشوند. تکامل از یک مجموعه کاملا تصادفی از جامعه اولیه شروع میشود و در نسلهای بعدی تکرار میشود. این فرآیند تکرار میشود تا این که به آخرین مرحله برسیم.
سخن آخر
در این پست به بررسی سیستم تشخیص نفوذ و موارد مهم مربوط به آن اعم از تعریف این سیستم، ضرورت استفاده از آن، مزایایی که با خود به همراه دارد و طبقه بندیهای مختلفی که برای سیستمهای تشخیص نفوذ وجود دارد پرداختیم. استفاده از داده کاوی در سیستم تشخیص نفوذ و دیتاستها و الگوریتمهای تکاملی متنوع از موارد دیگری است که به صورت جامع در این پست مورد بررسی و تحلیل قرار گرفته شده است.