پروژه امنیتی OWASP

هر بازار تکنولوژی پر جنب و جوش نیاز به یک منبع بی طرف از اطلاعات دارد که مبتنی بر استانداردهای متن باز باشد. در فضای امنیتی نرم افزارها و برنامه های کاربردی، یکی از آن گروه ها، پروژه امنیتی وب اپلیکیشن متن باز (یا OWASP) است.OWASP یک سازمان غیر انتفاعی در دنیا است که با هدف بهبود امنیت نرم افزار تمرکز دارد. ماموریت OWASP این است که امنیت نرم افزار را به گونه ای نمایش دهده تا افراد و سازمان ها بتوانند تصمیمات آگاهانه بگیرند. OWASP در موقعیتی منحصر به فرد برای ارائه اطلاعات بیطرفانه و عملی درباره امنیت اپلیکیشن ها به افراد، شرکت ها، دانشگاه ها، سازمان های دولتی و سایر سازمان های سراسر جهان اقدام می کند. OWASP به عنوان یک جامعه ای از متخصصان حوزه امنیت اطلاعات به صورت همگرا عمل می کند و ابزارهای نرم افزاری و مدارک مبتنی بر دانش را برای امنیت اپلیکیشن ها ارائه می نماید.
هر کس آزاد است که در OWASP مشارکت داشته باشد و همه مطالب آن تحت مجوز نرم‌افزارهای آزاد موجود است. بنابراین شما هم اکنون می توانید به این جنبش آزاد در حوزه امنیت نرم افزار بپیوندید.در واقع OWASP، یک انجمن آنلاین، مقالات آزاد، روشها، اسناد، ابزارها و فن آوری ها را در زمینه امنیت برنامه های کاربردی تحت وب به صورت آزاد ارائه می کند. در همین راستا OWASP Top 10 که یک سند اطلاع رسانی قوی برای امنیت وب اپلیکیشن ها است توسط OWASP ارائه شده است و این سند در بازه های زمانی معین به روزرسانی می گردد. این نشان دهنده یک توافق گسترده در مورد مهم ترین خطرات امنیتی برای برنامه های کاربردی تحت وب یا وب اپلیکیشن ها است. اعضای پروژه شامل انواع متخصصان امنیتی از سراسر جهان هستند که تخصص خود را برای تولید این لیست به اشتراک گذاشته اند.  اتخاذ OWASP Top 10 شاید اولین گام موثر در راستای تغییر فرهنگ توسعه نرم افزار در سازمان های مبتنی بر فناوری اطلاعات (IT) به یک کد تولیدی امن باشد. OWASP Top 10 لیستی از آسیب پذیرهای مربوط به وب اپلیکیشن ها، همراه با خطر، تاثیر و اقدامات متقابل است. در ادامه این لیست تشریح شده است.

A1: 2017-Injection (تزریق)

نقص تزریق، مانند تزریق به SQL، NoSQL، OS و LDAP است و زمانی اتفاق می افتد که داده های نامعتبر به یک بخشی از فرمان یا پرس و جو به مفسر سمت هدف ارسال شود. داده های مخرب مهاجم می تواند مفسر سمت هدف را به اجرای دستورات غیرمنتظره یا دسترسی به داده ها بدون مجوز دسترسی مناسب، هدایت کند و آن را هدف قرار دهد.

در واقع حملات تزریق زمانی اتفاق می افتد که سمت سرور یا هدف داده های ورودی را به درستی تفسیر نمی کند و منجر می شود که داده های مخرب مهاجم روی سرور اجرا شوند. چند نمونه از مثال های تزریق که ممکن است در سمت سرور برای پنل لاگین زیر اجرا شوند عبارتند از:

مثال ها:

$username = 1' or '1' = '1
$password = 1' or '1' = '1
$username = 1' or '1' = '1'))/*
$password = foo
$username = 1' or '1' = '1')) LIMIT 1/* 
$password = foo

بنابراین اگر مثال های فوق در پنل لاگین وارد شود و سرور به درستی ورودی ها را کنترل نکند، این وروردی ها عملیات احراز هویت را bypass یا دور می زنند.

A2:2017-Broken Authentication (شکست احراز هویت)

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

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

A3:2017-Sensitive Data Exposure (افشاء داده های حساس و مهم)

بسیاری از برنامه های کاربردی وب و API ها از اطلاعات حساس مانند اطلاعات مالی، مراقبت های بهداشتی و PII به درستی محافظت نمی کنند. مهاجمان ممکن است اطلاعاتی را که برای محافظت از کارت اعتباری و احراز هویت مورد استفاده قرار می گیرد را سرقت و یا تغییر دهند. داده های حساس ممکن است بدون حفاظت اضافی، مانند رمزگذاری در حین تراکنش، به خطر بیافتد. بنابراین نیاز است که این اطالاعات و داده های مهم به وسیله سیاست ها و پروتکل های رمزنگاری حفاظت شوند. به طول مثال مانند تصویر زیر اطلاعات حساس از طریق کانال امن و از طریق پروتکل HTTPS به سمت سرور ارسال می گردد.

A4:2017-XML External Entities (XXE) (موجودیت های خارجی XML)

