تشخیص نفوذ در شبکه‌های کامپیوتری

شناسایی حملات در شبکه‌های کامپیوتری از جنبهٔ اطّلاعات مورد استفاده در مرحلهٔ یادگیری، به دو دستهٔ تشخیص نفوذ و تشخیص ناهنجاری تقسیم می شود.

در تشخیص نفوذ، هم از ترافیک معمول و هم از ترافیک حمله استفاده می‌شود. برای انجام این مهم، روش‌های متنوّعی مورد استفاده قرار گرفته‌اند که در این پژوهش باید به اختصار مرور شده و در نهایت یکی از این روش‌ها برای تشخیص حملات مورد استفاده قرار گیرند.

مقدمه :

سیستمهای تشخیص نفوذ برای کمک به مدیران امنیتی سیستم در جهت کشف نفوذ و حمله به کار گرفته شده اند. هدف یک سیستم تشخیص نفوذ جلوگیری از حمله نیست و تنها کشف و احتماأل شناسایی حملات و تشخیص اشکالات امنیتی در سیستم یا شبکه ی کامپیوتری واعلام ٓان به مدیر سیستم است. عمومأ سیستمهای تشخیص نفوذ در کنار دیوارههای ٓاتش و به صورت مکمل امنیتی برای انها مورد استفاده قرار میگیرند.
امروزه دو روش اصلی برای تشخیص نفوذ به شبکه ها مورد استفاده قرار میگیرد.

1)مبتنی بر رفتار غیر عادی

2)مبتنی بر امضا یا تطبیق الگو

روش اول مبتنی بر تعیین میانگین انواع فعالیتها بر روی شبکه است. مثالً چند بار یک دستور مشخص توسط یک کاربر در یک تماس با یک میزبان(host) اجرا میشود. لذا در صورت بروز یک نفوذ امکان تشخیص ٓان به علت مخالف معمول بودن ٓان وجود دارد. اما بسیاری از حمالت به گونهای هستند که نمیتوان به راحتی وبا کمک این روش انها را تشخیص داد. تکنیکها و معیارهایی که در تشخیص رفتار غیرعادی به کارمیروند، عبارتند از

۱)تشخیص سطح استانه

۲)معیارهای اماری

۳)معیارهای قانونگرا

۴)سایر معیارها

روش دوم که در بیشتر سیستمهای موفق تشخیص نفوذ به کار گرفته میشود، IDS مبتنی بر امضا یا تطبیق الگو است. منظور از امضا مجموعه قواعدی است که یک حمله در حال انجام را تشخیص میدهد. دستگاهی که قرار است نفوذ را تشخیص دهد، با مجموعهای از قواعد بارگذاری می شود. هر امضا دارای اطلاعاتی است که به دستگاه نشان میدهد در داده های در حال عبور باید به دنبال چه فعالیتهایی بگردد. هرگاه ترافیک در حال عبور با الگوی موجود در امضا تطبیق کند، پیغام اخطار تولید میشود و مدیر شبکه را از وقوع یک نفوذ ٓاگاه میکند. در بسیاری از موارد، IDS علاوه بر ٓاگاه کردن مدیر شبکه، اتصال مرتبط با نفوذگر را راه اندازی مجدد میکند و یا با کمک یک فایروال و انجام عملیات کنترل دسترسی با نفوذ بیشتر مقابله میکند. باید در نظر گرفت که استفاده از ترکیبی از دو روش مبتنی بر ٓامار و بر امضا بهترین نتایج را به دست میدهد.

انواع معماری سیستمهای تشخیص نفوذ:

سیستم تشخیص نفوذ مبتنی بر میزبان 1

سیستم تشخیص نفوذ مبتنی بر شبکه 2

سیستم تشخیص نفوذ توزیع شده 3

مجموعه ای از الگوریتم های(راهکارهای) معروف تشخیص نفوذ عبارت است :

۱) روش بایاس

2)درخت تصمیم

کارهای مرتبط

تشخیص و جلوگیری از نفوذ 4 یکی از مکانیزم‌های اصلی در برآوردن امنیت شبکه‌ها و سیستم‌های کامپیوتری مطرح است. سیستم‌های تشخیص نفوذ را به عنوان سیستم‌‌هایی مجزا در نظر نمی‌گیریم بلکه این سیستم‌ها به عنوان زیرسیستم‌هایی از تجهیزات شبکه، سیستم‌های عامل و حتی سرویس‌ها قابل به‌کارگرفته می‌شوند.الگوریتم هایی که در زمینه تشخیص نفوذ انجام شده است عبارت است :

آنالیزکمی:

در این روش قوانین و مشخصات به صورت عددی نمایش داده میشود.تکنیکهای استفاده شده در این روش به صورت یک سری محاسبات در نظر
گرفته میشود که این محاسبات از جمع دو عدد ساده میتواند باشد تا محاسبات پیچیده. نتایج این تکنیک به عنوان پایه ای برای روشهای تشخیص سوءاستفاده و تشخیص ناهنجاری میتواند مورد استفاده قرار گیرد.

  • تشخیص آستانه:
    یکی از قسمت های روش آنالیز کمی تشخیص آستانه میباشد.در این روش بعضی از خصوصیات کاربر و سیستم به صورت اعدادی محاسبه میشود که نشان دهنده سطوح و حد دسترسیهای مختلف میباشد.

  • تشخیص آستانه به روش اکتشافی:
    در این روش نسبت به روش قبل قدم فراتر گذاشته میشود و علاوه بر بدست آوردن یک سطح آستانه سعی میکند که آن را با سطح مورد نظر تطابق دهد. این فرایند باعث افزایش صحت تشخیص میشود، مخصوصا مواقعی که عمل تشخیص بر روی تعداد زیادی از منابع و افراد صورت میگیرد.

  • آنالیز کمی و تقلیل سازی داده ها:
    تقلیل سازی داده ها فرایندی است که در آن اطلاعات اضافی از داده های جمع آوری شده حذف میگردد. این کار باعث کاهش بار منابع ذخیره شده و بهینه کردن فرایند تشخیص نفوذ بر اساس آن اطلاعات میشود.

