دسته بندی آسيب پذيری ها

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

بيشاپ[1] (در سال 1995) (30) و کرسل[2] (در سال 1998) (31) از پيشگامان کلاس بندی آسيب پذيری­های نرم افزارها هستند. بيشاپ (30) يک طبقه بندی[3] برای آسيب پذيری­های يونيکس ارائه کرد. او شش دسته آسيب پذيری برای نقص­های اساسی گزارش شده در محيط يونيکس ارائه کرد. به طور خلاصه اين دسته بندی­ها عبارتند از: طبيعت آسيب پذيری، چه زمان آسيب پذيری معرفی شد، چه چيز طی بهره کشی به دست آمد، آسيب پذيری بر چه چيز تاثير دارد، حداقل تعداد اجزای لازم (برای مثال، سخت افزار، شبکه و نرم افزار) برای بهره کشی از آسيب پذيری، و منبع شناسايي آسيب پذيری.

کرسل (1998) (31) يک طبقه بندی برای آسيب پذيری­های نرم افزار با استفاده از درخت­های تصميم ارائه کرد. اين درخت­های تصميم بيشتر بر اساس مفروضات قياسی[4] که کرسل درباره آسيب پذيری­ها ساخته بود، می­باشد. هدف درخت­های تصميم کلاس بندی هر آسيب پذيری در يک دسته آسيب پذيری قياسی مشخص است.

بر اساس کار کرسل يک دسته بندی آسيب پذيری قياسی به دسته­هايي که به صورت غير تجربی (برای مثال توسط محقق) هستند، اشاره دارد. روش­های ديگر دسته بندی آسيب پذيری­ها آن­هايي هستند که می­توانند از راه استقراء[5] (برای مثال بوسيله نگاه کردن به داده­ها به صورت تجربی) تعريف شوند. بيشتر دسته بندی­های آسيب پذيری­ها، همانند کارهای بيشاپ و کرسل به روشی قياسی تعريف شده­اند.

ونتر[6] و الاف[7] (32) يک مجموعه از 13 دسته بندی آسيب پذيری هماهنگ[8]، که بازه کاملی از آسيب پذيری­های شناخته شده را نشان می­دهند، را تعريف کرده­اند. دسته بندی­ها عبارتند از: اشکال در رمزعبور، گردآوری اطلاعات شبکه و سيستم، راه­های پنهانی[9]، تروجان­ها[10] و کنترل از راه دور، دسترسی غير مجاز به اتصالات و سرويس­ها از راه دور، امتيازات و دسترسی­های کاربر[11]، حقه بازی يا تغير ظاهر[12]، پيکربندی نامناسب[13]، رد سرويس[14] و سرريز بافر، ويروس­ها و کرم­ها، سخت افزار معين، نرم افزار معين و بروز رسانی­ها، و نقض سياست امنيت. دسته بندی آسيب پذيری هماهنگ، با تحليل آسيب پذيری­های امنيتی پيدا شده در کارهای تحقيقاتی پيشين، اسکنرهای آسيب پذيری و اطلاعات اينترنتی، تعريف شده­اند. تخصص انسانی برای تخصيص دستی همه­ي آسيب پذيری­ها به دسته­های آسيب پذيری هماهنگ معين مورد نياز است. هزاران آسيب پذيری تا کنون شناخته شده­اند، بنابراين پشتيبانی از دسته بندی­ها به وسيله­ی نيروی انسانی، کار بسيار ملال آوری است. مشابه با کار بيشاپ و کرسل، کار ونتر و الاف بر شناسايي مستقيم دسته­های آسيب پذيری، بيشتر بر ابزارهای اسکنر آسيب پذيری و کارهای تحقيقاتی پيشين، برای مثال استفاده از يک روش قياسی، مبتنی است.

سيسکو، يک شرکت امنيت شبکه مشهور، آسيب پذيری­های سيستم را به پنج دسته کلاس بندی کرد: خطاهای طراحی، ضعف­های پروتکل، آسيب پذيری­های نرم افزار، پيکر بندی نامناسب، و کدهای خصمانه[15] (33). مايکروسافت، يک مدل خطر STRIDE[16] (34) که شامل شش دسته خطر است، تعريف کرد: حقه شناسايي[17]، دستکاری با داده[18]، انکار[19]، افشاءی اطلاعات، رد سويس، و ترفيع حق ويژه[20].

