فهرست جدول‏ها
عنوانصفحهجدول 3- 1: ویژگی‏های استخراج شده از هر صفت47جدول 4- 1: دسته بندی بهره کشی آسیب پذیری‏ها و نحوه برچسب زنی52جدول 4- 2: نتایج پیش بینی بهره کشی برون خط برای تعداد کلاس بندی کننده‏های مختلف53جدول 4- 3: دقت پیش بینی در آزمایش برون خط برای 9 کلاس بندی کننده 54جدول 4- 4: پیش بینی اینکه آیا از آسیب پذیری در T روز آینده بهره کشی خواهد شد یا نه58جدول 4- 5: پیش بینی اینکه آیا از آسیب پذیری در T روز آینده بهره کشی خواهد شد یا نه با روش 10 اعتبار متقاطع 10 قسمتی58جدول 4- 6: پیش بینی اینکه آیا از آسیب پذیری در T روز گذشته بهره کشی شده است یا نه59جدول 4- 7: پیش بینی اینکه آیا از آسیب پذیری در T روز گذشته بهره کشی شده است یا نه، با روش 10 اعتبار متقاطع 10 قسمتی59جدول 4- 8: پیش بینی اینکه آیا بسته اصلاح شده در T روز آینده ارائه خواهد شد یا نه60جدول 4- 9: پیش بینی اینکه آیا بسته اصلاح شده در T روز آینده ارائه خواهد شد یا نه، با روش 10 اعتبار متقاطع 10 قسمتی60جدول 4- 10: نتایج متوازن سازی، نامتوازن‏ترینگروه‏های پیش بینی زمانی61جدول 4- 11: مقایسه OSVDB و CVE در پیش بینی بهره کشی برون خط63جدول 4- 12: مقایسه OSVDB و CVE برای پیش بینی زمان بهره کشی برای آسیب پذیری‏های روز –مثبت64جدول 4- 13: مقایسه OSVDB و CVE برای پیش بینی زمان بهره کشی برای آسیب پذیری‏های روز –منفی64جدول 4- 14: مقایسه OSVDB و CVE برای پیش بینی زمان ارائه بسته اصلاح شده64جدول 4- 15: گزارش مختصری از ویژگی‏های انتخاب شده65جدول 4- 16: انواع دسته بندی آسیب پذیری موجود در OSVDB67جدول 4- 17: درصد کل نمونه‏هادرهردسته80جدول 4- 18: نمونه‏ای از آسیب پذیری‏های هر دسته81جدول 4- 19: نمونه‏ای از آسیب پذیری‏های دارای همپوشانی در دسته‏ها83جدول 4- 20: فاصله منهتن برای دسته‏هابهروشESOM85جدول 4- 21: فاصله منهتن برای دسته‏هابهروشK- میانگین85
فهرست تصاویر
عنوانصفحهتصویر 1- 1: مراحل متعارف متن کاوی7تصویر 2- 1: چرخه آسیب پذیری تعریف شده بوسیله رویدادهای مشخص. توالی دقیق رویدادها بین آسیب پذیری‏ها متفاوت است (برگرفته از 16)20تصویر 2- 2: فرآیندهای اصلی اکوسیستم امنیتی و رابطه رویدادهای چرخه آسیب پذیری (برگرفته از 16)21تصویر 2- 3: متریک‏هایCVSS (برگرفته از 24)25تصویر 2- 4: وابستگی متریک‏هایCVSS (برگرفته از 24)25تصویر 2- 5: فرمول معیار پایه در CVSS26تصویر 2- 6: فرمول معیار زمانی در CVSS27تصویر 2- 7: فرمول معیار محیطی در CVSS28تصویر 2- 8: مدل ساده شده‏ای از چرخه آسیب پذیری‏ها (برگرفته از 29)29تصویر 2- 9: احتمالات محاسبه شده؛ P0، P1، P2 و P3 برای تصویر 2-8 (محور افق زمان t را نشان می‏دهد) (برگرفته از 29)30تصویر 3- 1: شمای پایگاه داده OSVDB (برگرفته از 44)41تصویر 3- 2: مراحل پیش پردازش داده‏هابرای پیش بینی بهره کشی43تصویر 3- 3: مراحل پیش پردازش داده‏هابرای خوشه بندی آسیب پذیری‏ها44تصویر 3- 4: مراحل استخراج ویژگی‏ها برای کلاس بندی و پیش بینی46تصویر 3- 5: مراحل استخراج ویژگی‏ها برای خوشه بندی49تصویر 4- 1: پارامترهای ورودیESOM70تصویر 4- 2: اجرای خوشه بندیESOM با 1359 ویژگی، الگوریتم آموزش k دسته، تعداد ستون‏ها 82 وتعدادسطرها 50،تعدادگام‏های آموزش 20، روش وزن دهی اولیه گوسی71تصویر 4- 3: اجرای خوشه بندیESOM با 1359 ویژگی، الگوریتم آموزش برخط، تعداد ستون‏ها 82 وتعدادسطرها 50،تعدادگام‏های آموزش 20، روش وزن دهی اولیه گوسی72تصویر 4- 4: اجرای خوشه بندیESOM با 586 ویژگی، الگوریتم آموزش برخط، تعداد ستون‏ها 82 وتعدادسطرها 50،تعدادگام‏های آموزش 20، روش وزن دهی اولیه گوسی73تصویر 4- 5: اجرای خوشه بندیESOM با 586 ویژگی، الگوریتم آموزش برخط، تعداد ستون‏ها 90 وتعدادسطرها 90،تعدادگام‏های آموزش 30، روش وزن دهی اولیه گوسی74تصویر 4- 6: اجرای خوشه بندیESOM با 586 ویژگی، الگوریتم آموزش k دسته، تعداد ستون‏ها 100 وتعدادسطرها 120،تعدادگام‏های آموزش 40، روش وزن دهی اولیه گوسی75تصویر 4- 7: اجرای خوشه بندیESOM با 586 ویژگی، الگوریتم آموزش برخط، تعداد ستون‏ها 90 وتعدادسطرها 60،تعدادگام‏های آموزش 30، روش وزن دهی اولیه انتخاب اعداد تصادفی از فاصله میانگین منهای 2 برابر انحراف معیار تا میانگین بعلاوه 2 برابر انحراف معیار76تصویر 4- 8: اجرای خوشه بندیESOM با 586 ویژگی، الگوریتم آموزش k دسته، تعداد ستون‏ها 90 وتعدادسطرها 60،تعدادگام‏های آموزش 30، روش وزن دهی اولیه انتخاب اعداد تصادفی از فاصله میانگین منهای 2 برابر انحراف معیار تا میانگین بعلاوه 2 برابر انحراف معیار77تصویر 4- 9: نمونه‏هاییازنقشه‏های بررسی شده 78تصویر 4- 10: خوشه‏های انتخاب شده بروی نقشه مشخص شده است. 79تصویر 4- 11: نقشه‏های از اجرا با پارامترهاییکسان82
فهرست نمودار‏ها
عنوانصفحهنمودار 4- 1: درصد خطای تجمعی کل، خطای منفی غلط و خطای مثبت غلط در آزمایش برخط55نمودار 4- 2: تاثیر تعداد نمونه‏هابردقتپیشبینی روش‏هایSVM و جنگل تصادفی (برگرفته از (53))62
فصل اول

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

