۱۰ آسیب پذیری برنامه های تحت وب OWASP آشنایی OWASP Top 10

0 73
۵/۵ - (۳ امتیاز)

فهرست

OWASP چیست؟

پروژه امنیت برنامه های وب تحت وب یا Open Web Application Security Project که به اختصار به آن OWASP گفته می شود، یک بنیاد بدون سود است که به منظور ارتقاء امنیت نرم افزار تاسیس شده است. OWASP تحت یک مدل “جامعه باز یا Open Community” عمل می کند، جایی که هرکسی می تواند در پروژه ها، رویدادها، چت های آنلاین و موارد دیگر مشارکت داشته باشد. یک اصل OWASP این است که همه مطالب و اطلاعات رایگان هستند و به راحتی در وب سایت آنها برای همه قابل دسترسی است. در مقاله “انواع آسیب پذیری های تحت وب” چند مورد از معروف ترین آسیب پذیری های برنامه های تحت وب را معرفی کردیم اما در این مقاله ۱۰ تا از مهم ترین آسیب پذیری ها از نظر استاندارد OWASP را بررسی خواهیم کرد.OWASP همه چیز اعم از ابزارها، فیلم ها، انجمن ها، پروژه ها، تا رویدادها ارائه می دهد. به طور خلاصه، OWASP مخزنی از همه چیز در زمینه امنیت برنامه های کاربردی تحت وب است که توسط دانش و تجربه گسترده مشارکت کنندگان جامعه آن پشتیبانی می شود.

OWASP Top 10 چیست؟

OWASP Top 10 یک داکیومنت آنلاین در وب سایت OWASP است که رتبه بندی و راهنمایی های اصلاحی را برای ۱۰ مورد از مهمترین خطرات امنیتی برنامه های وب ارائه می دهد. این گزارش بر اساس اجماع کارشناسان امنیتی از سراسر جهان تهیه شده است. ریسک ها بر اساس فراوانی نقایص امنیتی کشف شده، درجه اهمیت آسیب پذیری ها و میزان تأثیرات احتمالی آنها طبقه بندی می شوند. هدف از این گزارش ارائه توسعه دهندگان و متخصصان امنیت برنامه های تحت وب به رایج ترین خطرات امنیتی است تا بتوانند در عملیات تست نفوذ یافته ها و توصیه های گزارش را در شیوه های امنیتی خود گنجانیده و در نتیجه حضور این خطرات شناخته شده را در برنامه های خود به حداقل برسانند.

OWASP Top 10 چگونه کار می کند؟

OWASP لیست Top 10 را از سال ۲۰۰۳ تهیه و آپدیت می کند. در این لیست، ۱۰ تا از خطرناک ترین و مهم ترین آسیب پذیری ها قرار دارد. هر ۲-۳ سال یکبار این لیست مطابق با پیشرفت ها و تغییرات در بازار AppSec به روز می شود. اهمیت OWASP در اطلاعات عملیاتی است که ارائه می دهد نهفته شده است. از این استاندارد به عنوان یک چک لیست کلیدی و یک استاندارد توسعه برنامه های تحت وب، در بسیاری از سازمان های دنیا استفاده می شود.

جدیدترین نسخه OWASP Top 10 در سال ۲۰۱۷ منتشر شد و شامل تغییرات قابل توجهی در نسخه ۲۰۱۳ بود، همانطور که در شکل زیر نشان داده شده است. آسیب پذیری های مربوط به Injection یا تزریق همچنان یکی از مهم ترین مسائل امنیتی در برنامه است. این دسته از آسیب پذیری ها می توانند باعث در معرض خطر قرار گرفتن اطلاعات حساس و مهم بشوند. برخی از مشکلات جدید، مانند Insecure Deserialization، و برخی مشکلات دیگر نیز در نسخه ۲۰۱۷ ادغام شدند. در تصویر زیر لیست OWASP Top 10 را مشاهده می کنید. در سمت چپ نسخه ۲۰۱۳ و در سمت راست نسخه ۲۰۱۷ قرار گرفته است.

What Is OWASP Top 10? | Synopsys
OWASP Top 10

آسیب پذیری های OWASP Top 10

آخرین نسخه OWASP Top 10، نسخه ۲۰۱۷ آن می باشد. در ادامه به معرفی این لیست ۱۰ تایی از مهم ترین آسیب پذیری های برنامه های تحت وب مطابق با استاندارد OWASP می پردازیم.

۱) تزریق یا Injection

تزریق کد (Code Injection) زمانی اتفاق می افتد که اطلاعات نامعتبر توسط مهاجم به یک برنامه وب ارسال شود. هدف مهاجم از انجام این کار این است که برنامه را وادار به انجام کاری کند که برای انجام آن طراحی نشده بوده است!

  • مثال تزریق کد یا Code Injection: تزریق SQL یا همان SQL Injection یکی از رایج ترین آسیب پذیری های مربوط به تزریق کد است که در برنامه های مختلف از جمله برنامه های تحت وب که با دیتابیس SQL کار می کنند، یافت می شود. اشکالات تزریق SQL می تواند ناشی از استفاده از داده های نامعتبر توسط یک برنامه هنگام ایجاد یک فراخوانی آسیب پذیر SQL باشد.
  • راه حل: مرور سورس کدها (Source Code Review) بهترین راه برای جلوگیری از حملات تزریق است. گنجاندن ابزارهای SAST و DAST در CI/CD شما به شناسایی اشکالات تزریق که به تازگی معرفی شده اند کمک می کند.
  • اگر می خواهید در مورد این نوع از آسیب پذیری بیشتر بدانید توصیه می شود که ویدیوهای “آموزش sqlmap” و “آموزش bbqsql” را مشاهده کنید.