بسياری از اسکنرهای آسيب پذيری، دسته بندی­های آسيب پذيری خودشان را ارائه کرده­اند. برای مثال، SAINT(35) 12 دسته آسيب پذيری را شناسايي کرده است: وب، ايميل، ftp، پوسته[21]، پرينت، RPC، DNS، پايگاه داده، شبکه، ويندوز، رمز عبور، و متفرقه[22]. SFProtect(36) 7 دسته زير را تعريف می­کند: گزارش­های کاربر[23]، سياست بازرسی[24]، اتصال سيستم[25]، سيستم فايل[26]، ثبت[27]، سرويس­ها، و سهام[28]. درحاليکه تحقيق و آموزش شبکه ميزوری[29] (37) 25 دسته آسيب پذيری را شناسايي کرده است.

همانطور که مشخص است هيچ استانداردی برای دسته بندی آسيب پذيری­ها وجود ندارد، بعلاوه نام گذاری دسته­ها نيز به شکل مشخصی متفاوت است. تحقيقات پيشين و اسکنرهای آسيب پذيری­ها تناقض­هايي را در دسته بندی­های مختلف آسيب پذيری­ها نيز نشان می­دهد. با وجود اين تفاوت­ها، تقريباً نگاشت مستقيم يک دسته بندی به دسته بندی ديگر غير ممکن است، برای مثال نگاشت دسته بندی آسيب پذيری­های بيشاپ به دسته بندی آسيب پذيری­های هماهنگ تعريف شده توسط ونتر و الاف. اين مسئله نويسندگان مقاله (38) را به ارائه يک دسته بندی آسيب پذيری استاندارد، راهنمايي کرد. داده­های مورد استفاده در (38) گزارشات آسيب پذيری CVEاست و از SOMبرای خوشه بندی آسيب پذيری­ها استفاده شده است. در فاز آموزش با استفاده از ليست ثبت شده­ی[30]CVEخوشه بندی انجام می­شود و در فاز نگاشت الگو[31] آسيب پذيری­های جديد که همان گزارشات کانديدای[32]CVEهستند، کلاس بندی می­شوند.

بردارهای ويژگی مورد استفاده در (38) از توصيف آسيب پذيری­های نوع ثبت شده­CVEاستخراج شده­اند. مراحل ساخت بردار مشخصات عبارتند از: استخراج لغات، حذف کلمات ناچيز[33] و نشان گذاری­ها[34] و حذف کلمات بی­معنا[35] که موجب ساده­تر شدن فرآيند آموزش و پيش گيری از خوشه بندی پيرامون اين کلمات می­شود. قوانين زير برای حذف کلمات استفاده شده است: 1) حذف حروف اضافه، 2) حذف صفت، قيد و فعل­ها، 3) حذف همه کلمات يک کاراکتری، 4) حذف همه­ی اعداد مربوط به نسخه نرم افزاری، 5) حذف همه­ی کلماتی که کمتر از يک تعداد مشخص (10 بار) در کل گزارشات آسيب پذيری­های نوع ثبت شده، رخ داده­اند. طول بردار ويژگی­ها 394 است و مقادير هر ويژگی تعداد تکرار کلمه در توصيف آسيب پذيری را نشان می­دهد. پس از ساخت بردارهای ويژگی، خوشه بندی با روش SOMانجام شده است. پس از آن عمل برچسب زنی به خوشه­ها با نظارت نيروی انسانی انجام شده است. در نهايت 7 دسته زير برای آسيب پذيری­ها معرفی شده است: سرريز بافر[36]، رد سرويس[37]، مستند شدن متاکاراکترها[38]، افزايش امتيازات[39]، تحريف داده[40]، جمع آوری داده[41]، آسيب پذيری­های پيکربندی. در اين تحقيق يک تحليل­گر و اسکنر آسيب پذيری، با استفاده از دسته بندی­های به دست آمده، نيز ارائه شده است.

بسياری از دسته بندی­هايي که تاکنون برای آسيب پذيری­ها ارائه شده است، از جمله دسته­های مقاله (38) دارای مسئله همپوشانی هستند ، يعنی احتمال اينکه يک آسيب پذيری به طور همزمان در بيش از يک دسته طبقه بندی شود وجود دارد. در مقاله (39)، برای حل مسئله همپوشانی دسته­ها در آسيب پذيری نرم افزار، يک روش دسته بندی آسيب پذيری بر اساس خوشه بندی متن در NVDارائه شده است و “انديس همپوشانی خوشه[42]” برای ارزيابی الگوريتم­های خوشه بندی k-ميانگين ساده[43]، k-ميانگين دوبخشی[44] و SOMدسته[45] استفاده شده است. 45 خوشه آسيب پذيری اصلی از تقريباً 40000 آسيب پذيری ثبت شده بر اساس “انديس سلطه توصيف کننده[46]” انتخاب شدند.

