بخشی از مقاله
چکیده
امروزه شبکه های کامپیوتری به منبع درآمد عظیمی تبدیل شده است. با این وجود همگان هنوز هم شاهد هک ها و نفوذهای بسیاری در جهت برهم زدن امنیت هستند. لذا نیاز به سیستمی که امنیت بیشتری برای شبکه ها و میزبان ها فراهم کند، احساس می شود. علاوه بر آنتی ویروس ها و فایروال ها، سیستم تشخیص نفوذ و جلوگیری از آن به میدان آمده است. در این مقاله درباره انواع آن صحبت می شود و ایده های پیاده سازی آن و بهترین شیوه های آن بررسی خواهد شد. سپس براساس آنها طرحی برای آینده ارائه خواهد شد.
.1 مقدمه
ایده ی ایمن سازی سیستم های اطلاعاتی، شبکه ای و پایگاه داده ای مدت ها است که با رشد سیستم های کامپیوتری مطرح شده و کارهای زیادی بر روی آن انجام شده است، اما علی رغم پیشرفت ها هنوز نتوانسته اند مانع نفوذ و آسیب رسیدن به منابع شوند. سازمان ها هر روز با تهدیدات مختلفی روبرو می شوند که شکل های مختلفی مانند ویروس، کرم، نفوذ و ... دارند. با توجه به تنوع این تهدیدات راهکار های مختلفی برای مقابله با آنها باید در نظر گرفته شود، و ارائه یک سیستم دفاعی در مقابل این حجم از تنوع حملات پاسخگو نیست.
بنابراین لازم است تا با دسته بندی تهدیدات روش مناسب برای جلوگیری از هرکدام را مشخص کنند. این مفهوم در امنیت با عنوان دفاع در لایه های مختلف مطرح می شود. آن به معنی ایمن سازی سیستم ها و استقرار راهکار های دفاعی در لایه های پشت هم است تا با بیشترین توان ایمنی را برای سیستم ها فراهم کنند. قبل تر firewall و رمزنگاری برای ایمن سازی آمده بودند اما آنها همه ی ناامنی ها را نمی توانند رفع کنند، مثلا آنها در برابر حملات از داخل ناکارآمد هستند.[1]
برای چنین دلایلی سیستم تشخیص نفوذ و جلوگیری از آن - IDS/IPS - به عنوان ناجی آمده است. یک IDPS برنامه ای نرم افزاری یا یک سخت افزار است که ترافیک جریان های داخلی و خارجی را جمع آوری می کند و پس از تشخیص نفوذ با اخطار و log به مسئول شبکه اطلاع می دهد یا به روش هایی مثل ریست کردن session ها یا مسدود کردن IP ها یا حتی خاموش کردن یک VM مانع از نفوذ می شود.[2] محل قرارگیری آن در شبکه مهم است که به فاکتور های مختلفی مثل لایه ی امنیتی، بودجه و محیط بستگی دارد. محل IDS یا در نقاط ورودی/خروجی شبکه یا با خود host ها و یا ترکیبی از هر دو است.[3]
همواره باید تغییر و پیشرفت حملات را در نظر گرفت. اخیرا حملات جدیدی بر ضد آسیب پذیری های مختلف مانند VM Escape، Hacked Interfaces و Account Hijacking اثربخشی IDS/IPS های قدیمی موجود را از بین برده اند.[4] نمونه های موفقی از حملات که بعد وسیعی از ناامنی ایجاد کرده اند را در سال های اخیر مشاهده کرده ایم، برای مثال در سال 2012 نام کاربری و رمزعبور کاربران سرویس Dropbox هک شد، یا در سال 2011 شبکه ی بازی PlayStation شرکت Sony به مدت یکماه از دسترس خارج شد که دومین حمله در تاریخ ایالات متحده است[5] و یا اخیرا باج افزار WannaCry که موجب ایجاد وضع اضطراری در بیمارستان های انگلیس شد.
بنابراین نیاز به کار بیشتر در این زمینه احساس می شود. همچنین در بسیاری از طراحی های قبلی تمرکز امنیتی بر تمام طول عمر محصول نبوده و امکان بازیابی پس از موفق شدن احتمالی حمله در نظر گرفته نشده است. بنابراین در محصول امنیتی به دنبال تحقق شش مورد هستند: یکپارچگی داده ها، محرمانگی منابع، دسترس پذیری، عدم انکار عمل، احراز هویت و کنترل دسترسی. ساخت چنین محصولی که کاملا ایمن باشد و خود خطا یا رخنه امنیتی ایجاد نکند آسان نیست. باید این را در نظر داشت که ساخت یک IDPS کاملا ایمن نشدنی است و به همین دلیل باید تشخیص و اطلاع به موقع برای درمان مشکل همیشه وجود داشته باشد.
البته یک دیدگاه دیگر نیز مطرح است که تحمل نفوذ نام دارد و به معنی ایمن بودن کلی سیستم و حفظ ویژگی های اصلی تر ایمنی حتی با وجود نفوذ است.[6] بررسی ها 3 مشکل اساسی در اغلب IDPS های کنونی را این موارد می دانند: تاخیر که کارایی شبکه را پایین می آورد - این موضوع با رشد روز افزون سرعت شبکه ها حساس تر شده است - - دقت و نداشتن منفی نادرست و مثبت نادرست - - - false negative/false positive انعطاف تا به درستی هدف را مسدود کند.[7]
رفع این مشکلات را در سه جز عملیاتی IDPS ها باید جستجو کرد که عبارتند از: جمع آوری داده ها، تشخیص نفوذ و پاسخ به نفوذ.[8] IDPS ها به سه دسته تقسیم می شوند: HIDPS های بر مبنای میزبان ها، NIDPS های بر مبنای شبکه ها و مدل ترکیبی برای محیط های توزیع شده که یک سیستم ترکیبی به عنوان یک یکپارچه سازی سیستم تحت شبکه و سیستم های تحت میزبان عمل می کند. NIDPS بصورت پویا بسته های شبکه را بازرسی می کند و در صورت پیدا کردن هر فعالیت غیر عادی تمام ترافیک آن سرویس خاص را مسدود می کند و HIDPS منابع و دسترسی برنامه ها را کنترل می کند.
توسعه های اخیر HIDPS شامل مانیتورینگ فراخوانی های سیستم به کرنل سیستم عامل هم می شود. مزیت HIDPS پیاده کردن ساده تر آن بدون نیاز به تحت تاثیر قرار دادن زیرساخت ها است در مقابل NIDPS حملات را در لایه انتقال و سریع شناسایی میکند. یک عیب HIDPS ها این است که آنها یک بخشی از سیستمی که بر روی آن نصب میباشند هستند و اگر به هر دلیلی امنیت یک میزبان خاص تضعیف شود، HIDPS نیز تحت تاثیر قرار می گیرد. موجودیت NIDPS ها به طور کامل جدا از firewall های شبکه هستند و می توانند به عنوان لایه دومی از سیستم های امنیتی در نظر گرفته شوند، البته بخش IPS می تواند با firewall پیاده سازی شود. مثلا Snort را به همراه Iptables استفاده کرد که این به حالت خطی مشهور است.[3,2,7]
قلب یک IDPS تشخیص نفوذ است که برای آن دو تکنیک وجود دارد: بر اساس خلاف قاعده - Anomaly - و بر اساس امضا . - Signature - در تکنیک برمبنای anomaly یک دسته از قواعد/فعالیت ها برای یک کاربر یا سیستم به عنوان رفتار عادی برای IDS پیش تعریف می شوند. این مدل در اصل توسط رد کردن - - deny عمل می کند، هرچیزی که در لیست قواعد نگنجد به عنوان یک رفتار غیرعادی در نظر گرفته می شود و نیازمند توجه است. مزیت آن این است که در برابر بیشتر نفوذ ها تنومند است و حملات بر مبنای پروتکل ها را خوب تشخیص می دهد اما مشکل در تعریف مرز بین رفتار عادی و غیر عادی برای یک سیستم است.
عیب آن میزان اخطار های خطا زیاد است، و اگر یک حق دسترسی برای یک کاربر بخواهد عوض شود نیازمند بازتعریف قواعد/فعالیت ها است. روش های مختلفی از تشخیص برمبنای anomaly استفاده می کنند مانند : مدل آماری، شبکه های عصبی، روش های برمبنای داده کاوی. تکنیک دوم، برمبنای امضا از سوی دیگر یک پایگاه داده آماده از حملات شناخته شده دارد و استوار برمبنای این دانش است.
این تکنیک همچنین به اسم تشخیص سواستفاده - - misuse شناخته می شود و به عنوان یک تکنیک قدرتمند برای حملات شناخته شده و آنهایی که رفتارشان مشابه آنهایی است که قبلا تعریف شده اند در نظر گرفته می شود. اگرچه این تکنیک فاقد توانایی شکار کردن نفوذ های جدید است، حداقل تا زمانیکه پایگاه داده آن به روزرسانی شود. روش هایی که از این تکنیک استفاده می کنند شامل روش های: برمبنای قاعده - - rule، سیستم های خبره - expert - ، الگوریتم ژنتیک، تطابق الگو، انتقال حالت state - - transition و آنالیز امضا است.[3,1]
.2 مطالعات مرتبط
معماری کلی که مبنای پیاده سازی تمام IDPS ها است در شکل 1 نشان داده شده است. بطوریکه ترافیک زیادی وارد واحد تشخیص می شود و ممیزی ها انجام میگیرد، سپس بر اساس تنظیمات پیکربندی و پایگاه داده، اقدام به اخطار و اقدام متقابل بر ضد نفوذ می کند. براساس این معماری کلی، مدل ها و معماری های دیگری ساخته شده اند که به برخی از آنها و ویژگی های جالب آنها که می توانند در طراحی مدلی بهتر کمک کنند اشاره خواهد شد.
بیشترین مدل هایی که استفاده می شوند، مدل های آماری اند. این روش ها سعی در تمایز قائل شدن بین رفتار عادی و غیر عادی براساس برخی پارامتر ها که طی زمان جمع آوری می شوند دارند. برای تشخیص رفتار عادی و غیر عادی مثلا از پهنای باند، سطح استفاده از CPU، زمان session کاربر و غیره استفاده می شود تا پروفایلی برای هر کاربر/فعالیت ساخته شود. اگر مقادیر این پارامتر ها فراتر از آنچه به عنوان عادی در پروفایل آن موجودیت است برود، یک نفوذ شناخته می شود. روش هایی مانند NIDES و Haystack از این مدل ها هستند.
به عنوان یک نمونه، مثلا پروفایل یک VM می گوید که به طور مکرر از سایر VM ها SYN flood دریافت می کند، بنابراین بر اساس آمار می تواند یک حمله از نوع DDOS تشخیص داده شود. فرق روش پروفایل با روش عادی تشخیص بر اساس امضا سرعت است که لازم نیست تمام ترافیک پس زمینه آنالیز شود .[3,5] در این زمینه یک تکنیک هوش مصنوعی سنتی - TAI - نیز وجود دارد که ترافیک فعالیت های شبکه توسط یک طبقه بندی - مجموعه فازی، شبکه عصبی، الگوریتم ژنتیک و artificial - immune system گرفته می شوند، و طبق رفتارشان یک پروفایل ساخته می شود.[1]