امنیت و OWASP

Images
Images
Images
Images

امنیت و OWASP

  • مقالات
  • 1,917 بازدید
OWASP چیست


OWASP چیست ؟

کلمه OWASP مخفف شده Open Web Application Security Protocol Project است و یک متدولوژی یا بهتر بگوییم یک پروژه غیر دولتی است که در آن به شما به عنوان یک کارشناس برنامه نویس تحت وب ، معیارهایی که بایستی برای امن تر شدن نرم افزار خود بکار ببرید تشریح شده است. OWASP یک متدولوژی است ، یعنی راهکار را به ما نشان می دهد ، این متدولوژی منحصر به شرکت یا فرد یا سازمان خاصی نبوده و نیست و یک پروژه کاملا متن باز (Open Source ) است که هر کسی در هر جای دنیا می تواند به آن بپیوندد و در آن شرکت کند. جامعه آماری که برای پروژه OWASP فعالیت می کنند در زمینه های مختلفی از جمله تولید مقالات ، شرکت در تالارهای گفتمان ، معرفی و تولید نرم افزارهای امنیتی وب ، تولید مستندات و متدولوژی های امنیتی بصورت کاملا رایگان فعالیت می کنند و نتیجه فعالیت خود را در مستند نهایی این پروژه مشاهده می کنند. پروژه OWASP در ابتدا به عنوان یک استاندارد مطرح نشد اما امروزه به عنوان معیار یا بهتر بگوییم Baseline امنیتی طراحی و تولید امنیت در نرم افزارهای تحت وب استفاده می شود.

 

 

  OWASP.org

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

نام این سازمان مخفف عبارت Open Web Application Security Project می باشد.

 


 

OWASP امروزه متشکل از 9  پروژه  کوچک است که هر کدام بصورت جداگانه در خصوص یکی از موارد مرتبط با امنیت حوزه نرم افزارهای تحت وب فعالیت می کنند

  1. OWASP Application Security Verification Standard یا ASVS : استاندارد تایید امنیت نرم افزارهای کاربردی یا ASVS همانطور که از نام این پروژه پیداست برای دریافت تاییده برای نرم افزارهای وب در خصوص رعایت استاندارد های امنیت بکار گرفته می شود. بر طبق این استاندارد یک سری تست های امنیتی بر روی نرم افزار از قبلی Cross Site Scripting و SQL Injection و حملاتی از این قبلی انجام می شود و در صورت رعایت شدن این موارد در نرم افزار ، موفق به دریافت استاندارد می شوند.
  2. OWASP XML Security Gateway یا XSG : این استاندارد بصورت پایلوت فعلا ایجاد شده است و بصورت ویژه برای برقراری امنیت برای ساختار XML مورد استفاده قرار می گیرد.
  3. OWASP Development Guide : راهنمای توسعه نرم افزار برای برنامه نویسان وب ایجاد شده است و شامل یک سری نمونه کدهای کاربردی و تمثیلی از زبانهای برنامه نویسی مانند J2EE و ASP.NET و PHP می باشد. در این راهنمای برنامه نویسی و توسعه نرم افزارهای وب برنامه نویس با انواع و اقسام حملات تحت وب از قبیل SQL Injection و همچنین حملات جدیدتر شامل Phishing و حتی مباحث کارت های اعتباری و امنیت تبادلات الکترونیک ، Session Fixation و بسیاری دیگر از مسائل مهم اعم از مشکلات حریم خصوصی در وب سایت ها آشنا می شوند و به آنها در جهت رفع مشکلات احتمالی در خصوص این نرم افزار ها راهنمایی های لازم ارائه می شود.
  4. OWASP Testing Guide : همانطور که از نام این پروژه مشخص است راهنمایی برای تست و آزمون گرفتن از نرم افزارهای کاربری تحت وب است. این پروژه در واقع یک راهنمای مقدماتی برای برنامه نویسان وب می باشد تا بتوانند در پروژه های تست نفوذ سنجی به نرم افزارهای تحت وب از آن استفاده کرده و آن را معیار امنیتی خود قرار بدهند. در این راهنما تکنیک های مقدماتی نفوذ و حمله به نرم افزارهای تحت وب و سرویس های تحت وب تشریح شده است.
  5. OWASP Code Review Guide : راهنمایی برای مرور کدهای نوشته شده و مستند سازی کدهای نوشته شده می باشد که برنامه نویس بتواند پس از نوشتن یا توسعه نرم افزار کاربردی وب خود آن را آزمایش کرده و نقاط ضعف در کدهای نوشته شده را برطرف کند.
  6. OWASP ZAP Project : این پروژه یک نرم افزار تست نفوذ سنجی تقریبا ساده می باشد که برای انجام تست های نفوذ سنجی به نرم افزار های کاربردی تحت وب مورد استفاده قرار می گیرد. این ابزار برای استفاده برنامه نویسان و هکرهای قانومند بسیار مناسب و کاربردی می باشد.
  7. OWASP Top Ten : هدف از این پروژه اطلاع رسانی در خصوص مشکلات امنیتی نرم افزارهای تحت وب و هشدار دهی به سازمان ها در خصوص امنیت برنامه های تحت وب می باشد. در این پروژه انواع و اقسام مختلفی از ابزارها ، کد ها ، راهنماها و … معرفی و استفاده می شود.
  8. OWASP Software Assurance Maturity Model یا SAM : این پروژه یک راهنما برای سازمان ها است تا بتوانند یک چارچوب درست امنیتی و تحلیل امنیتی برای نرم افزارهای تحت وب خود ایجاد کنند تا بتوانند با مشکلات امنیتی نرم افزارهای کاربردی تحت وب و ریسک های آن بصورت هدفمند و روشمند مقابله و برخورد کنند.
  9. Webgoat : این پروژه یک نرم افزار کاربردی تحت وب می باشد که تمامی نقاط ضعفی که تا به حال توسط OWASP شناخته شده اند را بصورت مجازی و در قالب یک محیط برنامه نویسی شده شبیه سازی و در اختیار برنامه نویسان قرار می دهند.افرادی که با انواع حملات آشنایی پیدا کرده اند ولی می خواهند آن را بصورت عملی درک کنند کافیست این نرم افزار را دانلود کرده و آن را نصب و از طریق راهنمای آن تمامی حملات را بصورت شبیه سازی شده انجام دهند.

 