آنالیز آماری :

این روش درسیستم هایی نظیر NIDES ،IDES و Haystack استفاده شده است.

  • ای دی ای اس و ان ای دی ای اس 5

در این روش برای هر کاربر و هر شئ سیستم، شناسهای ساخته و نگهداری میشود. این شناسه ها به صورت متناوب به روز درآورده میشوند و از اینجا تغییراتی که در هر شناسه رخ داده شده است مشخص میشود.

  • های استک 6 :
    در این روش از یک مکانیزم تشخیص ناهنجاری دو بخشه استفاده میشود. در قسمت اول مشخص میشود که حوزه عملکرد یک کاربر برای نفوذ چه مقدار میباشد و در قسمت دوم مقدار انحراف عملکرد هر کاربر نسبت به حالت عادی مشخص میشود.

آنالیزمبتنی بر قواعد:

روش دیگری که برای سیستمهای تشخیص نفوذ در حالت تشخیص ناهنجاری استفاده میشود روش مبتنی بر قواعد میباشد. فرضهای انجام شده در این روش همانند روش آنالیز آماری میباشد. مهمترین تفاوتی که در این روش وجود دارد این است که سیستم از مجموعهای از قوانین برای نگهداری الگوها استفاده میکند. نمونه سیستمهایی که از این روش استفاده میکنند Wisdom & Sense و TIM میباشند.

آنالیز با استفاده ازشبکه های عصبی :

شبکه های عصبی تکنیک دیگری است که برای تشخیص نفوذ میتوان از آن استفاده کرد. شبکه های عصبی، مجموعهای از واحدهای پردازشی میباشد که توسط ارتباطات وزن داری با یکدیگر ارتباط دارند. دانش سیستم توسط ساختار شبکه ای که مجموعهای از نورون ها و ارتباطات وزن دار میباشد ذخیره شده است. فرایند یادگیری توسط تغییروزن ارتباطات و همچنین اضافه و حذف کردن آنها صورت میگیرد. پردازش در شبکه های عصبی دارای دو مرحله میباشد. در مرحله اول شبکهای بر اساس آموخته های گذشته و اطلاعاتی که رفتار کاربر را نشان میدهد تشکیل میشود. در مرحله دوم شبکه رخدادهای دیگر را می پذیرد و آن را با رفتار گذشته مقایسه میکند وشباهتها و تفاوتها را بدست میآورد. شبکه، غیر عادی بودن رخدادها را با حذف و اضافه کردن ارتباطات و تغییر وزن آنها نشان میدهد.

سیستم امنیت بیولوژیکی :

سیستم امنیت بیولوژیکی توانایی ارزیابی خود را دارند. این مکانیزمی است که در سیستم امنیتی بیولوژیکی وجود دارد. در یک سیستم بیولوژیکی عمل حفاظت با بررسی عاملهای ریزتر نظیر اسیدهای آمینه، پروتئینها و ... انجام میشود. مشابه همین عمل را میتوان در رابطه با سیستم های تشخیص نفوذ بکار برد. در این رابطه، system callها را میتوان به عنوان جزئیترین و اولین منبع اطلاعات در نظر گرفت. روش بررسی به این ترتیب است که ترتیب اجرای system callها به صورت آماری برای کاربردهای مختلف نگهداری میشود. اگر برنامه ای بخواهد اجرا شود ترتیب اجرای system callها با اطلاعات ذخیره شده تطابق داده میشود و در صورت بروز تفاوت قابل توجهی یک هشدار داده میشود.

الگوریتم ژنتیک :

یکی دیگر از روشهای تشخیص نفوذ استفاده از الگوریتم ژنتیک است. از دید الگوریتم ژنتیک فرایند تشخیص نفوذ دربر گیرنده تعریف یک بردار برای اطلاعات رخدادها میباشد، به این معنی که بردار مربوطه نشان میدهد که رخداد انجام شده یک نفوذ است یا خیر.در ابتدا یک بردار فرضی در نظر گرفته میشود و صحت آن بررسی میگردد، بعد از آن یک فرض دیگر انجام میشود، که این فرض بر اساس نتایج تست فرض قبلی میباشد. این عمل به صورت تکراری آنقدر انجام میشود تا راه حل پیدا شود. نقش الگوریتم ژنتیک در این بین ایجاد فرضهای جدید بر اساس نتایج قبلی میباشد. الگوریتم ژنتیک دربرگیرنده دو مرحله است، مرحله اول شامل کدکردن راه حل به صورت رشتهای از بیتها میباشد و مرحله دوم پیدا کردن تابعی برای بررسی رشته بیتی.

درخت تصمیم:

درختهای تصمیم روشی برای نمایش یک سری از قوانین هستند که منتهی به یک رده یا مقدار میشوند.درختهای تصمیمی که برای پیش بینی متغیرهای دستهای استفاده میشوند، درختهای classification نامیده میشوند زیرا نمونه ها را در دسته ها یا رده ها قرار میدهند. درختهای تصمیمی که برای پیش بینی متغیرهای
پیوسته استفاده میشوند درختهای regression نامیده میشوند.

  • الگوریتم های یادگیری درخت تصمیم:
    اغلب الگوریتم های یادگیری درخت تصمیم بر پایه یک عمل جستجوی حریصانه بالا به پائین در فضای درختهای موجود عمل میکنند. در درخت تصمیم(ID3) از یک مقدار آماری به نام بهره اطالعات Information Gain استفاده می شود تا اینکه مشخص کنیم که یک ویژگی تا چه مقدار قادر است..

آزمایش‌ها

در شیوه خطی از یک مدل رگرسیون خطی عمومی گوسی استفاده کردم و در شیوه غیر خطی از یک شبکه عصبی عمیق استفاده کردم.
در این مدل ها از داده های KDD 99 برای آموزش و تست استفاده شده است. داده های آموزشی KDD 99 داده نسبتا بزرگی می باشد ومن زمان مورد نیاز برای اموزش را هم گزارش کرده ام. هدف اصلی از این گزارش این است که نشان دهم در ازای نتیجه بهتر که از مدل غیرخطی به دست می آوریم زمان بسیار بیشتری هم برای آموزش نیاز داریم. این مساله می تواند بسیار مهم باشد چرا که تشخیص نفوذ باید به صورت آن لاین و خیلی سریع (real-time) انجام شود.

مدل رگرسیون خطی عمومی:

مدل رگرسون خطی عمومی سعی می کند که خروجی داده را با این فرض که داده از یک توزیع نمایی (در اینجا توزیع نرمال) می آید، تخمین بزند. در این کار از روش تخمین Maximum Likelihood برای تخمین پارامترها استفاده شده است. اگرفرض کنیم که داده ها (مشاهدات) از یک توزیع نمایی با تابع زیر تبعیت می کنند:

تصویر باز شکاری

در این جا y1,......,yn مشاهدات یا داده های آموزشی مورد استفاده در مدل هستند.
زمان مورد نیاز برای اموزش 2 ثانیه و 605 میلی ثانیه می باشد.

مدل ساخته شده:

تصویر باز شکاری

تصویر باز شکاری

تصویر باز شکاری

بهبود نتایج رگرسیون خطی عمومی:

نتایج اعلام شده در فاز قبلی براساس مدل رگرسیون بدون رگولاریزاسیون بود. در مدل با رگولاریزاسیون یک بخش پنالتی در تابع خطلا تعریف می شود که از زیاد شدن متغیرهای مدل جلوگیری شود.

تصویر باز شکاری

اساسا مدل های با رگولاریزاسیون نتایج بهتری حاصل می کنند. حالا سوال اینجاست که مقدار لامبدا چقدر باید باشد؟ مقدار بهینه لامبدا چیست؟ مقدار بهینه لامبدا مقداریست که خطای طبقه بندی را مینیمم می کند. این دقیقا تغییری است که من در برنامه ایجاد کردم. مدل رگرسیون خطی مدلی بسیار سریع است. اما همین طور که در نتایج قبلی دیدید نسبت به شبکه عصبی که یک مدل غیرخطی است. اما شبکه عصبی زمان درازی برای آموزش لازم دارد و خوب این نقص عمده ای محسوب می شود به خصوص اگر باز به تولید نتایج به صورت آن لاین و سریع دادیم مانند تشخیص نفوذ در شبکه های کامپیوتری. حالا اگر بتوانم مدل رگرسیون را (که بسیار هم سریع است) به گونه ای تغییر بدهم که نتایج بهتری نسبت به شبکه عصبی تولید کند پیشرفت بزرگی نصیبم خواهد شد. در گام اول چندین مقدار لامبدا را امتحان کردم و دیدم با تغییر لامبدا مقدار خطا تغییر می کند پس به این نتیجه رسیدم که یک قطعه کد بنویسم که برای مقادیر مختلف لامبدا مدل رگرسون را بسازد و مقدار خطا را بازگرداند. نتایج گزارش ده در پایین بر اساس لامبدایی است که خطا را مینیمم کرده است.
زمان مورد نیاز برای آموزش ۲ ثانیه و ۵۳۲ میلی ثانیه می باشد.
مدل ساخته شده به صورت زیر می باشد:

تصویر باز شکاری

تصویر باز شکاری

نگاهی به میزان خطا بیندازید. این همان چیزی است که ما می خواستیم. روشی سریع در طبقه بندی با میزان خطایی کمتر از یک مدل غیرخطی.
چی از این بهتر؟ رگرسیون خطی با رگولاریزاسیون لاسو بهتر از شبکه عصبی عمل می کند.

مدل غیرخطی: شبکه های عصبی عمیق

در شبکه های عصبی برای هر سیگنال ورودی یک پاسخ از طریق عملیات غیرخطی پیچیده میدهد. این عملیات به صورت شماتیک به شکل زیر است:

تصویر باز شکاری

و به تفکیک نورون های لایه اول و دوم رو به شکل زیر داریم:

تصویر باز شکاری

که اگر وزن های لایه های اول و دوم را به صورت برداری در نظر بگیریم داریم:

تصویر باز شکاری

خروجی خطی و غیرخطی هر لایه به صورت زیر میباشد.

تصویر باز شکاری

برای پیاده سازی شبکه ابتدا یک کلاس به نام hidden پیاده سازی شد:

تصویر باز شکاری

مقادیر اولیه وزن های لایه های پنهانی به صورت تصادفی از بازه زیر انتخاب شده است:

