بخشی از مقاله

*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***

تشخیص نفوذ هوشمند با استفاده از شبکه عصبی مبتنی بر الگوریتم GMDH

چکیده

با پیشرفت روزافزون فناوري اطلاعات و ارتباطات و گسترش چشمگیر استفاده از شبکههاي کامپیوتري، حملات و نفوذهایی در اشکال مختلف به شبکهها صورت میگیرد، از اینرو سیستمهاي تشخص نفوذ (IDS)، به عنوان یک جزء حیاتی در هر شبکه متصل به اینترنت در دنیاي امروزي محسوب میشود. سیستمهاي تشخیص نفوذ جهت تأمین امنیت شبکههاي به هم پیوسته، روش مؤثري براي شناسایی اشکال مختلف حملات نفوذي در شبکهها به شمار میآیند. کارایی این سیستمها وابسته به نرخ تشخیص نفوذي با دقت بالا و کمترین نرخ اعلان خطا است. شبکههاي عصبی به عنوان یکی از روشهاي معمول در سیستمهاي تشخیص نفوذ مطرح هستند. یکی از مشکلاتی که شبکههاي عصبی از آن رنج میبرند، یافتن راه حل بهینه محلی و همچنین پیشداوري محقق در مورد ساختار مدل با توجه به فروض اولیه است، که به شبکه تحمیل میشود. از طرفی روشهاي تکاملی مانند الگوریتم ژنتیک، کاربرد وسیعی در مراحل مختلف طراحی شبکههاي عصبی دارند. چنانکه داراي قابلیتهاي منحصربه فردي در یافتن مقادیر بهینه و امکان جستوجو در فضاهاي غیر قابل پیشبینی هستند. به طوریکه استفاده از الگوریتم ژنتیک جهت طراحی شکل شبکه عصبی و تعیین ضرایب آن، از جمله نوآوريهاي این پژوهش به شمار میآید. هدف از پژوهش حاضر اینست تا ضمن مطالعه روشهاي تشخیص نفوذ و همچنین شبکه هاي عصبی، روشی کارآمد به منظور افزایش دقت و عملکرد سیستم با استفاده از شبکه عصبی GMDH1 که طراحی ساختار آن با استفاده از الگوریتم ژنتیک

صورت گرفته، ارائه شود. آزمایش و ارزیابی مدل ارائه شده بر روي مجموعه دادههاي NSL-KDD با استفاده از نسخه اصلاح شده KDD-CUP99، انجام گردید. نتایج تجربی حاکی از آن است که مدل پیشنهادي عملکرد قابل توجهی در افزایش نرخ تشخیص
حملات و کاهش نرخ اعلان خطا داشته و قادر به ارائه تشخیصهاي دقیقتري نسبت به مدلهاي پایه خود میباشد.

کلمات کلیدي: امنیت شبکه، تشخیص نفوذ، شبکه عصبی، الگوریتم GMDH، IDS


-1 مقدمه


امروزه بیشتر زیرساختهاي کلیدي مانند مخابرات، حمل و نقل، تجارت و بانکداري توسط شبکههاي کامپیوتري مدیریت میشوند، بنابراین امنیت این سیستمها در مقابل حملات برنامهریزي شده از اهمیت بالایی برخوردار است. بیشتر این حملات از خطاهاي نرمافزاري و خلاءهاي امنیتی سیستم هدف، سوءاستفاده میکنند. از آنجا که از بین بردن کامل خطاهاي نرم افزاري امري غیرممکن است، تمامی نرم افزارها داراي خلاءهاي امنیتی میباشند که به آن آسیبپذیري نرم افزار اطلاق میشود.

1

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

معانی و مفاهیم متعددي در منابع مختلف براي نفوذ٢، ارائه شده است. در دنیاي کامپیوتر بر سر معنی یا معانی نفوذ بحثهاي زیادي وجود دارد. بسیاري نفوذ را در برگیرنده حملات ناموفق میدانند، در حالی که سایرین، تعاریف مجزایی براي نفوذ و حمله قائل هستند. میتوان نفوذ را به این صورت تعریف کرد :[1] "مجموعهاي فعال از رخدادهاي مرتبط با یکدیگر که هدف آنها، دسترسی غیر مجاز به اطلاعات، تغییر در اطلاعات و یا صدمه زدن به سیستم به نحوي است که سیستم را غیر قابل استفاده نماید. این تعریف هم شامل تلاشهاي موفق و هم تلاشهاي ناموفق است".

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

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


