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