همانطور که در  گزینه  7 مطرح شد این سازمان هر چند سال یک مرتبه لیستی از شاخص ترین آسیب پذیری های متداول در نرم افزار ها و سرویس های ارائه شده تحت وب در سر تاسر جهان را از طریق مستندی ارائه می کند که این لیست مبنای امنیتی نرم افزارهای تحت وب به شمار می رود. تا قبل از نوشتن این مطلب آخرین بار این لیست در سال 2013 ارائه شده است.

هدف از معرفی این سازمان و فعالیت های آن ، بررسی آیتم های OWASP Top Ten و ارائه راه حل های آن ها در ASP.NET MVC و سایر موارد مربوط به امنیت در وب سایت های مبتنی بر  ASP.NET MVC می باشد.

 

 

ابتدا لیست 10 نقطه آسیب پذیر که طی سالهای پیش ، در حملات بیشتری نسبت به سایر نقاط آسیب پذیر مورد استفاده قرار گرفته اند:

  1. Injection : در این نوع خطا ، عباراتی جزو دستور و یا جزو بخشی از url ارسال می شود که می تواند به سرور ، دیتابیس و یا برنامه ما لطمه وارد کند. این عبارات می توانند دسترسی های زیادی به یک بیننده عادی اعطا نموده و سیستم را دچار مشکل نمایند
  2. Broken Authentication and Session Management : در این ایراد برنامه نویس کنترل کامل و صحیحی بر روی دسترسی ها نداشته و در مدیریت وضعیت فعلی یک کاربر (session) نیز معایبی دارد و حمله کننده می تواند اطلاعات یک کاربر را دزدیده و بدون داشتن رمز عبور کاربر وارد پنل کاری کاربر شود.
  3. Cross-Site Scripting : این ایراد در برنامه هایی رخ می دهد که اطلاعات نامطمئن را دریافت کرده و آنرا بدون بررسی بر روی htlm خروجی ارسال می کنند. در این حمله می توان با اجرای script بر روی مرورگر قربانی اطلاعات session کاربر را دزدید و یا بازدیدکننده را به سایت دیگری هدایت کرد
  4. Insecure Direct Object References : در این نوع حمله، مهاجم می تواند مستقیم و بدون شناسایی به اشیاء مورد نظر دسترسی داشته باشد.
  5. Security Misconfiguration :امنیت عالی تنها امنیت در برنامه نویسی نیست بلکه شامل موارد امنیتی دیگری از قبیل frameworks, application server, web server, database serverو سیستم عامل می باشد.تنظیمات امنیتی برای تمامی این عناصر باید تعریف و اجرا شده باشد و نبایستی تنظیمات آنها را در همان وضعیت اولیه  (default) رها نمود.
  6. Sensitive Data Exposure : اغلب وب سایتها اطلاعات مهم از قبیل شماره حساب و یا رمز کاربران بصورت ساده و ناامن در خود نگهداری می کنند. و ارسال نامطمئن این اطلاعات در لایه های برنامه امکان دزدیدن این اطلاعات مهم را بالا می برد
  7. Missing Function Level Access Control : در برخی از سایت ها تنها اینکه کاربر login کرده دقت می شود و اینکه کاربر login کرده به کدامیک از آدرسهای بخش مدیریت دسترسی ندارد چندان اهمیتی داده نمی شود.
  8. Cross-Site Request Forgery :در این نوع از حمله، مهاجم مجبور است از طریق مرورگر قربانی ایکه در یک سیستم login کرده درخواست جعلی ارسال کند
  9. Using Known Vulnerable Components : امروزه استفاده از کامپوننت در برنامه نویسی رشد زیادی داشته و استفاده از کامپوننت های ضعیف و آسیب پذیر نیز در سال 2013 به لیست 10 آیتم اضافه شده است
  10. Unvalidated Redirects and Forwards : وب سایت شما بطور متناوب از صفحه ای به صفحه دیگر redirect  شده و یا کاربری به صفحه دیگری forward می شود. اگر برای انتقال اطلاعات آشکاری جهت تشخیص مقصد ارسال شود این اطلاعات می تواند توسط یک مهاجم دستکاری شده و مورد سوء استفاده قرار گیرد.

پست های تصادفی

طوفان فکری با تیم مشاوران آکو

درخواست مشاوره
مشاوره با آکو