
سیستم WAF چیست؟ راهنمای جامع فایروال برنامه وب
یکی از مسائل و مشکلاتی که این روزها بسیاری از کسب و کارها با آن درگیر هستند، حملات هکری و سایبری هستند که سیستم های اطلاعاتی و سایت ها درگیر می کند. شرکت ها و کسب و کارها برای مقابله با چنین حملاتی، از سیستم های امنیتی مختلف و پیشرفته استفاده می کنند.
WAF یا Web Application Firewall، یک نوع سیستم امنیتی است که برای حفاظت از برنامههای کاربردی وب در برابر حملات اینترنتی طراحی شده است. WAF با تحلیل ترافیک وب و شناسایی الگوهایی از حملات مختلف مانند حملات SQL Injection و Cross-Site Scripting، از ورود این حملات به برنامههای کاربردی وب جلوگیری میکند.
یکی از این سیستمهای امنیتی، WAF یا Web Application Firewall است. WAF یک سیستم امنیتی است که بر روی وبسایتها و برنامههای وب نصب میشود و به صورت خودکار از حملات سایبری مانند حملات XSS و SQL Injection محافظت میکند.
برای این کار، WAF به صورت پیشفرض با استفاده از قوانین و الگوریتمهای خود، تمام ترافیک ورودی و خروجی را بررسی میکند و در صورت شناسایی هر گونه حمله سایبری، آن را به صورت خودکار مسدود میکند.
یکی از مزایای استفاده ازWAF، این است که به شرکتها و سازمانها این امکان را میدهد تا بدون نیاز به تغییر کد برنامهی خود، از حملات سایبری مختلف محافظت کنند و از دسترسی هکرها به اطلاعات حساس خود جلوگیری کنند.
برای آن که مفهوم WAF را بهتر درک کنید، یک داستان برایتان تعریف می کنیم. (داستانمان کمی خشن است، افرادی که بیماری قلبی دارند، نخوانند)!
یک جبهه جنگی را تصور کنید که سربازان در سنگرهایشان جای گرفته اند و حملات خطرناکی از سمت دشمن مانند تیراندازی انجام می شود و این سربازان وظیفه مراقبت و محافظت را به عهده دارند. استراتژی که باید این سربازها به کار ببرند، این است که یکی را از بین خودشان به عنوان نگهبان انتخاب کنند تا در برابر این حملات پاسخ دهد. کاری که باید این نگهبان انجام دهد، این است که تیراندازان را شناسایی کند و با اقداماتی از جمله انجام دادن برخی عملیات و یا پاسخ دادن به تهدیدات، دیوار را در مقابل حملات حفظ کند (همان کاری که WAF در برابر حملات هکرها انجام می دهد).
تا اینجا با مفهوم WAF آشنا شدید؛ اما داستان کمی پیچیده است و به همین دلیل ما قرار است در این مقاله جامع به ساده ترین شکل ممکن به سوال سیستم WAF چیست پاسخ دهیم. پس این مقاله جذاب را از دست ندهید و همراهمان باشید.
اما پیش از هرچیز باید به این موضوع اشاره کنیم که اگر امنیت دغدغه اصلی شماست، بهتر است بدانید که در سرورهای مجازی، WAF میتواند به عنوان یک لایه اضافی از امنیت در بالای سرور وب مجازی نصب شود تا حفاظت از برنامههای کاربردی وب درون آن انجام شود. پس می توانید با خرید سرور مجازی (VPS)، امنیت خودتان را چندین برابر کنید.
چرا به WAF نیاز داریم؟
بسیاری از سازمانها به دلیل روش توسعه agile، انتقال به فضای ابری، افزایش استفاده از نرمافزارهای وب یا برنامههای SaaS و نیروی کاری راه دور، با ریسک امنیتی در سطح برنامه مواجه هستند. استفاده از یک WAF به سازمانها اجازه میدهد که در برابر حملاتی که به برنامههای وب و رابط برنامهنویسی برنامه هستند، اقدام کنند.
هرچند WAF ها سازمان ها را در برابر تمام تهدیدات دیجیتالی محافظت نمی کنند، اما میتوانند در برابر تهدیداتی که به سطح برنامه هدفمند شده اند، اعمال شوند، از جمله آسیب پذیری های OWASP برتر در برنامه. این آسیب پذیری ها شامل:
- حملهی Cross site scripting (XSS): در این نوع حمله، مهاجم کد مخربی را در یک وبسایت معتبر قرار میدهد. سپس این کد به عنوان یک اسکریپت آلوده در مرورگر وب کاربر اجرا میشود و به مهاجم امکان دزدیدن اطلاعات حساس یا تقلید از کاربر را میدهد.
- حملهی Application-Layer DDoS Attacks: در این نوع حمله، حملهکننده سعی میکند با ایجاد حجم بالایی از ترافیک مخرب، سرویس یک سایت را به نحوی قطع کند که به درخواستهای معمولی کاربران پاسخ ندهد. نمونههایی از این نوع حملات شامل فلاشهای HTTP / S، حملات SSL، و حملات Brute Force هستند.
- حملهی SQL injection: در این نوع حمله، مهاجم با بهرهگیری از یک آسیب شناختهشده، دستورات SQL مخرب را در یک برنامه تزریق میکند. این عمل، به مهاجم امکان استخراج، تغییر یا حذف اطلاعات را میدهد.
- حملات: Zero-day زمانی رخ میدهد که هکری، پیش از اینکه توسعه دهنده نرمافزار یک پچ (Patch) منتشر کند، از یک آسیبپذیری امنیتی یا خطای نرمافزاری ناشناخته بهرهمندی کند. به این معنی که هکر، در مقابل یک آسیبپذیری امنیتی ناشناخته عمل میکند و از آن بهره میبرد تا به سیستم وارد شود و به اطلاعات حساس دسترسی پیدا کند.
WAF چگونه کار می کند؟
در این متن گفته شده که وقتی یک WAF (یک نوع سیستم امنیتی) در جلوی یک برنامه وب (web application) نصب میشود، یک سپر محافظ بین برنامه وب و اینترنت قرار میگیرد که تمام ترافیک بین برنامه وب و کاربر(های) پایانی را نظارت میکند. یک WAF با فیلتر کردن، نظارت کردن و مسدود کردن هر نوع ترافیک HTTP/S مخربی که به برنامه وب سفر میکند، برنامههای وب را محافظت میکند. همچنین با رعایت یک سری سیاستهایی که به تعیین میزان امنیت ترافیک کمک میکنند، جلوی خروج دادههای غیرمجاز از برنامه وب را نیز میگیرد. همانطور که سرور پروکسی به عنوان یک واسط، هویت یک کلاینت را حفظ میکند، در نصب سنتی، WAF با شباهت در عمل به یک پروکسی، به صورت برعکس عمل میکند، به عنوان یک پروکسی معکوس، به عنوان یک واسط عمل کرده و سرور برنامههای وب را از یک کلاینت بالقوه مخرب محافظت میکند.
انواع مدل های WAF
در مورد امنیت، WAF ها معمولاً سه رویکرد را دنبال می کنند:
- Whitelisting یا لیست سفید: از الگوریتم های یادگیری ماشین و مدل سازی رفتار استفاده می کنند تا بتوانند تعریف کنند کدام ترافیک را به صورت مجاز اجازه می دهند و بقیه را مسدود می کنند.
- Blacklisting یا همان لیست سیاه: بر اساس امضاهای به روز شده برای آسیب پذیری های شناخته شده، فهرستی از ترافیکی که WAF باید مسدود کند، تعریف می کند و بقیه را می پذیرد.
- Hybrid Approach یا رویکرد ترکیبی: در این روش، WAF از ترکیبی از دو مدل امنیتی مثبت و منفی استفاده می کند، یعنی فهرستی از عناصری که می توانند به صورت مجاز عبور کنند و همچنین فهرستی از عناصری که باید مسدود شوند، تعریف می کند تا بتواند ترافیک مجاز را تعیین کند.
تفاوت بین WAF و فایروال
تفاوت اصلی بین فایروال و WAF در این است که فایروال معمولاً فقط با محافظت از لایه های شبکه و انتقال (لایه های 3 و 4) همراه است. با این حال، فایروال برنامه وب از لایه 7 محافظت می کند.
تفاوت بین WAF های blocklist و allowlist چیست؟
یک WAF که بر اساس blocklist (مدل امنیتی منفی) عمل می کند، در برابر حملات شناخته شده محافظت می کند. یک WAF blocklist را می توان مانند یک پرسنل نگهبان در نظر گرفت که دستور دارد ورود مهمانانی که با کد لباس مطابقت ندارند را ممانعت کند. در مقابل، WAF مبتنی بر allowlist (مدل امنیتی مثبت) تنها ترافیکی را که پیش از این تأیید شده است، به داخل می گذارد. این مانند پرسنل نگهبان در یک مهمانی انحصاری است، او فقط افرادی را که در لیست باشند، وارد می کند. هر دو blocklist و allowlist مزایا و معایب خود را دارند، به همین دلیل بسیاری از WAF ها مدل امنیتی ترکیبی یا همان هیبریدی را پیاده سازی می کنند که هر دو را در بر می گیرد.
WAF های بر پایه شبکه، میزبان و مبتنی بر ابر
WAF به سه نوع مختلف تقسیم میشود: مبتنی بر شبکه، مبتنی بر میزبان و مبتنی بر ابر.
نوع اول WAF مبتنی بر شبکه است که از سختافزار استفاده میکند و معمولاً محلی در سیستم نصب میشود. این نوعWAF، باعث کاهش تأخیر در سیستم میشود، اما هزینه آن بسیار بالاست و نیاز به تجهیزات فیزیکی برای نگهداری دارد.
نوع دوم WAF میزبان میتواند به دو صورت متمرکز بر روی سرور(host-based) و مبتنی بر شبکه (network-based) باشد. نوع متمرکز بر روی سرور به صورت کامل در نرم افزار برنامه قرار میگیرد. این راه حل ارزانتر از نوع مبتنی بر شبکه است و امکان سفارشیسازی بیشتری دارد، اما استفاده از منابع سرور محلی، پیچیدگی پیادهسازی و هزینههای نگهداری را به همراه دارد. این بخشها به طور معمول نیاز به زمان مهندسی و هزینههای بالا دارند.
سومین مورد wap های مبتنی بر ابر هستند. وب فایروالهای مبتنی بر ابر، یک گزینه خوب و ارزان قیمت هستند که برای پیادهسازی آنها نیاز به دانش فنی پیچیده ندارید. این فایروالها معمولاً نصب سریع و آسانی دارند و با تغییر DNS، به راحتی میتوان ترافیک وب سایت را از طریق آنها هدایت کرد. هزینهی این فایروالها پایین است زیرا کاربران برای امنیت، به صورت ماهیانه یا سالیانه پرداخت میکنند. همچنین، این فایروالها به شکل مداوم بروزرسانی میشوند و در برابر تهدیدات جدید محافظت میکنند، بدون اینکه کاربر نیاز به هزینهی اضافی یا کار خاصی داشته باشد. با این حال، مشکلی که میتواند با این فایروالها وجود داشته باشد، این است که کاربران مسئولیت امنیت وب سایت خود را به یک شخص ثالث منتقل میکنند و بنابراین برخی از ویژگیهای این فایروالها برای آنها مبهم میماند.
چرا امنیت وب فایرال برنامه ها مهم است؟
برای بسیاری از سازمانهایی که محصولات یا خدماتشان را آنلاین ارائه میدهند، مانند توسعهدهندگان برنامههای تلفن همراه، رسانههای اجتماعی و بانکداران دیجیتال، وب فایرال برنامهها موضوع مهمی است. وب فایرال برنامهها میتواند به شما در حفاظت از دادههای حساس مثل اطلاعات مشتریان و کارتهای پرداختی کمک کند و از نفوذ به این اطلاعات جلوگیری کند.
سازمانها بخش بزرگی از دادههای حساس خود را رو در یک پایگاه داده پشتیبانی ذخیره میکنن که از طریق برنامههای وب قابل دسترسی هستن. شرکتها برای راحتتر کردن تعاملات تجاری خود، از برنامههای تلفن همراه و دستگاههای IoT استفاده میکنند و تعداد زیادی از تراکنشهای آنلاین در لایه برنامه انجام میشود. حمله کنندهها اغلب به برنامهها حمله میکنن تا به این دادهها دسترسی پیدا کنند.
اگر شما هم یک سازمانی هستید که با اطلاعات صاحب کارت کار میکند، شما نیاز به امنیت بالایی دارید تا از اطلاعات مشتریان خود در برابر حملات اینترنتی محافظت کنید. یک راه برای حفاظت از اطلاعات مشتریان، استفاده از WAF است. WAF مانند یک فایروال عمل میکند و در حفاظت از برنامههای کاربردی وب شما در برابر حملات مختلف از جمله حملات SQL Injection و Cross-Site Scripting کمک میکند. استفاده از WAF به شما در به جا آوردن الزامات امنیتی مانند PCI DSS کمک میکند.
اما توصیه میشود که برای حفاظت از اطلاعات مشتریان، از تدابیر امنیتی دیگری مانند IDS، IPS و دیوار آتش های سنتی نیز استفاده کنید. این تدابیر امنیتی را میتوان با WAF ترکیب کرد تا یک مدل امنیتی دفاعی چند لایه را به دست آورید که به شما در حفاظت از اطلاعات مشتریان و جلوگیری از ورود حملات اینترنتی به سیستم شما کمک میکند.
انواع فایروال برنامه های وب
سه روش اصلی برای پیادهسازی یک فایروال برنامه وب وجود دارد:
فایروال مبتنی بر شبکه
این نوع فایروال بیشتر بر پایه سختافزار است و بهصورت محلی نصب میشود تا تاخیر کمتری داشته باشد. با این حال، این گونه از فایروال گرانترین نوع فایروال میباشد و نیاز به ذخیره و نگهداری تجهیزات فیزیکی دارد.
WAF مبتنی بر میزبان
به صورت کامل به نرمافزار یک برنامه یا اپلیکیشن ادغام میشود. این گزینه ارزانتر از WAFهای مبتنی بر شبکه است و قابلیت سفارشیسازی بیشتری دارد، اما منابع سرور محلی بسیار زیادی را مصرف میکند، پیچیده در پیادهسازی است و نگهداری آن هزینه بالایی دارد. معمولا برای اجرای یک WAF مبتنی بر میزبان، ماشینی که استفاده میشود باید قابلیت تقویت و سفارشیسازی داشته باشد که ممکن است زمانبر و هزینهبر باشد.
Cloud-based WAF
یک راه حل امنیتی است که بدون نیاز به سرمایه اولیه، با پرداخت یک اشتراک امنیتی ماهانه یا سالانه، قابل استفاده است. با این روش، شما نیازی به هزینه های اضافی برای به روزرسانی ندارید و نیازی به تلاش برای مدیریت آن نیست. با این حال، به دلیل اینکه این راه حل امنیتی توسط یک شخص ثالث مدیریت می شود، باید اطمینان حاصل کنید که “Cloud-based WAF” دارای گزینه های کافی برای سفارشی کردن است تا با قوانین کسب و کار سازمان شما همخوانی داشته باشد.
WAF چه ویژگی ها و قابلیت هایی دارد؟
WAF قابلیت ها و ویژگی های مختلفی دارد که در ادامه آن ها را نام می بریم و هرکدام را توضیح می دهیم.
حمله به پایگاه های داده الگو
الگوهای حمله در واقع الگوهایی هستند که احتمال دارد ترافیک مخرب را نشان دهد که می تواند انواع درخواست ها، پاسخ های نامتعارف سرور و آدرس های IP مخرب را در بر بگیرد. در گذشته WAF معمولا به پایگاه های داده الگوی حمله متکی بودند که متاسفانه در برابر حملات جدید یا ناشناخته موثر نبودند.
تجزیه و تحلیل کردن الگوی ترافیک مبتنی بر هوش مصنوعی
شما به کمک الگوریتم های هوش مصنوعی می توانید از مبانی رفتاری استفاده کنید و الگوهای ترافیکی را برای انواع مختلف ترافیک تحلیل کنید. اما مزیت این کار چیست؟ شما می توانید ناهنجاری های مرتبط با حملات نشانگر را تشخیص دهد و حملاتی که با الگوهای شناخته شده مخرب تطابق ندارند، شناسایی کنید.
پروفایل برنامه
منظور از پروفایل برنامه تجزیه و تحلیل کردن ساختار یک برنامه است که درخواست های معمول، URL ها، مقادیر و انواع داده های مجاز را در بر می گیرد. این قابلیت به WAF این امکان را می دهد تا بتواند درخواست های مشکوک را شناسایی و مسدود کند.
سفارشی سازی
اپراتورها میتوانند قوانین امنیتی مورد استفاده در ترافیک برنامه را تعریف کنند. این امکان به سازمانها اجازه میدهد تا رفتار WAF را بر اساس نیازهای خود سفارشی کنند و جلوی مسدود شدن ترافیک قانونی را بگیرند. به این معنی که با تعریف قوانین امنیتی مناسب تر، سازمانها میتوانند از محدودیت ترافیک قانونی جلوگیری کنند.
موتور همبستگی (correlation engine)
یک سیستم به نام “انالیزورها”، ترافیک ورودی را بررسی میکنند و با استفاده از نشانهها و الگوهایی که از حملات قبلی شناخته شدهاند، برنامه ریزی میکنند. همچنین با استفاده از تجزیه و تحلیل برنامههای کاربردی، تحلیل هوش مصنوعی و قوانین سفارشی، تصمیم میگیرند که آیا باید ترافیک مسدود شود یا خیر.
پلتفرم های حفاظتی DDoS
شما می توانید یک پلتفرم مبتنی بر ابر را ادغام سازی کنید تا حمله به سایت ها کار راحتی نباشد. به عبارت دیگر از حملات انکار سرویس توزیع شده (DDoS) محافظت کنید. در صورتی که WAF موفق شود حملات DDoS را شناسایی کند، در این صورت ترافیک سایت را به این پلتفرم مبتنی بر ابر انتقال می دهد و شما می توانید حجم بالایی از حملات رخ داده را مدیریت کنید.
شبکه های تحویل محتوا (CDN)
WAFها در لبه شبکه قرار میگیرند و به همین دلیل WAF از طریق میزبان ابری به شما کمک میکند که یک CDN را فراهم کنید و وب سایت را کش کند و زمان بارگیری آن را بهبود بخشد. WAF CDN را در چندین نقطه توزیع میکند که به صورت جهانی پخش میشوند، بنابراین کاربران از نزدیکترین PoP خدمت میشوند. به این معنی که وب سایت شما برای کاربران سریعتر لود خواهد شد.
فناوری WAF
WAF میتواند به صورت پلاگین در نرمافزار سمت سرور یا بستر سختافزاری ساخته شود، یا به عنوان یک سرویس برای فیلتر کردن ترافیک ارائه شود. WAFs میتوانند برنامههای وب را از نقاط پایانی مخرب یا تهدید شده محافظت کنند و به عنوان پروکسی برعکس عمل کنند (بر خلاف سرور پروکسی که کاربران را از وبسایتهای خطرناک محافظت میکند).
WAFها با رهگیری و بررسی هر درخواست HTTP از امنیت اطمینان حاصل میکنند. ترافیک غیرمجاز با استفاده از روشهای مختلفی مانند تشخیص اثر انگشت دستگاه، تحلیل دستگاه و چالش CAPTCHA تست میشود و در صورتی که معتبر نباشد، مسدود میشود.
WAF به کمک قوانین امنیتی میتواند حملات مخرب را پیدا کرده و مسدود کند. این قوانین امنیتی معمولاً شامل آسیبپذیریهای امنیتی برجسته در برنامههای وب هستند که توسط یک پروژه به نام OWASP نگهداری میشوند.
اما تنها این نیست، سازمان میتواند قوانین سفارشی و سیاستهای امنیتی خود را برای سازگاری با منطق کسبوکار برنامه خود تعریف کند. اما برای تنظیم و سفارشی کردن WAF به تخصص خاصی نیاز است.
مدل های امنیتی WAF
WAF میتواند از دو نوع مدل امنیتی استفاده کند: مدل امنیتی مثبت و منفی. در مدل امنیتی مثبت، لیست سفیدی استفاده میشود که فقط ترافیک مجاز به گذراندن است. در مدل امنیتی منفی، لیست سیاهی استفاده میشود که فقط موارد خاصی را مسدود میکند. اما این مدل نمیتواند تضمین کند که تمام تهدیدات رفع شوند. سطح امنیتی بسته به تعداد محدودیتهایی است که اجرا میشود.
WAF میتواند از دو نوع مدل امنیتی استفاده کند: مدل امنیتی مثبت یا منفی، یا ترکیبی از آنها.
در مدل امنیتی مثبت، لیست سفیدی برای فیلتر کردن ترافیک استفاده میشود و هر چیزی که در لیست نباشد، مسدود میشود. این مدل میتواند حملات جدید یا ناشناخته را نیز مسدود کند.
در مدل امنیتی منفی، لیست سیاهی برای فیلتر کردن ترافیک استفاده میشود و تنها موارد خاصی که در لیست هستند، مسدود میشوند. این مدل برای پیاده سازی آسان است، اما نمیتواند تضمین کند که تمام تهدیدات رفع شوند. همچنین، برای استفاده از این مدل لازم است که لیستی از نشانههای خطرناک نگه داشته شود که ممکن است طولانی باشد. سطح امنیتی بسته به تعداد محدودیتهایی است که اجرا میشود.
سخن آخر
به طور خلاصه، WAF یا Web Application Firewall، یک سیستم امنیتی است که برای حفاظت از برنامههای وب در برابر حملات و تهدیدات امنیتی استفاده میشود. با استفاده از WAF، میتوانید برنامههای وب خود را در برابر حملات از جمله نفوذهای SQL، کد نفوذی، آسیبپذیریهای ارتباطی و … محافظت کنید.
برای راهاندازی یک WAF میتوانید از روشهای مثبت، منفی یا ترکیبی استفاده کنید، که هر کدام دارای ویژگیهای خاصی هستند و برای هر نوع برنامهی وب میتوانید از روش مناسب استفاده کنید.
همچنین، WAFها میتوانند به سرورهای مجازی و همچنین انواع سرورهای دیگر اضافه شوند. برای استفاده از WAF، شما باید آن را به صورت دستی یا با استفاده از ابزارهای مدیریت شبکه پیکربندی کنید.
در نهایت، استفاده از WAF میتواند به شما کمک کند تا برنامههای وب خود را در برابر تهدیدات امنیتی محافظت کنید و به آرامش خاطر بیشتری در استفاده از آنها دست یابید.
در صورتی که سوالی در این زمینه دارید، می توانید با ما در قسمت نظرات به اشتراک بگذارید.
سوالات متداول:
WAF چگونه کار میکند؟
WAF با مقایسه ترافیک ورودی و خروجی با قوانین امنیتی تعیین شده، تلاش میکند تا تهدیدات امنیتی و حملات را شناسایی کند. در صورتی که ترافیک مشکوک شناسایی شود، WAF دستورات مربوطه را برای مسدود سازی یا حذف آنها به سرور مجازی ارسال میکند.
مزایای استفاده از WAF چیست؟
استفاده از WAF به جلوگیری از حملات و تهدیدات امنیتی به وبسایت کمک میکند. این سیستم به دلیل داشتن الگوریتمهای قدرتمند شناسایی تهدید، میتواند از حملاتی که پیش بینی نشدهاند، جلوگیری کند. همچنین، استفاده از WAF باعث بهبود عملکرد و عملکرد وبسایت میشود.