OWASP سازمانی بین المللی و غیر انتفاعی می باشد که در راستای ایمن سازی طراحی، پیاده سازی، توسعه و تست پروژه های نرم افزاری فعالیت می کند. تمامی مستندات، ابزارها و چک لیست های مندرج در سایت رسمی آن سازمان رایگان بوده و در جهت برطرف نمودن آسیب پذیری های امنیتی متداول در تمامی قالب های کاری نرم افزار توسعه داده شده است.چندین هزار کاربر فعال در سر تا سر جهان در این پروژه فعالیت داشته و در جهت بهبود مطالب و ابزار به این سازمان یاری می رسانند .
هر چند سال یک مرتبه این سازمان لیستی از شاخص ترین آسیب پذیری های متداول در نرم افزار ها و سرویس های ارائه شده تحت وب در سر تاسر جهان را از طریق مستندی ارائه می دهد که این لیست مبنای امنیتی نرم افزارهای تحت وب به شمار می رود. خلاصه آخرین آسیب پذیری های منتشر شده در سال 2013 توسط این سازمان (2013 OWASP Top 10 List) شامل:
1- تزریق (Injection) : آسیب پذیری تزریق کد همانند تزریق SQL، OS و LDAP زمانی رخ می دهد که داده های نامعتبر به بک مترجم (Compiler or Interpreter) بجای دستور و یا query ارسال می گردند. هکر از طریق داده های نامعتبر قادر به فریب مترجم شده و امکان اجرای دستورات غیر قانونی و یا روئیت اطلاعات حیاتی بدون مجوز دسترسی برای او فراهم می شود.
2- تاییدیه شکسته شده و مدیریت جلسه (Broken Authentication and Session Management) : فانکشنهای نرم افزارهای کاربردی مرتبط با اعطای مجوز دسترسی و مدیریت Session گاها به درستی پیاده سازی نشده و این امکان را به هکرها می دهد تا به اطلاعات حیاتی همانند رمز های عبور، کلید ها، Session Token در جهت سوء استفاده و جعل هویت دسترسی پیدا کنند.
3- اسکریپت کراس سایت (Cross-Site Scripting) : این آسیب پذیری زمانی رخ می دهد که نرم افزار کاربردی، داده های نا امن را بدون اعتبار سنجی برای کاوشگر وب ارسال نماید. هکر توسط این آسیب پذیری قادر به اجرای اسکریپت بر روی کاوشگر قربانی، دزدیدن session و یا تغییر مسیر قربانی به وب سایت های مخرب (malicious sites) خواهد بود.
4- ارجاع نا امن به اشیاء داخلی برنامه (Insecure Direct Object References): این اسیب پذیری زمانی رخ می دهد که برنامه نویس دسترسی ارجاع یک منبع به اشیاء داخلی برنامه را باز گذاشته باشد (همانند فایل، دایرکتوری و یا بانک اطلاعاتی). بدون کنترل دسترسی به این اشیاء هکر قادر به دستکاری منابع در جهت دسترسی به اطلاعات حیاتی خواهد بود.
5- پیکربندی امنیتی اشتباه (Security Misconfiguration) : امنیت مناسب نیارمند تعریف و استقرار پیکربندی مناسب برای نرم افزار، قالب کاری، وب سرور، بانک اطلاعاتی و سیستم عامل می باشد. تنظیمات امن می بایستی تعریف، پیاده سازی و نگهداری شوند که البته تنظیمات پیش فرض بسیار نا امن می باشند. همچنین می بایستی همیشه نرم افزارها بروز نگهداشته شوند.
6- افشای اطلاعات حساس (Sensitive Data Exposure) : بسیاری از نرم افزارهای کاربردی تحت وب بدرستی از اطلاعات محرمانه خود (همانند اطلاعات اعتبار سنجی کاربران و اطلاعات کارت بانکی) محافظت نمی کنند. هکر با دزدیدن این اطلاعات قادر به سوء استفاده از آنها و ایجاد خرابکاری خواهد بود. اطلاعات محرمانه و حیاتی نیازمند محافظت ویژه ای می باشند که از آن جمله می توان به رمز نگاری اطلاعات در زمان تبادل اطلاعات با کاوشگر اشاره نمود.
7- عدم سطح دسترسی مناسب برای دسترسی به فانکشن (Missing Function Level Access Control) : بسیاری از نرم افزارها قبل از اجرای فانکشن و نمایش خروجی در میانای کاربر (UI)، حق دسترسی را بررسی می نمایند. در نظر داشته باشید که نرم افزار همان سطح دسترسی را می بایستی درسمت سرور بررسی کند. در صورتی که در خواست اعتبار سنجی نگردد، هکر قادر به جعل درخواست در جهت دسترسی به فانکشن ها خواهد بود.
8- جعل درخواست (Cross-Site Request Forgery) : این آسیب پذیری، کاوشگر قربانی وارد شده به نرم افزار را مجبور می کند که درخواست HTTP جعل شده را به همراه session's cookie قربانی و سایر اطلاعات مورد نیاز اعتبار سنجی شده را به برنامه کاربردی ارسال نماید. هکر توسط این حمله قادر به جعل هویت کاربر و جرای دستورات مخرب بر روی حساب آن خواهد بود.
9- استفاده از کامپوننت ها با آسیب پذیری های شناخته شده (Using Components with Known Vulnerability) : کامپوننت ها همانند کتابخانه ها، قالب های کاری و سایر ماژول های نرم افزار معمولا با دسترسی کامل اجرا می گردند. در صورتی که آسیب پذیری کامپوننتی افشا گردد، تخریب اطلاعات و دسترسی به سرور امکان پذیر خواهد بود. نرم افزار هایی که از کامپوننت هایی با آسیب پذیری های شناخته شده استفاده می کنند، امکان انواع حمله را برای هکر فراهم می سازند.
10 - تغییر مسیر های نامعتبر (Unvalidated Redirects and Forwards) : نرم افزارهای کاربردی دائما در حال تغییر مسیر کاربران به صفحات دیگر می باشند و از داده های نا امن برای تشخیص صفحات مقصد استفاده می کنند. بدون استفاده از اعتبارسنجی مناسب، هکر قادر به هدایت قربانی به وب سایت های مخرب و فیشینگ خواهد بود.