در مبحث امنیت کامپیوتر، آسیب‌پذیری (Vulnerability) ضعفی است که به مهاجم اجازه کاهش تضمین اطلاعات سیستم را می‌دهد. سه عنصر در تشکیل آسیب‌پذیری نقش دارند:

–        مستعد بودن و وجود درز و نقص در سیستم

–        دسترسی مهاجم به درز و نقص

–        توانایی مهاجم برای نفوذ از طریق درز و نقص

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

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

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

–        پیچیدگی

–        آشنایی

–        ارتباط

–        نقایص مدیریت کلمه‌ی رمز

–        نقایص طراحی بنیادی سیستم عامل

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

–        باگ‌های نرم‌افزاری

–        عدم آزمون و بررسی ورودی‌ها

زمان افشای آسیب‌پذیری هنگامی است که موارد زیر همه با هم وجود داشته باشند:

–        اطلاعات آسیب‌پذیری به صورت رایگان در دسترس عموم باشد

–        اطلاعات توسط منابع/رسانه‌های معتبر و مستقل اعلام شود

–        روی آسیب‌پذیری نظر و تحلیل کارشناسی توسط متخصصین وجود داشته باشد. مثلاً میزان ریسک همراه آسیب‌پذیری

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

–        کلمه‌رمز ضعیف

–        باگ‌های نرم‌افزاری

–        ویروس های کامپیوتری

–        بدافزارها

–        تزریق کد

–        تزریق SQL

–        ضعف پیکربندی یا پیکربندی اشتباه

–        امروزه می‌توان شبکه‌های اجتماعی را نیز جزء دسته‌ی درز و حفره امنیتی نامید

به انواع متداول درزهای نرم‌افزار را می‌توان به صورت زیر فهرست نمود:

Memory safety violations:

Buffer overflows
Dangling pointers

Input validation errors:

Format string bugs
Improperly handling shell metacharacters so they are interpreted
SQL injection
Code injection
E-mail injection
Directory traversal
Cross-site scripting in web applications
HTTP header injection
HTTP response splitting

Race conditions:

Time-of-check-to-time-of-use bugs
Symlink races

Privilege-confusion bugs:

Cross-site request forgery in web applications
Clickjacking
FTP bounce attack

Privilege escalation
User interface failures:

Warning fatigue or user conditioning
Blaming the Victim Prompting a user to make a security decision without giving the user enough information to answer it
Race Conditions

منبع: wikipedia