-2 روشهاي تشخیص نفوذ

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

 

2

ایستا، خوشهبندي و یادگیري استفاده میکنند. با این حال این الگوریتمهامعمولاً داراي نرخ بالاي نمونههاي مثبت غلط بوده و یا دقت تشخیص آنها پایین میباشد.
یکی از مشکلات اساسی در سیستمهاي تشخیص نفوذ پیچدهتر شدن آنها توسط تکنیکهاي مبهمسازي است که در این صورت مقابله با بدافزارها نیازمند تشخیص و تمایز میان بدافزار و نرمافزارهاي قانونی است شکل 1 یک نماي کلی از تکنیکهاي تشخیص نفوذ را به تصویر میکشد. به طور کلی تکنیکهاي رایج تشخیص بدافزار به دو دسته اصلی تقسیم میشوند :[3]
• تکنیکهاي تشخیص براساس ناهنجاري3 (تشخیص بر اساس پروفایل(4
• تکنیکهاي تشخیص براساس امضا5 (تشخیص بر اساس سوءاستفاده6، تشخیص بر اساس قانون7 و تشخیص با تطبیق الگو(8

شکل 1 تکنیکهاي رایج تشخیص نفوذ

3

-1-2 روشهاي تشخیص بر اساس ناهنجاري


تشخیص بر اساس ناهنجاري از دانش خود در خصوص رفتارهاي عادي یک برنامه استفاده کرده و در مورد مخرب بودن رفتارهاي برنامه تحت بررسی، تصمیم میگیرد .[4] تشخیص براساس ناهنجاريمعمولاً در دو فاز آموزش (یادگیري) و نظارت
(تشخیص) رخ میدهد. طی فاز یادگیري تشخیصدهنده براي فراگیري رفتارهاي عادي تلاش میکند. همچنین در این فاز تشخیصدهنده باید رفتارهاي میزبان، فرایندهاي تحت بررسی٩ (PUI) و ترکیبی از این دو را نیز بیاموزد. مزیت کلیدي تشخیص بر اساس ناهنجاري، توان آن در تشخیص حملات روز صفر١٠ (حملاتکاملاً جدید) است. در همین گزارش سوء استفاده روز صفر١١ توصیف میشود. مشابه سوء استفاده روز صفر، حملات روز صفر حملاتی هستند که تا پیش از این براي تشخیص دهنده بدافزار ناشناخته بودهاند. دو محدودیت اساسی این تکنیک عبارتند از:
• نرخ بالاي هشدارهاي نادرست

• پیچیدگی در تعیین ویژگیهایی که باید در فاز آموزش، فراگرفته شوند

روش تشخیص نابهنجاري، سعی در مدل کردن رفتار عادي سیستم دارد. هر اتفاقی که از این مدل تخلف کند، رفتاري مشکوك در نظر گرفته می شود. براي مثال، در صورتی که وب سروري (که به صورت معمول انفعالی١٢ است) تلاش می کند تا به آدرس هاي زیادي دسترسی پیدا کند، به احتمال زیاد به کرم آلوده شده است.

-2-2 روشهاي تشخیص بر اساس امضاء


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

تشخیص بر اساس امضاء، به عنوان مکمل تشخیص ناهنجاري، در نظر گرفته میشود. اساس این روش به این صورت است که الگوهاي حملههاي شناخته شده با کسب دانش در مورد آنها بصورت موثرتر و کاراتري قابل تشخیص هستند. بنابراین سیستمهاي تشخیص سوءاستفاده به دنبال تعریف الگوهاي حملات یا آسیبپذیريهاي شناخته شده هستند، به این ترتیب این سیستم ها قادر به شناسایی فعالیتهاي غیرمجازي هستند که سیستمهاي تشخیص ناهنجاري، معمولا آنها را نادیده میگیرند، هر چند این فعالیتها بسیار بیاهمیت باشند .[5]

مشکل اصلی در روشهاي مبتنی بر امضا، این است که متخصصان ضد بدافزار باید منتظر آسیبرسانی بدافزارهاي ناشناخته بمانند تا پس از آن، از روي توالی بایتهاي موجود در بدافزار اجرا شده، امضا را تعریف کرده و سپس براي مقابله با آن راه حلی بیابند. همچنین اگر از تکنیکهاي مبهمسازي و بستهبندي که در [6] به آن اشاره شده است، در ایجاد بدافزار استفاده شده باشد، آنگاه روشهاي مبتنی بر امضا قادر به شناسایی بدافزار نخواهند بود. در واقع مشکل اصلی این روش این است که چگونه الگوهاي شناخته شده حملات را بیان کرد، زیرا الگوریتم هاي تشخیص، معمولا مکانیزمهاي ارائه شده را مستقیما دنبال میکنند. در جدول1 به اختصار به مزایا و معایب دو نوع تشخیص یاد شده اشاره میشود.


4

جدول 1 مزایا و معایب تشخیص بر اساس ناهنجاري و امضا
تشخیص مزایا معایب

بر اساس زمان اسکن بسیار پایین ناتوان در تشخیص بدافزارهاي ناشناخته
ناهنجاري میزان پایین نرخ مثبت غلط توانایی اندك در شناسایی موارد مبهم و گیج کننده

براساس امضا ارائه بهترین نتایج در تشخیص قادر به تشخیص بسیاري از ویروس هاي بسته بندي شده
بدافزارهاي چندریختی نیست


-3 پیشینه پژوهش

در حالت کلی براي مسأله تشخیص نفوذ هوشمند محققان در [7] براي هر الگو، از تکنیک داده کاوي، نرو فازي و ماشین بردار پشتیبان استفاده شده است و داري چهار مرحله است ابتدا براي مجموعه آموزشی از خوشه بندي k-means استفاده شده است،

سپس از مجموعه اموزشی به دست امده در مرحله اول براي اموزش نرو فازي استفاده شده. در مرحله بعد، از ان یک بردار براي کلاس بندي SVM ایجاد شده است و در پایان SVM براي تشخیص نفوذ استفاده می شود.
روش دیگري پیشنهاد گردیده است [8] که از ترکیب دو مرحله تشکیل شده است: ابتدا فاز کلاس بندي که براي کلاس بندي مجموعه داده اموزشی برروي جریان شبکه به کار برده می شود و فاز خوشه بندي که براي کلاس بندي الگوي ورودي جدید استفاده می شود که محتواي جریان شبکه (همان الگوها) شناخته شده یا ناشناخته است. این روش از دو مرحله ایجاد شده است مرحله اول براي کلاس بندي داده هاي شناخته شده شبکه به کار می رود که نام ان را (CLA) گذاشته .و مرحله بعدي براي خوشه بندي الکوهاي جدید ورودي که می تواند داده هاي شناخته شده یا ناشناخته باشد به کار میرود که نام انرا (CLU)
گذاشته است.

یکی دیگر از روش هاي انتخاب الگو، نزدیک ترین همسایه ویرایش شده (ENN) می باشد .[10] این روش بر حذف الگوهاي نویزي در مجموعه آموزشی تاکید دارد. ENN یک الگو در T را نادیده می گیرد، هنگامی که کلاس آن با بزرگ

ترین کلاس حاصل از k نزدیک ترین همسایه اش متفاوت باشد. یک توسعه از این الگوریتم، نزدیک ترین همسایه ویرایش شده تکراري (RENN) می باشد [11]؛ به طوري که به صورت تکراري ENN را تا زمانی که تمام الگوهاي S کلاس اشان

با بزرگ ترین کلاس حاصل از k نزدیک ترین همسایه شان برابر شود، اعمال می کند. گونه دیگر ENN، روش تمام k نزدیک ترین همسایه (All k-NN) می باشد. که بدین صورت عمل می کند: براي i=l…k الگوهایی که توسط k نزدیک

ترین همسایه شان به درستی طبقه بندي نشده اند را علامت گذاري می کند. هنگامی که حلقه تمام می شود، تمام الگوهاي علامت گذاري شده حذف می شوند .[12]

مرجع [10] روشهاي IB2 و IB3 که روش هایی افزایشی هستند را معرفی کرده است. IB2 الگوهایی که توسط 1-NN به درستی طبقه بندي نشده اند را انتخاب می کند (مانند (CNN؛ IB3 توسعه اي از IB2 می باشد که طی آن از یک رکورد

طبقه بندي به منظور تشخیص الگوهایی که باید حفظ شوند استفاده می شود. روش هاي دیگر مبتنی بر k-NN، روش هاي ارائه شده می باشد .[13] آن ها پنج روش را ارائه کرده اند: DROP5 , … , DROPI؛ این روش ها بر مبناي مفهوم وابستگی هستند. وابسته هاي الگو p، الگوهایی هستند که p یکی از k نزدیک ترین همسایه آن ها باشد. DROPI الگوي p

از T را حذف می کند اگر وابستههاي p در S بدون p به درستی طبقه بندي شده باشند؛ به واسطه این قانون، از آنجایی که وابسته هاي یک الگوي نویزي بدون آن الگو می توانند به درستی طبقه بندي شوند، DROPI الگوهاي نویزي را حذف می
کند. اما در DROPI هنگامی که ابتدا همسایگان یک الگوي نویزي حذف شوند، آنگاه الگوي نویزي حذف نمی شود. به منظور حل این مشکل در DROP2 وابسته هاي یک الگو در کل مجموعه آموزشی جستجو می شوند.

روش دیگري که بر اساس وابستگی عمل می کند، الگوریتم فیلترینگ موردي تکرار شونده (ICF)13 نام دارد .[14] این
الگوریتم بر اساس مجموعه هاي دسترس پذیري و پوشش p که به ترتیب مجموعه هاي همسایه و وابستگی می باشند، عمل می کند. در صورتی که |Reachable (p)|>|Coverage (p)| باشد ICF، p را حذف می کند. این بدین معناست که

بعضی از الگوهاي T می توانند الگوهایی شبیه به p را بدون در نظر گرفتن آن در مجموعه آموزشی طبقه بندي کنند. این الگوریتم در گام اول، ENN را اجرا می کند.

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

انتخاب می شود. معمولا کروموزوم C به صورت یک ارائه کدشده دودویی C = [1, 0, 0, 1, ...] نمایش داده می شود، به طوري که |C|=|T| باشد، که براي نمایش دادن زیرمجموعه خاصی از T به کار گرفته می شود. هر Cj نماینده j امین عنصر از T می باشد. در صورتی که Cj=1 باشد، j امین عنصر از T عضو زیرمجموعه خواهد بود و در غیر این صورت Cj=0 خواهد

شد. به منظور انجام ترکیب، بیت هاي دو کروموزوم تعویض می گردند و انجام جهش، ارزش بعضی از بیت ها در کروموزوم را معکوس می کند .[15]

-4 مدل شبکه عصبی مبتنی بر الگوریتم GMDH


اساساً روشهاي تکاملی١٤ مانند الگوریتم ژنتیک، کاربرد وسیعی در مراحل مختلف طراحی شبکههاي عصبی دارند [14]

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

شبکه عصبی GMDH در برگیرنده مجموعهاي از نرونها بوده که از پیوند جفتهاي مختلف از طریق یک چندجملهاي درجه دوم به وجود میآید. فرض کنید مجموعه اي از m متغیر شامل x1, x2 , … xm و یک متغیر y وجود دارد داده هاي مربوط به هر کدام از xi ها و متغیر هدف y متغیر خروجی نیز براي یک دوره زمانی وجود دارد به عبارتی هر یک از متغیرها به صورت یک بردار که شامل اعداد سري زمانی مربوط به آن متغیر است، میباشد. .[17] اطلاعات اولیهاي که جهت ساخت الگوریتم GMDH باید جمعآوري گردد. مجموعهاي از n مشاهده است که در ماتریس زیر نشان داده شده است .[17]

براي شروع به کار الگوریتم با دو مسئله مواجه هستیم تشخیص رابطهاي که متغیر خروجی را بر اساس متغیرهاي ورودي xi ها

تولید می کند. پیشبینی y به ازاي مقادیر معلوم xi ها به عبارتی نیاز به تشخیص مدل و رابطه بین متغیرها می باشد (مدل سازي) که سپس بتوان از روي آن مدل مقادیر آتی متغیر هدف پیشبینی کرد .[17] مبناي الگوریتم GMDH عبارت از

فرآیندي جهت ساخت یک چند جملهاي با مراتب بالا است که به سري تابع ولترا15 معروف است و به شکل زیر ارائه میگردد: (این چند جملهاي را ایواخننکو نیز مینامند.)

براي این منظور در الگوریتم GMDH ابتدا به تجزیه سري توابع ولترا به چند جملهاي هاي دو متغیره درجه دوم می پردازیم.

در این تجزیه سري ولترا به مجموعهاي از معادلات بازگشتی زنجیرهاي تبدیل می گردد به گونهاي که مجددا با جایگذاري جبري هر یک از روابط بازگشتی در این رابطه سري ولترا برقرار میگردد.

توسط تابع f تقریب زده میشود:


و در صورتی که تابع f به صورت زیر بیان شود:

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