تشخيص نفوذهاي غير عادي در بستر شبكه با تشخيص outlier هايي كه از قبل بررسي نشده اند

چكيده :
تشخيص ناهنجاري (anomaly) موضوعي حياتي در سيستم هاي تشخيص نفوذ به شبكه است (NIDS) . بسياري از NIDS هاي مبتني بر ناهنجاري «الگوريتمهاي پيش نظارت شده » را بكار مي گيرند كه ميزان كارايي اين الگوريتمها بسيار وابسته به دادها هاي تمريني عاري از خطا ميباشد . اين در حالي است كه در محيط هاي واقعي و در شبكه هاي واقعي تهيه اينگونه داده ها بسيار مشكل است . علاوه بر اينها ، وقتي محيط شبكه يا سرويسها تغيير كند الگوهاي ترافيك عادي هم تغيير خواهد كرد .

اين مساله به بالا رفتن نرخ مثبت نمايي در NIDS هاي پيش نظارت شده منجر مي شود . تشخيص يك انحراف كامل (outlier) پيش نظارت نشده ميتواند بر موانعي كه در راه تشخيص ناهنجاري هاي پيش نظارت شده وجود دارد غلبه كند . به همين دليل ما الگوريتم « جنگلهاي تصادفي » را كه يكي از الگوريتمهاي كار امد براي استخراج داده است به خدمت گرفته ايم و آن را در NIDS هاي مبتني بر ناهنجاري اعمال كرده ايم . اين الگوريتم ميتواند بدون نياز به داده هاي تمريني عاري از خطا outlier ها را در مجموعه داده هاي ترافيك شبكه تشخيص دهد . ما براي تشخيص نفوذهاي ناهنجار به شبكه از يك چارچوب كاري استفاده كرده ايم و در اين مقاله به شرح همين چارچوب كاري ميپردازيم .

در اين چارچوب كاري ، الگوي سرويسهاي شبكه از روي داده هاي ترافيكي و با استفاده از الگوريتم جنگلهاي تصادفي ساخته شده است . توسط outler تعيين شده اي كه با اين الگوهاي ساخته شده مرتبط هستند نفوذها تشخيص داده مي شوند. ما نشان ميدهيم كه چه اصلاحاتي را روي الگوريتم تشخيص outlier جنگلهاي تصادفي انجام داديم . و همينطور نتايج تجربيات خود را كه بر اساس مجموعه داده هاي KDD 99 انجام شده است گزارش ميدهيم .

نتايج نشان ميدهد كه روش پيشنهادي با ساير روشهاي تشخيص ناهنجاري پيش نظارت نشده اي كه قبلا گزارش شده اند كاملا قابل مقايسه است . البته روشهايي كه بر اساس مجموعه داده هاي KDD 99 ارزيابي شده اند.

۱- معرفي
همراه با رشد فوق العاده زياد سرويسهاي مبتني بر شبكه و وجود اطالعات حساس روي شبكه ها تعداد حملات به كامپيوترهاي تحت شبكه و شدت انها نيز به طور محسوسي افزايش يافته است . در حال حاضر طيف وسيعي از تكنولوژيهاي امنيتي وجود دارد كه ميتوانند از سيستم هاي تحت شبكه محافظت كنند . تكنولوژيهايي مانند رمز نگاري اطلاعات كنترل دسترسيها و جلوگري از نفوذ اما با وجود اين تكنولوژيها هنوز هم راههاي زيادي براي نفوذ وجود دارد كه تا حلل شناسايي نشده است . به همين دليل سيتسم هاي تشخيص نفوذ IDS نقشي حياتي را در امنيت شبكه ايفا مي كنند .

سيستم هاي تشخيص نفوذ به شبكه NIDS فعاليتهاي مختلفي كه در شبكه انجام مي شود را تحت نظر دارد و از اين راه حملات را شناسايي مي كند . اين در حالي است كه سيستم هاي تشخيص نفوذ به سيستم هاي تحت Host يعني HIDS نفوذ به يك host منفرد را شناسايي مي كند.