مقدمه
1-1- آسیب پذیری1
در مباحث امنیت کامپیوتر، یک آسیب پذیری، ضعفی است که برای مهاجم امکان سوء استفاده از اطلاعات یک سیستم را فراهم میکند. سالانه هزاران آسیب پذیری کشف و گزارش میشوند و میلیونها دلار در سرتاسر دنیا صرف مقابله با آسیب پذیریها میگردد. برای بهره کشی از آسیب پذیری یک سیستم عموماً به سه عامل نیاز است: حساسیت یا نقصی در سیستم، دسترسی مهاجم به نقص و توانایی مهاجم برای بهره کشی از نقص (1).
1-1-1- تعریف آسیب پذیری
آسیب پذیری از جمله مفاهیمی است که منابع مختلف تعاریف متفاوتی را برایش ارائه دادهاند. از جمله این تعاریف میتوان به موارد زیر اشاره کرد:
ISO 27005: ضعف یک دارایی یا گروهی از داراییها که میتواند توسط فرد یا گروهی از افراد مورد بهره کشی قرار گیرد (2). در این تعریف دارایی به معنای هر چیزی که برای سازمان ارزشی داشته باشد، است، برای مثال منابع اطلاعاتی مورد حمایت سازمان.
IETF RFC 2828: یک عیب یا ضعف در طراحی، پیاده سازی، عملکرد یا مدیریت سیستم، که میتواند باعث بهره کشی، در جهت نقض سیاست امنیتی سیستم شود (3).
کمیته ملی سیستمهای امنیتی ایالات متحده آمریکا2، در دستورالعمل CNSSشماره 4009، در تاریخ 26 آوریل 2010، واژه نامه تضمین اطلاعات ملی: آسیب پذیری ضعف در یک IS، روشهای امنیتی سیستم، کنترلهای داخلی یا پیاده سازی است، که میتواند منجر به بهره کشی شود (4).
ENISA: وجود یک ضعف طراحی یا خطای پیاده سازی که بتواند منجر به رویداد غیر منتظره نامطلوبی شود، که این رویداد امنیت سیستم کامپیوتر، شبکه، برنامه یا پروتکل را به خطر اندازد (5).
گروه باز3: حالتی که قدرت مهاجم بیش از قدرت مقاومت در برابر آن باشد (6).
تحلیل عاملی از خطر اطلاعات4(FAIR): احتمال اینکه یک دارایی قادر به مقاومت در برابر عوامل خطر نباشد (7).
امنیت داده و کامپیوتر، فرهنگ لغات مفاهیم و لغات استاندارد، نویسندگان دنیس لانگلی5 و مایکل شین6، استاکتون پرس7، ISBN 0-935859-17-9:
در امنیت کامپیوتر، ضعف کارکرد امنیتی سیستمهای خودکار شده، کنترلهای ناظران، کنترلهای اینترنت و غیره، که بتوانند بوسیله یک مهاجم با دسترسی غیر مجاز به اطلاعات، پردازش اطلاعات را مختل کنند.
در امنیت کامپیوتر، یک ضعف در لایه فیزیکی، سازمان، کارکرد، کارکنان، مدیریت، سرپرستی، سخت افزار یا نرم افزار که امکان بهره کشی از آنها با هدف آسیب رساندن به سیستم یا فعالیت وجود داشته باشد.
در امنیت کامپیوتر، هر ضعف یا نقص موجود در یک سیستم، حمله، رویداد مضر یا فرصت دسترسی برای یک عامل تهدید کننده، که امکان تهدید را برای عامل فراهم کند، را آسیب پذیری گویند.
1-1-2- کلاس بندی آسیب پذیریها
آسیب پذیریها، براساس نوع دارایی به دستههای زیر تقسیم میشوند (2):
سخت افزار، برای مثال: حساسیت به رطوبت، حساسیت به گرد و غبار، استعداد ابتلا به ذخیره سازی محافظت نشده.
نرم افزار، برای مثال: تست ناکافی، فقدان پیگیری.
شبکه، برای مثال: خطوط ارتباطی محافظت نشده، معماری شبکه ناامن.
کارکنان، برای مثال: روند جذب ناکافی، آگاهیهای امنیتی ناکافی.
مکان، برای مثال: منطقه مستعد سیل،منبع برق غیر قابل اعتماد.
سازمانی، برای مثال: عدم پیگیری منظم، عدم تداوم برنامهها.
1-1-3- علتهای ایجاد آسیب پذیریها
برخی از منابع و علتهای ایجاد آسیب پذیریها عبارتند از:
پیچیدگی سیستم: احتمال وجود نقص و نقاط دسترسی ناخواسته در سیستمهای بزرگ پیچیده، بیشتر است (8).
متعارف بودن سیستم: استفاده از کدها، نرم افزارها، سیستم عاملها یا سخت افزارهای معمول و معروف، احتمال اینکه یک مهاجم بتواند به دانش و ابزار، جهت بهره کشی از نقص موجود دسترسی پیدا کند، را افزایش میدهد (9).
اتصال: اتصالات فیزیکی، امتیازات8، پورتها، پروتکلها و سرویسهای بیشتر و افزایش مدت زمان هر یک از آنها، دسترسی پذیری به آسیب پذیریها را افزایش میدهد (7).
نقص در مدیریت پسوردها: کاربران کامپیوتر از پسوردهای ضعیفی که با تلاش اندکی کشف میشوند، استفاده میکنند یا اینکه آنها را در برخی برنامهها ذخیره میکنند، و این پسوردها بین بسیاری از برنامهها و صفحات وب مشترک است (8).
نقصهای طراحی در سیستم عاملهای اصلی: طراحان سیستم عاملها، عموماً سیاستهایی که کمتر کاربر/مدیر سیستم را درگیر کنند را برمیگزینند. برای مثال سیستم عاملها، سیاستهایی مثل پیش فرضهای اعطای مجوز به هر برنامه و دسترسی کامل کاربران به سیستم را دارند (8).این نقصهای سیستم عاملها، به ویروسها و بدافزارها، اجازه اجرای دستوراتی از طرف مدیر را میدهد (1).
مرور وبسایتهای اینترنت: برخی وب سایتهای اینترنتی دارای جاسوسها یا تبلیغات خطرناکی هستند، که میتوانند به صورت خودکار روی سیستمهای کامپیوتری نصب شوند. بعد از بازدید از این وب سایتها سیستمها آلوده میشوند، اطلاعات شخصی جمع آوری شده و برای شخص ثالث فرستاده میشود (10).
اشکلات نرم افزاری: اشکلات قابل بهره کشی در بسیاری برنامههای نرم افزاری وجود دارد. اشکلات نرم افزاری ممکن است به مهاجمان اجازه سوء استفاده از برنامه را بدهند (8).
ورودیهای کاربر کنترل نشده: برنامهها فرض میکنندکه همهی ورودیهای کاربر امن است. برنامههایی که ورودیهای کاربر را بررسی نمیکنند، در واقع امکان اجرای مستقیم دستورات ناخواسته و دستکاری در پایگاه دادهها را فراهم میکنند (8).
1-1-4- شناسایی و حذف آسیب پذیریها
تلاشهای زیادی در جهت ساخت نرم افزارهایی با قابلیت کشف خودکار آسیب پذیریهای سیستمهای کامپیوتری انجام شده است. اگرچه نرم افزارهای موجود میتوانند در برخی موارد دید کلی خوبی را نسبت به آسیب پذیریهای سیستم فراهم کنند، اما نمیتوانند جایگزین بررسی انسانیروی آسیب پذیریها شوند. تکیه بر گزارشات اسکنرها، دید محدود همراه با تشخیصهای اشتباه زیاد، به همراه خواهد داشت. آسیب پذیریها در همهی نرم افزارهای اساسی مثل سیستم عاملها وجود دارند. گاهی اوقات تنها راه حل اساسی مقابله با آنها نصب بسته نرم افزاری اصلاح شده آن محصول است و در فاصله زمانی کشف تا ارائه بسته نرم افزاری با روشهایی مثل استفاده از دیوار آتش و یا نظارت مستقیم بر کنترلهای دسترسی توسط ناظران سیستمها، میتوان جلوی سوء استفاده از سیستم را گرفت. لازم به ذکر است که روشهای نظارت مستقیم بر سیستمها، هم از نظر مالی و هم از نظر نیروی انسانی بسیار هزینه بر هستند.
1-2- مفاهیم اولیهی مورد نیاز
1-2-1- متن کاوی
مشکلی که دنیای امروز با آن رو به رو است، کمبود یا نبود اطلاعات نیست بلکه کمبود دانشی است که از این اطلاعات میتوان حاصل کرد. میلیونها صفحهی وب، میلیونها کلمه در کتابخانههای دیجیتال و هزاران صفحه اطلاعات در هر شرکت، تنها بخشی از این منابع اطلاعاتی هستند. اما نمیتوان به طور مشخص منبعی از دانش را در این بین معرفی کرد. دانش حاصلی است که از نتیجه گیری و فکر و تحلیل بر روی اطلاعات به دست میآید. هدف داده کاوی مشخص کردن روابط میان دادههای موجود در پایگاه دادهها و استخراج دانش از میان آنها میباشد. زمانی که دادههای موجود ساخت یافته باشند استفاده از روشهای داده کاوی و کسب دانش از آنها ساده است. اما امروزه بخش زیادی از اطلاعات به صورت متن نگهداری میشود و متنها دادههایی غیر ساخت یافته هستند. یک فرد برای دریافت دانش از اطلاعات یک متن، بایستی ابتدا آنرا درک کند، تا بفهمد چه معانی و مفاهیمی در آن موجود است و چه ارتباطی میان مفاهیم وجود دارد. با این حال عصر تکنولوژی به دنبال خودکارسازی است، حتی اگر این کار “درک معنی متن” باشد (11).
متن کاوی تمام فعالیتهایی که به نوعی به دنبال کسب دانش از متن هستند را شامل می‌گردد. تحلیل دادههای متنی توسط روشهای یادگیری ماشین، بازیابی اطلاعات هوشمند، پردازش زبان طبیعی، همگی در دسته فعالیتهای متن کاوی قرار می‌گیرند. تصویر 1-1 مراحل متعارف متن کاوی را نشان میدهد. اولین گام در متن کاوی استفاده از روشهایی برای ساختارمند نمودن متنها است. متن از مجموعهای از کلمات و عبارات زبان طبیعی تشکیل شده است. عموماً روشهای متن کاوی ابتدا کلمات و عبارات، را از متن استخراج میکنند و سپس آنها را مورد پردازش قرار میدهند، برای مثال برخی کلمات مثل حروف اضافه و ضمایر حذف، و کلمات باقی مانده ریشهیابی میشوند. سپس مشخصات استخراج شده از متنها به روشهای مختلفی مقداردهی میشوند، از میان این روشها میتوان به مقداردهی دودویی (بیانگر ظاهر شدن/ نشدن کلمه در متن است)، فراوانی کلمه در متن، وزن TF-IDFاشاره کرد (12).در این تحقیق از روش وزندهی TF-IDFاستفاده شده است، که در قسمت بعد درباره این روش توضیح داده خواهد شد. با استفاده از مقادیر به دست آمده بردارهای ویژگی برای دادهها ساخته و از بین مجموعهی دادهها، دادههای آموزش و تست کلاس بندی کننده انتخاب میشوند. پس از آن یک روش کلاس بندی انتخاب میشود. کلاس بندی کننده با استفاده از دادههای آموزش، آموزش داده و با استفاده از دادههای تست ارزیابی میشود.

