10 خطر امنیتی برتر OWASP | بررسی اجمالی
فهرست مندرجات
OWASP چیست؟
OWASP یک سازمان غیرانتفاعی است که به آموزش امنیت برنامه های وب اختصاص داده شده است.
مواد آموزشی OWASP در وب سایت آنها قابل دسترسی است. ابزار آنها برای بهبود امنیت برنامه های کاربردی وب مفید است. این شامل اسناد، ابزارها، فیلم ها و انجمن ها می شود.
OWASP Top 10 لیستی است که مهمترین نگرانی های امنیتی برای برنامه های وب امروزی را برجسته می کند. آنها توصیه می کنند که همه شرکت ها این گزارش را در فرآیندهای خود برای کاهش خطرات امنیتی بگنجانند. در زیر لیستی از خطرات امنیتی موجود در گزارش OWASP 10 Top 2017 آمده است.
تزریق SQL
تزریق SQL زمانی اتفاق میافتد که مهاجم دادههای نامناسبی را به یک برنامه وب ارسال میکند تا برنامه را در برنامه مختل کند..
نمونه ای از تزریق SQL:
مهاجم می تواند یک پرس و جوی SQL را در یک فرم ورودی که به یک متن ساده نام کاربری نیاز دارد وارد کند. اگر فرم ورودی ایمن نباشد، منجر به اجرای پرس و جوی SQL می شود. این اشاره شده است به عنوان تزریق SQL.
برای محافظت از برنامه های کاربردی وب در برابر تزریق کد، مطمئن شوید که توسعه دهندگان شما از اعتبارسنجی ورودی در داده های ارسال شده توسط کاربر استفاده می کنند.. اعتبار سنجی در اینجا به رد ورودی های نامعتبر اشاره دارد. یک مدیر پایگاه داده همچنین می تواند کنترل هایی را برای کاهش مقدار تنظیم کند اطلاعات که می تواند افشا شود در حمله تزریقی.
برای جلوگیری از تزریق SQL، OWASP توصیه می کند داده ها را جدا از دستورات و پرس و جو نگه دارید. گزینه مطلوب استفاده از امن است API برای جلوگیری از استفاده از مفسر یا انتقال به ابزارهای نگاشت رابطه ای شی (ORM).
احراز هویت شکسته
آسیبپذیریهای احراز هویت میتوانند به مهاجم اجازه دسترسی به حسابهای کاربری و به خطر انداختن سیستم را با استفاده از یک حساب کاربری مدیریت کنند.. یک مجرم سایبری می تواند از یک اسکریپت برای آزمایش هزاران ترکیب رمز عبور در یک سیستم استفاده کند تا ببیند کدام یک کار می کند. هنگامی که مجرم سایبری وارد می شود، می تواند هویت کاربر را جعل کند و به آنها امکان دسترسی به اطلاعات محرمانه را بدهد..
یک آسیبپذیری احراز هویت شکسته در برنامههای کاربردی وب وجود دارد که اجازه ورود خودکار را میدهند. یک راه محبوب برای تصحیح آسیبپذیری احراز هویت، استفاده از احراز هویت چند عاملی است. همچنین، محدودیت نرخ ورود می تواند شامل شود در برنامه وب برای جلوگیری از حملات brute force.
قرار گرفتن در معرض داده های حساس
اگر برنامههای کاربردی وب محافظت نکنند، مهاجمان حساس میتوانند به آنها دسترسی داشته باشند و از آنها برای منافع خود استفاده کنند. حمله در مسیر یک روش محبوب برای سرقت اطلاعات حساس است. هنگامی که تمام داده های حساس رمزگذاری شده باشند، خطر مواجهه می تواند حداقل باشد. توسعه دهندگان وب باید اطمینان حاصل کنند که هیچ داده حساسی در مرورگر در معرض دید قرار نمی گیرد یا به صورت غیر ضروری ذخیره نمی شود.
موجودیت های خارجی XML (XEE)
یک مجرم سایبری ممکن است بتواند محتوا، دستورات یا کدهای مخرب XML را در یک سند XML آپلود یا اضافه کند.. این به آنها اجازه می دهد تا فایل ها را در سیستم فایل سرور برنامه مشاهده کنند. پس از دسترسی، می توانند با سرور برای انجام حملات جعل درخواست سمت سرور (SSRF) تعامل داشته باشند.
حملات موجودیت خارجی XML می توانند توسط به برنامه های کاربردی وب اجازه می دهد تا انواع داده های پیچیده تر مانند JSON را بپذیرند. غیرفعال کردن پردازش موجودیت خارجی XML نیز احتمال حمله XEE را کاهش می دهد.
کنترل دسترسی خراب
کنترل دسترسی یک پروتکل سیستمی است که کاربران غیرمجاز را به اطلاعات حساس محدود می کند. اگر یک سیستم کنترل دسترسی خراب شود، مهاجمان می توانند احراز هویت را دور بزنند. این به آنها امکان دسترسی به اطلاعات حساس را می دهد که گویی مجوز دارند. کنترل دسترسی را می توان با پیاده سازی نشانه های مجوز در ورود کاربر ایمن کرد. در هر درخواستی که کاربر در حین احراز هویت انجام میدهد، توکن مجوز با کاربر تأیید میشود و نشان میدهد که کاربر مجاز به انجام آن درخواست است.
پیکربندی غلط امنیتی
پیکربندی نادرست امنیتی یک مشکل رایج است که امنیت سایبری متخصصان در برنامه های کاربردی وب مشاهده می کنند. این در نتیجه پیکربندی نادرست هدرهای HTTP، کنترلهای دسترسی شکسته، و نمایش خطاهایی رخ میدهد که اطلاعات را در یک برنامه وب نشان میدهد.. میتوانید با حذف ویژگیهای استفاده نشده، پیکربندی نادرست امنیتی را اصلاح کنید. همچنین باید بسته های نرم افزاری خود را وصله یا ارتقا دهید.
برنامه نویسی متقابل سایت (XSS)
آسیبپذیری XSS زمانی رخ میدهد که مهاجم DOM API یک وبسایت مورد اعتماد را برای اجرای کدهای مخرب در مرورگر کاربر دستکاری میکند.. اجرای این کد مخرب اغلب زمانی اتفاق میافتد که کاربر روی پیوندی کلیک میکند که به نظر میرسد از یک وبسایت قابل اعتماد است.. اگر وب سایت از آسیب پذیری XSS محافظت نشده باشد، می تواند به خطر بیفتد. کد مخرب که اجرا می شود به مهاجم اجازه دسترسی به جلسه ورود کاربران، جزئیات کارت اعتباری و سایر داده های حساس را می دهد.
برای جلوگیری از اسکریپت بین سایتی (XSS)، اطمینان حاصل کنید که HTML شما به خوبی پاکسازی شده است. این می تواند توسط انتخاب چارچوب های قابل اعتماد بسته به زبان انتخابی. میتوانید از زبانهایی مانند Net، Ruby on Rails، و React JS استفاده کنید زیرا به تجزیه و پاکسازی کد HTML شما کمک میکنند. تلقی همه داده های کاربران احراز هویت شده یا غیرقابل اعتماد به عنوان غیرقابل اعتماد می تواند خطر حملات XSS را کاهش دهد..
سریال زدایی ناامن
Deserialization تبدیل داده های سریال شده از یک سرور به یک شی است. سریال زدایی داده ها یک اتفاق رایج در توسعه نرم افزار است. وقتی داده ها ناامن است غیر سریالی شده است از یک منبع غیر قابل اعتماد این می تواند بالقوه برنامه خود را در معرض حملات قرار دهید. deserialization ناامن زمانی اتفاق می افتد که داده های deserialized از یک منبع نامعتبر منجر به حملات DDOS، حملات اجرای کد از راه دور، یا دور زدن احراز هویت شود..
برای جلوگیری از سریالزدایی ناامن، قانون سرانگشتی این است که هرگز به دادههای کاربر اعتماد نکنید. هر کاربر داده های ورودی باید درمان شود as بالقوه مخرب از سریال سازی داده ها از منابع نامعتبر خودداری کنید. اطمینان حاصل کنید که تابع deserialization به استفاده شود در برنامه وب شما امن است.
استفاده از کامپوننت هایی با آسیب پذیری های شناخته شده
کتابخانهها و چارچوبها توسعه برنامههای کاربردی وب را بدون نیاز به اختراع مجدد چرخ بسیار سریعتر کردهاند.. این امر باعث کاهش افزونگی در ارزیابی کد می شود. آنها راه را برای تمرکز توسعه دهندگان بر روی جنبه های مهم تر برنامه ها هموار می کنند. اگر مهاجمان اکسپلویتهایی را در این چارچوبها کشف کنند، هر پایگاه کدی که از چارچوب استفاده میکند، این کار را انجام میدهد به خطر بیفتد.
توسعه دهندگان کامپوننت اغلب وصله ها و به روز رسانی های امنیتی را برای کتابخانه های مؤلفه ارائه می دهند. برای جلوگیری از آسیبپذیری مؤلفهها، باید یاد بگیرید که برنامههای خود را با آخرین وصلههای امنیتی و ارتقاء بهروز نگه دارید.. اجزای استفاده نشده باید برداشته شود از برنامه برای برش بردارهای حمله.
ثبت و نظارت ناکافی
ثبت و نظارت برای نشان دادن فعالیت ها در برنامه وب شما مهم است. ورود به سیستم ردیابی خطاها را آسان می کند، مانیتور ورود کاربران و فعالیت ها
هنگام ثبت نشدن رویدادهای مهم امنیتی، ثبت و نظارت کافی رخ نمی دهد به درستی. مهاجمان از این سرمایه گذاری می کنند تا قبل از اینکه پاسخ قابل توجهی داشته باشند، به برنامه شما حمله کنند.
ورود به سیستم می تواند به شرکت شما در صرفه جویی در هزینه و زمان کمک کند زیرا توسعه دهندگان شما می توانند به آسانی اشکالات را پیدا کنید. این به آنها اجازه میدهد بیشتر روی حل اشکالات تمرکز کنند تا جستجوی آنها. در واقع، ورود به سیستم میتواند کمک کند تا سایتها و سرورهای شما هر بار بدون هیچ گونه خرابی، فعال و فعال شوند..
نتیجه
کد خوب نیست تنها در مورد عملکرد، این در مورد ایمن نگه داشتن کاربران و برنامه شما است. OWASP Top 10 لیستی از حیاتی ترین خطرات امنیتی برنامه ها است که یک منبع رایگان عالی برای توسعه دهندگان برای نوشتن برنامه های وب و موبایل امن است.. آموزش توسعه دهندگان تیم شما برای ارزیابی و ثبت خطرات می تواند در دراز مدت در زمان و هزینه تیم شما صرفه جویی کند. اگر می خواهید درباره نحوه آموزش تیم خود در 10 برتر OWASP بیشتر بدانید اینجا را کلیک کنید.