دو تكنيك اصلي براي تشخيص ورودهاي نابجا وجود دارد . تشخيص كاربردهاي نادرست و تشخيص ناهنجاري anomaly تشخيص كاربردهاي نادرست بر اساس الگوهاي استخراج شده از نفوذهاي شناخته شده حملات را كشف مي كند . در روش تشخيص ناهنجاري براي شناسايي حملات به اين روش عمل مي كند كه يكسري پروفايلهايي را براي فعاليتهاي عادي ايجاد مي كند و سپس بر اسسا اين پروفايلها موارد انحراف را تعيين مي كند . فعاليتهايي كه از حد تعيين شده براي انحرافات فراتر رود جزء حملات شناخته مي شوند .
در تكنيك تشخيص كاربردهاي نادرست نرخ مثبت نمايي پائين است . اما اين تكنيك نمي تواند حملاتي از انواع جديد را شناسايي كند . تكنيك تشخيص ناهنجاري ميتواند حملات ناشناخته را كشف كند با اين پيش فرض كه اين حملات ناشي از منحرف شدن از رفتارهاي عادي هستند.

در حال حاضر بسياري از NIDS ها مانند Snort سيستمهاي قانونمند شده هستند ، به اين معني كه اين سيستم ها تكنيكهاي تشخيص كاربردهاي نادرست را به خدمت ميگيرند و بنابراين قابليت انبساط محدودي براي حملات جديد دارند . براي شناسايي حملات جديد سيستمهاي تشخيص ناهنجاري بسياري توسعه پيدا كرده اند . بسياري از انها بر مبناي روشهاي نظارتي توسعه پيدا كرده اند . به عنوان مثال ADAM در تشخيص نفود ، از الگوريتم قوانين مشترك بهره گرفته است ADAM از فعاليتهاي عادي كه روي داده هاي تمريني عاري از حمله انجام مي شود يك پروفايل مي سازد .

سپس با پروفايل ساخته شده حملات را شناسايي مي كند . مشكل ADAM اين است كه به داده هاي تمريني كه براي فعاليتهاي عادي استفاده مي شوند بيش از حد وابسته است . وقتي كه در دنياي واقعي با شبكه هاي حقيقي كار مي كنيم عملا هيچ تضميني نيست كه بتوانين از تمامي حملات جلوگيري كنيم . بنابراين دست يافته به داده هاي تمريني عاري ازخطا كار بسيار مشكلي است . در حقيقت هم يكي از مرسوم ترين راههايي كه براي تحليل بردن يك سيستم IDS مبتني بر ناهنجاري استفاده مي شود اين است كه بخشي از فعاليتهاي نفوذي را درون داده هاي تمريني وارد كنيم . IDS هايي كه با اين داده هاي تمريني تعليم ديده اند قابليت شناسايي اين نوع از نفوذها را از دست ميدهند .

مشكل ديگر IDS هاي مبتني بر نظارت بر رفتارهاي ناهنجار اين است كه وقتي محيط شبكه يا سرويسها تغيير مي كند نرخ مثبت نمايي بالا ميرود . از انجايي كه داده هاي تمريني فقط فعاليتهاي مطالعه شده را شامل مي شود پروفايل مربوط به فعاليتهاي عادي فقط شامل الگوهاي مطالعه شده اي است كه از روي رفتارهاي عادي برداشته شده اند . بنابراين فعاليتهاي جديد ناشي از تغيير محيط شبكه يا سرويسها از پروفايلي كه قبلا ساخته شده تبعيت نمي كند و به عنوان حمله شناسايي مي شوند . اين مساله باعث بالا رفتن مثبت نمايي ها خواهد شد .

براي غلبه بر محدوديتهاي سيستم هاي مبتني بر ناهنجاري هاي نظارت شده تعدادي از IDS ها از روشهاي غير نظارتي استفاده مي كنند . در تكنيك تشخيص ناهنجاري به صورت غير نظارتي نيازي به داده هاي تمريني عاري از خطا نيست . اين تكنيك براي شناسايي حمله ها به اين ترتيب عمل مي كند كه فعاليتهاي غير معمول داده ها را تعيين مي كند . براي اين كار دو پيش فرض دارد :
• اكثر فعاليتها عادي هستند
• بر طبق امار اغلب حمله ها با منحرف شدن از فعاليتهاي عادي صورت مي گيرد.