تصویر باز شکاری

علاوه بر کلاس hidden کلاس mlp هم پیاده سازی شد:

تصویر باز شکاری

نتایج:

تعداد پارامترهای مدل:68623
تعداد نمونه های آموزشی: 46836467
سرعت آموزش: 3370 در هر ثانیه
مدت زمان آموزش: 3 ساعت و 51 دقیقه و 35 ثانیه و 70 میلی ثانیه

میزان اهمیت هر ویژگی:

تصویر باز شکاری

تصویر باز شکاری

همین طور که از نتایج مشخص می شود میزان خطا 100 برابر کمتر شده است. 0.0075 در شبکه عصبی در مقایسه با 0.188 در رگرسیون خطی. ناگفته نماند که زمان مورد نیاز برای آموزش شبکه عصبی هم بسیار فراتر است. در شبکه عصبی نیاز به 3 ساعت و نیم زمان برای آموزش داریم در حالیکه آموزش مدل رگرسیون فقط 2 ثانیه بوده است.

بهبود نتایج در مدل غیرخطی:

چه چیزهایی را می توانم در این شبکه عصبی دستکاری کنم و نتایج را تغییر دهم. این چیزی بود که در ابتدای این فاز به ان فکر می کردم. به فکر بهتر کردن نتایج نبودم. اول می خواستم بدانم چه چیزهایی در ایجاد نتیجه فعلی دخیل بودند و بعد که این متغیرها را پیدا کردم به این فکر کنم که آنها را چگونه تغییر دهم به گونه ای که نتایج را بهبود ببخشند. این لیستی از تغییراتی بود که می توانستم در مدل ایجاد کنم.

روش مقدار دهی اولیه: 7

در روش فعلی مقدارهای اولیه در شبکه عصبی به صورت تصادفی اختیار می شوند. آیا می توان مقداردهی اولیه را سیستماتیک تر و هدفمندتر کرد به گونه ای که هم شبکه سریع تر ساخته شود و هم نتایج بهتر گردد؟

نرخ یادگیری: 8

خیلی مایلم که بعدها روی یا کلگپریتم کار کنم که بتواند در هر گام از بهینه سازی مقدار نرخ یادگیری را به صورت بهینه تعیین کنم. در حال حاضر هیچ ایده ای برای این تغییر ندارم و احساس می کنم باید در زمینه بهینه سازی خطی و غیرخطی مقدار بیشتری مطالعه کنم اگر می خواهم کار جدی در این زمینه انجام دهم.

تعداد لایه های پنهانی: 9

تعداد لایه بیشتر یعنی شبکه عصبی پیچیده تر و یادگیری عمیق تر. می دانم که این منجر به نتیجه بهتر می شود اما متاسفانه زمان بیشتری هم برای آموزش می طلبد. و سوال اینجاست کدام فدای دیگری شود؟ زمان فدای کیفیت طبق بندی شود یا کیفیت طبقه بندی فدای زمان. این را محل کاربرد الگوریتم مشخص می کند. در تشخیص نفوذ در شبکه هر دو مهمند . پس من نمی توانم خیلی روی عمیق تر کردن شبکه مانور بدهم چون زمان آموزش هم برای من مهم است.

پارامترهای رگولاریزاسیون: 10

در مدل خطی نقش این پارامترها را دیدم. در این مدل هم اولین تغییری که ایجاد خواهم کرد همین خواهد بود.

مهندسی ویژگی ها:

کدام یکی از ویژگی ها یا کدام زیرمجموعه از داده های ورودی منجر به نتایج بهتری خواهد شد؟ این هم از موضوعات هیجان برانگیز برای تحقیقات بیشتر در این رابطه است. من یک سری کار کوچک در این زمینه انجام دادم و مجموعه متغیرهای مهم را در داده ورودی پیدا کردم با استفاده از آنتروپی و آنچه سرکلاس به عنوان information gain یادگرفتیم. اما مایلم وقت بیشتری در این زمینه بگذارم و یک روش سیستماتیک برای پیدا کردن مجموعه داده های بهینه برای آموزش مدل پیدا کنم.

پارامترهای رگولاریزاسیون :

برای بهبود نتایج در شبکه عصبی هم من تصمیم گرفتم که از ریگولاریزسیون برای مدل سازی استفاده کنم. در رگولاریزاسیون شبکه عصبی از رگولاریزاسیون l1 و l2 استفاده شد و نتایج بهبود پیدا کرد. کد مورداستفاده برای رگولاریزاسیون در زیر ارایه شده است:

تصویر باز شکاری

مثل فاز قبلی از نزول گرادیان برای مینیمم کردن نرخ خطا (یادگیری) استفاده شده است.تفاوت اصلی در این است که تابع خطا دارای دو قسمت اضافه هم شده است l1 و l2 که در واقع در برابر زیاد شدن تعداد متغیرهای مدل مقاومت می کنند و از overfitting جلوگیری می کنند. کد مورد استفاده برای محاسبه تابع خطای جدید به شکل زیر می باشد:

تصویر باز شکاری

و کد زیر برای پیاده سازی نزول گرادیان و پیدا کردن پارامترهای شبکه استفاده شده است:

تصویر باز شکاری

نتایج جدید:

تعداد پارامترهای مدل: ۶۸۶۲۳
مشخصات مدل ساخته شده از قرار زیر است:

تصویر باز شکاری

تصویر باز شکاری

تصویر باز شکاری

نتایج به صورت کلی:

