پایان نامه ارشد مهندسی نرم افزار: پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها بوسیله متن کاوی |
اگر سیستمی آسیب پذیر است، چه زمانی بسته اصلاح شده آن از سوی سازندگان ارائه خواهد شد؟ (دقت پاسخها بین 91-68%)
در زمینه خوشه بندی آسیب پذیریها، تاکنون تحقیقات زیادی انجام شده است. پایگاه داده OSVDB دارای دسته بندیهای مختلفی برای آسیب پذیریها میباشد، اما هیچ یک از این دستهها بر اساس توصیف آسیب پذیریها نیست. در این تحقیق آسیب پذیریها با بهره گرفتن از توصیفهایشان خوشه بندی شده اند، که دستههای حاصل عبارتند از: سرریز بافر، رد سرویس، دستکاری داده، کنترل از راه دور، پیکربندی نامناسب، شکاف در رمز عبور، دسترسی غیر مجاز به اطلاعات، و دسترسی غیر مجاز به سرویس. برای انتساب آسیب پذیریها به دستههای مناسب به صورت دستی به تجربه نیروی انسانی نیاز است و انجام این کار بسیار ملال آور میباشد. دسته بندی ارائه شده در این پژوهش، امکان ساخت نرم افزاری که بتواند آسیب پذیریها را به طور خودکار به دستههای مناسب نسبت دهد، را فراهم می کند.
در این پژوهش از دو پایگاه داده معروف آسیب پذیریها (OSVDB و CVE)، و اطلاعات تاریخ آسیب پذیریها که استفان فری در اختیارمان قرار داد، استفاده شده است. برای پیش بینی بهره کشی از کلاس بندی کننده های ماشین بردار پشتیبانی و جنگل تصادفی، و برای انجام خوشه بندی از روش نگاشت خود سازمانده نوخاسته استفاده شده است.
فصل اول: مقدمه
1-1- آسیب پذیری
در مباحث امنیت کامپیوتر، یک آسیب پذیری، ضعفی است که برای مهاجم امکان سوء استفاده از اطلاعات یک سیستم را فراهم می کند. سالانه هزاران آسیب پذیری کشف و گزارش میشوند و میلیونها دلار در سرتاسر دنیا صرف مقابله با آسیب پذیریها میگردد. برای بهره کشی از آسیب پذیری یک سیستم عموماً به سه عامل نیاز است: حساسیت یا نقصی در سیستم، دسترسی مهاجم به نقص و توانایی مهاجم برای بهره کشی از نقص (1).
1-1-1- تعریف آسیب پذیری
آسیب پذیری از جمله مفاهیمی است که منابع مختلف تعاریف متفاوتی را برایش ارائه دادهاند. از جمله این تعاریف میتوان به موارد زیر اشاره کرد:
ISO 27005: ضعف یک دارایی یا گروهی از دارایی ها که می تواند توسط فرد یا گروهی از افراد مورد بهره کشی قرار گیرد (2). در این تعریف دارایی به معنای هر چیزی که برای سازمان ارزشی داشته باشد، است، برای مثال منابع اطلاعاتی مورد حمایت سازمان.
IETF RFC 2828: یک عیب یا ضعف در طراحی، پیاده سازی، عملکرد یا مدیریت سیستم، که می تواند باعث بهره کشی، در جهت نقض سیاست امنیتی سیستم شود (3).
کمیته ملی سیستمهای امنیتی ایالات متحده آمریکا[1]، در دستورالعمل CNSSشماره 4009، در تاریخ 26 آوریل 2010، واژه نامه تضمین اطلاعات ملی: آسیب پذیری ضعف در یک IS، روشهای امنیتی سیستم، کنترلهای داخلی یا پیاده سازی است، که می تواند منجر به بهره کشی شود (4).
ENISA: وجود یک ضعف طراحی یا خطای پیاده سازی که بتواند منجر به رویداد غیر منتظره نامطلوبی شود، که این رویداد امنیت سیستم کامپیوتر، شبکه، برنامه یا پروتکل را به خطر اندازد (5).
گروه باز[2]: حالتی که قدرت مهاجم بیش از قدرت مقاومت در برابر آن باشد (6).
تحلیل عاملی از خطر اطلاعات[3](FAIR): احتمال اینکه یک دارایی قادر به مقاومت در برابر عوامل خطر نباشد (7).
امنیت داده و کامپیوتر، فرهنگ لغات مفاهیم و لغات استاندارد، نویسندگان دنیس لانگلی[4] و مایکل شین[5]، استاکتون پرس[6]، ISBN 0-935859-17-9:
- در امنیت کامپیوتر، ضعف کارکرد امنیتی سیستمهای خودکار شده، کنترلهای ناظران، کنترلهای اینترنت و غیره، که بتوانند بوسیله یک مهاجم با دسترسی غیر مجاز به اطلاعات، پردازش اطلاعات را مختل کنند.
- در امنیت کامپیوتر، یک ضعف در لایه فیزیکی، سازمان، کارکرد، کارکنان، مدیریت، سرپرستی، سخت افزار یا نرم افزار که امکان بهره کشی از آنها با هدف آسیب رساندن به سیستم یا فعالیت وجود داشته باشد.
- در امنیت کامپیوتر، هر ضعف یا نقص موجود در یک سیستم، حمله، رویداد مضر یا فرصت دسترسی برای یک عامل تهدید کننده، که امکان تهدید را برای عامل فراهم کند، را آسیب پذیری گویند.
2-1-1- کلاس بندی آسیب پذیری ها
آسیب پذیریها، براساس نوع دارایی به دستههای زیر تقسیم میشوند (2):
- سخت افزار، برای مثال: حساسیت به رطوبت، حساسیت به گرد و غبار، استعداد ابتلا به ذخیره سازی محافظت نشده.
- نرم افزار، برای مثال: تست ناکافی، فقدان پیگیری.
- شبکه، برای مثال: خطوط ارتباطی محافظت نشده، معماری شبکه ناامن.
- کارکنان، برای مثال: روند جذب ناکافی، آگاهیهای امنیتی ناکافی.
- مکان، برای مثال: منطقه مستعد سیل،منبع برق غیر قابل اعتماد.
- سازمانی، برای مثال: عدم پیگیری منظم، عدم تداوم برنامهها.
3-1-1- علتهای ایجاد آسیب پذیریها
برخی از منابع و علتهای ایجاد آسیب پذیریها عبارتند از:
- پیچیدگی سیستم: احتمال وجود نقص و نقاط دسترسی ناخواسته در سیستمهای بزرگ پیچیده، بیشتر است (8).
- متعارف بودن سیستم: استفاده از کدها، نرم افزارها، سیستم عاملها یا سخت افزارهای معمول و معروف، احتمال اینکه یک مهاجم بتواند به دانش و ابزار، جهت بهره کشی از نقص موجود دسترسی پیدا کند، را افزایش میدهد (9).
- اتصال: اتصالات فیزیکی، امتیازات[1]، پورتها، پروتکلها و سرویسهای بیشتر و افزایش مدت زمان هر یک از آنها، دسترسی پذیری به آسیب پذیریها را افزایش میدهد (7).
- نقص در مدیریت پسوردها: کاربران کامپیوتر از پسوردهای ضعیفی که با تلاش اندکی کشف میشوند، استفاده می کنند یا اینکه آنها را در برخی برنامهها ذخیره می کنند، و این پسوردها بین بسیاری از برنامهها و صفحات وب مشترک است (8).
- نقصهای طراحی در سیستم عاملهای اصلی: طراحان سیستم عاملها، عموماً سیاستهایی که کمتر کاربر/مدیر سیستم را درگیر کنند را برمیگزینند. برای مثال سیستم عاملها، سیاستهایی مثل پیش فرضهای اعطای مجوز به هر برنامه و دسترسی کامل کاربران به سیستم را دارند (8).این نقصهای سیستم عاملها، به ویروسها و بدافزارها، اجازه اجرای دستوراتی از طرف مدیر را میدهد (1).
- مرور وبسایتهای اینترنت: برخی وب سایتهای اینترنتی دارای جاسوسها یا تبلیغات خطرناکی هستند، که میتوانند به صورت خودکار روی سیستمهای کامپیوتری نصب شوند. بعد از بازدید از این وب سایتها سیستمها آلوده میشوند، اطلاعات شخصی جمع آوری شده و برای شخص ثالث فرستاده می شود (10).
- اشکلات نرم افزاری: اشکلات قابل بهره کشی در بسیاری برنامه های نرم افزاری وجود دارد. اشکلات نرم افزاری ممکن است به مهاجمان اجازه سوء استفاده از برنامه را بدهند (8).
- ورودی های کاربر کنترل نشده: برنامهها فرض می کنندکه همهی ورودی های کاربر امن است. برنامه هایی که ورودی های کاربر را بررسی نمی کنند، در واقع امکان اجرای مستقیم دستورات ناخواسته و دستکاری در پایگاه داده ها را فراهم می کنند (8).
4-1-1- شناسایی و حذف آسیب پذیریها
تلاش های زیادی در جهت ساخت نرم افزارهایی با قابلیت کشف خودکار آسیب پذیریهای سیستمهای کامپیوتری انجام شده است. اگرچه نرم افزارهای موجود میتوانند در برخی موارد دید کلی خوبی را نسبت به آسیب پذیریهای سیستم فراهم کنند، اما نمیتوانند جایگزین بررسی انسانیروی آسیب
پذیریها شوند. تکیه بر گزارشات اسکنرها، دید محدود همراه با تشخیصهای اشتباه زیاد، به همراه خواهد داشت. آسیب پذیریها در همهی نرم افزارهای اساسی مثل سیستم عاملها وجود دارند. گاهی اوقات تنها راه حل اساسی مقابله با آنها نصب بسته نرم افزاری اصلاح شده آن محصول است و در فاصله زمانی کشف تا ارائه بسته نرم افزاری با روشهایی مثل استفاده از دیوار آتش و یا نظارت مستقیم بر کنترلهای دسترسی توسط ناظران سیستمها، میتوان جلوی سوء استفاده از سیستم را گرفت. لازم به ذکر است که روشهای نظارت مستقیم بر سیستمها، هم از نظر مالی و هم از نظر نیروی انسانی بسیار هزینه بر هستند.
2-1- مفاهیم اولیه مورد نیاز
1-2-1- متن کاوی
مشکلی که دنیای امروز با آن رو به رو است، كمبود یا نبود اطلاعات نیست بلکه کمبود دانشی است که از این اطلاعات میتوان حاصل کرد. میلیونها صفحه وب، میلیونها کلمه در کتابخانه های دیجیتال و هزاران صفحه اطلاعات در هر شرکت، تنها بخشی از این منابع اطلاعاتی هستند. اما نمیتوان به طور مشخص منبعی از دانش را در این بین معرفی کرد. دانش حاصلی است که از نتیجه گیری و فکر و تحلیل بر روی اطلاعات به دست میآید. هدف داده کاوی مشخص کردن روابط میان داده های موجود در پایگاه داده ها و استخراج دانش از میان آنها میباشد. زمانی که داده های موجود ساخت یافته باشند استفاده از روشهای داده کاوی و کسب دانش از آنها ساده است. اما امروزه بخش زیادی از اطلاعات به صورت متن نگهداری می شود و متنها داده هایی غیر ساخت یافته هستند. یک فرد برای دریافت دانش از اطلاعات یک متن، بایستی ابتدا آنرا درک کند، تا بفهمد چه معانی و مفاهیمی در آن موجود است و چه ارتباطی میان مفاهیم وجود دارد. با این حال عصر تکنولوژی به دنبال خودکارسازی است، حتی اگر این کار “درک معنی متن” باشد (11).
متن كاوی تمام فعالیتهایی كه به نوعی به دنبال كسب دانش از متن هستند را شامل میگردد. تحلیل داده های متنی توسط روشهای یادگیری ماشین، بازیابی اطلاعات هوشمند، پردازش زبان طبیعی، همگی در دسته فعالیتهای متن کاوی قرار میگیرند. تصویر 1-1 مراحل متعارف متن کاوی را نشان میدهد. اولین گام در متن کاوی استفاده از روشهایی برای ساختارمند نمودن متنها است. متن از مجموعه ای از کلمات و عبارات زبان طبیعی تشکیل شده است. عموماً روشهای متن کاوی ابتدا کلمات و عبارات، را از متن استخراج می کنند و سپس آنها را مورد پردازش قرار میدهند، برای مثال برخی کلمات مثل حروف اضافه و ضمایر حذف، و کلمات باقی مانده ریشهیابی میشوند. سپس مشخصات استخراج شده از متنها به روشهای مختلفی مقداردهی میشوند، از میان این روشها میتوان به مقداردهی دودویی (بیانگر ظاهر شدن/ نشدن کلمه در متن است)، فراوانی کلمه در متن، وزن TF-IDFاشاره کرد (12).در این تحقیق از روش وزندهی TF-IDFاستفاده شده است، که در قسمت بعد درباره این روش توضیح داده خواهد شد. با بهره گرفتن از مقادیر به دست آمده بردارهای ویژگی برای داده ها ساخته و از بین مجموعهی داده ها، داده های آموزش و تست کلاس بندی کننده انتخاب میشوند. پس از آن یک روش کلاس بندی انتخاب می شود. کلاس بندی کننده با بهره گرفتن از داده های آموزش، آموزش داده و با بهره گرفتن از داده های تست ارزیابی می شود.
[1]Privileges
[1] The committee on National Security Systems of United States of America
[2] Open Group
[3] Factor Analysis of Information Risk
[4] Dennis Longley
[5] Michael Shain
[6] Stockton Press
ممکن است هنگام انتقال از فایل اصلی به داخل سایت بعضی متون به هم بریزد یا بعضی نمادها و اشکال درج نشود ولی در فایل دانلودی همه چیز مرتب و کامل و با فرمت ورد موجود است
متن کامل را می توانید دانلود نمائید
فرم در حال بارگذاری ...
[چهارشنبه 1399-10-03] [ 12:18:00 ب.ظ ]
|