امنیت برنامههای کاربردی وب جزء اصلی هر کسبوکار مبتنی بر وب است. ماهیت جهانی اینترنت، ویژگیهای وب را در معرض حمله از مکانها، سطوح مقیاس و پیچیدگیهای مختلف قرار میدهد. امنیت برنامههای وب به طور خاص با امنیت وبسایتها، برنامههای کاربردی وب و سرویسهای وب مانند API ها سروکار دارد.
آسیبپذیریهای امنیتی رایج برنامههای وب
حملات علیه برنامههای وب از دستکاری هدفمند پایگاه داده گرفته تا اختلال شبکه در مقیاس وسیع، متغیر هستند. در ادامه برخی از روشهای متداول حمله یا جنبههایی که معمولاً مورد سوءاستفاده قرار میگیرند را بررسی میکنیم:
- حملات اسکریپت نویسی متقابل سایت (XSS): XSS نوعی آسیبپذیری است که به مهاجم اجازه میدهد تا اسکریپتهای سمت کلاینت را به یک صفحه وب تزریق کند تا مستقیماً به اطلاعات مهم دسترسی یافته، هویت کاربر را جعل کند یا کاربر را فریب دهد تا اطلاعات مهم را فاش کند.
- تزریق SQL یا SQi:ا SQi روشی است که در آن مهاجم از آسیبپذیریهای موجود در روشی که پایگاه داده کوئریهای جستجو را اجرا میکند، سوء استفاده میکند. مهاجمان از SQi برای دسترسی به اطلاعات غیر مجاز، تغییر یا ایجاد مجوزهای کاربر جدید، یا دستکاری یا تخریب دادههای حساس استفاده میکنند.
- حملات انکار سرویس (DoS) و انکار سرویس توزیع شده (DDoS): از طریق روشهای مختلف، مهاجمان میتوانند سرور مورد نظر یا زیرساخت اطراف آن را با انواع مختلف ترافیک حمله overload کنند.
هنگامی که سرور دیگر نتواند درخواستهای دریافتی را به طور موثر پردازش کند، عملکرد آن کند شده و در نهایت سرویسدهی به درخواستهای کاربران مجاز را رد میکند.
- خرابی حافظه: خرابی حافظه زمانی رخ میدهد که یک مکان در حافظه به طور ناخواسته تغییر میکند، در نتیجه احتمال رفتار غیرمنتظره در نرم افزار وجود دارد. دشمنان تلاش میکنند تا از طریق سوءاستفادههایی مانند تزریق کد یا حملات سرریز بافر، خرابی حافظه را شناسایی و از آن سوء استفاده کنند.
- سرریز بافر: سرریز بافر زمانی رخ میدهد که نرم افزار دادهها را در فضای تعریف شدهای در حافظه به نام بافر مینویسد. سرریز شدن ظرفیت بافر باعث میشود که مکانهای حافظه مجاور با داده ها overwrite شوند. این رفتار میتواند برای تزریق کد مخرب به حافظه مورد سوءاستفاده قرار گیرد و امکان آسیبپذیری در ماشین مورد نظر را افزایش میدهد.
- جعل درخواست متقابل سایت (CSRF): CSRF فریب دادن قربانی برای ارائه درخواستی است که از احراز هویت یا مجوز آنها استفاده میکند. با استفاده از امتیازات حساب یک کاربر، مهاجم میتواند درخواستی را در قالب کاربر ارسال کند.
هنگامی که حساب کاربری در معرض خطر قرار گرفت، مهاجم میتواند اطلاعات مهم را از بین برده یا تغییر دهد. حسابهای دارای سطح دسترسی بالا مانند ادمینها یا مدیران معمولاً هدف این نوع حملات قرار میگیرند.
- نقض داده: برخلاف جنبههای مختلف حملات، نقض داده یک اصطلاح کلی است که به انتشار اطلاعات حساس یا محرمانه اشاره دارد و میتواند از طریق اقدامات مخرب یا اشتباه رخ دهد. دامنه نقض داده نسبتاً گسترده است و میتواند شامل چند رکورد بسیار ارزشمند تا میلیونها حساب کاربری افشا شده باشد.
بهترین روشها برای کاهش آسیبپذیریها چیست؟
گامهای مهم در محافظت از برنامههای وب در برابر سوء استفاده شامل استفاده از رمزگذاری بهروز، نیاز به احراز هویت مناسب، patching مداوم آسیبپذیریهای کشفشده و داشتن اصول و چارچوبهای مناسب توسعه نرمافزار است.
واقعیت اینست که مهاجمان باهوش ممکن است بتوانند آسیبپذیریها را حتی در یک محیط امنیتی نسبتاً قوی پیدا کنند بنابراین توصیه میشود که از یک استراتژی امنیتی جامع استفاده نمایید.
امنیت برنامههای وب را میتوان با محافظت در برابر حملات DDoS ، Application Layer و DNS بهبود بخشید:
-
محافظت در برابر حملات لایه برنامه با WAF
فایروال برنامه وب یا WAF به محافظت از یک برنامه وب در برابر ترافیک HTTP مخرب کمک میکند. با قرار دادن یک فیلتر بین سرور هدف و مهاجم، WAF قادر است در برابر حملاتی مانند جعل سایت متقابل، اسکریپت نویسی متقابل سایت و تزریق SQL محافظت کند.
-
کاهش DDoS
یک روش رایج برای ایجاد اختلال در یک برنامه وب، استفاده از حملات انکار سرویس یا حملات DDoS است. میتوان حملات DDoS را از طریق استراتژیهایی از جمله حذف ترافیک حملات حجمی در لبه و استفاده از شبکه Anycast برای مسیریابی صحیح درخواستهای مجاز بدون از دست دادن سرویس، کاهش داد.