بسیاری از پردازشگرها قدیمی یا ضعیف XML، منابع موجودیت خارجی را در اسناد XML ارزیابی می‌کنند. موجودیت‌های خارجی یا مهاجمان می توانند با استفاده از نشانی‌های اینترنتی فایل، پرونده به اشتراک گذاشته شده داخلی، اسکن پورت های داخلی، اجرای کد دور و حملات انکار سرویس به فایل های داخلی دسترسی پیدا کنند. بنابراین سرورهای بایستی به گونه ای پیکربندی شوند که کنترل های امنیتی را روی فایل های XML ورودی که توسط مهاجمان به سمت سرور ارسال می شود، انجام دهند.

به طور مثال کد زیر در نگاه اول یک کد XML معمولی است اما اگر مفسر XML سرور به درستی تنظیم نشده باشد این کد باعث می شود که منابع پردازشی سرور به شدت بالا رود و منجر به از کار افتادن سیستم گردد.

<?xml version="1.0"?>
<!DOCTYPE lolz [
 <!ENTITY lol "lol">
 <!ELEMENT lolz (#PCDATA)>
 <!ENTITY lol1 "&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;">
 <!ENTITY lol2 "&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;">
 <!ENTITY lol3 "&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;">
 <!ENTITY lol4 "&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;">
 <!ENTITY lol5 "&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;">
 <!ENTITY lol6 "&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;">
 <!ENTITY lol7 "&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;">
 <!ENTITY lol8 "&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;">
 <!ENTITY lol9 "&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;">
]>
<lolz>&lol9;</lolz>

 

A5:2017-Broken Access Control (شکست کنترل دسترسی)

محدودیت هایی که کاربران احراز هویت شده، مجاز به انجام آن می باشند اغلب به درستی اجرا نمی شوند. مهاجمان می توانند از این نقص برای دسترسی به قابلیت های غیر مجاز و / یا داده های حساس مانند دسترسی به حساب های دیگر کاربران، مشاهده فایل های حساس، تغییر دادن داده های کاربران، تغییر حقوق دسترسی و غیره استفاده کنند.

A6:2017-Security Misconfiguration (پیکربندی های امنیتی نادرست)

تنظیمات امنیتی اغلب مهمترین مساله است و خیلی سریع دیده می شوند. این معمولا نتیجه ای از تنظیمات پیش فرض ناامن، پیکربندی های ناقص و غیر مجاز، هدر HTTP به اشتباه تنظیم شده و پیام های خطای عمدی که حاوی اطلاعات حساس است. نه تنها تمام سیستم عامل ها، چارچوب ها، کتابخانه ها و برنامه های کاربردی باید به صورت ایمن پیکربندی شوند بلکه آنها باید به موقع تعمیر واصلاح شوند.

A7:2017-Cross-Site Scripting (XSS) (تزریق اسکریپت)

نقص های XSS زمانی رخ می دهد که یک برنامه داده های مخرب و ناخواسته را در یک صفحه وب که اعتبارسنجی و اسکیپینگ (Escape) درستی ندارد (اسکریپت ها و کاراکترهای کنترلی را اسکیپ یا خنثی نمی کند) تزریق می کند و از طریق API مرورگر کاربر که می تواند HTML یا جاوا اسکریپت اجرا کند، به هدف خود می رسد. XSS به مهاجمان اجازه می دهد اسکریپت ها را در مرورگر قربانی اجرا کنند و از این طریق کارهایی مانند سرقت کوکی های کاربران، خرابی در وب سایت ها و یا هدایت کاربران به وب سایت های مخرب را انجام دهند.

سه نوع مختلف از حمله xss وجود دارد:

  • Reflected
  • Stored
  • DOM-based

به طور مثال اگر اسکریپت (alert(document.cookie اجرا گردد تصویر زیر که حاوی اطلاعات کوکی کاربر است مشاهده می شود.

 A8:2017-Insecure Deserialization (بی نظمی ناامن)

بی نظمی ناامن اغلب منجر به اجرای کد از راه دور می شود. حتی اگر معایب Deserialization منجر به اجرای کد از راه دور شود، می توان آنها را برای انجام حملات، از جمله حملاتReplay، حملات تزریق و حملات تشدید امتیاز، مورد استفاده قرار داد.

 

A9:2017-Using Components with Known Vulnerabilities (استفاده از اجزایی با آسیب پذیری های شناخته شده و مشهور)

اجزایی مانند کتابخانه ها، چارچوب ها و دیگر ماژول های نرم افزاری، دارای امتیازاتی مشابه با برنامه می باشند. اگر یک جزء آسیب پذیر مورد استفاده قرار گیرد، می تواند از دست رفتن اطلاعات مهم محقق سازد. برنامه های کاربردی و API ها با آسیب پذیری های شناخته شده می توانند حفاظت برنامه های دیگر را تضعیف کنند و حملات و تأثیرات مختلف را فعال کنند. بنابراین نیاز است که تمام اجزای IT مهم استفاده شده در سازمان بررسی و آسیب پذیری های آنها مشخص شود.

A10:2017-Insufficient Logging&Monitoring (نظارت و لاگین های ناکافی)

نظارت و ورود و خروج ناکافی، همراه با یکپارچه سازی گمشده و پیچیده به مهاجمان اجازه می دهد تا سیستم های حمله بیشتر، پایداری، هدف گیری سیستم های دیگر، دستکاری، استخراج و یا از بین بردن داده ها را حفظ کنند. اکثر مطالعات قانونشکنی نشان می دهند که زمان تشخیص قانونشکنی بیش از ۲۰۰ روز است. بنابراین نیاز است که به طور پیوسته عملیات نظارتی و بررسی لاگ ها روی دارایی های سازمان انجام شود.

 

نظر بدهید

آدرس ایمیل تان منتشر نخواهد شد.