۲) احراز هویت خراب یا Broken Authentication

برخی از برنامه ها اغلب به طور نادرست اجرا می شوند. به طور خاص، عملکردهای مربوط به احراز هویت و مدیریت نشست (Session)، هنگامی که به اشتباه اجرا شود، به مهاجمان اجازه می دهد کلمه عبور، کلمات کلیدی و جلسات را به خطر بیندازند. این می تواند منجر به سرقت هویت کاربر و اطلاعات بیشتر شود.

  • مثال Broken Authentication: یک برنامه وب که اجازه می دهد از گذرواژه های ضعیف یا معروف (به عنوان مثال “۱۲۳۴”) استفاده کنید.
  • راه حل: احراز هویت چند مرحله ای (Multi-step Authentication) می تواند به کاهش به خطر افتادن حساب ها کمک کند. تجزیه و تحلیل استاتیک خودکار (Automated Static Analysis) برای یافتن چنین اشکالاتی بسیار مفید است در حالی که تجزیه و تحلیل استاتیک دستی (Manual Static Analysis) می تواند در ارزیابی طرح های احراز هویت سفارشی قدرت بیشتری را ایجاد کند.
  • اگر می خواهید در مورد ربودن نشست (Session Hijacking) بیشتر بدانید توصیه می شود که ویدیو “حملات ربودن نشست” را مشاهده کنید.

۳) در معرض قرار گرفتن داده های حساس یا Sensitive Data Exposure

قرار گرفتن در معرض اطلاعات حساس زمانی است که داده های مهم ذخیره شده یا منتقل شده (مانند شماره های امنیت اجتماعی) به خطر بیفتد.

  • مثال Sensitive Data Exposure: موسسات مالی که در حفاظت کافی از داده های حساس خود کوتاهی می کنند، می توانند به آسانی هدف کلاهبرداری از کارت اعتباری و سرقت هویت قرار گیرند.

۴) موجودیت خارجی XML یا XML External Entity

مهاجمان می توانند از برنامه های وب که از پردازش اجزای آسیب پذیر XML استفاده می کنند، سواستفاده کنند. مهاجمان می توانند XML را بارگذاری کنند یا دستورات یا محتویات خصمانه را در یک سند XML قرار دهند.

  • مثال XEE: یک برنامه که به منابع نامعتبر اجازه می دهد تا بارگذاری XML را انجام دهند.
  • اگر می خواهید در مورد این نوع از آسیب پذیری بیشتر بدانید توصیه می شود که ویدیو “آموزش حملات XXE Injection” را مشاهده کنید.

۵) کنترل دسترسی خراب یا Broken Access Control

کنترل دسترسی خراب یا Broken Access Controlزمانی رخ می دهد که مهاجم بتواند به حساب های کاربران دسترسی پیدا کند. سپس مهاجم می تواند به عنوان کاربر یا مدیر در سیستم عمل کند.

  • مثال Broken Access Control: در این مورد یک برنامه اجازه می دهد تا کلید اصلی یا همان Primary Key تغییر کند. هنگامی که کلید به رکورد کاربر دیگری تغییر می کند، می توان حساب آن کاربر را مشاهده یا تغییر داد.

۶) پیکربندی اشتباه امنیتی یا Security Misconfiguration

پیکربندی های اشتباه امنیتی زمانی رخ می دهد که ضعف های طراحی یا پیکربندی ناشی از خطاهایی در پیکربندی باشد.

  • مثال Security Misconfiguration: یک حساب پیش فرض و رمز اصلی آن هنوز فعال است و سیستم را در معرض سوء استفاده قرار می دهد.

۷) آسیب پذیری Cross-site Scripting

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

  • مثال XSS: داده های غیرقابل اعتماد در یک برنامه به مهاجم اجازه می دهد نشست کاربر را بدزدد و به اطلاعات حساب او دسترسی پیدا کند.
  • اگر می خواهید در مورد حملات XSS بیشتر بدانید، می توانید ویدیو آموزش این حملات را از این لینک مشاهده کنید.

۸) Insecure Deserialization

Insecure Deserialization یک آسیب پذیری است که در آن ایرادات Deserialization به مهاجم اجازه می دهد تا کد را از راه دور در سیستم اجرا کند.

  • مثال Insecure Deserialization: یک برنامه کاربردی آسیب پذیر است زیرا آبجکت های متخاصم را که توسط یک مهاجم تهیه شده است، deserialize می کند.

۹) استفاده از کامپوننت های آسیب پذیر یا Using Components With Known Vulnerabilities

عنوان این آسیب پذیری ماهیت آن را بیان می کند. توضیح می دهد که برنامه ها با استفاده از اجزایی که دارای آسیب پذیری های شناخته شده هستند ساخته و اجرا می شوند.

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

۱۰) فقدان لاگ گیری و مانیتورینگ کافی یا Insufficient Logging And Monitoring

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

  • مثال Insufficient Logging and Monitoring: رویدادهای قابل بررسی، مانند ورود به سیستم، ورود ناموفق و سایر فعالیتهای مهم، ثبت نشده و منجر به یک برنامه آسیب پذیر می شود.

درباره ما

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
دوره‌های آکادمی ترجنس | courses.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence

ارسال یک پاسخ