OWASP چیست؟ لیست ۱۰ آسیبپذیری برتر OWASP در سال ۲۰۲۳
اگر با دنیای امنیت وب اپلیکیشنها آشنا باشید احتمالا میدانید OWASP چیست و چه کاربردهای امنیتی دارد. OWASP نام یک انجمن یا سازمان و مخفف عبارت «Open Web Application Security Project» است. این سازمان با معرفی عمدهترین آسیبهای امنیتی در وب، به معرفی راههای مقابله با آنها و ایجاد ابزارها و متدهای جلوگیری و کاهش حملات و مخاطرات امنیتی میپردازد. کسانی که در حوزه امنیت نرمافزار کار میکنند، باید با استاندارد OWASP آشنایی داشته و کارها و پروژههای آنها را بشناسند. در ادامه این مطلب ابر زس به شکل دقیقتر بررسی میکنیم که OWASP چیست و با معروفترین متدها و پروژههای این مجموعه آشنا میشویم.
OWASP چیست و چه کاری انجام میدهد؟
پروژه OWASP یک سازمان مستقل است که روی امنیت وب اپلیکیشنها تمرکز دارد. برای پاسخ به این سؤال که وظیفه OWASP چیست تنها کافی است تا راهنماییهای این مجموعه درباره نحوه توسعه، خرید و استفاده از اپلیکیشنها را بررسی کنید. یکی از مهمترین دلایل معروفیت این سازمان، ارائه لیستی است که ۱۰ مورد از آسیبپذیریهای امنیتی در وب اپلیکیشنها را معرفی میکند. این لیست هر چند سال یکبار بهروزرسانی شده و مهمترین فاکتورهای آسیبپذیری را بررسی میکند. برای افرادی که به دنبال جواب این سوال هستند که OWASP Top 10 چیست، این لیست اهمیت بسیاری دارد. همچنین، آشنایی با استاندارد OWASP برای هر کسی که در زمینه امنیت وب فعالیت میکند، ضروری است.
اصلیترین ریسکها و نقصهای امنیتی در برنامههای وب در این لیست توضیح داده شده و راهکارهایی برای مقابله با آنها توصیه میشود. کارشناسان امنیتی و متخصصان فناوری اطلاعات میتوانند در انجمن OWASP حضور داشته باشند و با ایجاد یک شبکه، از دانش و تخصص همدیگر استفاده کنند. تمامی مطالبی که توسط OWASP ارائه میشود، به شکل رایگان در دسترس قرار گرفته و در وبسایت این مجموعه میتوانید آنها را دریافت کنید. مهمترین خدمتی که این انجمن انجام میدهد، ارائه لیست ۱۰ نمونه برتر از آسیبپذیریها است که سالانه منتشر میشود. حالا که میدانیم OWASP چیست و چه کاری انجام میدهد، بیایید لیست ۱۰ نمونه برتر OWASP در سال ۲۰۲۳ را بررسی کنیم و ببینیم OWASP Top 10 چیست.
لیست ۱۰ آسیبپذیری اصلی OWASP
لیست OWASP Top 10 گزارشی است که هر چند سال یکبار توسط OWASP بهروز شده و نگرانیهای امنیتی برای برنامههای وب را بررسی میکند. این لیست روی ۱۰ مورد از جدیترین آسیبها تمرکز داشته و توسط تیمی از کارشناسان امنیتی از سراسر جهان تهیه میشود. بیایید ببینیم جدیدترین لیست OWASP در سال ۲۰۲۳ چیست و شامل چه ریسکهای امنیتی است OWASP Top 10 چیست.
۱۰. مصرف غیر امن APIها
زمانی که یک برنامه نتواند دادههای دریافت شده از APIهای خارجی را تأیید، فیلتر یا پاکسازی کند؛ ریسک مصرف غیر امن APIها را دارد. این روند مخرب میتواند باعث شود تا برخی آسیبهای امنیتی مانند حملات Injection یا نشت داده (data leakage) رخ دهد. میدانیم که هر سازمانی برای ارائه عملکردهای حیاتی خود، به APIهای شخص ثالث نیاز دارد. به همین دلیل است که اطمینان از مصرف ایمن این APIها برای جلوگیری از سوءاستفاده توسط افراد سودجو و مهاجمان، بسیار اهمیت دارد.
استراتژیهای جلوگیری از آسیب:
برای آن که بتوانید با این دسته از تهدیدات و آسیبها مقابله کنید و به استاندارد OWASP پایبند باشید، میتوانید از روشهای زیر کمک بگیرید.
- بررسی، اعتبارسنجی و امن کردن تمام دادههای دریافتی از APIهای خارجی قبل از پردازش یا ذخیره آنها برای اطمینان از حضور دادههای معتبر و ایمن در برنامه
- اعتبارسنجی ورودی با استفاده از لیستهای مجاز و محدودیتهای تعیین نوع دادهها برای پردازش دادههای مضر
- ایجاد یک فرایند فیلتر کردن API و نظارت بر درخواستهای API ورودی برای ایجاد یک لایه محافظتی در برابر ترافیک مخرب
۹. مدیریت نامناسب inventory
زمانی که یک سازمان روی APIهای مورد استفاده خود کنترل کافی نداشته باشد، با مشکل مدیریت نامناسب Inventory (لیستی از دادهها در پایگاه داده) مواجه میشود. این مسئله ممکن است دسترسی غیرمجاز ایجاد کرده و با افزایش سطوح حمله، دادههای حساس در معرض حملات مخرب قرار بگیرند. به دلیل افزایش حجم APIهای مورداستفاده توسط سازمانها، پیگیری عملکرد آنها و دستورالعملهای دسترسی به آن برای حفظ اکوسیستم کلی API اهمیت زیادی پیدا میکند. اگر میپرسید یکی از آسیبها در لیست OWASP Top 10 چیست، مدیریت نامناسب inventory یک مثال خوب است.
روشهای جلوگیری از آسیب:
برای آن که از آسیب ناشی از مدیریت نامناسب موجودی جلوگیری شود و با استاندارد OWASP همخوانی داشته باشد، میتوان از روشهای زیر استفاده کرد.
- ایجاد یک فهرست کامل از همه APIهای سازمان و هدف آن، نقاط نهایی و کنترلهای دسترسی برای شناسایی شکافهای امنیتی بالقوه و اطمینان از امن بودن همه APIها
- بررسی و بهروزرسانی مداوم مستندات APIها برای اطمینان از وضعیت فعلی آنها. اطلاع از مستندات دقیق برای توسعهدهندگان و کارشناسان امنیتی ضرورت دارد؛ زیرا به امنیت APIها کمک میکند.
- از بین بردن APIهای بلااستفاده یا منسوخ برای کاهش سطوح حمله و درنتیجه کاهش احتمال دسترسی و سوءاستفاده هکرها و مهاجمان
۸. پیکربندی امنیتی اشتباه
پیکربندی اشتباه در OWASP Top 10 چیست و چه مشکلاتی ایجاد میکند؟ زمانی که API به شکل ایمن پیکربندی نشده و در معرض خطرات امنیتی قرار گیرد، سیستم و دادهها در معرض آسیب قرار میگیرند. برخی نمونههای پیکربندی امنیتی اشتباه، میتواند شامل استفاده از اعتبارنامههای پیشفرض، عدم غیرفعال کردن ویژگیهای غیرضروری یا نادیده گرفتن اعمال سریع وصلههای امنیتی باشد.
راهکارهای کاهش آسیب:
برای جلوگیری از آسیبهای ناشی از پیکربندی امنیتی اشتباه میتوانید از راهکارهای زیر استفاده کنید.
- تنظیم APIها با تنظیمات ایمن در مراحل اولیه توسعه
- بررسی و بهروزرسانی منظم پیکربندیهای API برای اطمینان از اِعمال مداوم بهترین شیوههای امنیتی
- استفاده از ابزارهای خودکار برای شناسایی و اصلاح پیکربندی نادرست امنیتی از طریق بررسی و کنترلهای مستمر
۷. جعل درخواست سمت سرور
یکی دیگر از انواع آسیبپذیری که در لیست «آسیبهای OWASP چیست؟» میتوانیم بررسی کنیم، جعل درخواست سمت سرور یا SSRF (مخفف Server-side request forgery) است. زمانی که درخواستهای سمت سرور جعل شود، مهاجم میتواند این درخواستها را دستکاری کرده و به طور بالقوه دسترسی غیرمجاز به منابع داخلی یا اجرای کد از راه دور را فراهم کند. این مسئله میتواند باعث شود تا دادههای حساس آسیبپذیر شده، در سیستمهای حیاتی اختلال ایجاد کرده یا حتی کل سیستم در معرض خطر قرار گیرد. این مورد نیز در استاندارد OWASP مورد توجه قرار گرفته است.
استراتژیهای جلوگیری از آسیب:
برای جلوگیری از ریسکهای ناشی از این حملات و رعایت استاندارد OWASP، میتوان از روشهای زیر کمک گرفت.
- اعتبارسنجی و پاکسازی ورودیهای ارائه شده توسط کاربر در درخواستهای سمت سرور
- محدود کردن انواع درخواستها و منابع در دسترس API برای جلوگیری از اقدامات غیرمجاز و محدود کردن تأثیر بالقوه حملات SSRF
- اجرای تقسیمبندی شبکه و قوانین فایروال برای محدود کردن دسترسی به سیستمهای داخلی
۶. دسترسی نامحدود به جریانهای تجاری حساس
عدم پیادهسازی صحیح کنترلهای دسترسی در API ها، یکی از مهمترین تهدیدات امنیتی در لیست OWASP Top 10 محسوب میشود. این نقص امنیتی باعث میشود تا مهاجمان به طور غیرمجاز به جریانهای تجاری حساس سازمان دسترسی پیدا کنند و عملیات بحرانی را اجرا نمایند. در نتیجه، اطلاعات محرمانه در معرض افشا قرار گرفته و عملیات تجاری سازمان مختل میشود.
استراتژی جلوگیری از آسیب:
- پیادهسازی مکانیزمهای احراز هویت و مجوز قوی برای تمام نقاط پایانی در API
- استفاده از روش کمترین امتیاز و ایجاد حداقل سطوح دسترسی برای انجام وظایف کاربران
- بررسی و نظارت روی گزارشهای دسترسی API برای شناسایی و پاسخگویی بهموقع به مخاطرات امنیتی احتمالی
۵. مجوز سطح عملکرد آسیبدیده
زمانی که یک کاربر معمولی میتواند کارهایی را انجام دهد که به دلیل مشکلات مجوز سطح عملکرد خراب یا IDOR (مخفف Insecure Direct Object Reference) توسط سرپرستان و کاربران در سطح بالاتر، باید انجام شود؛ این آسیب رخ میدهد. این مسئله زمانی اتفاق میافتد که یک سیستمِ مجوزهای سلسلهمراتبی ناقص یا نادرست عمل کند.
روشهای کنترل آسیب:
- اجرای بررسیهای مجوز قوی در تمام APIها
- استفاده از کنترل دسترسی مبتنی بر نقش RBAC (مخفف role-based access control) برای مدیریت سطوح دسترسی کاربر
- بررسی و بهروزرسانی مداوم سیاستهای کنترل دسترسی
۴. مصرف نامحدود منابع (Unrestricted resource consumption)
یکی دیگر از آسیبهایی که در لیست OWASP Top 10 معرفی شده، مصرف منابع نامحدود یا حملات DoS است. زمانی که یک فرد یا کامپیوتر مهاجم بخواهد از آسیبپذیری API برای مصرف حجم بالایی از منابع سیستم مانند حافظه، CPU یا پهنای باند شبکه سوءاستفاده کند، این مسئله رخ میدهد. نتیجه این آسیبها، تخریب یا در دسترس نبودن کامل سرویس مورد هدف است. آگاهی از این مورد نیز در استاندارد OWASP مورد تاکید است.
استراتژیهای جلوگیری از آسیب:
برای کاهش آسیب ناشی از این مشکل، میتوانید از روشهای زیر استفاده کنید.
- محدود کردن استفاده از منابع و نظارت بر آن
- ایجاد محدودیت نرخ برای کنترل تعداد درخواستهای کلاینتها
- استفاده از کش (caching) برای کاهش بار در سیستمهای بکاند
۳. مجوز مشخصات آبجکت آسیب دیده
آسیبهای Broken object property level authorization زمانی اتفاق میافتد که مهاجم بتواند به مشخصات یک آبجکت دسترسی داشته یا حتی بتواند آن را تغییر دهد. این اتفاق زمانی میافتد که یک API بهدرستی مجوزهای کاربر را قبل از ارائه دسترسی به قابلیتهای مشخصات آبجکت، تأیید نکند.
استراتژیهای جلوگیری از حملات:
- اجرای بررسیهای کنترل دسترسی مناسب روی تمام مشخصات آبجکت
- بررسی و اعتبارسنجی سطوح دسترسی کاربر قبل از صدور مجوز دسترسی به مشخصات آبجکت
- استفاده از کنترل دسترسی مبتنی بر صفت یا ABAC (مخفف attribute-based access control) برای تعریف قوانین دسترسی
۲. احراز هویت آسیبدیده (Broken authentication)
زمانی که پروتکلهای احراز هویت بهاندازه کافی قوی نبوده و یا بهدرستی اجرا نشوند، مشکلات امنیتی بروز میدهد. این مسئله باعث میشود مهاجمان بتوانند بدون اینکه شناسایی شوند، به یک API نفوذ کنند. ضعفهای احراز هویت ممکن است به روشهای مختلفی نمود پیدا کنند؛ از جمله شیوههای ایجاد رمز عبور ضعیف، سیستمهای ذخیرهسازی رمز عبور در معرض خطر یا آسیبپذیریهای فریمورکهای احراز هویت مبتنی بر توکن. رعایت استاندارد OWASP میتواند این نوع آسیبها را کاهش دهد.
راهکارهای مقابله با آسیب:
- ایجاد و اِعمال سیاستهای رمز عبور قوی
- استفاده از روشهای امن ذخیره رمز عبور مانند bcrypt یا Argon۲
- اجرای احراز هویت چندعاملی (MFA) در صورت امکان
۱. مجوز سطح آبجکت آسیب دیده
زمانی که کاربر بتواند به دلیل نقص در کنترلهای مجوز اعتبارسنجی، به دادههای کاربران دیگر دسترسی داشته باشند، این نوع از آسیبپذیریهای BOLA (مخفف Broken object-level authorization) بروز میدهد. آسیبپذیریهای BOLA اغلب به دلیل شیوههای کدگذاری ناامن، مانند عدم تأیید صحیح ورودی کاربر یا عدم بررسی مجوزها قبل از دادن دسترسی، اتفاق میافتند. مهم است بدانیم که یکی از موارد اصلی لیست OWASP Top 10 چیست و مجوز سطح آبجکت آسیبدیده یکی از جدیترین آنهاست.
استراتژیهای جلوگیری از حملات:
- استفاده از شناسههای تصادفی و منحصربهفرد جهانی (UUID)
- ایجاد پروتکلهای مجوز قوی
- پذیرش و پیروی از چارچوب امنیتی zero trust (فریمورکهای امنیتی برای پذیرش این موضوع که هر کاربر نیاز به تائید هویت قدرتمند دارد)
تا اینجا دیدیم که OWASP چیست و لیست جدیترین آسیبهایی که معرفی میکند، شامل چه مواردی است. اما تنها کاری که سازمان OWASP انجام میدهد، تنها معرفی آسیبپذیریها نیست؛ بلکه پروژههای دیگری هم دارد.
سایر پروژههای OWASP
علاوه بر انتشار لیست OWASP Top 10 که پیشازاین بررسی کردیم، این انجمن پروژههای دیگری هم دارد. برای آن که ببینیم که پروژهها و کارهای OWASP چیست میتوانیم آنها را به سه دسته تقسیم کنیم. این دستهبندی پروژهها شامل موارد زیر خواهد بود:
- پروژههای مرتبط با ابزارها و اسناد مورد استفاده برای یافتن نقصهای موجود در طراحی و پیادهسازی موارد امنیتی
- پروژههای مربوط به ابزارها و اسناد قابل استفاده جهت محافظت در برابر نقصهای طراحی و پیادهسازی در حوزه امنیت
- پروژههای مرتبط با ابزارها و اسناد مورد استفاده برای افزودن موارد امنیتی به مدیریت چرخه حیات برنامهها
بهطورکلی، سازمان OWASP حدود ۲۵۰ پروژه فعال دارد که از این تعداد، ۱۸ پروژه به عنوان موارد اصلی در نظر گرفته میشوند. بیایید ببینیم که علاوه بر OWASP Top 10، سایر پروژههای شاخص OWASP چیست و چه کاربردی دارد.
پروژههای شاخص OWASP
- Amass؛ یک ابزار برای بررسی دقیق DNS، تجزیهوتحلیل سطح حملات مخرب و بررسی داراییهای خارجی
- Application Security Verification Standard؛ یک چارچوب تست کنترلهای امنیتی در وب اپلیکیشنها و مجموعهای از نیازمندیهای توسعه ایمن
- Cheat Sheet Series؛ شامل مجموعه راهکارهای امنیتی مناسب جهت توسعه برنامه
- CSRFGuard؛ کتابخانهای برای پیادهسازی الگوهای کاهش خطر جعل درخواستهای بین سایتی معروف به CSRF
- CycloneDX؛ استاندارد تأمین امنیت و تجزیهوتحلیل مواد و بخشهای مورد نیاز برای توسعه محصول و نیز زنجیره تأمین
- Defectdojo؛ ابزار مدیریت آسیبپذیری برای تست امنیت
- پروژه Dependency-Check؛ اجرای بررسی وابستگیها جهت تحلیل آسیبپذیریها، به عنوان بحشی از فرایند تجزیهوتحلیل ترکیب نرمافزار
- Dependency-Track؛ پلتفرم تجزیهوتحلیل مؤلفه برای شناسایی خطرات در زنجیره تأمین نرمافزار
- پروژه Juice Shop؛ یک نمونه وب اپلیکیشن برای گنجاندن تمام آسیبپذیریهای اساسی بررسیشده در لیست OWASP Top 10. این ابزار بر مبنای جاوا اسکریپت توسعه یافته و یک هدف هک برای اجرای آزمایشهایی از جمله تست نفوذ را فراهم میکند.
- پروژه Mobile Security Testing Guide؛ شامل مجموعه استانداردهای تست امنیت اپلیکیشن موبایل، الزامات امنیتی و تأیید آنها
- ModSecurity Core Rule Set؛ شامل مجموعه قوانین تشخیص حمله جهت استفاده در فایروال وب اپلیکیشنها
- Offensive Web Testing Framework؛ فریمورکهایی برای تست نفوذ
- Software Assurance Maturity Model؛ تحلیل و بهبود امنیت نرمافزار در طول چرخه حیات توسعه نرمافزار
- Security Knowledge Framework؛ یک اپلیکیشن وب برای توضیح نحوه استفاده از اصول کدنویسی امن در زبانهای برنامهنویسی مختلف
- Security Shepherd؛ پلتفرم آموزش امنیت برای اپلیکیشنهای وب و موبایل
- راهنمای Web Security Testing Guide؛ شامل راهنمای کامل تست امنیت برای وب اپلیکیشنها و سرویسهای وب
- Zed Attack Proxy؛ یک اسکنر وب اپلیکیشن برای تست نفوذ و آموزش. این ابزار بر منبای لایسنس اوپن سورس آپاچی توسعه یافته است.
تمامی این پروژهها نیز بر مبنای استاندارد OWASP ایجاد شدهاند.
جمعبندی
در این مطلب بررسی کردیم که OWASP چیست و لیستی که به صورت دورهای توسط این مجموعه تحت عنوان OWASP Top 10 معرفی میشود، شامل چه مواردی است. استاندارد OWASP وابسته به فرد یا شرکت و سازمان خاصی نبوده و بهصورت یک پروژه متنباز یا Open Source، در دسترس افراد مختلف در سراسر دنیا قرار میگیرد. این مجموعه فعالیت رسمی خود را از ۲۰۰۱ آغاز کرده و از آن زمان تاکنون توانسته تا کمک بزرگی به افراد فعال در حوزه امنیت وب و نرمافزارهای وب داشته باشد. اگر میخواهید دقیقتر بدانید که روند کار OWASP چیست و چه پروژههایی دارد، مطالعه این مطلب را از دست ندهید و به یاد داشته باشید که OWASP Top 10 چیست و چه کاربردهایی دارد.