امان از overfitting که مضر حیات است و مخرب جان!
همین طور که دیده شد در هر دو مدل خطی (رگرسیون عمومی) و غیرخطی (شبکه عصبی) زمانیکه از رگولاریزاسیون استفاده شد نتایج بسیار بهبود بخشده شد. در واقع رگولاریزاسیون یک روش انتخاب مدل می باشد. به گونه ای که متغیرهایی که از پتانسیل پیشگویی برخوردار نیستند دارای ضریب صفر می شوند. این منجر به ایجاد مدل هایی کوجک تر با قدرت عمومیت سازی بیشتر می شود.

کارهای آینده

من خیلی مایل هستم که در گام های بعدی بر روی مهندسی ویژگی ها و بهینه سازی نرخ یادگیری کار کنم. منظورم از مهندسی ویژگی ها یک نوع مکانیسم انتخاب ویژگی برای مدل است . در حال حاضر من از همه داده ورودی به عنوان ورودی های مدل استفاده کردم . مطمین هستم که همه این داده ها دارای توانایی یکسان برای پیشگویی کلاس ها نمی باشند. سوال این جاست کدام زیرمجموعه از داده ها می تواند کیفیت طبقه بندی را افزایش دهد؟ یک ایده این است که زیرمجموعه های مختلفی از داده ورودی گرفته شود و مدل با آموزش داده شود و سپس مجموعه ای که به بهترین نتیجه منتهی می شود (کم ترین خطا) به عنوان بهترین مجموعه از ویژگی ها انتخاب شود. برای بهینه سازی نرخ یادگیری نیاز به معلومات بیشتری در بهینه سازی دارم. شاید درس بهینه سازی که در دانشکده صنایع و مکانیک ارایه می شود را برای همین منظور بردارم تا با اعتماد به نفس بیشتری به حل این مساله فکر کنم.

  • Kabiri, Peyman, and Ali A. Ghorbani. "Research on Intrusion Detection and Response: A Survey." IJ Network Security 1.2 (2005): 84-102.

  • Paul Innella and Oba McMillan, “An Introduction to Intrusion Detection Systems”, .2001

  • Axelsson, S. (1999). Research in intrusion-detection systems: A survey. Technical report TR 98-17. Göteborg, Sweden: Department of Computer Engineering, Chalmers University of Technology.

  • Barbara, D., Couto, J., Jajodia, S., & Wu, N. (2001). ADAM: A testbed for exploring the use of data mining in intrusion detection. ACM SIGMOD Record, 30 (4), 15--24.

  • Application of Data Mining to Network Intrusion Detection: Classifier Selection Model/Huy Anh Nguyen and Deokjai Choi

  • ASSAREH, E., M. A. BEHRANG, M. R. ASSARI, and A. GHANBARZADEH (2010); “Application of Pso
    (Particle Swarm Optimization) and Ga (Genetic Algorithm) Techniques on Demand Estimation of Oil in
    Iran”; Energy, 35, 5223-5229.

  • Bianco, V., Manca, O. and S. Nardini (2009); “Electricity consumption forecasting in Italy using linear
    regression models”; Energy, 34: 1413-1421.

  • McCulloch WS and W. Pitts (1943); “A logic calculus of the ideas immanent in nervous activity”; Bull of
    Math Biophys, 5: 115-133.

  • Pindyck, R.S.(1979); “The structure of world energy demand”; The MIT Press Cambridge ,
    Massachusetts.

  • O. Nelles, A. Fink, R. Isermann, Local Linear Model Trees (LOLIMOT) toolbox for
    Nonlinear system identification, IFAC, 2000.

  • F. Anifowose and A. Abdulraheem, “Fuzzy Logic-Driven and SVM-Driven Hybrid Computational Intelligence Models Applied to Oil and Gas Reservoir Characterization,” Journal of Natural Gas Science and Engineering, Volume 3, Issue 3, July 2011, Pages 505-517.

  • Y. Xing, X. Wu, and Z. Xu, “Multiclass Least Squares Auto-Correlation Wavelet Support Vector Machines”, International Journal of Innovative Computing, Information and Control Express Letters 2 (4), 2008, pp. 345-350.

  • C. Sampada, S. Khusbu, D. Neha, M. Sanghamitra, A. Abraham, and S. Sugata, "Adaptive Neuro-Fuzzy Intrusion Detection Systems", in Proceedings: International Conference on Information Technology: Coding and Computing (ITCC’04), DOI: 0-7695-2108-8/04, 2004.

  • H. Jun, “Computational Intelligence”, Research Interests, http://www.cs.bham.ac.uk/~jxh/hejunrs.html, 2008, Accessed June 25, 2011.

  • C. Sampada, S. Khusbu, D. Neha, M. Sanghamitra, A. Abraham, and S. Sugata, "Adaptive Neuro-Fuzzy Intrusion Detection Systems", in Proceedings: International Conference on Information Technology: Coding and Computing (ITCC’04), DOI: 0-7695-2108-8/04, 2004.

  • J. Taboada, J.M. Matías, C. Ordóñez, and P.J. García, “Creating a Quality Map of a Slate Deposit using Support Vector Machines”, Elsevier Journal of Computational and Applied Mathematics 20 (4), 2007, pp. 84-94.

  • C.H. Lee, and Y. C. Lin, “Hybrid Learning Algorithm for Neuro-Fuzzy Systems”, in Proceedings: Proceedings. 2004 IEEE International Conference on Fuzzy Systems, 2004, pp. 691-696.

  • N. Cristianini, and J. Shawe-Taylor, “An Introduction to Support Vector Machines and other Kernel-Based Learning Methods”, 1st Edition. Cambridge University Press, UK. 2000.

  • T. Helmy, F. Anifowose and K. Faisal, “Hybrid Computational Models for the Characterization of Oil and Gas Reservoirs,” Elsevier International Journal of Expert Systems with Applications, vol. 37, 2010, pp. 5353-5363.

  • N. Cristianini, and J. Shawe-Taylor, “An Introduction to Support Vector Machines and other Kernel-Based Learning Methods” 1st Edition. Cambridge University Press, UK. 2000.

  • C. Sampada, S. Khusbu, D. Neha, M. Sanghamitra, A. Abraham, and S. Sugata, "Adaptive Neuro-Fuzzy Intrusion Detection Systems", in Proceedings: International Conference on Information Technology: Coding and Computing (ITCC’04), DOI: 0-7695-2108-8/04, 2004.

  • J. Eduardo, and M.S. Brandão, “A New Approach for IDS Composition”, in Proceedings: IEEE International Conference on Communications, 2006, pp. 2195-2200.

  • http://www.security.cse.msstate.edu/docs/Publications/wli/DOECSG2004.pdf

  • http://www.dtic.mil/dtic/tr/fulltext/u2/a483571.pdf

  • http://seclab.cs.sunysb.edu/sekar/papers/sunlth.doc

  • http://www.jameskelly.net/mcs/thesis.pdf

  • http://www.ensani.ir/storage/Files/20140311150409-9448-87.pdf

  • https://www.sans.org/reading-room/whitepapers/detection/algorithm-based-approaches-intrusion-detection-response-1413

