امنیت برنامه های تحت وب برای تمامی مشاغل حائز اهمیت است. در این مقاله قصد داریم در مورد آسیبپذیریهای رایج برنامههای تحت وب و همچنین نحوه مقابله با آنها صحبت کنیم.
امنیت برنامه های تحت وب یکی از عناصر اصلی تمامی مشاغلی است که بر بستر وب بنا نهاده شدهاند. به طور کلی ماهیت جهانی اینترنت به گونهای است که برنامه های تحت وب از نقاط مختلف و در سطوح متفاوت مورد حمله و آسیب قرار میگیرند.
امنیت برنامه های تحت وب به طور خاص با وبسایتها، برنامههای تحت وب و خدمات وب مانند APIها سروکار دارد.
آسیبپذیریهای متداول برنامه های مبتنی بر وب
حملاتی که علیه برنامههای مبتنی بر وب رخ میدهد شامل طیف گستردهای میشود؛ از دستکاری هدفمند پایگاه دادهها گرفته تا اختلال در شبکههایی با مقیاس بزرگ. حال به بررسی برخی از روشهای رایج حمله میپردازیم:
- Cross Site Scripting (XSS): این آسیبپذیری به مهاجم این امکان را میدهد که اسکریپتهای client side را به یک صفحهی وب تزریق کند تا بتواند مستقیما به اطلاعات مهم آن دسترسی پیدا کند، خود را به جای کاربر معرفی کند یا اصطلاحا جعل کند و همچنین کاربر را فریب دهد تا اطلاعات مهم را فاش کند.
- SQL Injection: که به آن تزریق به پایگاه داده نیز گفته میشود، یک حمله متداول است که از کدهای مخرب SQL برای دستکاری پایگاه داده جهت دسترسی به اطلاعاتی که هرگز به نمایش در نمیآیند، استفاده میکند.
این دادهها ممکن است شامل اطلاعات مهم شرکت و یا اطلاعات دقیق در مورد مشتریها باشد. مهاجمان از SQL برای دستیابی به اطلاعات غیرمجاز، تغییر یا ایجاد مجوزهای جدید برای کاربران و یا دستکاری و تخریب دادههای بسیار مهم استفاده میکنند.
- Denial of Service: مهاجمان از طریق بردارهای مختلف میتوانند سرور هدف یا زیرساختهای آن را با انواع مختلف ترافیک به میزان انبوه روبرو نماید به طوری که سرور نتواند بار ترافیک را تحمل کند.
در این صورت سرور دیگر قادر به پردازش موثر درخواست ورودیها نبوده، سرعت آن به شدت پایین میآید و در نهایت سرویسدهی به درخواستهای قانونی میسر نمیباشد.
- Memory Corruption: بروز مشکل در حافظه زمانی رخ میدهد که قسمتی از حافظه به صورت ناخواسته تغییر کند و در نتیجه عواقب غیر منتظرهای متوجه نرمافزار گردد.
مهاجمان سایبری در تلاش هستند از طریق سوءاستفادههایی نظیر حملات Code Injection یا Buffer Overflow به حافظه آسیب بزنند.
- Buffer Overflow: نوعی ناهنجاری است که هنگام نوشتن اطلاعات نرم افزاری در یک فضای تعریف شده بر روی حافظهای که تحت عنوان buffer معروف است رخ میدهد.
سرریز شدن ظرفیت buffer باعث میشود مکانهای مجاور بر روی حافظه نیز از اطلاعات سرریز شوند. این اتفاق میتواند به سوء استفاده در اثر تزریق کدهای مخرب منتهی شود و همچنین به طور بالقوه باعث آسیب به دستگاههای هدف میگردد.
- Cross-Site Request Forgery (CSRF): شامل فریب قربانی جهت ارسال درخواستی است که وی از احراز هویت یا محوز خود استفاده کند. در این صورت مهاجم میتواند با استفاده از امتیازات اکانت کاربر، خود را به جای وی معرفی کرده و اقدام به ارسال درخواست نماید.
در این مرحله پس از به خطر افتادن اکانت کاربر، مهاجم اطلاعات مهم را از بین میبرد و یا آنها را تغییر میدهد. معمولا اکانتهایی که امتیاز ویژهای دارند مانند اکانت مدیران، مورد هدف این حملات قرار میگیرند.
- Data Breach: نقض دادهها یک واژه کلی است که به انتشار اطلاعات حساس و محرمانه اشاره دارد و از طریق اقدامات مخرب یا اشتباهات رخ میدهد. دامنهی نقض دادهها نسبتا گسترده است؛ از چندین مورد با ارزش گرفته تا میلیونها حساب کاربری.
راههای جلوگیری و کاهش آسیبپذیریهای برنامههای تحت وب
مهمترین گامهایی که میتوان در راستای محافظت از برنامه های تحت وب برداشت شامل رمزگذاری بهروز شده (Encryption)، احراز هویت (Authentication) و همچنین داشتن نرمافزارهای مناسب میباشد.
در حقیقت مهاجمان باهوش حتی در محیطهای امنیتی قوی نیز میتوانند آسیبپذیریهایی را پیدا کنند، بنابراین جهت مقابله با این امر یک استراتژی بسیار ایمن و جامع توصیه می گردد.
فایروال برنامه های تحت وب که به اختصار به آن WAF گفته می شود به محافظت از برنامههای تحت وب در برابر ترافیکهای مخرب HTTP کمک شایانی مینماید. با قرار دادن یک مانع به عنوان فیلتراسیون بین سرور مورد نظر و مهاجم، میتوان مانع از حملات Cross Site Forgery ، Cross Site Scripting و SQL Injection شد.
کاهش حملات DDoS
یک روش متداول برای ایجاد اختلال در برنامههای مبتنی بر وب، استفاده از حملات DDoS است. استراتژیهای مختلفی را میتوان به منظور کاهش این حملات به کار برد مانند کاهش حملات حجمی در لبه و یا استفاده از شبکه Anycast به منظور مسیریابی صحیح درخواستهای قانونی بدون این که خدمات و سرویسدهی سرور از بین برود.
امنیت از طریق DNS
Domain Name System یا DNS همانند دفترچه تلفن اینترنت میباشد و نشان میدهد که چطور ابزارهای اینترنت مانند مرورگر وب، سرور صحیح را جستجو میکنند. به طور معمول مهاجمین در تلاش هستند درخواستهای DNS را از طریق حملات مربوطه با مشکل روبرو کنند.
چنانچه DNS را مانند دفترتلفن در نظر بگیریم، DNSSEC نیز مانند ID غیر قابل جعل تماس گیرنده میباشد.
FortiWeb با به کاربردن یک امنیت چندلایه و یکپارچه، امنیت کامل را به جهت نرمافزارهای کاربردی تحت وب داخلی و خارجی شبکه در برابر OWASP TOP 10 و بسیاری از حملات برقرار مینماید.
FortiWeb با استفاده از سرویسهایی نظیر IP Reputation میتواند botnet ها و سایر بدافزارها را به سرعت و پیش از آن که آسیبی رخ دهد شناسایی نماید. فورتی وب با تشخیص و پیشگیری از حملات DOS (Denial of Service) ، کمک میکند تا برنامههای کاربردی شما از اشباع شدن با حملات DOS در امان بمانند.
فایروال فورتی وب با به کار بردن تایید اعتبار (HTTP RFC) از درخواستهای نامعتبر جلوگیری مینماید و درخواستهایی که به سمت وب سرور ارسال میگردد از طریق فورتی وب بررسی شده و با توجه به انواع حملات رایج مقایسه میشوند تا از صحت درخواستها اطمینان حاصل گردد.
فایروال FortiWeb قادر به بررسی هریک از فایلها، فایلهای پیوست و یا کدها، توسط سرویس آنتی ویروس و یا سرویس ضد بدافزار میباشد.