تصویر 1- 1: مراحل متعارف متن کاوی.
1-2-1-1- روش وزندهی فراوانی واژه – معکوس فراوانی سند9
به طور کلی اهمیت یک کلمه در مجموعه اسناد با دو شاخص مشخص می شود: یکی فراوانی نسبی رخداد آن کلمه در سند که فراوانی واژه10 نامیده میشود و دیگری تعداد اسناد دربرگیرنده آن کلمه که فراوانی سند11 نام دارد. بدیهی است اگر کلمه‌ای با فراوانی بالا در سندی رخ دهد، آن کلمه مهمتر از سایر کلمات در آن سند بوده و به عنوان کلمه کلیدی آن سند محسوب میشود. فراوانی سند بیانگر نسبت اسناد دربرگیرنده آن کلمه در بین تمامی اسناد است. اگر فراوانی رخداد یک کلمه در تمامی اسناد نسبت به سند موجود کمتر باشد، بیانگر این است که آن کلمه، سند موجود را بهتر از دیگر اسناد متمایز می‌کند (12). برای محاسبه آنها ابتدا فراوانی واژه iدر سند j (Fij) محاسبه می شود و با هنجار کردن آن در تمامی مجموعه، مقدار TFبه دست می‌آید یعنی:
TFij = F ij / max (Fij)
اساس IDFبر این است که واژه‌هایی که در اسناد زیادی ظاهر می‌شوند، کمتر بیانگر موضوع کلی هستند، به همین دلیل برای محاسبه آن، ابتدا تعداد اسنادی که در برگیرنده واژه i هستند (ni) و تعداد کل اسناد در مجموعه (N) مشخص شده، سپس IDFبه صورت زیر محاسبه میشود:
IDFi = log (N/ni)
در انتها، روش وزندهی TF-IDFبه صورت زیر محاسبه میشود:
TF-IDF = TFij * IDFi
این رابطه نشاندهنده حاصل‌ضرب TFدر IDFو بیانگر اهمیت یک کلمه در سند بوده و می‌توان بر اساس آن کلمه‌های موجود در اسناد را بر حسب میزان اهمیت آنها رتبه‌ بندی کرد (11). در این تحقیق از این روش به منظور استخراج مشخصات از متن گزارشهای آسیب پذیریها استفاده شده است.
1-2-2- کلاسبندی12 و پیش بینی
کلاسبندی فرآیند پیدا کردن یک مدل توصیف کننده و تمیز دهنده برای کلاسهای دادهها است. این مدل باید به شکلی باشد که بتوان از آن برای پیش بینی کلاس دادههایی که برچسب آنها نامشخص است، استفاده کرد. کلاسبندی کننده، بوسیله یک مجموعه داده آموزش که برای آنها برچسب کلاسها مشخص است، ساخته میشود. مدل به دست آمده به شکلهای مختلفی میتواند ارائه شود، برای مثال میتوان به قوانین کلاسبندی13، درختهای تصمیم14، فرمولهای ریاضی و شبکههای عصبی15 اشاره کرد (11).

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