پیوندهای مفید


  1. HIDS

  2. NIDS

  3. DIDS

  4. Intrusion Detection and Prevention

  5. IDES/NIDES

  6. Haystack

  7. Nonlinearity

  8. Weight initialization

  9. Learning rate

  10. Number of hidden units

محسن ایمانی

شما در مقدمه متن خود تعریف، کاربرد و هدف و همچنین دسته‌بندی انواع و روش‌های سیستم‌های تشخیص نفوذ را به خوبی معرفی نمودید. اما قرار بود در فاز اول پروژه یکی از کارهای مرتبط را هم بررسی کنید که این کار را انجام نداده‌اید.
همچنین اگر تعریف و یا دسته‌بندی خاصی را از یکی از مراجع خود در متن پروژه می‌آورید، بلافاصله آن را به مقاله‌ای که از آن برداشت کرده‌اید را ارجاع دهید تا کاربر در صورت نیاز بتواند برای دیدن جزئیات بیشتر به مرجع اصلی رجوع نماید.
بهتر است اگر می‌خواهید معادل انگلیسی یا مخفف یک اصطلاح را بیاورید، آن را به جای این که روبرویش داخل پرانتز بنویسید، در پانویس قرار دهید.

رد شده

صفحی پروژه خوب نوشته شده
ولی من لینک کدی مشاهده نمیکنم

تایید شده

از ان جایی که اسم پروژه برای من نامفهوم بود ولی در قسمت مقدمه به خوبی با مفهوم ان اشنا شدم و مقدمه ی کوتاه و مفیدی داشت.

در قسمت کاراهای مرتبط انواع مختلف تشخیص نفوذ بیان شده و به خوبی مفهوم آن ها را بیان کرده است.

شما از الگوریتم ژنتیک استفاده کرده اید که می توانید بهینه تر پیاده سازیش کنید ولی خوب چون در این فاز هدف پیاده سازی اولیه بوده کار شما خوب بود

و توصیه میکنم از الگوریتم های دیگر نیز استفاده کرده و درقسمت ازمایش مقایسه کنید که در شرایط مختلف کدام الگوریتم نتیجه بهتری به ما میدهد.

و این مقاله را هم پیشنهاد میکنم بخوانید:

  • ارائه ي يك روش جديد كشف نفوذ به منظور تشخيص رفتارهاي غيرنرمال در شبكه هاي كامپيوتري با استفاده از تكنيكهاي داده كاوي

احسان نجف زاده اصل-جابر کریم پور- مجید مقدم دیزج هریک

موفق باشید.

محسن ایمانی

شما در این فاز معرفی و بررسی مناسبی از کارهای مرتبط در حوزه مسئله داشته اید.ضمنا این که به طور دقیق کارهای آینده را هم مشخص نموده‌اید راهبرد بسیار خوبی است.

اما نقطه ضعف بزرگی که باعث از دست رفتن یک امتیاز شما شده است این است که شما در این فاز هیچ توجهی به نکات مطرح شده در فاز قبلی نکردید و نقاط ضعف مطرح شده در فاز قبل اغلب همچنان در متن شما همچنان مشاهده می‌شود.

نکته دیگر این که شما یک پیاده‌سازی اولیه داشته‌اید اما در این پیاده‌سازی عملا کار خاصی انجام نداده‌اید. شاید لازم بود حداقل کمی در مورد این که در این پیاده‌سازی قصد داشتید چه روشی را پیش ببرید توضیح می‌دادید.

همچنین بهتر است کمی در مورد مجموعه داده آموزشی که می‌خواهید از آن استفاده کنید توضیح داده و قالب و اطلاعات موجود در آن را بررسی کنید.

همچنین باید روش‌های ارزیابی در این مسئله را هم بررسی نموده و روش‌هایی که خودتان پیاده‌سازی می‌کنید را هم به وسیله‌ی یکی از آن‌ها بررسی نماییید.

رد شده

