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

word 8 MB 31053 105
1390 کارشناسی ارشد مهندسی کامپیوتر
قیمت: ۱۳,۶۵۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • پایان نامه­ی کارشناسی ارشد در رشته­ی مهندسی کامپیوتر- نرم­افزار

    چکیده

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

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

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

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

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

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

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

    فصل اول

    مقدمه

     

     

    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-2-1-1- روش وزن­دهی فراوانی واژه – معکوس فراوانی سند[1]

     

    به طور کلی اهمیت یک کلمه در مجموعه اسناد با دو شاخص مشخص می شود: یکی فراوانی نسبی رخداد آن کلمه در سند که فراوانی واژه[2] نامیده می­شود و دیگری تعداد اسناد دربرگیرنده آن کلمه که فراوانی سند[3] نام دارد. بدیهی است اگر کلمه‌ای با فراوانی بالا در سندی رخ دهد، آن کلمه مهم­تر از سایر کلمات در آن سند بوده و به عنوان کلمه کلیدی آن سند محسوب می­شود. فراوانی سند بیانگر نسبت اسناد دربرگیرنده آن کلمه در بین تمامی اسناد است. اگر فراوانی رخداد یک کلمه در تمامی اسناد نسبت به سند موجود کمتر باشد، بیانگر این است که آن کلمه، سند موجود را بهتر از دیگر اسناد متمایز می‌کند (12). برای محاسبه آن­ها ابتدا فراوانی واژه iدر سند j (Fij 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- کلاس­بندی[4] و پیش بینی

     

    کلاس­بندی فرآیند پیدا کردن یک مدل توصیف کننده و تمیز دهنده برای کلاس­های داده­ها است. این مدل باید به شکلی باشد که بتوان از آن برای پیش بینی کلاس داده­هایی که برچسب آن­ها نامشخص است، استفاده کرد. کلاس­بندی کننده، بوسیله یک مجموعه داده آموزش که برای آن­ها برچسب کلاس­ها مشخص است، ساخته می­شود. مدل به دست آمده به شکل­های مختلفی می­تواند ارائه شود، برای مثال می­توان به قوانین کلاس­بندی[5]، درخت­های تصمیم[6]، فرمول­های ریاضی و شبکه­های عصبی[7] اشاره کرد (11).

    در زمینه کلاس­بندی تحقیقات زیادی انجام شده و روش­های زیادی برای ساخت و بهبود مدل­ها ارائه شده است. در ادامه این قسمت روش­ها و مفاهیمی که در زمینه کلاس­بندی در این تحقیق استفاده شده­اند، شرح داده می­شوند.

     

    1-2-2-1- ماشین بردار پشتیبانی[8]

     

    الگوریتم SVMاولیه در 1963 توسط وپنیک[9]ابداع شدو در سال 1995 توسط وپنیک و کورتس[10]برای حالت غیرخطی تعمیم داده شد. الگوریتم SVM،جزء الگوریتم­ های تشخیص الگو دسته بندی می­شود.از الگوریتم SVM، در هر جایی که نیاز به تشخیص الگو یا دسته بندی اشیاء در کلاس­های خاص باشد می­توان استفاده کرد. این روش با فرض اینکه دسته­ها به صورت خطی جدایی پذیر هستند، به دنبال اَبُرصفحه­ای با حداکثر حاشیه[11] که بتواند دسته ­ها را جدا کند، است. در مسائلی که داده­ها به صورت خطی جداپذیر نباشند، داده­ها به فضایی با ابعاد بیشتر نگاشت پیدا می­کنند تا بتوان آن­ها را در این فضای جدید به صورت خطی جدا نمود. SVMدر حالت پایه یک روش کلاس­بندی کننده دو کلاسه است، اما تحقیقات و پیاده سازی  ­ها مختلفی برروی آن برای حل مسائل دارای بیش از دو کلاس نیز انجام شده است (12).

     

    1-2-2-2- بگینگ[12]

     

    در این روش از ترکیب کلاس­بندی­های پیش­بینی شده توسط چند مدل استفاده می­شود و نتیجه نهایی پیش­بینی مدل­ها را یک رأی گیری ساده مشخص خواهد کرد. فرض کنید چندین مجموعه داده آموزش با اندازه­های یکسان به صورت تصادفی از میان داده­های موجود انتخاب شده­اند و سپس با یک روش یکسان، کلاس­بندی کننده­هایی با این داده­ها، آموزش داده­ شده­اند. آیا واقعاً این کلاس­بندی کننده­ها یکسان هستند؟ تجربه نشان داده است که نتایج پیش­بینی حاصل از این کلاس­بندی کننده­ها در برخی موارد یکسان نیست. این تفاوت در حالتی که مجموعه داده­های آموزش کوچک است، بیشتر می­باشد. هدف بگینگ این است که نتایج این کلاس­بندی کننده­های مختلف را با هم ترکیب کند، به عبارت دیگر کلاسی که بیشترین رأی را در بین پیش­بینی­ های کلاس­بندی کننده­ها به دست آورد، به عنوان کلاس داده مورد نظر معرفی می­شود. تجربه نشان داده است که نتایج حاصل از بگینگ عموماً نسبت به حالتی که فقط از یک کلاس­بندی کننده استفاده شده، بهتر است (12).

     

    1-2-2-3- جنگل تصادفی[13]

     

    جنگل تصادفی مجموع ه­ای متشکل از درختان تصمیم است. یک جنگل­ تصادفی معمولاً از ده­ها یا صدها درخت تصمیم ساخته شده است. در این روش برای تعیین نتایج نهایی پیش­بینی از بگینگ (یا بوستینگ[14] که بگینگ وزندار است) استفاده می­شود. این روش بر خلاف حالت استفاده از یک درخت تصمیم حساسیت به نویز پایینی دارد و مدل پایدارتری را ارئه می­دهد. این روش از نظر کارایی با کلاس­بندی کننده­های غیرخطی مانند شبکه­های عصبی مصنوعی و SVMدر رقابت است.

    در این روش هر درخت تصمیم گیری با زیرمجموعه­ای از داده­های آموزش ساخته می­شود؛ این زیرمجموعه­ها به صورت تصادفی همراه با جایگذاری انتخاب می­شوند. واضح است که برخی از داده­ها بیشتر از یک بار در این مجموعه­ها ظاهر می­شوند و برخی از داده­ها اصلاً انتخاب نمی­شوند. به طور کلی تقریباً دو سوم داده­ها در مجموعه­های آموزش ظاهر می­شوند و تقریباً یک سوم آن­ها انتخاب نمی­شوند. سپس با استفاده از هر یک از مجموعه داده­های آموزش یک درخت تصمیم ساخته می­شود و همانطور که پیش از این نیز اشاره شد، رأی­گیری به روش بگینگ نتیجه پیش­بینی در این روش را مشخص می­کند (11).

     

    1-2-2-4- اعتبار متقاطع[15]

     

    الگوریتم­ های داده­کاوی عموماً بخشی از داده­های موجود را برای آموزش و بخش باقی مانده داده­ها را برای تست کلاس­بندی کننده­ها استفاده می­کنند. در عمل معمولاً دو سوم داده­ها برای آموزش و یک سوم آن­ها برای تست استفاده می­شود. واضح است که در این روش امکان اینکه داده­های متعلق به یک کلاس اصلاً در مجموعه داده­های آموزش (یا تست) قرار نگیرند نیز وجود دارد. بنابراین ممکن است استفاده از چنین طبقه بندی کننده­ای منجر به بهترین و صحیح­ترین نتیجه نشود.

    اما در روش "اعتبار متقاطع" تعداد ثابتی دسته[16] یا بخش بندی برای داده­ها در نظر گرفته می­شود. به عنوان مثال n برای تعداد بخش­ها انتخاب می­شود. سپس داده­ها به n بخش تقریباً مساوی تقسیم می­شوند و در هر مرحله یک بخش برای تست و دیگر بخش­ها برای آموزش استفاده می­شوند و این کار n بار تکرار خواهد شد. در نتیجه هر داده دقیقاً یک مرتبه به عنوان تست استفاده شده است. در نهایت میانگین خطای n مرحله به عنوان خطای کلی در نظر گرفته می­شود.

    عموماً از n=10 برای اعتبار متقاطع استفاده می­شود. آزمایشاتی که روی حجم انبوهی از مجموعه داده­ها با الگوریتم­های آموزش مختلف انجام شده نشان داده است که n=10 عددی مناسب برای دست یافتن به مقدار تقریبی بهترین خطا است، البته تعدادی مدارک نظری نیز برای مناسب بودن n=10 نیز وجود دارد. با توجه به انتخاب تصادفی دسته­ها، یک مرتبه انجام اعتبار متقاطع ممکن است، دقتی که کاملاً قابل اعتماد باشد را ارائه نکند، بنابراین بهتر است که انجام اعتبار متقاطع چندین بار تکرار شود (12).

     

    1-2-2-5- اعتبار متقاطع نگه­داشتن یکی[17]

     

    روش "اعتبار متقاطع نگه­داشتن یکی" مشابه اعتبار متقاطع معمولی است با این تفاوت که n در این روش برابر با تعداد نمونه­ها در مجموعه داده­ها است. این روش ابتدا یک نمونه را جدا می­کند، سپس آموزش با استفاده از همه نمونه­های باقی مانده انجام می­شود و پس از آن یک نمونه نگه داشته شده، به کلاس­بندی کننده، برای تست داده می­شود. این روش به دو دلیل مورد توجه قرار می­گیرد: اول اینکه از بزرگترین مجموعه داده آموزش استفاده می­شود و این مسئله شانس رسیدن به یک کلاس­بندی کننده دقیق را افزایش می­دهد. دوم اینکه این روش یک روش قطعی است. یعنی مجموعه­ها به صورت تصادفی انتخاب نمی­شوند و با هر بار تکرار فقط یک نتیجه حاصل می­شود. اما این روش هزینه محاسباتی زیادی دارد، زیرا برای هر داده یک بار فرآیند آموزش تکرار می­شود و در عمل این روش فقط برای مجموعه داده­های کوچک قابل استفاده می­باشد (12).

     

    1-2-3- خوشه­بندی[18]

     

    یکی دیگر از اهداف داده‌کاوی پدیده‌ی خوشه‌بندی می‌باشد، که به فرآیند تقسیم مجموعه‌ای از داده‌ها (یا اشیاء) به زیر کلاس‌هایی با مفهوم خوشه‌ اشاره دارد. یک خوشه‌، یک‌ سری داده‌های مشابه می‌باشد که همانند یک گروه واحد رفتار می‌کنند. لازم به ذکر است، خوشه‌بندی تاحدودیمشابه کلاس‌بندی است، با این تفاوت که کلاس‌ها از پیش‌تعریف‌شده و معین نمی‌باشند و عمل گروه‌بندی داده‌ها بدون نظارت انجام می‌گیرد (11).

    برخلاف کلاس‌بندی که داده‌ها را براساس کلاس‌ها تحلیل می­کند،در خوشه‌بندی داده‌ها، بدون در نظر گرفتن برچسب‌های کلاس، تحلیل می­شوند ومعمولاً برچسب کلاس‌ها درداده‌های آموزش مشخص نیست. خوشه‌بندی گاهی برای تعیین و تولید برچسب­هایی برای داده­ها بکار می­رود. داده­های خوشه‌بندی‌ شده بر اساس اصل ماکزیمم شباهت بین اعضای هر کلاس و مینیمم شباهت بین کلاس‌های مختلف گروه‌بندی می‌شوند، یعنی خوشه‌ها به‌گونه‌ای تنظیم می‌شوند که اشیای داخل هر خوشه‌ بیشترین شباهت را با یکدیگر داشته باشند. هر خوشه‌ به عنوان یک کلاس می‌باشد، که قوانین هر کلاس، از خوشه متناظرش مشتق می­شوند (12).

    روش­ها و الگوریتم­های بسیاری برای خوشه­بندی ارائه شده است. یکی از این روش­ها نگاشت خود سازمانده[19] می­باشد. در این تحقیق از روش نگاشت خود سازمانده نوخاسته[20] استفاده شده است. در ادامه این بخش درباره SOMو ESOMتوضیح مختصری داده می­شود.

    Abstract

     

    Exploit Prediction and Vulnerability Clustering Using Text Mining

     

     

    Software vulnerabilities can lead to monetary and information losses. Due to limited human and financial resources prioritization of vulnerabilities is a crucial task. Prior to this work, many researchers have ranked vulnerabilities based on expert’s knowledge and statistics. But the variable nature of vulnerabilities sometime makes it impossible to provide a metric to rank it.

    Vulnerability reports are recorded in different database continuously. Textual information on vulnerabilities has not been fully utilized using automated tools. The research explores the fact that information hidden in these texts can be used to build predictive models. Text mining can be an appropriate tool to provide knowledge for administrative decisions.

    So far, there has been only one research that had used text mining for exploit prediction. The research has been presented at KDD2010, titled “Beyond Heuristics: Learning to Classify Vulnerabilities and Predict Exploits”. This paper provided answers to the following questions using text mining: Whether vulnerability will be exploited or not? When the existing vulnerability may be exploited? The paper in comparison with CVSS (which is a famous vulnerability metric) reaches good results. Our work provides highly accurate answers to the above and following questions:

    If a system has been exploited, when this exploitation has begun? (Accuracy between 84-94.5%)

    If a system is vulnerable, when revised patch will be released by vendors? (Accuracy between 68- 91%)

    Various researchers and institutions have concerned themselves with the categorization of vulnerabilities. OSVDB has several categorizations for vulnerabilities, but none of them is based on the vulnerability descriptions. In this study vulnerabilities clustered by their description and the following vulnerability categories identified: buffer overflow, denial of service, data manipulation, remote controlling, misconfiguration, password cracking, unauthorized access to information, and unauthorized access to service. Human expertise is required to manually assign all the vulnerabilities to specific harmonized vulnerability categories and it is a tedious work. With these vulnerability categories, it is possible to develop an application that automates the process of vulnerability assessment.

    In this research, two well-known vulnerability databases (CVE and OSVDB) plus date information on vulnerabilities provided by Stefan Frei have been used. For exploit prediction, SVM and Random Forest, and for vulnerability clustering, ESOM have been used.

     

  • فهرست:

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

    1

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

    2

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

    2

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

    3

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

    4

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

    5

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

    5

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

    5

    1-2-2- کلاس‏بندی  و پیش بینی

    8

    1-2-3- خوشه‏بندی

    12

    1-2-4- انتخاب ویژگی

    14

    1-3- هدف تحقیق

    16

    فصل دوم: مروری بر تحقیقات پیشین

    18

    2-1- نقش افراد و فرآیندهای مختلف بر آسیب‏پذیری‏ها

    19

    2-2- روش‏های ارزیابی و رده بندی آسیب‏پذیری‏ها

    24

    2-2-1- سیستم نمره دهی آسیب‏پذیری متعارف

    25

    2-3- دسته بندی آسیب پذیری‏ها

    30

    2-4- پیش بینی‏های امنیتی با استفاده از گزارش‏های آسیب پذیری‏ها

    36

    2-5- تشخیص آسیب پذیری‏ها با استفاده از سورس کد نرم افزارها

    36

    فصل سوم: داده‏هاوروشاستخراجویژگی‏ها

    39

    3-1- داده‏های تحقیق

    40

    3-2- روش استخراج ویژگی‏ها برای کلاس‏بندی و پیش‏بینی

    44

    3-3- روش استخراج ویژگی‏ها برای خوشه‏بندی

    47

    فصل چهارم: روش انجام و نتایج آزمایشات

    50

    4-1- روش و نتایج آزمایشات کلاس‏بندی و پیش‏بینی

    51

    4-1-1- پیش‏بینی بهره کشی برون خط

    51

    4-1-2- پیش‏بینی بهره کشی برخط

    54

    4-1-3- پیش‏بینی زمان

    56

    4-2- مقایسه OSVDB و CVE

    62

    4-3- ارزیابی ویژگی‏ها

    64

    4-4- خوشه بندی آسیب پذیری‏ها

    66

    4-4-1- تحلیل دسته‏های موجود در پایگاه داده OSVDB

    68

    4-4-2- ارائه دسته بندی آسیب پذیری‏ها

    78

    4-4-3- ارزیابی دسته‏بندی ارائه شده

    84

    فصل پنجم: بحث و نتیجه‏گیری

    87

    5-1- پیش بینی بهره کشی از آسیب پذیری‏ها

    88

    5-2- خوشه بندی آسیب پذیری‏ها

    89

    نتیجه گیری

    89

    پیشنهادات برای پژوهش‏های آینده

    90

    منابع و ماخذ

    91

     

    منبع:

     

    1. The Three Tenents of Cyber Security, U.S. Air Force Software Protection Initiative. http://www.spi.dod.mil/tenets.htm. (Last visited 2011-07-10).

    2. ISO/IEC, Information technology- Security techniques-Information security risk management, ISO/IEC FIDIS 27005:2008.

    3. Internet Engineering Task Force RFC 2828 Internet Security Glossary

    4. CNSS Instruction No.4009, dated 26 April 2010.

    5. Risk Management Glossary Vulnerability, (Last visited 2011-08-23)      http://www.enisa.europa.eu/act/rm/cr/risk-management-inventory/glossary#G52 .

    6. Technical Standard Risk Taxonomy ISBN 1-931624-77-1, Document Number: C081 Published by the Open Group, January 2009.

    7. An Introduction to Factor Analysis of Information Risk (FAIR), Risk Management Insight LLC, November 2006. URL: www.riskmanagementinsight.com. 

    8. Vacca, J.R., 2009. Computer and Information Security Handbook, Morgan Kaufmann Pubblications Elsevier Inc p. 393, ISBN 978-0-12-374354-1.

    9. Krsul, I., 1997, Computer Vulnerability Analysis: Thesis Proposal, The COAST Laboratory Department of Computer Sciences, Purdue University.

    10. The Web Application Security Consortium Project, Web Application Security Statistics (Last visited 2011-08-23),

    http://projects.webappsec.org/w/page/13246989/Web-Application-Security-Statistics.

    11. Han, J., AND Kamber, M., 2001. Data Mining: Concepts and Techniques. Morgan Kaufman.

    12. Witten, I.H., AND Frank, E., 2000. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. Morgan Kaufmann, San Francisco.

    13. Kohonen T. Self-organizing maps. Berlin, Germany: SpringerVerlag; 1995.

    14. Ultsch, A., and Morchen F., 2005. ESOM-Maps: tools for clustering, visualization, and classification with Emergent SOM. Technical Report 46, CS Department, Philipps-University Marburg, Germany.

    15. Duan KB, Rajapakse JC, Wang H, Azuaje F, 2005. Multiple SVM-RFE for gene selection in cancer classification with expression data. IEEE Trans Nanobioscience 4: 228–234. URL http://view.ncbi.nlm.nih.gov/pubmed/1622​0686.  

    16. Frei, S., Schatzmann, D., Plattner B., AND Trammel., B., 2009. Modeling the Security Ecosystem — The Dynamics of (In)Security. In Proc. of the Workshop on the Economics of Information Security (WEIS).

    17. Arora, A., Krishnan, R., Telang, R., AND Yang, Y. 2010. An Empirical Analysis of Software Vendors’ Patch Release Behavior: Impact of Vulnerability Disclosure. Information Systems Research Vol. 21, No. 1,115–132.

    18. Schryen, G., 2009. A Comprehensive and Comparative Analysis of the Patching Behavior of Open Source and Closed Source Software Vendors. Fifth International Conference on IT Security Incident Management and IT Forensics, 153-168.

    19. Joh, H.C., AND Malaiya, YK., 2009. Seasonal variation in the vulnerability discovery process. Proc. International Conference on Software Testing Verification and Validation, 191-200.

    20. United States Computer Emergency Readiness Team (US-CERT). US-CERT Vulnerability Note Field Descriptions, (last visited 2011-07-10). http://www.kb.cert.org/vuls/html/fieldhelp.

    21. SANS Institute. SANS Critical Vulnerability Analysis Archive. (last visited 2011-07-10). http://www.sans.org/newsletters/cva/.

    22. Microsoft Corporation. Microsoft Security Response Center Security Bulletin Severity Rating System. (last visited 2011-07-10). http://www.microsoft.com/technet/security/bulletin/rating.mspx.

    23. Forum of Incident Response and Security Teams (FIRST). Common Vulnerabilities Scoring System (CVSS). http://www.first.org/cvss/ (last visited 2011-07-10).

    24. Mell P., Scarfone K., and Romanosky S., 2007. The Common Vulnerability Scoring System (CVSS) and Its Applicability to Federal Agency Systems. NIST Interagency Report 7435.

    25. Mell, P., Scarfone, K., Romanosky, S., 2006. Common Vulnerability Scoring System. IEEE Security and Privacy 4(6). 85-89.

    26. Gallon, L., 2010, On the impact of environmental metrics on CVSS scores, IEEE International Conference on Privacy, Security, Risk and Trust, 987-992.

    27. Fruhwirth, C., and Mannisto, T., 2009, Improving CVSS-based vulnerability prioritization and response with context information, Third International Symposium on Empricial Software Engineering and Measurement, 535-544.

    28. Gallon, L., 2011, Vulnerability discrimination using CVSS framework, New Technologies, Mobility and Security (NTMS).

    29. Joh, H.C. and Malaiya, Y.K., A framework for software security risk evaluation using the vulnerability lifecycle and CVSS metrics, 430-434.

    30. Bishop M. A taxonomy of UNIX system and network vulnerabilities. Technical Report CSE-9510. Davis: Department of Computer Science, University of California; 1995.

    31. Krsul IV. Software vulnerability analysis. Available from: http://www.krsul.org/ivan/articles/main.pdf; May 1998.

    32. Venter HS, Eloff JHP. Harmonising vulnerability categories. South African Computer Journal 2002;29. ISSN: 1015-7999:24–31. Computer Society of South Africa.

    33. Kujawski P. Why networks must be secured. Cisco Systems, Inc.;2003.

    34. Microsoft Commerce Server 2002. The STRIDE threat model. Available from: http://msdn2.microsoft.com/en-us/library/ms954176.aspx; (last visited 2011-07-10).

    35. SAINT Corporation. Available from: http://www.saintcorporation.com/; (Last visited 2011-07-10).

    36. SFProtect. Available from:

    http://www.winnetmag.com/Article/ArticleID/8401/8401.html; (Last visited 2011-07-10).

    37. MOREnet. Available from:

    http://www.more.net/services/rva/categories.html; (last visited 2011-07-10).

    38. Venter H. S., Eloff J. H. P., and Li Y. L., Standardising vulnerability categories, Computers & Security In Press, Corrected Proof.

    39. Huang, S., Tang, H., Zhang, M., AND Tian, J., 2010. Text Clustering on National Vulnerability Database. Computer Engineering and Applications (ICCEA).

    40. Bozorgi, M., Saul, L.K., Savage, S., AND Voelker., G.M., 2010. Beyond Heuristics: Learning to Classify Vulnerabilities and Predict Exploits. KDD’10.

    41. Shin, Y., 2008. Exploring complexity metrics as indicators of software vulnerability. In Proc. of the Int. Doctoral Symp. On Empirical Soft. Eng. (IDoESE'08).

    42. Shin, Y., AND Williams, L., 2008. An empirical model to predict security vulnerabilities using code complexity metrics. Proc. International symposium on Empirical Software Engineering and Measurement, Kaiserslautern, Germany, pp. 315-317.

    43. Neuhaus, S., Zimmermann, T., Holler, C., AND Zeller, A., 2007. Predicting vulnerable software components. In Proc. of the ACM conference on Computer and communications security.

    44. OSVDB. The Open Source Vulnerability Database. http://osvdb.org/ (last visited 2011-07-10).

    45. CVE Editorial Board. Common Vulnerabilities and Exposures: The Standard for Information Security Vulnerability Names. http://cve.mitre.org/ (last visited 2011-07-10).

    46. The Word Vector Tool, http://wvtool.sf.net (last visited 2011-07-10).

    47. StatistiXL PCA tool, http://www.statistixl.com/.

    48. LIBLINEAR –A Library for Large Linear Classification. http://www.csie.ntu.edu.tw/~cjlin/liblinear/ (last visited 2011-07-10).

    49. Random Jungle, http://www.randomjungle.org (last visited 2011-07-10).

    50. Personal Communication with Mehran Bozorgi via Email (Feb 9, 2011).

    51. Personal Communication with Brian Martin via Email (Feb 13, 2011).

    52. Databionics ESOM Tool, http://databionic-esom.sourceforge.net/ (last visited 2011-07-10).

    53. Sordo, M., and Zeng, Q., 2005. On sample size and classification accuracy: A performance comparison. LNCS, 3745:193-201.


تحقیق در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, مقاله در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, پروژه دانشجویی در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, پروپوزال در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, تز دکترا در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, تحقیقات دانشجویی درباره پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, مقالات دانشجویی درباره پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, پروژه درباره پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, گزارش سمینار در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, پروژه دانشجویی در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, تحقیق دانش آموزی در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, مقاله دانش آموزی در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی, رساله دکترا در مورد پایان نامه پیش بینی بهره کشی و خوشه بندی آسیب پذیری ها به وسیله ی متن کاوی

پایان نامه جهت اخذ درجه کارشناسی ارشد (M.S.c) رشته: کامپیوتر گرایش: نرم افزار چکیده امروزه استفاده از بات نت ها به عنوان ابزاری جهت فعالیت های مجرمانه با وسعت زیاد در شبکه های کامپیوتری علیه اهداف وسیع مانند یک کشور بسیار افزایش یافته است. بات محیط توزیع شده ای است که از آن، جهت حملات مختلف با حجم وسیع استفاده می شود.از این جهت امروزه تشخیص این نوع حملات به عنوان یکی از مسائل ...

پايان نامه دوره کارشناسي کامپيوتر گرايش نرم افزار اسفند 86 چکيده بررسي ومطالعه ي کامل داده کاوي و داده کاوي با SQL SERVER2005 پياده سازي آن روي بانک اطلاعاتي دانشگاه آزاد قوچان &nbs

پایان‌نامه کارشناسی ارشد در رشته‌ی کامپیوتر - مهندسی نرم افزار چکیده بررسی اطلاعات بیمه های اتومبیل نشان داده عواملی چون نوع استفاده خودرو، داشتن گواهینامه رانندگی، نوع گواهینامه و تطابق یا عدم تطابق آن با وسیله نقلیه، مبلغ حق بیمه، میزان تعهدات بیمه نامه، کیفیت خودروی خودرو سازان، سن راننده، سواد راننده، عدم تطابق حق بیمه با مورد بیمه، تاخیردرتمدید بیمه نامه، در سود و زیان شرکت ...

پایان نامه برای دریافت درجه کارشناسی ارشد(M.Sc) چکیده شبکه حسگر بی سیم، شبکه ای است که از تعداد زیادی گره کوچک تشکیل شده است. گره از طریق حسگرها اطلاعات محیط را دریافت می‌کند. انرژی مصرفی گره‌ها معمولاً از طریق باتری تامین می‌شود که در اکثر موارد امکان جایگزینی این باتری‌ها وجود ندارد. بنابراین توان مصرفی گره‌ها موضوع مهمی در این شبکه ها است. و استفاده از روش‌های دقیق و سریع ...

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

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

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

پایان‌نامه برای دریافت درجه ی کارشناسی ارشد (‌M.Sc) رشته مهندسی برق –‌ گرایش الکترونیک چکیده توابع درهم‌ساز نوعی تابع چکیده ساز است که در تمامی طراحی‌های رمزنگاری و پروتکل‌های امنیتی جهت تولید اعداد تصادفی و مکانیزم ذخیره رمز عبور احراز هویت و امضای دیجیتالی در دنیای دیجیتال مورداستفاده قرار می‌گیرد. موسسه ملی استاندارد و فناوری، مسابقه‌ای را برای بهبود بخشیدن الگوریتم‌های چکیده ...

پایان نامه­ ی کارشناسی ارشد در رشته­ی مهندسی کامپیوتر- هوش مصنوعی چکیده شناسایی تشکل های همپوشان در شبکه های پویا بسیاری از ساختارهای پیچیده طبیعی و اجتماعی را می‌توان به صورت شبکه[1] در نظر گرفت. جاده‌ها، پایگاه‌های اینترنتی، شبکه های اجتماعی، ارتباطات سازمانی، روابط خویشاوندی، تبادل نامه‌های الکترونیک، تماس‌های تلفنی و تراکنش‌های مالی تنها چند نمونه از این شبکه‌ها هستند. ...

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

ثبت سفارش