بردار ويژگی تحقيق (39) مجموعه­ کلمات توصيف آسيب پذيری­ها است که به علت زياد بودن تعداد آن­ها فقط کلمات با تعداد تکرار بالا انتخاب شدند و مقادير اين ويژگی­ها عدد TF-IDFاست. بسياری از جزئيات ساخت بردار ويژگی در اين مقاله، همانند مقدار آستانه برای تکرار کلمات و طول بردار ويژگی­ها ذکر نشده است. پس از آن سه الگوريتم خوشه بندی k-ميانگين ساده، k-ميانگين دوبخشی و SOMدسته، به بردارهای ويژگی به دست آمده اعمال شدند.

به طور کلی يک خوشه بندی مناسب دارای دو ويژگی بايد باشد، اول شباهت داده­های هر دسته به يک ديگر و دوم متفاوت بودن داده­های دسته­های مختلف باهم. در مقاله (39) يک معيار ارزيابی خوشه بندی جديد به نام “انديس­های همپوشانی[47]“، ارائه شده است، که عبارت است از:

OverlapIndex[k]=Maxj≠k ((Ej+Ek)/║Vj-Vk║)

در اين فرمول Ejو Ek:

Ek = MeanIntraCentroid[k]

Ej = MeanIntraCentroid[j]

که MeanIntraCentroidعبارت است از:

MeanIntraCentroid[k]= ( )/│Ck

 

C: کل تعداد کلاس­ها، |Ck| اندازه کلاستر kو Vkمرکز ثقل کلاستر kاست.

اگر OIکمتر از يک باشد، کلاسترها از يکديگر جدا هستند؛ اگر برابر با يک باشد، بر يکديگر مماسند؛ اگر بزرگتر از يک باشد، با يکديگر همپوشانی دارند اين متريک برای ارزيابی نتايج سه الگوريتم خوشه بندی، که هريک از آن­ها 100 خوشه را استخراج کرده بودند، مورد استفاده قرار گرفت و از ميان آن­ها k-ميانگين ساده کمترين مقدار OIرا داشت.

در مقاله (39)، درحالی که با استفاده از OIکيفيت خوشه بندی سنجيده شد، با استفاده از چندين انديس کيفيت خوشه، اهميت خوشه­ها بررسی شد. اين انديس­های کيفيت خوشه عبارتند از: سلطه توصيف کننده[48]، پوشش توصيف کننده حوزه[49]، اندازه خوشه وابسته[50]، چگالی توصيف کننده[51] و انديس کيفيت خوشه.

در اين مقاله در نهايت 45 خوشه اصلی از 100 خوشه اوليه، معرفی شد که آن­ها را می­توان به 4 دسته کلی زير تقسيم کرد: خطاهای دستکاره کاراکتر خاص[52]، نقص­های منطقی برنامه[53]، خطاهای پيکربندی[54]، و ديگر آسيب پذيری­های کلی[55].

[1] Bishop

[2] Krsul

[3] Taxonomy

[4] Priori assumptions

[5] Posteriori

[6] Venter

[7] Eloff

[8] Harmonized

[9] Backdoors

[10] Trojans

[11] Privilege and user escalation

[12] Spoofing or masquerading

[13] Misconfiguration

[14] Denial of service (DoS)

[15] Hostile

[16] STRIDE Threat Model

[17] Spoofing identity

[18] Tampering with data

[19] Repudiation

[20] Elevation of privilege

[21] Shell

[22] Miscellaneous

[23] User accounts

[24] Audit policy

[25] System logon

[26] File system

[27] Registry

[28] Shares

[29] Missouri Research & Education Network

[30] Entry

[31] Pattern-mapping

[32] Candidate

[33] Insignificant

[34] Punctuation

[35] Meaningless

[36] Buffer overflow

[37] Denial of Service

[38] Scripting metacharacters

[39] Privilege escalation

[40] Data corruption

[41] Information gathering

[42] Cluster Overlap Index

[43] SimpleKMeans

[44] BisectingKMeans

[45] BatchSOM

[46] Descriptor Dominance Index

[47] Overlap Indices

[48] Descriptor dominance

[49] Domain descriptor coverage

[50] Relative cluster size

[51] Descriptor density

[52] The special character handling defects

[53] Program logic flaws

[54] Configuration defects

[55] Other unspecified vulnerabilities

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.