ولی برای دانلود فایل اصلی با فرمت ورد حاوی تمامی قسمت ها با منابع کامل

اینجا کلیک کنید

در زمینه کلاسبندی تحقیقات زیادی انجام شده و روشهای زیادی برای ساخت و بهبود مدلها ارائه شده است. در ادامه این قسمت روشها و مفاهیمی که در زمینه کلاسبندی در این تحقیق استفاده شدهاند، شرح داده میشوند.
1-2-2-1- ماشین بردار پشتیبانی16
الگوریتم SVMاولیه در 1963 توسط وپنیک17ابداع شدو در سال 1995 توسط وپنیک و کورتس18برای حالت غیرخطی تعمیم داده شد. الگوریتم SVM،جزء الگوریتمهای تشخیص الگو دسته بندی میشود.از الگوریتم SVM، در هر جایی که نیاز به تشخیص الگو یا دسته بندی اشیاء در کلاسهای خاص باشد میتوان استفاده کرد. این روش با فرض اینکه دستهها به صورت خطی جدایی پذیر هستند، به دنبال اَبُرصفحهای با حداکثر حاشیه19 که بتواند دستهها را جدا کند، است. در مسائلی که دادهها به صورت خطی جداپذیر نباشند، دادهها به فضایی با ابعاد بیشتر نگاشت پیدا میکنند تا بتوان آنها را در این فضای جدید به صورت خطی جدا نمود. SVMدر حالت پایه یک روش کلاسبندی کننده دو کلاسه است، اما تحقیقات و پیاده سازیها مختلفی برروی آن برای حل مسائل دارای بیش از دو کلاس نیز انجام شده است (12).
1-2-2-2- بگینگ20
در این روش از ترکیب کلاسبندیهای پیشبینی شده توسط چند مدل استفاده میشود و نتیجه نهایی پیشبینی مدلها را یک رأی گیری ساده مشخص خواهد کرد. فرض کنید چندین مجموعه داده آموزش با اندازههای یکسان به صورت تصادفی از میان دادههای موجود انتخاب شدهاند و سپس با یک روش یکسان، کلاسبندی کنندههایی با این دادهها، آموزش داده شدهاند. آیا واقعاً این کلاسبندی کنندهها یکسان هستند؟ تجربه نشان داده است که نتایج پیشبینی حاصل از این کلاسبندی کنندهها در برخی موارد یکسان نیست. این تفاوت در حالتی که مجموعه دادههای آموزش کوچک است، بیشتر میباشد. هدف بگینگ این است که نتایج این کلاسبندی کنندههای مختلف را با هم ترکیب کند، به عبارت دیگر کلاسی که بیشترین رأی را در بین پیشبینیهای کلاسبندی کنندهها به دست آورد، به عنوان کلاس داده مورد نظر معرفی میشود. تجربه نشان داده است که نتایج حاصل از بگینگ عموماً نسبت به حالتی که فقط از یک کلاسبندی کننده استفاده شده، بهتر است (12).
1-2-2-3- جنگل تصادفی21
جنگل تصادفی مجموعهای متشکل از درختان تصمیم است. یک جنگل تصادفی معمولاً از دهها یا صدها درخت تصمیم ساخته شده است. در این روش برای تعیین نتایج نهایی پیشبینی از بگینگ (یا بوستینگ22 که بگینگ وزندار است) استفاده میشود. این روش بر خلاف حالت استفاده از یک درخت تصمیم حساسیت به نویز پایینی دارد و مدل پایدارتری را ارئه میدهد. این روش از نظر کارایی با کلاسبندی کنندههای غیرخطی مانند شبکههای عصبی مصنوعی و SVMدر رقابت است.
در این روش هر درخت تصمیم گیری با زیرمجموعهای از دادههای آموزش ساخته میشود؛ این زیرمجموعهها به صورت تصادفی همراه با جایگذاری انتخاب میشوند. واضح است که برخی از دادهها بیشتر از یک بار در این مجموعهها ظاهر میشوند و برخی از دادهها اصلاً انتخاب نمیشوند. به طور کلی تقریباً دو سوم دادهها در مجموعههای آموزش ظاهر میشوند و تقریباً یک سوم آنها انتخاب نمیشوند. سپس با استفاده از هر یک از مجموعه دادههای آموزش یک درخت تصمیم ساخته میشود و همانطور که پیش از این نیز اشاره شد، رأیگیری به روش بگینگ نتیجه پیشبینی در این روش را مشخص میکند (11).
1-2-2-4- اعتبار متقاطع23
الگوریتمهای دادهکاوی عموماً بخشی از دادههای موجود را برای آموزش و بخش باقی مانده دادهها را برای تست کلاسبندی کنندهها استفاده میکنند. در عمل معمولاً دو سوم دادهها برای آموزش و یک سوم آنها برای تست استفاده میشود. واضح است که در این روش امکان اینکه دادههای متعلق به یک کلاس اصلاً در مجموعه دادههای آموزش (یا تست) قرار نگیرند نیز وجود دارد. بنابراین ممکن است استفاده از چنین طبقه بندی کنندهای منجر به بهترین و صحیحترین نتیجه نشود.
اما در روش “اعتبار متقاطع” تعداد ثابتی دسته24 یا بخش بندی برای دادهها در نظر گرفته میشود. به عنوان مثال n برای تعداد بخشها انتخاب میشود. سپس دادهها به n بخش تقریباً مساوی تقسیم میشوند و در هر مرحله یک بخش برای تست و دیگر بخشها برای آموزش استفاده میشوند و این کار n بار تکرار خواهد شد. در نتیجه هر داده دقیقاً یک مرتبه به عنوان تست استفاده شده است. در نهایت میانگین خطای n مرحله به عنوان خطای کلی در نظر گرفته میشود.
عموماً از n=10 برای اعتبار متقاطع استفاده میشود. آزمایشاتی که روی حجم انبوهی از مجموعه دادهها با الگوریتمهای آموزش مختلف انجام شده نشان داده است که n=10 عددی مناسب برای دست یافتن به مقدار تقریبی بهترین خطا است، البته تعدادی مدارک نظری نیز برای مناسب بودن n=10 نیز وجود دارد. با توجه به انتخاب تصادفی دستهها، یک مرتبه انجام اعتبار متقاطع ممکن است، دقتی که کاملاً قابل اعتماد باشد را ارائه نکند، بنابراین بهتر است که انجام اعتبار متقاطع چندین بار تکرار شود (12).
1-2-2-5- اعتبار متقاطع نگهداشتن یکی25
روش “اعتبار متقاطع نگهداشتن یکی” مشابه اعتبار متقاطع معمولی است با این تفاوت که n در این روش برابر با تعداد نمونهها در مجموعه دادهها است. این روش ابتدا یک نمونه را جدا میکند، سپس آموزش با استفاده از همه نمونههای باقی مانده انجام میشود و پس از آن یک نمونه نگه داشته شده، به کلاسبندی کننده، برای تست داده میشود. این روش به دو دلیل مورد توجه قرار میگیرد: اول اینکه از بزرگترین مجموعه داده آموزش استفاده میشود و این مسئله شانس رسیدن به یک کلاسبندی کننده دقیق را افزایش میدهد. دوم اینکه این روش یک روش قطعی است. یعنی مجموعهها به صورت تصادفی انتخاب نمیشوند و با هر بار تکرار فقط یک نتیجه حاصل میشود. اما این روش هزینه محاسباتی زیادی دارد، زیرا برای هر داده یک بار فرآیند آموزش تکرار میشود و در عمل این روش فقط برای مجموعه دادههای کوچک قابل استفاده میباشد (12).
1-2-3- خوشهبندی26
یکی دیگر از اهداف داده‌کاوی پدیده‌ی خوشه‌بندی می‌باشد، که به فرآیند تقسیم مجموعه‌ای از داده‌ها (یا اشیاء) به زیر کلاس‌هایی با مفهوم خوشه‌ اشاره دارد. یک خوشه‌، یک‌ سری داده‌های مشابه می‌باشد که همانند یک گروه واحد رفتار می‌کنند. لازم به ذکر است، خوشه‌بندی تاحدودیمشابه کلاس‌بندی است، با این تفاوت که کلاس‌ها از پیش‌تعریف‌شده و معین نمی‌باشند و عمل گروه‌بندی داده‌ها بدون نظارت انجام می‌گیرد (11).
برخلاف کلاس‌بندی که داده‌ها را براساس کلاس‌ها تحلیل میکند،در خوشه‌بندی داده‌ها، بدون در نظر گرفتن برچسب‌های کلاس، تحلیل میشوند ومعمولاً برچسب کلاس‌ها درداده‌های آموزش مشخص نیست. خوشه‌بندی گاهی برای تعیین و تولید برچسبهایی برای دادهها بکار میرود. دادههای خوشه‌بندی‌ شده بر اساس اصل ماکزیمم شباهت بین اعضای هر کلاس و مینیمم شباهت بین کلاس‌های مختلف گروه‌بندی می‌شوند، یعنی خوشه‌ها به‌گونه‌ای تنظیم می‌شوند که اشیای داخل هر خوشه‌ بیشترین شباهت را با یکدیگر داشته باشند. هر خوشه‌ به عنوان یک کلاس می‌باشد، که قوانین هر کلاس، از خوشه متناظرش مشتق میشوند (12).
روشها و الگوریتمهای بسیاری برای خوشهبندی ارائه شده است. یکی از این روشها نگاشت خود سازمانده27 میباشد. در این تحقیق از روش نگاشت خود سازمانده نوخاسته28 استفاده شده است. در ادامه این بخش درباره SOMو ESOMتوضیح مختصری داده میشود.

