آموزش زبان با داستان انگلیسی
 
پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی

پایان نامه­ کارشناسی ارشد در رشته­ مهندسی کامپیوتر- نرم ­افزار

عنوان:پیش بینی بهره کشی و خوشه بندی آسیب پذیری­ ها بوسیله­ متن کاوی

تعداد صفحات : 111

 

چکیده:

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

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

در زمینه پیش بینی بهره کشی با استفاده از متن کاوی، تاکنون فقط یک تحقیق انجام شده است. این تحقیق در KDD2010، با عنوان “فراتر از اکتشافی: آموزش برای، کلاس بندی آسیب پذیری و پیش بینی بهره کشی” ارائه شده است. این تحقیق به سوالات زیر، با استفاده از متن کاوی پاسخ داده است: آیا از آسیب پذیری بهره کشی خواهد شد؟ چه زمانی از آسیب پذیری موجود بهره کشی خواهد شد؟ این مقاله در مقایسه با CVSS(که یکی از متریک­های معروف آسیب پذیری است) به نتایج خوبی رسیده است. در این پژوهش به سوالات فوق و به سوالات جدید زیر دقت بالایی پاسخ داده شده است:

اگر سیستمی مورد بهره کشی قرار گرفته، چه زمانی این بهره کشی آغاز شده است؟ (دقت پاسخ­ها بین 94.5-84%)

اگر سیستمی آسیب پذیر است، چه زمانی بسته اصلاح شده آن از سوی سازندگان ارائه خواهد شد؟ (دقت پاسخ­ها بین 91-68%)

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

در این پژوهش از دو پایگاه داده معروف آسیب پذیری­ها (OSVDB و CVE)، و اطلاعات تاریخ آسیب پذیری­ها که استفان فری در اختیارمان قرار داد، استفاده شده است. برای پیش بینی بهره کشی از کلاس بندی کننده ­های ماشین بردار پشتیبانی و جنگل تصادفی، و برای انجام خوشه بندی از روش نگاشت خود سازمانده نوخاسته استفاده شده است.

فصل اول: مقدمه

1-1- آسیب پذیری

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

1-1-1- تعریف آسیب پذیری

آسیب پذیری از جمله مفاهیمی است که منابع مختلف تعاریف متفاوتی را برایش ارائه داده­اند. از جمله این تعاریف می­توان به موارد زیر اشاره کرد:

ISO 27005: ضعف یک دارایی یا گروهی از دارایی­ها که می­تواند توسط فرد یا گروهی از افراد مورد بهره کشی قرار گیرد . در این تعریف دارایی به معنای هر چیزی که برای سازمان ارزشی داشته باشد، است، برای مثال منابع اطلاعاتی مورد حمایت سازمان.

IETF RFC 2828: یک عیب یا ضعف در طراحی، پیاده سازی، عملکرد یا مدیریت سیستم، که می­تواند باعث بهره کشی، در جهت نقض سیاست امنیتی سیستم شود .

کمیته ملی سیستم­های امنیتی ایالات متحده آمریکا، در دستورالعمل CNSSشماره 4009، در تاریخ 26 آوریل 2010، واژه نامه تضمین اطلاعات ملی: آسیب پذیری ضعف در یک IS، روش­های امنیتی سیستم، کنترل­های داخلی یا پیاده سازی است، که می­تواند منجر به بهره کشی شود .

ENISA: وجود یک ضعف طراحی یا خطای پیاده سازی که بتواند منجر به رویداد غیر منتظره نامطلوبی شود، که این رویداد امنیت سیستم کامپیوتر، شبکه، برنامه یا پروتکل را به خطر اندازد .

گروه باز: حالتی که قدرت مهاجم بیش از قدرت مقاومت در برابر آن باشد .

تحلیل عاملی از خطر اطلاعات(FAIR): احتمال اینکه یک دارایی قادر به مقاومت در برابر عوامل خطر نباشد .

امنیت داده و کامپیوتر، فرهنگ لغات مفاهیم و لغات استاندارد، نویسندگان دنیس لانگلی و مایکل شین، استاکتون پرس، ISBN 0-935859-17-9:

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

2-1-1- کلاس بندی آسیب پذیری ها

آسیب پذیری­ها، براساس نوع دارایی به دسته­های زیر تقسیم می­شوند :

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

3-1-1- علت­های ایجاد آسیب پذیری­ها

 برخی از منابع و علت­ های ایجاد آسیب پذیری­ ها عبارتند از:

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

4-1-1- شناسایی و حذف آسیب پذیری­ها

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

2-1- مفاهیم اولیه­ مورد نیاز

1-2-1- متن کاوی

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

متن کاوی تمام فعالیت­ هایی که به نوعی به دنبال کسب دانش از متن هستند را شامل می‌گردد. تحلیل داده ­های متنی توسط روش­های یادگیری ماشین، بازیابی اطلاعات هوشمند، پردازش زبان طبیعی، همگی در دسته فعالیت­های متن کاوی قرار می‌گیرند. تصویر 1-1 مراحل متعارف متن کاوی را نشان می­دهد. اولین گام در متن کاوی استفاده از روش­هایی برای ساختارمند نمودن متن­ها است. متن از مجموعه­ای از کلمات و عبارات زبان طبیعی تشکیل شده است. عموماً روش­های متن کاوی ابتدا کلمات و عبارات، را از متن استخراج می­کنند و سپس آن­ها را مورد پردازش قرار می­دهند، برای مثال برخی کلمات مثل حروف اضافه و ضمایر حذف، و کلمات باقی مانده ریشه­ یابی می­شوند. سپس مشخصات استخراج شده از متن­ها به روش­های مختلفی مقداردهی می­شوند، از میان این روش­ها می­توان به مقداردهی دودویی (بیان­گر ظاهر شدن/ نشدن کلمه در متن است)، فراوانی کلمه در متن، وزن TF-IDFاشاره کرد .در این تحقیق از روش وزن­دهی TF-IDFاستفاده شده است، که در قسمت بعد درباره این روش توضیح داده خواهد شد. با استفاده از مقادیر به دست آمده بردارهای ویژگی برای داده­ها ساخته و از بین مجموعه­ی داده­ ها، داده­ های آموزش و تست کلاس بندی کننده انتخاب می­شوند. پس از آن یک روش کلاس بندی انتخاب می­شود. کلاس بندی کننده با استفاده از داده­ های آموزش، آموزش داده و با استفاده از داده ­های تست ارزیابی می­شود.



ادامه مطلب...