فعاليتهاي غير معمول همان انحرافهاي كامل ( Outlier) هستند كه با مجموعه داده هاي باقيمانده جور در نمي ايند . بنابراين تكنيكهاي تشخيص Outlier مي توانند روي سيستم هايي كه ناهنجاريها را به صورت غير نظارتي تشخيص مي دهند اعمال شوند . در واقع هم اكنون هم تشخيص Outlier در تعدادي از برنامه هاي عملي مانند شناسايي كرديت كارتهاي تقلبي و پيش بيني وضع هوا در حال استفاده است .

ما روشي را پيشنهاد مي كنيم كه براي تشخيص نفوذهاي غير عادي از تكنيك تشخيص outlier ي كه توسط الگوريتم جنگلهاي تصادفي تهيه شده است استفاده مي كند . جنگلهاي تصادفي روشي است كه در ميان الگوريتمهاي استخراج داده موجود تقريبا پيشتاز است .

اين الگوريتم تا كنون در برنامه هاي مختلف بسيار زيادي استفاده شده است . براي مثال در برنامه پيشگويي نظريه احتمالات تجزيه الگو در بازيابي اطلاعات چند رسانه اي مورد استفاده بوده است. متاسفانه تا جايي كه ما اطلاع دارمي تا كنون اين الگوريتم را در سيستم هاي تشخيص نفوذهاي غير عادي بكار نبرده اند .
دغدغه اصلي سيستمهاي تشخيص نفوذهاي غير عادي اين است كه مثبت نمايي ها را به حداقل برسانند . تكنيك تشخيص outlier براي كاهش نرخ مثبت نمايي و ارائه يك نرخ شناسايي مطلوب و قابل قبول موثر خواهد بود . روش پيشنهادي توسط مجموعه داده KDD99 ارزيابي شده است .

اين مجموعه داده براي سومين مسابقه بين المللي ابزارهاي استخراج داده و اكتشاف دانش مورد استفاده بوده است . نتايج تجربيات ما نشان مي دهد كه ميزان كارايي تكنيك تشخيص با روش پيشنهادي ما يعني تكنيك تشخيص outlier به طور موثري بهبود پيدا كرده است .

اين مقاله به اين صورت تنظيم شده است . در بخش دوم ما كارهاي مربوطه را شرح مي دهيم در بخش سوم به صورت تفصيلي روش تشخيص outlier با استفاده از الگوريتم جنگلهاي تصادفي را شرح مي دهيم . در بخش چهارم تجربيات و ارزيابي هاي انجام شده براي تعيين ميزان كارايي نشان داده مي شود . و در اخر در بخش پنجم مقاله را خلاصه مي كنيم و طرح تحقيقات آتي خود را مشخص مي كنيم .

 

۲- كارهاي مربوطه
يكي از موضوعهاي مهمي كه در تحقيقات مربوط به تشخيص نفوذها وجود دارد ، تشخيص ناهنجاري بوده تا كنون روشهاي بسيار متنوعي براي تشخيص ناهنجاري پيش نظارت نشده در NIDS ها يك موضوع تحقيقاتي جديد است اسكين در موضوع تشخيص ناهنجاري نظارت نشده ، سه الگوريتم را بررسي كرده است : تخمين بر مبناي كلاستر ، نزديكترين همسايه و SVM تك كلاسي . ساير محققان در NIDS هاي غير نظارتي روشهاي كلاسترينگ را اعمال كرده اند.

سيستم تشخيص ناهنجاريهاي پيش نظارت شده در طيف وسيعي مورد مطالعه قرار گرفته است . در همين مبحث ، ADAM پروژه اي است كه در عرصه وسيعي شناخته شده و منتشر شده است . اين پروژه يك online IDS در بستر شبكه است . ADAM ميتواند به همان خوبي كه حملات شناخته شده را تشخيص ميدهد حملات ناشناخته را هم تشخيص دهد .
به اين ترتيب كه از رفتارهاي عادي مربوط به داده هاي تمريني عاري از خطا پروفايل ميسازد و اين پروفايل را به عنوان يك مجموعه قوانين مشترك ارائه مي كند. در زمان اجرا با توجه به اين پروفايل ، تماسهاي مشكوك را شناسايي مي كند . روشهاي پيش نظارت شده ديگري هم بر سيستم هاي تشخيص ناهنجاري اعمال شده اند . روشهايي نظير الگوريتم ژنتيك و استخراج داده هاي مبهم و نامعلوم ، شبكه هاي عصبي و SVM .