1-2-3-1- نگاشت خود سازمانده و نگاشت خود سازمانده نوخاسته

نگاشت خود سازمانده یک نوع از شبکههای عصبی مصنوعی است که به صورت نظارت نشده آموزش میبیند و هدف آن ایجاد یک نمایش از فضای دادههای ورودی به فضایی با ابعاد کمتر (معمولاً دو بعد) است. که به این نمایش ابعاد پایین، نگاشت (یا نقشه) گفته میشود. نگاشت خود سازمانده با سایر شبکههای عصبی مصنوعی متفاوت است زیرا از یک تابع همسایگی به منظور حفظ خواص توپولوژیکی فضای ورودی استفاده میکند. این مدل برای اولین بار توسط یک پروفسور فنلاندی به نام کوهونن29 ارائه شد، به همین دلیل گاهی اوقات به نام نگاشت کوهونن شناخته میشود (13).
همانند بیشتر شبکههای عصبی مصنوعی SOMنیز در دو فاز آموزش و نگاشت اجرا میشود. در فاز آموزش، نگاشت (یا نقشه) با استفاده از نمونههای ورودی ساخته میشود. آموزش یک فرآیند رقابتی است که به نام تدریج بردار30 نیز شناخته میشود. در فاز نگاشت بردارهای ورودی جدید به طور خودکار کلاسبندی میشوند (13).
نگاشت خود سازمانده از اجزایی به نام نرون تشکیل میشود. هر نرون با یک بردار وزن با ابعادی، برابر با ابعاد داده ورودی و موقعیتش در فضای نگاشت مشخص میشود. نرونها معمولاً در یک فضای منظم به شکل یک شبکه شش ضلعی یا مستطیل شکل چیده میشوند. همان طور که پیش از این اشاره شد، نگاشت خود سازمانده توصیفی از فضای ورودی با ابعاد بالا به نگاشتی با ابعاد پایین است. SOM برای قرار دادن یک بردار از فضای داده ورودی در نگاشت، نرونی که نزدیکترین بردار وزن به فضای داده ورودی را دارد، پیدا میکند، پس از مشخص شدن نزدیکترین نرون، مقدار بردار وزن نرون، با توجه به داده ورودی، به روزرسانی میشود. در این روش استفاده از ماتریسU31 بسیار متعارف است. مقدار یک نرون در ماتریسU، میانگین فاصله بین نرون و نزدیکترین همسایههایش است. در یک شبکه مربعی 4 یا 8 همسایه و در یک شبکه شش ضلعی شش همسایه در نظر گرفته میشوند. از جمله توسعههای مفیدی که در این نوع شبکهها داده شده است، میتوان به شبکههای چنبرهای32 اشاره کرد. در این شبکهها لبههای مخالف به یکدیگر متصل شدهاند و از تعداد زیادی نرون استفاده میکنند (13).
نشان داده شده است که نگاشتهای خود سازمانده، با تعداد کمی نرون همانند روش k – میانگین33 رفتار میکنند، درحالیکه شبکههای خود سازمانده بزرگ دادهها را به روشی که مشخصات توپولوژیکی اصلی حفظ شوند، مرتب میکنند. این ویژگی باعث مطرح شدن شبکههای ESOMشد. تفاوت میان ESOMو SOMسنتی این است که ESOMاز تعداد بسیار زیادی (حداقل چند هزار) نرون استفاده میکند. بنابراین ESOMبرای ایجاد یک دید کلی از ساختار دادههای پراکنده34 و دارای ابعاد بالا مناسبتر است. در ESOMها ویژگی دادهها بهتر مشخص میشود، بنابراین از ESOMها که هزاران نرون دارند، میتوان برای خوشهبندی مناسبتر دادهها استفاده کرد (14).