با سلام و خسته نباشید
توضیح انواع الگوریتم های موجود برای حل این مسئله خیلی خوب بود. قرار دادن عکس در مستند به درک بهتر مفاهیم کمک زیادی می کند و عکس های شما از این جهت مفید بود.
در کل پروژه به خوبی کار شده است.
موفق باشید

تایید شده

در تمامی بخش ها توضیحات کامل و بدون ابهامی داده شده است.
برای بخش کد پیاده سازی شده گرچه توضیحات در خود کد به خوبی داده شده ولی پیشنهاد می کنم که برای آن یک document هم بنویسید.

تایید شده

به نظر می رسد موضوع پروژه ی شما سنگین و پیچیده می باشد ، با این حال نتایج خوب و قابل قبولی در پیاده سازی خود داشته اید و طرز بیان نتایج مانند مقالات همراه با جدول به صورت کامل است ، الگوریتم های متفاوتی بیان کرده اید و تسلط خوبی روی پروژه دارید ، پیشنهادی که دارم اینکه اگر IDS NIDS , ... مخفف شده ی عبارات انگلیسی هستند در پاورقی کامل آن را ذکر کنید.
موفق باشید.

رد شده

در کل خوب است و ارائه تقریبا جامع و کاملی از آزمایش ارائه کرده است اما مفاهیم علمی توضیح داده نشده است

محسن ایمانی

کار شما در این فاز مناسب بود اما چند نکته باید عرض شود که در فاز بعدی آن‌ها را در نظر داشته باشید:

  • لازم است حتما کدی را که به عنوان پیاده‌سازی ارائه می‌دهید همراه با مستندات گویا و شفاف باشد که بتوان بخش‌های مختلف کد و نحوه عملکرد آن را بازبینی کرد. همچنین شما باید چارچوب و راهنمایی را ایجاد نمایید که هر کاربر و خواننده‌ای که مایل به اجرای مجدد کد شما روی داده و دریافت خروجی بود، با طی کردن یک مسیر مشخص و نه چندان پیچیده بتواند سامانه شما را یک بار اجرا نموده و نتایج را روی داده ها ببیند. لطفا این دو ویژگی مهم را حتما برای فاز آینده در نظر بگیرید.

  • توضیحات شما در مورد شبکه عصبی مورد استفاده در پیاده‌سازی بسیار کم و نا کافی بود. همچنین در کد پیاده‌سازی شما هم چندان شبکه عصبی مورد استفاده مشخص نبود و این که چگونه و با استفاده از چه ابزارهایی شبکه عصبی را درست کرده و آموزش داده‌اید. این بخش هم در پژوهش‌نامه و هم در کد پیاده‌سازی نیازمند مستندات و توضیحات بیشتر و گویاتر می‌باشد. در واقع کد پیاده‌سازی شما نه به اندازه کافی گویا بود و نه چارچوبی برای اجرای آزمایشی و دریافت خروجی از آن در نظر گرفته بودید.

لطفا در فاز آینده این مشکلات را در نظر گرفته و برطرف نمایید.

رد شده
تایید شده

پروژه خوب و با کیفیت است. این فاز بهتر از فازهای قبلی است. چون خیلی از نقایص را برطرف کرده است.
نتایج بخوبی بیان شده اند و نمره کامل مزد زحمات این پروژه است.
موفق باشید

تایید شده

با عرض سلام و خسته نباشید خدمت شما دوست عزیز.
در مورد پروژتون چند نکته به ذهنم می رسه که خدمتتون عرض می کنم:
1-بهتر می بود که در هر بخش که توضیحی داده شده،لینک منابع را قرار می دادید تا خواننده برای اطلاعات بیشتر به آن مراجعه کند.
2-بهتر می بود در مورد تکنیکها و معیارهایی که در تشخیص رفتار غیرعادی به کارمیروند یعنی :۱)تشخیص سطح استانه۲)معیارهای اماری۳)معیارهای قانونگرا و....توضیحات مختصری جهت آشنایی خواننده داده می شد.
3-بهتر می بود که در قسمت readme پروژه توضیح مختصری در باره ی نحوه ی اجرای پروژه داده می شد.

رد شده

با سلام.
من دوبار تلاش کردم ولی نفهمیدم. این حتما به خاطر عدم آشنایی من با این حوزه بود. لطفا نظر بنده را راجع به این پروژه رد بفرمایید. ولی نکات زیر به نظرم می‌رسد:

  • به جای چندین مخزن گیت برای نگه‌داری کدهای فازهای مختلف کدتان،‌ می‌توانستید از یک مخزن و branch های مختلف استفاده کنید. اینطوری تفاوت کد در فازهای مختلف کارتان مشخص ‌می‌شد.

*‌ از مارک‌دان بهتر استفاده کنید تا خواننده راحت‌تر بتواند متن‌تان را بخواند.

موفق باشید:)

تایید شده

