بخشی از مقاله
چکیده
در سال های اخیر، گراف و خوشه بندی آن نقش قابل توجهی را در زمینه امنیت شبکه بخصوص سیستم های تشخیص نفوذ، ایفا کرده است. در همین راستا رویکردهای مختلفی ارائه شده است که در آنها از تحلیل محتوای تک تک بسته ها در شبکه استفاده میشود؛ بنابراین نمیتوان آن ها را در شبکه های سرعت بالا توسعه داد. برای مقابله با این مشکل، این مقاله یک روش تشخیص ناهنجاری مبتنی بر جریان بر پایه مفاهیم خوشه بندی گراف مانند تعداد یال های داخلی و خارجی خوشه ارائه میدهد.
در این مقاله، ما یک روش جدید پیشنهاد می دهیم که در آن با استفاده از ترافیک شبکه جریان ها ساخته میشوند؛ همچنین برای مدل کردن این جریان ها در سری های زمانی، گراف پراکندگی ترافیک به کار برده میشود. در نهایت یک مجموعه داده مبتنی بر خوشه بندی گراف خواهیم داشت که با توجه به آن معیار جدیدی برای تشخیص نفوذ معرفی می کنیم.
روش ارائه شده در این مقاله با استفاده از داده های مربوط به مجموعه داده DARPA 99 ارزیابی می شود که در این ارزیابی اهمیت خوشه بندی و استفاده از جریان داده نشان داده شده است. همچنین در مقایسه با روش دیگر، روش ما از نظر معیارهای ارزیابی به نتایج قابل توجهی دست یافته است.
۱ مقدمه
با رشد مداوم شبکه های رایانه ای مانند اینترنت از نظر اندازه و پیچیدگی، امنیت این شبکه ها و تشخیص ناهنجاری های موجود در ترافیک شبکه یک موضوع حیاتی تلقی می شود. دلیل عمده ی این ناهنجاری ها حمله هایی مانند از کاراندازی سرویس، پویش، لغت نامه و سرریز میانگیر است. تشخیص و شناسایی این حمله ها با دقت بالا و کم ترین خطا به خصوص در حوزه مدیریت شبکه از اهمیت بالایی برخوردار است. روش های مختلفی برای تشخیص نفوذ وجود دارد که معمولا بر اساس یادگیری ماشین، دادهکاوی و تحلیل آماری از مدل های رفتاری شبکه هستند. روش های مذکور در مواردی تعداد هشدارهای غلط بسیاری تولید می کنند و نیازمند بهبود هستند.
برای تشخیص ناهنجاری در روش های سنتی از تحلیل محتوای بسته های ارسالی استفاده می شود. این روش در شبکه های با سرعت بالا مقیاسپذیری خود را از دست می دهد. رویکردهای مختلفی برای مقابله با این مشکل وجود دارد که یکی از آن ها استفاده از روش های تشخیص نفوذ مبتنی بر جریان۱ است.
در این روش ها به جای تحلیل محتوای هر بسته از تحلیل ویژگی های مشترک مجموعه ای از بسته ها استفاده می شود. همچنین استفاده از گراف پرکندگی ترافیک۲ یک دید کلی از شبکه به وجود میآورد که در شبکه های بزرگ مقیاس بسیار کارا می باشد. هدف این تحقیق دستهبندی جریان های داده ای در شبکه و تحلیل آن ها به وسیله نظریه گراف است.
تمرکز این مقاله بر روی استفاده از مفاهیم جریان داده و گراف پراکندگی ترافیک شبکه در تشخیص نفوذ است. در همین راستا برای نمایش رفتار جریان ها در شبکه از گراف پراکندگی ترافیک استفاده شده است.دو بخش مهم رویکرد پیشنهادی ما را تشکیل می دهد: پردازش جریان ها با ساخت و خوشهبندی گراف های پراکندگی ترافیک در سری های زمانی، و استخراج ویژگی های به دست آمده از گراف خوشهبندی شده جهت ارائه یک معیار جدید برای تشخیص انواع مختلفی از حمله ها با دقت تشخیص بالا. برای ارزیابی کارایی رویکرد ارائه شده از مجموعه داده DARPA 99 استفاده شده است.
این مقاله از پنج بخش تشکیل یافته است. در ادامه، بخش دوم شامل پیشینه های پژوهشی مورد نظر برای ورود به توضیحات راه کار پیشنهادی است. بخش سوم به معرفی راه کار پیشنهادی میپردازد که شامل پیش پردازش داده و محاسبه معیار جدید برای تشخیص ناهنجاری است. در بخش چهارم با ارائه نتایج به دست آمده، به نمایش مدل نهایی از راه کار ارائه شده و ارزیابی آن؛ و به دنبال آن به تحلیل و مقایسه نتایج به دست آمده خواهیم پرداخت. بخش پنجم نیز نتیجهگیری کلی مباحث ارائه شده در مقاله و بررسی موارد پژوهشی پیشنهادی برای کارهای آتی را در بر دارد.
۲ مروری بر کارهای پیشین
تا کنون راهکارهای متعددی در زمینه ی تشخیص نفوذ ارائه شده است در این بخش کارهای انجام شده در تشخیص حمله های مختلف و مبتنی بر سه مفهوم جریان، گراف و سرآیند۳ بسته بررسی می شوند.
• تشخیص نفوذ مبتنی بر جریان
در این راه کار به جای اینکه محتوای هر بسته مورد بررسی واقع شود، جریانی از داده ها در شبکه تحلیل می شوند.
تعریف های مختلفی از جریان داده موجود می باشد که در این مقاله تعریفی که در ]۱[ ارائه شده است دنبال میشود:
»یک جریان مجموعه ای از بسته های پروتکل اینترنت۴ است که از یک نقطه مورد نظر در شبکه در یک بازه زمانی مشخص عبور می کنند. تمام بسته هایی که به یک جریان مشخص متعلق هستند ویژگی های مشترکی دارند.
اصطلاحا به این ویژگی های مشترک کلید جریان می گویند که این کلید جریان میتواند شامل نشانی پروتکل اینترنت مبداء و مقصد، شماره درگاه مبداء و مقصد و پروتکل باشد.« در سال ۰۱۰۲ رویکردی برای تشخیص نفوذ بر اساس جریان داده در شبکه، با استفاده از سری های زمانی در رساله ی دکتری آنا اسپروتو ]۲[ مطرح شده است. در این رساله اهمیت و کارایی تشخیص نفوذ مبتنی بر جریان داده در شبکه، نسبت به تشخیص نفوذ مبتنی بر محتوای بسته های شبکه نشان داده شده است.
همچنین یک راه کار مبتنی بر جریان برای تشخیص حمله ی لغتنامه ی پوسته ی امن به وسیله لورنس هلمونس و همکاران در سال ۲۱۰۲ ]۳[ ارائه شده که بر اساس تحلیل حمله مذکور الگوریتمی برای تشخیص نفوذ آن طراحی شده است. این الگوریتم حمله ها را به یک یا چند مرحله حمله تقسیم می کند. معیارهایی که در این الگوریتم استفاده می شوند عبارتند از معیار بسته ها به ازای جریان و معیار کم ترین تعداد جریان ها که در بازه های زمانی یک دقیقه ای محاسبه می شوند.
این راه کار مبتنی بر جریان است و در شبکه های با سرعت بالا کارایی دارد ولی با وجود نرخ مثبت صحیح حدود ۹۹ درصد و نرخ مثبت کاذب صفر، تنها محدود به تشخیص یک حمله می باشد. در مقایسه، روش ما با تعیین معیار تعداد بسته ها به ازای هر جریان و معیار نسبت وزن میتواند انواع مختلفی از حمله ها را با دقت بالایی تشحیص دهد.
• تشخیص نفوذ مبتنی بر گراف
سامانه ی تشخیص نفوذ مبتنی بر گراف برای اولین بار بهوسیله ی استوارت استنیفورد چن و همکاران در سال ۶۹۹۱ ]۴[ ارائه شده است. در این سامانه داده های مربوط به فعالیت های رایانه های موجود در شبکه و ترافیک شبکه، بین آن ها جمع آوری شده و این اطلاعات روی گراف های فعالیت آورده می شوند. هریک از این گراف ها یک فعالیت در شبکه را نشان می دهد. نظارت بر ترافیک شبکه یکی از مسائل چالش برانگیز در رویکردهای تشخیص نفوذ است.
به منظور نظارت، تحلیل و به دست آوردن نمایی از ترافیک شبکه، استفاده از گراف های پراکندگی ترافیک به وسیله ی ماریوس ایلیوفوتو و همکاران در سال ۷۰۰۲ ]۵[ پیشنهاد شده است. ایلیوفوتو گراف پراکندگی ترافیک را به عنوان نمایش گرافیکی از تعامل های مختلف بین گروه هایی از گره ها تعریف می کند. در شبکه های پروتکل اینترنت، یک گره متعلق به موجودیتی است که یک نشانی پروتکل اینترنت خاص دارد و یک یال نشان دهنده ارسال بسته بین دو گره متفاوت است. مزیت استفاده از گراف پراکندگی ترافیک قدرت نمایش بهتر روابط ساختاری حملات است.
رویکرد جدیدی برای تشخیص ناهنجاری در ترافیک شبکه، بر اساس این گراف ها به وسیله ی دوکوک له و همکاران در سال ۱۱۰۲ ]۶[ مطرح شده است. که این رویکرد بر پایه ی اصول نظریه گراف مانند درجه ی گراف، بیشترین درجه ی گراف و فاصله تشابه در گراف، طرح شده است و در آن برای مدل کردن ترافیک شبکه از گراف پراکندگی ترافیک، استفاده شده است. همچنین در این رویکرد از سری های زمانی برای تشخیص ناهنجاری استفاده شده است؛ به این صورت که گراف های به دست آمده ی مختلف در سری های زمانی، برای تشخیص نفوذ تحلیل می شوند.
رویکرد ارائه شده از دو قسمت تشکیل شده است: قسمت اول به مشخصات آماری گراف توجه دارد و قسمت دوم جنبه های پویا برای تغییر گراف در سری های زمانی مختلف را در نظر میگیرد که برای این منظور از الگوریتم تطبیق گراف استفاده می شود. همچنین در این رویکرد جریان های دو جهته از ترافیک شبکه ساخته می شود. این روش نیز محدود به تشخیص یک نوع حمله - حمله عدم پذیرش سرویس توزیع شده - است که در شبکه های بزرگ با انواع مختلف حمله با مشکل مواجه می شود. در این مقاله، با خوشهبندی گراف پراکندگی ترافیک و به دست آوردن معیار مناسب توانستیم به تشخیص انواع مختلفی از حمله ها دست پیدا کنیم.
• تشخیص نفوذ مبتنی بر سرآیند بستهها
یکی از روش های مهم مبتنی بر سرآیند بسته به وسیله متیو مهانی و همکاران در سال ۱۰۰۲ ]۷[ ارائه شد که در آن با استفاده از یادگیری مقادیر عادی برای هر سرآیند بسته ناهنجاری تشخیص داده می شود. بسیاری از سیستم های تشخیص نفوذ مبتنی بر ناهنجاری از روش های داده کاوی و الگوریتم های یادگیری ماشین استفاده می کنند به طوری که در آن ها بردارهای ویژگی که شامل ویژگی های پیچیده هستند به عنوان ورودی در نظر گرفته می شوند.
استخراج ویژگی های پیچیده از ترافیک شبکه کار آسانی نیست و همچنین ابزاری برای به دست آوردن ویژگی ها به صورت عمومی در دسترس نیست، به همین دلیل توسعه سیستم تشخیص نفوذ مبتنی بر بردار ویژگی برای مدیر شبکه غیر ممکن می شود. برای حل این مشکل پروجوال مندهر و همکاران در سال ۴۱۰۲ ]۸[ روشی ارائه دادند که در آن از داده های خام ترافیک شبکه استفاده می شود. در این رویکرد، برای تشخیص ناهنجاری اطلاعات سرآیند بسته بررسی می شود. هدف اصلی روش ارائه شده در این مقاله مدل کردن داده های عادی شبکه و سپس تشخیص ناهنجاری بر اساس انحراف از الگوهای عادی است.
داده های عادی انواع مختلفی دارند و رفتارهای متفاوتی از خود نشان می دهند. بنابراین تحلیل رفتار هرکدام از الگوهای عادی و تشخیص آن ها از داده های ناهنجار امری مهم است. این روش با استفاده از خوشه بندی و ماشین بردار پشتیبان، رفتارها را با دقت بالایی مدل می کند. در این روش از راه کار مبتنی بر بسته و خوشهبندی داده ها و آموزش آن ها استفاده شده است که در شبکه های سرعت بالا کارایی خود را از دست می دهد. اما در روش ارائه شده در این مقاله، از مفهوم جریان استفاده شده و همچنین به جای خوشهبندی داده ها، شبکه خوشهبندی شده است.
۳ روش پیشنهادی
با توجه به روش های بررسی شده در بخش ۲، مشاهده می شود که افزایش دقت در تشخیص نفوذ با محدودیت در تشخیص انواع حملات مواجه است. این مقاله با هدف ارائه روشی مناسب و کاربردی برای افزایش دقت تشخیص و همچنین کاهش محدودیت در تشخیص انواع حمله و نرخ هشدارهای غلط در سامانه های تشخیص نفوذ تدوین یافته است. به همین منظور یک روش جدید برای تشخیص نفوذ با استفاده از مفاهیم جریان، گراف پراکندگی ترافیک و خوشهبندی آن معرفی شده است. قبل از تشخیص نفوذ لازم است پیش پردازش های لازم بر روی ترافیک خام شبکه انجام گیرد تا داده ها برای روش ارائه شده قابل استفاده گردند. در این بخش ابتدا روش ارائه شده برای پیش پردازش داده ها و سپس روش تشخیص نفوذ پیشنهادی خود را شرح خواهیم داد.
۳- ۱ پیشپردازش داده
یکی از جنبه های مهم در سامانه های تشخیص نفوذ، ارزیابی آن ها با مجموعه داده مناسب است. به دلیل اینکه رویکرد پیشنهادی ما بر اساس خوشهبندی گراف است، برای آزمایش این روش به مجموعه داده مبتنی بر خوشهبندی نیاز داریم. مراحل پیش پردازش داده در شکل ۱ نشان داده شده است. در ادامه به تشریح این مراحل میپردازیم.
شکل ۱: مراحل ساخت مجموعه داده مبتنی بر خوشهبندی گراف
۳-۱- ۱ استخراج سرآیند بسته
در یک سرآیند بسته ویژگی های مختلفی وجود دارد. ما برای به وجود آوردن جریان تنها به شش ویژگی نیاز داریم که این ویژگی ها عبارتند از نشانی پروتکل اینترنت مبداء، نشانی پروتکل اینترنت مقصد، پروتکل استفاده شده در شبکه، زمان، شماره درگاه مبداء و درگاه مقصد.
۳-۱- ۲ شبیهسازی جریان
حال با استفاده از ویژگی های استخراج شده از سرآیند بسته ها شبیه سازی جریان انجام می شود. همان طور که در بخش قبل اشاره شد، ما در این پایان نامه از تعریف جریان که در ]۱[ ارائه شده است استفاده میکنیم.
با استفاده از این تعریف، جریان ها را در بازه زمانی یک ثانیه شبیهسازی می کنیم. در همین راستا مراحل زیر طی می شوند:
۱. سرآیندهای استخراج شده از بسته ها را در بازه های یک ثانیه ای دستهبندی می کنیم.
۲. در هر ثانیه بسته هایی که ویژگی های مشترک دارند در یک جریان قرار می دهیم و همچنین تعداد بسته ها را برای هر جریان محاسبه می کنیم.
۳-۱-۳ ساخت گراف پراکندگی ترافیک
در این مرحله ما مجموعه ای از جریان های شبیهسازی شده با بازه زمانی یک ثانیه داریم. اکنون با در نظر گرفتن نقاط زمانی منظم t1، t2، ::: و tn از روی جریان ها در سری های زمانی مختلف گراف پراکندگی ترافیک می سازیم. ما یک بار وجود جریان ها و یک بار وجود بسته ها بین دو پروتکل اینترنت را یال در نظر می گیریم. بنابراین دو نوع گراف به دست می آید:
• گراف پراکندگی ترافیک مبتنی بر جریان: در این گراف تعداد جریان ها بین دو پروتکل اینترنت به عنوان وزن یال در نظر گرفته می شود.
• گراف پراکندگی ترافیک مبتنی بر بسته: در این گراف وزن یال، تعداد بسته ها بین دو پروتکل اینترنت در نظر گرفته میشود.
۳-۱- ۴ خوشه بندی گراف پراکندگی ترافیک
الگوریتم های بسیاری برای خوشهبندی گراف وجود دارند. مشکل عمده ای که این الگوریتم ها دارند نیاز به مقداردهی اولیه است. یکی از این الگوریتم ها که در تشخیص نفوذ کاربرد دارد، الگوریتم مبتنی بر گراف است ]۹[ و ]۰۱[ ؛ که برای گراف های کامل طراحی شده است. به منظور رفع مشکلات ذکر شده در خوشهبندی گراف و برای داشتن خوشه های با اتصالات داخلی بالا و اتصالات خارجی کم در گراف، در این راه کار از خوشهبندی مبتنی بر الگوریتم ژنتیک که در ]۱۱[ ارائه شده است استفاده میشود.
پس از خوشهبندی گراف در هر سری زمانی ویژگی های زیر را برای آن محاسبه می کنیم:
۱. زمان: با توجه به سری زمانی t1، t2، ::: و tn این ویژگی با اعداد ۱ تا n نشان داده می شود و مشخص می کند که ویژگی های ایجاد شده دیگر مربوط به کدام سری زمانی هستند.
۲. شماره خوشه: خوشه های به وجود آمده با شماره نشان داده می شوند.