1-2-4- انتخاب ویژگی35
انتخاب ویژگی، تکنیک انتخاب زیرمجموعهای از ویژگیهای مرتبط است، که هدف آن ساختن یک مدل یادگیری قویتر میباشد. در یادگیری ماشین و آمار از عناوینی مثل انتخاب متغییر، کاهش ویژگیها، انتخاب صفت یا انتخاب زیرمجموعهای از متغییرها به جای انتخاب ویژگی نیز استفاده میشود (12). انتخاب ویژگی با حذف ویژگیهای بیربط و کاهش ابعاد ویژگیهای دادهها به دلایل زیر باعث بهبود کارایی مدل یادگیری میشود:
کاهش اثرات منفی ابعاد بالا
افزایش قابلیت تعمیم
افزایش سرعت فرآیند آموزش
بهبود قابلیت تفسیر مدل
انتخاب ویژگی، با بیان اینکه کدام ویژگیها مهمتر هستند و ویژگیها چگونه با هم در ارتباط هستند، به افراد کمک میکند تا دید بهتری از دادههایشان پیدا کنند. برای انتخاب ویژگی، تاکنون الگوریتمهای زیادی ارائه شده است. هر یک از این الگوریتمها با توجه به نوع و حجم دادهها، الگوریتم آموزش مورد استفاده و اینکه یادگیری نظارت شده یا بدون نظارت است، کاربرد دارند و الگوریتم انتخاب ویژگی باید با در نظر گرفتن شرایط مسئله انتخاب شود. در این تحقیق برای انتخاب ویژگی در بخش کلاسبندی از الگوریتم SVM-RFE و برای بخش خوشه بندی الگوریتم PCAاستفاده شده است، که در ادامه این بخش درباره این الگوریتمها توضیح داده میشود.
1-2-4-1- ماشین بردار پشتیبانی – استخراج ویژگی بازگشتی36
SVM-RFE برای اولین بار در تجزیه و تحلیل دادههای میکرو آرایهها، بویژه برای پیدا کردن ژن بیماری استفاده شد. این روش ژنهای اضافی را حذف میکند و زیر مجموعهای از ژنهای بهتر را نگه میدارد. در این روش ویژگیها براساس یک معیار مرتبط با پشتیبانیشان از تابع جداکننده، حذف میشوند و SVMدر هر گام مجدد آموزش میبیند (15). SVM-RFEاز اندازه وزنها به عنوان معیار رتبهبندی استفاده میکند و دارای چهار مرحله زیر میباشد:
آموزش دادن SVMروی مجموعه دادههای آموزش
مرتب کردن مشخصات با استفاده از وزنهای به دست آمده از کلاسبندی کننده
حذف کردن مشخصات دارای کمترین وزن
تکرار فرآیند آموزش با ویژگیهای باقی مانده در دادههای آموزش
در این تحقیق از SVMبرای کلاسبندی دادهها و از SVM-RFE برای شناسایی بهترین مشخصات در بخش کلاسبندی استفاده شده است.
1-2-4-2- تحلیل مولفههای اصلی37
تحلیل مولفههای اصلی، یک مجموعه داده را به مجموعه داده جدیدی تبدیل میکند، به شکلی که در مجموعه داده جدید احتمالاً تعداد کمتری ویژگی (یا حداکثر برابر با همان تعداد ویژگیهای مجموعه داده اصلی) وجود دارد و این ویژگیهای جدید برخلاف دادههای اولیه که عموماً به هم وابستهاند، مستقل از هم هستند. در واقع این روش اطلاعات جدیدی از دادهها را بر اساس شباهتها و تفاوتهای میان دادههای اولیه به دست میآورد. از جمله مزایای این روش، این است که با تحلیل دادهها و به دست آوردن الگوی آنها میتوان به اطلاعات فشردهای دست یافت، که این اطلاعات اگرچه فشرده و کم حجمتر هستند اما تقریباً همه اطلاعات دادههای اصلی را حفظ کردهاند. تحلیل مولفههای اصلی بر اصول آماری متکی است و کاهش تعداد ویژگیها در این روش باعث شده است که به عنوان یکی از معمولترین روشهای استخراج ویژگی نظارت نشده مطرح شود (11). در ادامه با فرض اینکه خواننده با مفاهیم پایه آماری مورد استفاده در این روش آشنا است، توضیح مختصری درباره مراحل ششگانه این روش داده میشود (11):
جمع آوری دادهها
نوع ویژگیهای دادههای ورودی باید عددی باشد.
تنظیم دادهها
میانگین هر ویژگی از مقادیر همان ویژگی کم میشوند.
محاسبه ماتریس کواریانس
کواریانس دادهها محاسبه و ماتریس کواریانس دادهها ساخته میشود.
محاسبه مقادیر ویژه و بردارهای ویژه ماتریس کواریانس
بردارهای ویژه و مقادیر ویژه با استفاده از ماتریس کواریانس محاسبه میشوند.
انتخاب مولفهها و ساختن بردار ویژگی
بردارهای ویژه حاصل از مرحله قبل دارای ارزشهای متفاوتی هستند و با مرتب کردن آنها و حذف تعدادی از بردارهای کم اهمیت میتوان با از دست دادن اطلاعات کمی، دادهها را متراکم کرده و حجم آنها را کاهش داد.
بدست آوردن دادههای جدید
در آخرین مرحله با ضرب ترانهاده بردار ویژه به دست آمده در مرحله قبل، در ترانهاده دادههای نرمال شده دادههای جدید در ابعاد کمتر به دست میآیند.
1-3- هدف تحقیق
هدف از انجام این پژوهش ایجاد یک سیستم خودکار برای پیشگویی پاسخ سوالات زیر میباشد:
آیا مهاجمان میتوانند به سیستم نرم افزاری، که دارای مشخصهی آسیب پذیری خاصی میباشد، نفوذ کنند؟
چه زمانی مهاجمان به سیستم آسیب پذیر نفوذ خواهند کرد؟
از چه زمانی آسیب پذیری سیستم توسط مهاجمان کشف شده و مورد سوء استفاده قرار گرفته است؟
چه فاصله زمانی بین کشف آسیب پذیری، تا ارائه بسته نرم افزاری اصلاح شده وجود دارد؟
پاسخ سوالات فوق برای سازندگان و کاربران سیستمهای نرم افزاری بسیار مهم است. اطلاعات مربوط به آسیب پذیری و نفوذ به سیستمها، در پایگاه دادههای عمومی و تخصصی مختلفی ذخیره شده است. بخش قابل توجهی از دادههای ذخیره شده در این پایگاه دادهها متن گزارشات کاربران، ناظران یا سازندگان نرم افزارها است. این تحقیق، به دنبال ارائه راه حلی از میان متنها و سایر مشخصات آسیب پذیریها برای پیشگویی پاسخ سوالات فوق با استفاده از ابزارهای متن کاوی است.
اگرچه تعداد گزارشات آسیب پذیریها بسیار زیاد است، اما علت وقوع و تنوع ساختار در آنها چندان زیاد نیست. یک دسته بندی مناسب برای آسیب پذیریها، در ساده کردن فهم آنها و ارائه راه حل برای آسیب پذیریها میتواند بسیار موثر باشد. علاوه بر اهداف فوق، این تحقیق با استفاده از روشهای خوشهبندی، به دنبال ارائه یک دسته بندی مناسب برای آسیب پذیریها نیز میباشد.
فصل دوم
مروری بر تحقیقات پیشین
در زمینه آسیب پذیریها و روی دادههای OSVBDو CVEتاکنون مطالعات زیادی انجام شده است. موضوعات این مطالعات بسیار متنوع هستند برای مثال میتوان به نقش افراد و فرآیندهای مختلف بر آسیب پذیریها، روشهای ارزیابی و رده بندی آسیب پذیریها، دسته بندی آسیب پذیریها، پیش بینیهای امنیتی با استفاده از گزارشهای آسیب پذیریها، و تشخیص آسیب پذیریها با استفاده از سورس کد نرم افزارها اشاره کرد. در این فصل مروری کوتاه بر برخی از مهمترین این مطالعات انجام میشود.
2-1- نقش افراد و فرآیندهای مختلف بر آسیب پذیریها
عوامل بسیاری بر آسیب پذیریها تاثیر میگذارند، واکنش افراد نسبت به آسیب پذیری بر وقوع رویدادها و برعکس، ترتیب وقوع رویدادها بر واکنش افراد تاثیر مستقیم دارد. مطالعات زیادی تاکنون در زمینه بررسی تاثیر افراد و فرآیندها بر آسیب پذیریها انجام شده است برای مثال (16) به مدل کردن یک اکوسیستم امنیتی پرداخته است. محققان این مقاله هدف خود را اینگونه بیان میکنند: “هدف این مقاله ساخت معیارهایی است که به دریافت فهمی بهتر از حالت و تکامل محیط امنیتی امروزه با یک دید کلی کمک میکنند.”
دادههای تحقیق (16) 27000 گزارش آسیب پذیری هستند که در مدت 12 سال (1996 تا 2008) در منابع عمومی اطلاعات آسیب پذیری ثبت شدهاند. یکی از یافتههای جالبی که از تحلیل اولیه این دادهها به دست آمده این است که در میان سازندگان مختلف سیستمها، مایکروسافت در سالهای 2002 تا 2007، رتبه اول را در تعداد آسیب پذیریها داشته است. البته نمیتوان این نکته را به عنوان یک ویژگی منفی بزرگ برای مایکروسافت برشمرد و برای تحلیلی عادلانهتر باید بزرگی این شرکت و تنوع محصولات آن را نیز در نظر داشت.
در (16) رویدادهای زیر برای هر آسیب پذیری تعریف شده است: ایجاد38، کشف39، در دسترس بودن برای بهره کشی40، افشاء41، در دسترس قرار گرفتن بسته اصلاح شده42، و نصب بسته43؛ که در تصویر 2-1 مشخص شدهاند. شایان ذکر است که ترتیب وقوع رویدادها تاحدودی به نحوه کشف و سیاستهای سازمان نیز وابسته است.