در كار قبلي مان ، ما الگوريتم جنگلهاي تصادفي را در سيستم تشخيص كاربردهاي نادرست misuse اعمال كرديم . در اين مقاله تابع تشخيص outlier تهيه شده توسط الگوريتم جنگلهاي تصادفي را براي تشخيص ناهنجاري پيش نظارت نشده به خدمت گرفته ايم . دقت و تاثير اين الگوريتم روي مجموعه داده هاي برگي كه داراي ويژگيهاي زيادي هستند بيشتر است . مجموعه داده هايي نظير مجموعه داده هاي ترافيك شبكه.

۳- تشخيص Outlier ها
در اين بخش ما چارچوب كاري پيشنهادي براي NIDS را شرح ميدهيم و نشان ميدهيم كه چگونه از اين الگوريتم براي تشخيص outlier هاي روي مجموعه داده اي ترافيك شبكه استفاده مي كنيم .

الف – شرح چارچوب كاري
چارچوب كاري پيشنهادي براي تشخيص نفوذهاي نوظهور از الگوريتم جنگلهاي تصادفي استفاده مي كند . چارچوب كاري در شكل ۱ نمايش داده شده است.

شكل ۱- چارچوب كاري NIDS ناهنجاري پيش نظارت نشده

NIDS از ترافيك شبكه تصوير بردار يمي كند و با پيش پردازش كردن مجموعه داده ها را ميسازد . سپس با استفاده از الگوريتم ف از روي مجموعه داده الگوهايي بر مبناي سرويسها ساخته مي شود . با الگوهاي ساخته شده مي توانيم outlier هاي مربوط به هر الگو را پيدا كنيم . وقتي outlier ها شناسايي شدند سيستم يك اخطار توليد مي كند .
بعد از اينكه تصوير برداري از ترافيك شبكه انجام شد پردازش به صورت off-line ادامه خواهد يافت . زيرا الگوريتم تشخيص outlier نيازمنديهاي زيادي براي محاسبات لازم دارد . به همين دليل هم در محيطهاي واقعي شبكه پردازشهاي online مناسب نيست .

ب – الگوريتم جنگلهاي تصادفي
جنگلهاي تصادفي يك طرح كامل از طبقه بندي غير شاخه اي يا درختهاي بازگشتي است . اين الگوريتم از نظر دقت و صحت در ميان الگوريتمهاي استخراج داده اي كه در حال حاضر وجود دارند بي رقيب است . به خصوص براي مجموعه داده هاي بزرگي ويژگيهاي (feature) زيادي دارند .

اين الگوريتم درختهاي طبقه بندي زيادي توليد مي كند . هر درخت توسط يك نمونه Bootstrap متفاوت از روي داده اوليه ساخته مي شود . براي اين كار از يك الگوريتم طبقه بندي درختي استفاده مي كند . بعد از اينكه جنگل تشكيل شد يك شي جديد كه لازم است حتما طبقه بندي شده باشد درختها را تك تك درون جنگل قرار مي دهد تا طبقه بندي شوند .
هر درخت يك راي مي دهد كه اين راي نشان دهنده تصميم آن درخت درباره كلاس شي مذكور است . جنگل با توجه به اكثريت ارايي كه درباره كلاس شي مذكور داده شده است ، كلاس ان شي را مشخص مي كند . در الگوريتم حجنگلهاي تصادفي نيازي به اعتبار سنجي خطي نيست . ژون هر درخت با استفاده از نمونه bootstrap ساخته مي شود بنابراين تقريبا يك سوم موارد از نمونه هاي bootstrap كنار گذاشته مي شوند و در تمرين استفاده نمي شوند . اين موارد را اصطلاحا خارج از رده يا oob مي نامند .

 

ج – الگوهاي استخراج سرويسهاي شبكه
بنابراين با استفاده از اين الگوريتم ما مي توانيم از روي سرويسهاي شبكه الگوهايي را بسازيم . اين الگوريتم پيش نظارت شده است . بنابراين لازم است كه مجموعه داده ها را بر اساس سرويسهاي شبكه بر چسب گذاري كرد . در واقع بسياري از مجموعه داده هاي مورد استفاده براي ارزيابي NIDS ها ميتوانند با اندك تلاشي بر اساس سرويسهاي شبكه بر چسب گذاري شوند . مثلا يكي از ويژگيهاي مجموعه داده KDD99 ويژگي با عنوان نوع سرويس ميباشد كه ميتواند براي برچسب استفاده شود .