به نام حق
در ابتدای پروژه از کلمات تخصصی استفاده شده است و هیچ ارجاع و یا توضیحی داده نشده سات. واژگان حمله ! نفوذ و ... در این بستر معانی خاص دارند.
اگر از نمودار جهت توصیفات اماری استفاده میشد خیلی بهتر است.
استفاده از واژه یا "یا کلگپریتم" نامفهوم بوده است! نوشتن فارسی لغات انگلیسی در مقاله علمی خوب نیست شما این کار را در خیلی از قسمت های مقاله انجام داده اید
مثالی دیگر: "ای دی ای اس و ان ای دی ای اس" ! هرچند که وجود پاورقی این مشکل را بخوبی حل کرده است.
صرف نظر از اشکالان نگارشی و متنی، محتوای پروژه از نظر علمی بسیار خوب است و باید از شما که با این علاقه به این مبحث پردخته اید تشکر ویژه ای کرد. این که میخواهید یک درس از دانشکده های دیگر برای بهبود نتایج خود استفاده کنید شایان تقدیر است.
تکته ی منفی در مورد نحوه ارائه به نظرم این است که پروژه خیلی سخت توضیح داده شده است و اصلا برای کسی که در این زمینه تجربه ای ندارد ملموس نیست ! بخش های ابتدایی کار زیاد جالب نیست و انگیزه لازم به مخاطب القا نمی شود.
مقالات ارجاع شده بسیار زیاد است !! آیا واقعا شما از تمام این ارجاعات استفاده کرده اید؟ این در حالیاست که شما هیچ ارجاعی در متن به این مقالات ندارید
ساختار بندی مقاله زیاد خوب نیست. هیچ وقت در مقدمه به بیان "روش" حل نمیپردازند ! در مقدمه باید آشنای کلی با مسئله بیان شود.
هدر بندی اصلا دقیق نیست . بنابراین تشخیص این که هر مطلب زیر مجموعه ی کدام بخش است بسیار سخت است.
در پایان اگر کمی صریحانه عرایضم را نوشتم عذر خواهی می کنم.
امیدوارم موفق باشید
با تشکر.

تایید شده

سلام و خسته نباشید
در کل مشخص بود که برای پروژه تان وقت لازم را گذاشته اید و در هر فاز توضیحات جامعی ارائه کرده بودید اما توضیحات برای مخاطبی که هیچ چیز از پروژه تان نمی داند مبهم بود ،که بنظرم برای رفع این مشکل می توانستید از مثالها و لینک های مرتبط استفاده کنید. مثلا در همان ابتدا برای تعریف پروژه بهتر بود خود مفهوم تشخیص نفوذ را بیشتر توضیح می دادید. و با مثال کاربرد آن را توضیح می دادید.
و یا برای مفاهیمی چون ترافیک معمول و ترافیک حمله توضیح بیشتری می دادید. و یا الگوریتم ها و مدلهایی که معرفی کرده بودید را به صفحات مرتبطشان لینک می کردید. مثلا در بخش آنالیز آمار ی سیستم های NIDES ،IDES و Haystack احتیاج به توضیح بیشتر داشتند.

بهتر بود ساختار داده های KDD 99 را که از آن استفاده کرده بودید را شرح می دادید.
بهتر بود عکس مدل های ساخته شده ای که گذاشته بودبد را زیر آن به طور دقییق توضیح می دادید.

در بخش بهبود نتایج اینکه ابتدا عوامل دخیل را ذکر کرده بودید و هر یک را تحلیل کرده بودید و سپس اقدام به بهبود کده بودید روش بسیار خوبی بود . و کارهای آینده را هم به خوبی توضیح داده بودید.

از مراجع زیادی در این زمینه بهره برده بودید که از نقاط قوت کار محسوب میشد
موفق باشید

سعید عادل مهربان

به نام خدا.
کار خوبی انجام دادید و تا حد قابل قبولی در قسمت کارهای مرتبط انواع مختلف روش‌ها رو پوشش دادید.
در خصوص آزمایش‌هایی که انجام دادید اوّل بهتر بود ذکر می‌کردید که شیوه‌های خطی و غیرخطی چی هستند؟ یا بهتر بود در قسمت کارهای مرتبط از منظر خطی و غیرخطی بودن هم کارها رو دسته‌بندی می‌کردید. (هر چند این دسته‌بندی اصلاً در ادبیات تشخیص نفوذ مطرح نیست)
نکتهٔ دیگه اینکه اشکالی نداره زمان آموزش سیستم زیاد باشه. سیستم‌های تشخیص نفوذ همون طور که اشاره کردید باید به صورت برخط به کار گرفته بشن، ولی مرحلهٔ آموزش برخط نیست! مرحلهٔ تست (و به صورت کلی به‌کارگیری سیستم) هست که برخط ارزیابی می‌شه.
در خصوص تشریح روش خطی توضیحات شما بسیار کم هستند. انتظار می‌ره روش‌هایی که پیاده‌سازی می‌شن (در اصل روشی که در مقاله ارائه شده) به خوبی توضیح داده بشه. در خصوص شبکهٔ عصبی توضیحات مناسب بودند امّا شبکه‌ای که شرح داده شده به نظر یک شبکهٔ عصبی چندلایهٔ معمولی است. لازم بود تفاوت شبکهٔ عصبی عمیق با شبکهٔ عصبی معمولی ذکر بشه.
در خصوص نتایجی که گزارش دادید هم باید از معیارهای متعارف تشخیص نفوذ مثل نرخ تشخیص، نرخ هشدار غلط و مواردی از این دست استفاده می‌کردید. معیارهایی که استفاده می‌کنید باید به صورت دقیق توضیح بدید یا به مراجع ارجاع بدید. همین طور نحوهٔ انجام آزمایش‌ها نیز مشخص نشده. چه مقدار از داده‌ها برای آموزش و چه مقدار برای تست استفاده شدن؟ چند بار آزمایش‌ها رو تکرار کردید؟
در خصوص پارامترهای دخیل در نتایج توضیحات جالب و مناسب بودند. اما نیازی به ارائهٔ کد در مستند نبود.
در کل کار خوبی انجام دادید به نظر بنده.