OWASP

آشنایی با متدولوژی OWASP

مقدمه

با پیشرفت روزافزون تکنولوژی و بوجود آمدن شبکه‌های جدید باید از آنها در برابر تهدیدات افراد مختلف محافظت شود. متدولوژی OWASP یکی از روش‌های مقابله با این تهدیدات است و باعث ایمن شدن شبکه ما در برابر نفوذهای مختلف می‌شود.

بنیاد OWASP

بنیاد Open web application security project (پروژه امنیت برنامه‌های تحت وب) ، یک سازمان یا شاید بهتر باشد بگوییم بنیاد غیردولتی است که در جهت بهبود و ارتقای سطح امنیت نرم‌افزارها تلاش می‌کند. این بنیاد در 23 سپتامبر 2001 توسط «مارک کارفی» بنیان‌گذاری شد. بنیاد OWASP از طریق پروژه‌های نرم‌افزارهای متن باز با مشارکت جامعه و ده‌ها هزار عضو فعال، تعلیمات پیشتاز و راهبردی و جلسه‌های تمرینی ارائه می‌دهد. بنیاد OWASP مطمئن‌ترین و بهترین منبع برای توسعه‌دهندگان و تکنولوژیست‌ها برای امن کردن وب می‌باشد.

متدولوژی OWASP

متدولوژی OWASP از 9 زیرپروژه تشکیل شده است.OWASP یک متدولوژی یا بهتر بگوییم یک پروژۀ غیر دولتی است که در آن به شما به عنوان یک کارشناس برنامه‌نویس تحت وب ، معیارهایی که بایستی برای امن‌تر شدن نرم‌افزار خود بکار ببرید تشریح شده است. OWASP یک متدولوژی است، یعنی راهکار را به ما نشان می‌دهد، این متدولوژی منحصر به شرکت یا فرد یا سازمان خاصی نبوده و نیست و یک پروژه کاملا متن باز (Open Source) است که هر کسی در هر جای دنیا می‌تواند به آن بپیوندد و در آن شرکت کند. جامعۀ آماری که برای پروژه OWASP فعالیت می‌کنند؛ در زمینه‌های مختلفی از جمله تولید مقالات، شرکت در تالارهای گفتمان، معرفی و تولید نرم‌افزارهای امنیتی وب، تولید مستندات و متدولوژی‌های امنیتی بصورت کاملا رایگان فعالیت می‌کنند و نتیجه فعالیت خود را در مستند نهایی این پروژه مشاهده می‌کنند. پروژۀ OWASP در ابتدا به عنوان یک استاندارد مطرح نشد، اما امروزه به عنوان معیار یا بهتر بگوییم Baseline امنیتی طراحی و تولید امنیت در نرم‌افزارهای تحت وب استفاده می شود. متدولوژیOWASP در جهت بهبود نرم‌افزار برنامه‌ها تمرکز دارد و تلاش می‌کند که دنیا تبدیل به مکانی بکند که نرم‌افزارهای ناامن برای همه بسیار غیرعادی شوند و عملا هیچ برنامه ناامنی وجود نداشته باشد. در قدم اول به تست نفوذ برمی‌خوریم. این تست نفوذ در بخش‌های مختلفی انجام می‌شود که در ادامه آمده است:

  •  تست امنیت وب (WSTG)، تیم تست نفوذ پس از طی مراحل منفعل و جمع‌آوری اطلاعات مورد نیازشان به مرحله active رفته و در 9 حوزه، می‌توانند به کشف آسیب‌پذیری خطاهای موجود بپردازند. در آخر اگر از WAF یا همان دیواره‌های آتش وب بنیان در شبکه استفاده شده باشد؛ بایستی بررسی‌های امنیتی لازم نیز بر روی آن انجام‌پذیر باشد. آسیب‌پذیری‌هایی که بایستی مورد بررسی قرار گیرد، فهرست شده و بررسی‌های امنیتی با استفاده از ابزار و همچنین به روش دستی انجام می‌شود.
  •  تست امنیت موبایل (MSTG)، برنامه‌های کاربردی موبایل نیز همانند برنامه‌های کاربردی وب و دسکتاپ با آسیب‌پذیری‌های شناخته‌ شده و ناشناخته‌ای تهدید می‌شوند. این آسیب‌پذیری‌ها می‌توانند از طریق تکنیک آزمون نفوذ برنامه‌های کاربردی موبایل ردیابی و شناسایی شوند. در واقع این تکنیک‌ها، حفره‌های امنیتی و آسیب‌پذیری‌های برنامه‌های کاربردی و زیرساخت‌های موبایلی را تشخیص می‌دهد.
    متدولوژی تست امنیت سیستم عامل از 9 مرحله متناسب با فعال کردن محققان امنیتی، توسعه‌دهندگان نرم‌افزار، مشاوران، علاقه‌مندان، و متخصصان امنیت اطلاعات با انجام ارزیابی‌های امنیتی سیستم عامل تشکیل شده است.