قبل از ساخت الگوها لازم است كه پارامترهاي الگوريتم را بهينه سازي كنيم . وقتي جنگل در حال رشد است ، از بين تمام ويژگيهاي درون داده هاي تمريني داده هاي تصادفي به صورت تصادفي انتخاب شده اند . بهترين انشعاب از اين ويژگيهاي تصادفي را براي انشعاب گره مورد استفاده قرار ميدهند . تعداد ويژگيهاي تصادفي به صورت يك ثابت نگهداري شده است (Mtry) . تعداد ويژگيهاي بكار گرفته شده در انشعاب دادن هر گره براي هر درخت (Mtry) پارامتر همسو سازي اوليه است . براي بهبود كارايي اين الگوريتم اين پارامتر بايد بهينه سازي شود . و همچنين پارامتر تعداد درختهاي درون جنگل

براي يافتن مقدار مناسب براي پارامتر Mtry و تعداد درختان از مجموعه داده استفاده ميكنيم . حداقل نرخ خطا با مقادير بهينه مطابقت دارد . بنابراين براي ساخت جنگل و ارزيابي نرخ خطاي جنگل از مقداري متفاوت از Mtry و تعداد درختان استفاده مي كنيم . سپس مقداري مطابق با حداقل نرخ خطا را انتخاب مي كنيم و با كمك آن الگوهاي سرويس را مي سازيم .
د – تشخيص Outlier پسش نظارت نشده

با پيدا كردن فعايتهاي غير معمول يا Outlier ها ميتوانيم نفوذها را تشخيص دهيم . در NIDS پيشنهادي ما دو نوع Outlier وجود دارد . نوع اول فعاليتهايي هستند كه در يك سرويس شبكه يكسان به طور معني داري از ساير فعاليتهاي منحرف شده اند . نوع دوم فعاليتهايي هستند كه الگوهاي انها به سرويسهاي ديگري به جز سرويس اصلي خودشان تعلق دارد . مثلا وقتي يك فعاليت http به عنوان سرويس ftp طبقه بندي شده است . در اين حال آن فعاليت به عنوان يك outlier شناسايي خواهد شد .

الگوريتم جنگلهاي تصادفي براي پيدا كردن outlier هايي كه همجواري انها به تمام موارد ديگر درون كل داده ها عموما كوچك است از همجواريها استفاده مي كند . همجواريها يكي از مفيدترين ابزارها در اين الگوريتم است . بعد از اينكه جنگل ساخته شد همه موارد در مجموعه داده هر يك از درختها را در جنگل قرار داده اند . اگر موارد n و k در يك برگ مشابه از يك درخت باشند همجواري انها يكي افزايش پيدا مي كند . در اخر مقدار همجواريها را بر تعداد درختان تقسيم كرده و به اين ترتيب پارامتر همجواريها نرمال سازي مي شود .

براي يك مجموعه داده با N مورد ، همجواريها در حالت اوليه يك ماتريس N*N را تشكيل مي دهد . پيچيدگي محاسبات هم N*N است . مجموعه داده هاي ترافيك شبكه حجم بسيار زيادي دارند . بنابراين مقدار زيادي از حافظه و زمان Cpu برا يمحاسبه مورد نياز است . ما الگوريتم محاسبه همجواريها را تغيير مي دهيم تا به اين ترتيب كارايي بهبود پيدا كند .
همانطور كه قبلا گفتيم اگر فعايتي كه مربوط به يك سرويس است در يك سرويس ديگر طبقه بندي شود ان فعاليت به عنوان Outlier شناسايي خواهد شد . بنابراين اگر دو مورد وجود داشته باشند كه متعلق به سرويسهاي متفاوتي باشند همجواري بين انها اهميتي ندارد . پارامتر Si بر تعداد موارد در سرويس I دلالت دارد . بعد از اين تغيير ، يچيدگي به اندازه Si * Si كاهش پيدا مي كند .