۱۰ مخاطره مهم امنیت برنامه های کاربردی OWASP در سال ۲۰۱۷

انجمن OWASP در مستندی با عنوان “The Ten Most Critical Web Application Security Vulnerabilities”، آسیب‌های برنامه‌های كاربردی را در ۱۰ حوزه زیر طبقه‌بندی نموده است.

  • حملات تزریق:

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

  • نقض احراز هویت:

    کارکردهای مرتبط با احراز هویت و مدیریت نشست‌ها اغلب به صورت نادرست پیاده‌سازی می‌شوند. این به مهاجمان امکان می‌دهد تا به منظور دستیابی موقت یا دائم به هویت کاربران، گذرواژه‌ها، کلیدها یا توکن‌های نشست‌ها را مورد تهدید قرار دهند و یا دیگر رخنه‌های پیاده‌سازی را اکسپلویت کنند.

  • افشای اطلاعات حساس:

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

  • موجودیت‌های خارجی XML (XXE):

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

  • نقض کنترل دسترسی:

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

  • پیکربندی نادرست امنیت:

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

  • حملات تزریق اسکریپت (XSS):

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

  • Deserialization ناامن: Deserialization ناامن اغلب به اجرای کد از راه دور منجر می‌شود. حتی اگر رخنه‌های Deserialization به اجرای کد از راه دور منجر نشوند، می‌توانند برای انجام حملاتی مانند حملات بازپخش، حملات تزریق و حملات ارتقای غیرمجاز حقوق دسترسی مورد استفاده قرار گیرند.

  • استفاده از مؤلفه‌ها با آسیب‌پذیری‌های شناخته‌شده: مؤلفه‌هایی مانند کتابخانه‌ها، فریم‌ورک‌ها و دیگر ماژول‌های نرم‌افزاری با حقوق دسترسی مشابه با برنامه‌های کاربردی اجرا می‌شوند. اگر مؤلفه آسیب‌پذیری اکسپلویت شود، چنین حمله‌ای می‌تواند نشت جدی داده‌ها یا کنترل سرور را امکان‌پذیر سازد. برنامه‌های کاربردی و APIهایی که از مؤلفه‌هایی با آسیب‌پذیری‌های شناخته شده استفاده می‌کنند می‌توانند به تضعیف تدابیر دفاعی برنامه‌های کاربردی منجر شده و انواع حملات و آثار مخرب را در پی داشته باشند.

  • مدیریت لاگ و پایش ناکافی: اگر مدیریت لاگ و پایش ناکافی با عدم پاسخ به رخداد یا پاسخ غیرکارآمد به رخداد تلفیق شود، به مهاجمان این امکان را می‌دهد تا در حمله به سیستم‌ها پیشرفت داشته باشند، در حملات خود استقامت نشان دهند، سیستم‌های بیشتری را محور حمله قرار دهند و اقدام به دستکاری، استخراج و نابود کردن داده‌ها کنند. بیشتر مطالعاتی که در خصوص نفوذهای سایبری انجام شده نشان می‌دهند که زمان لازم برای تشخیص نفوذ بیش از ۲۰۰ روز است و این تشخیص معمولا توسط طرف‌های خارجی و نه از طریق فرآیندها یا پایش داخلی صورت می‌گیرد.