زیرپروژه‌های OWASP

    • ASVS   یا  OWASP Application Security Verification Standard      : استاندارد تایید امنیت نرم‌افزارهای کاربردی یا  ASVSهمانطور که از نام این پروژه پیداست برای دریافت تاییدیه برای نرم‌افزارهای وب در خصوص رعایت استانداردهای امنیت به کار گرفته می‌شود.
    • XSG   یا    OWASP XML Security Gateway    : این استاندارد بصورت پایلوت فعلا ایجاد شده است و به‌ صورت ویژه برای برقراری امنیت برای ساختار XML مورد استفاده قرار می‌گیرد.
    • OWASP Development Guide راهنمای توسعه نرم‌افزار برای برنامه‌نویسان وب ایجاد شده است و شامل یک سری نمونه کدهای کاربردی و تمثیلی از زبان‌های برنامه‌نویسی مانند J2EE و NET و PHP  است. در این راهنمای برنامه‌نویسی و توسعۀ نرم‌افزارهای وب برنامه‌نویس با انواع و اقسام حملات تحت وب از قبیل SQL Injection  و همچنین حملات جدیدتر شامل Phishing و حتی مباحث کارت‌های اعتباری و امنیت تبادلات الکترونیک،Session Fixation  و بسیاری دیگر از مسائل مهم اعم از مشکلات حریم خصوصی در وب سایت‌ها آشنا می‌شوند و به آنها در جهت رفع مشکلات احتمالی در خصوص این نرم‌افزارها راهنمایی‌های لازم ارائه می‌شود.
    •   OWASP testing guide  : همانطور که از نام این پروژه مشخص است راهنمایی برای تست و آزمون گرفتن از نرم‌افزارهای کاربری تحت وب است. این پروژه در واقع یک راهنمای مقدماتی برای برنامه‌نویسان وب  است تا بتوانند در پروژه‌های تست نفوذ سنجی به نرم‌افزارهای تحت وب از آن استفاده کرده و آن را معیار امنیتی خود قرار بدهند. در این راهنما تکنیک‌های مقدماتی نفوذ و حمله به نرم‌افزارهای تحت وب و سرویس‌های تحت وب تشریح شده است.
    • :OWASP code review guide راهنمایی برای مرور کدهای نوشته شده و مستندسازی کدهای نوشته شده، است که برنامه‌نویس بتواند پس از نوشتن یا توسعۀ نرم‌افزار کاربردی وب خود آن را آزمایش کرده و نقاط ضعف در کدهای نوشته شده را برطرف کند.
    •   OWASO ZAP project :     این پروژه یک نرم افزار تست نفوذ سنجی تقریبا ساده است که برای انجام تستهای نفوذسنجی به نرم افزار های کاربردی تحت وب مورد استفاده قرار می‌گیرد. این ابزار برای استفاده برنامه‌نویسان و هکرهای قانومند بسیار مناسب و کاربردی است.
    • :OWASP TOP ten هدف از این پروژه اطلاع‌رسانی در خصوص مشکلات امنیتی نرم‌افزارهای تحت وب و هشداردهی به سازمان‌ها در خصوص امنیت برنامه‌های تحت وب است. در این پروژه از انواع و اقسام ابزارها، کدها، راهنماها و … معرفی و استفاده می‌شود.
    •  SAM یا  :OWASP Software Assurance Maturity Modelاین پروژه یک راهنما برای سازمان‌ها است تا یک چارچوب درست امنیتی و تحلیل امنیتی برای نرم‌افزارهای تحت وب خود ایجاد کنند و بتوانند با مشکلات امنیتی نرم‌افزارهای کاربردی تحت وب و ریسک‌های آن بصورت هدفمند و روشمند مقابله و برخورد کنند.
    • :Webgoat این پروژه یک نرم‌افزار کاربردی تحت وب است که تمامی نقاط ضعفی که تا به حال توسط OWASP  شناخته شده‌اند را بصورت مجازی و در قالب یک محیط برنامه‌نویسی شده شبیه‌سازی و در اختیار برنامه‌نویسان قرار می‌دهند. افرادی که با انواع حملات آشنایی پیدا کرده‌اند؛ ولی می‌خواهند آن را بصورت عملی درک کنند؛ کافیست این نرم‌افزار را دانلود کرده و آن را نصب و از طریق راهنمای آن تمامی حملات را بصورت شبیه‌سازی شده انجام دهند.

تست نفوذ Penetration test

نفوذ كردن به شبكه‌هاي كامپيوتري و دسترسي به منابع يک شبكه، در حالت معمول، امري غيرقانوني تلقي مي‌شود اما يك متخصص امنيت با بستن قراردادي با صاحبان و مديران شبكه و يا يك نرم‌افزار، علاوه بر قانوني كردن آن، نتايج آن را به نفع شما باز مي‌گرداند. متخصص امنیت شبکه از ديد يك هكر به برنامه يا شبكه نگريسته و تلاش مي‌كند تا كليه مشكلات و شكاف‌هاي امنيتي آن را شناسايي و ارائه دهد. بدين وسيله با رفع اين معايب، علاوه بر بالابردن ميزان امنيت سرويس‌هاي خود و جلب رضايت بيشتر مشتريان، راه را بر نفوذگران مخرب سد مي‌کند. روش‌های تست نفوذ عبارتنداز:
:White box در این حالت تيم تست نفوذ اطلاعات کامل دربارۀ موضوع مورد تست دارد و همچنين دسترس به منابع داخلی شبکه نيز دارد. معمولا از این نوع تست برای ارزیابی آسيب‌پذیری‌های داخل شبکه استفاده می‌شود.
:Grey box در این حالت دسترسی به منابع داخلی محدود است و اطلاعات کاملی در اختيار تيم قرار نمی‌گيرد.
:Black box در این حالت هيچ گونه دسترسی و اطلاعاتی به تيم تست نفوذ داده نمی‌شود. معمولا این نوع تست نفوذ برای وب سرورها و برنامه‌های کاربردی تحت وب انجام می‌شود.

استاندارد اجرای تست نفوذ (PTES)

استاندارد اجرای تست نفوذ (PTES) تست نفوذ را در7 فاز تعریف می‌کند. همچنین دستورالعمل فنی PTES پیشنهادهای عملی در روش‌های مختلف تست و توصیه‌هایی برای ابزار تست امنیت ارائه می‌کند که در زیر آمده‌اند:

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