WAF چیست؟
WAF یا وف مخفف عبارت Web Application Firewall به معنای فایروال برنامه وب می باشد. به اختصار میتوان گفت که WAF یک فایروالی است که از برنامه های تحت وب در برابر حملات محافظت می کند.
WAF و فایروال های دیگر با اینکه هر دو فایروال هستند، ولی در عملکرد متفاوت می باشند، برای درک بهتر تفاوت های WAF و فایروال پیشنهاد می شود که مقاله تفاوت WAF و فایروال در چیست؟ را مطالعه نمایید.
به عبارت دیگر، WAF یکی از ابزارهایی است که مسئول ایمنسازی برنامههای حیاتی تجاری تحت وب در برابر 10 تهدید اول OWASP، تهدیدات روز صفر، آسیبپذیریهای شناخته شده یا ناشناخته برنامهکاربردی و همچنین مجموعهای از دیگر حملاتی است که لایه برنامه را تحت تاثیر قرار میدهد.
از آنجایی که سازمانها دستخوش ابتکارات دیجیتالی جدید میشوند و سطح حمله را برای فعالسازی کسبوکار گسترش میدهند، اغلب متوجه میشوند که برنامههای کاربردی تحت وب و رابطهای برنامهنویسی برنامههای کاربردی (Application Programming Interface – به اختصار API) به دلیل آسیبپذیریهای وب سرور، یک پلاگین سرور یا سایر مسائل مورد سوءاستفاده 10 تهدید اول OWASP قرار میگیرند که هدف آنها ایجاد اختلال در کسبوکارها میباشد.
WAF به ایمن نگه داشتن این برنامههای کاربردی تحت وب و محتوایی که به آنها دسترسی دارند، کمک میکند.
چرا WAF برای سازمانها حیاتی است؟
تلاشها در حوزه نوآوریهای دیجیتالی (Digital Innovation – به اختصار DI) که منجر به افزایش استفاده از فناوریهای کاربردی تحت وب میشود، مستلزم تغییری اساسی در شیوه سازمانها در بکارگیری ابزارهای دیجیتالی مربوط به کسبوکارها است، به ویژه اگر بخواهند از 10 تهدید اول OWASP جلوگیری کنند.
همچنین بخوانید: خرید WAF و نکات مهم در انتخاب آن
پیادهسازی نوآوریهای دیجیتالی به صورت موفق چیزی بیش از بکارگیری فناوری شرکتهایی نظیر Barracuda و Fortinet است – نیازمند تمرکز بر نیازهای مشتریان و تمایل به پذیرش تغییرات سریع، از جمله پذیرش سریع و اجرای فناوریهایی است که به سازمانها کمک میکنند تا نیازهای مشتریان را برآورده کنند.
در جریان این حافظت معمولاً از منابع مختلفی همچون Imperva، Nginx، Barracuda و … استفاده میشود.
به عنوان مثال، راهکارهای ابر عمومی (Public Cloud) و نرمافزار بهعنوان سرویس (Software-as-a-Service – به اختصار SaaS) میتوانند تا زمانی که به درستی بکارگرفته میشوند و با قواعد امنیتی سختگیرانه نظیر سیستمهای دفاعی Barracuda یا سایرین در دنیای امنیت سایبری محافظت میشوند، به کسبوکارها سرعت بخشیده و به سازمانها کمک میکنند. با این حال، از آنجایی که پذیرش سریع این فناوریها، سرعت عملیات تجاری کسبوکارها را افزایش میدهند، گاهی اوقات ضعفهای امنیتی برنامههای کاربردی تحت وب و مشکلات OWASP ایجاد میشوند و برنامههای کاربردی تحت وب را در معرض خطر تهدیدات پنهان موجود در ترافیک اینترنت قرار میدهند.
از آنجایی که مشتریان به طور فزایندهای از طریق بکارگیری دستگاههای دیجیتالی شخصی خود در سازمان (Bring-Your-Own-Devices – به اختصار BYOD) به برنامههای کاربردی تجاری بدون کنترل با VPN دسترسی دارند، سازمانها باید خطرات آن را تشخیص دهند. در این حالت حتی فایروالهای شبکه نیز میتوانند آسیبپذیر باشند. محصولات امنیتی سنتی برای محافظت از برنامههای کاربردی متصل به اینترنت در برابر 10 تهدید اول OWASP و سایر آسیبپذیریهای برنامه موجود در ترافیک شبکه کافی نیستند، حتی چنانچه Barracuda راهکار مناسبی برای برخی از کاربران باشد.
مجموعه قواعد جدیدی مورد نیاز است. سازمانهایی که برنامههای کاربردی حیاتی را برای کسبوکار خود اجرا میکنند به ابزارهایی نیاز دارند که لایه 7 شبکه را محافظت کند. WAF راهکاری است که از این برنامهها و دادهها محافظت میکند.
WAF از چه نوع تهدیداتی جلوگیری میکند؟
یکWAF میتواند از حملات ناحیه برنامهی اپلیکیشن مانند cross-site scripting (XSS)، SQL injection و cookie poisoning محافظت کند. حملات به برنامهها دلیل اصلی نقض امنیت هستند. با استفاده از یک فایروال وب اپلیکیشن، میتوان مجموعهای از حملات را که هدف آنها سرقت دادهها با نفوذ به سیستم است، مسدود نمود.
10 تهدید اول OWASP چیست؟
برنامههای کاربردی تحت وب مدرن به یک فایروال برنامه کاربردی وب (WAF) جامع نیاز دارند تا از برنامههای کاربردی مهم در برابر چندین نوع حملات وب و سایر تهدیدات نهفته در ترافیک شبکه نظیر 10 تهدید اول Web Application Security Project – به اختصار OWASP ، که نشاندهنده خطرات مهم امنیتی در برنامههای کاربردی تحت وب هستند، محافظت کند. 10 تهدید اول OWASP اغلب برای هدف قرار دادن یک برنامههای حیاتی مورد استفاده قرار میگیرند. 10 تهدید اول OWASP عبارتند از:
حملات از نوع تزریق SQL | هنگامی که دادههای نامعتبر به مفسر (Interpreter) ارسال میشود، مهاجم میتواند کد مخرب را تزریق کند. |
نقض اطلاعات اصالتسنجی | اگر مکانیسمهای احراز هویت به درستی پیادهسازی نشوند، مهاجمان میتوانند با بهرهجویی از آسیبپذیریهای آنها، به اطلاعات اصالتسنجی دست یابند. |
افشاء دادههای حساس و حیاتی | از آنجایی که بسیاری از برنامههای کاربردی تحت وب و واسطهای API فاقد امنیت لازم میباشند، مهاجمان میتوانند از اطلاعات حساس حوزههای مالی، سلامت و دادههای شخصی سوءاستفاده کنند. |
موجودیتهای خارجی XML (XXE) | بسیاری از پردازندههای قدیمی XML موجودیتهای خارجی را ارزیابی میکنند که میتوان از آنها برای افشای فایلهای داخلی استفاده کرد. |
نقض محدودیتهای کنترلی و دسترسی | هنگامی که محدودیتهای دسترسی و کنترلی برای کاربران اعمال نمیشود، کاربران غیرمجاز میتوانند به طور بالقوه به فایلهای محرمانه دسترسی داشته باشند. |
پیکربندی نادرست امنیتی | پیکربندی پیشفرض یا تنظیمات نادرست ad-hoc میتواند منجر به آسیبپذیریهایی شود. |
تزریق کد از طریق سایت (XSS) | هنگامی که برنامهای شامل دادههای غیرقابل اعتماد و بدون اصالتسنجی است، نقصهایی از نوع XSS رخ میدهد که در هنگام اجرای حملات توسط مهاجمان مورد سوءاستفاده قرار میگیرند. |
deserialization ناامن | منجر به اجرای کد از راه دور شده که میتواند برای اجرای حملات استفاده شود. |
بکارگیری مؤلفههایی با آسیبپذیریهای شناخته شده | مولفهها اغلب با همان امتیازات برنامهکاربردی اجرا میشوند. در صورت وجود یک آسیبپذیری، همه اجزا و برنامههای کاربردی ممکن است آلوده شوند. |
عدم نظارت و رصد ناکافی لاگها | نظارت و رصد ناکافی لاگها چنانچه با فناوری واکنش به رویداد ادغام نشود، پروسههای ناکافی ایجاد میکند. |
با این حال، در نظر گرفتن 10 تهدید اول OWASP تنها آغاز راه است. این تهدیدات را به عنوان فهرستی از فراگیرترین خطراتی که سازمانها با آن مواجه میشوند، توصیف مینمایند.
WAF بایستی ضمن حفظ امنیت در برابر 10 تهدید اول OWASP، مقابله با تهدیدات زیر را نیز فراهم کند:
باتها
برنامههایی که با برنامههای کاربردی ما تعامل دارند، اغلب از رفتار انسان تقلید میکنند. البته باتهای غیرمخرب نیز میتوانند با یک برنامهکاربردی جهت بکارگیری در موتورهای جستجو، دستیارهای مجازی و جمعآوری محتوا (به عنوان مثال، سایتهای مقایسه قیمت) تعامل داشته باشند. باتهای مخرب نیز میتوانند عملیاتی نظیر وب اسکریپینگ (Web Scraping)، داده کاوی رقابتی، جمع آوری دادههای شخصی و مالی، تصاحب حسابکاربری، کلاهبرداری اینترنتی، تبلیغات دیجیتالی و تراکنشهای جعلی را انجام دهند.
آپلودهای مخرب
بسیاری از برنامههای کاربردی تحت وب به کاربران اجازه میدهند محتوای خود را آپلود کنند؛ این محتوا میتواند شامل انواع کدهای مخرب باشد.
آسیبپذیریهای ناشناخته
راهکارهای مبتنی بر امضاء (Signature-based Solutions) نمیتوانند در برابر آسیبپذیریهایی که به تازگی کشف شدهاند، محافظت کنند. یک راهکار قوی WAF باید بتواند در برابر تهدیداتی که هیچ امضایی برای آنها وجود ندارد نیز دفاع کند.
حملات روز صفر
حملات روز-صفر (Zero-day Attacks)، حملاتی هستند که ضعفهای امنیتی ناشناخته قبلی یک برنامه را مورد هدف قرار میدهند. هنگامی که مهاجم یک آسیبپذیری از نوع روز-صفر را کشف میکند، میتواند از آن جهت بهرهجویی از سیستمهایی استفاده کند که راهکارهای دفاعی مضاعف در آنجا وجود ندارد.
حملات از کاراندازی سرویس
اغلب شبکهای مخرب از کامپیوترها با ارسال درخواستهای متعدد به تعداد زیادی سیستم به گونهای که قادر به پاسخدهی به کاربران نباشند، سعی در از کاراندازی یک سرویس یا یک برنامه دارند. حملات توزیعشده از کاراندازی سرویس (Distributed Denial of Service – به اختصار DDoS) سعی میکنند به سادگی سیستم را با ترافیک جعلی مشغول کنند یا ممکن است از ضعف موجود در منطق برنامهکاربردی جهت رسیدن به نتیجه مشابه سوءاستفاده کنند.
روش های پیاده سازی WAF
یک WAF میتواند به روشهای مختلفی مستقر شود – و نوع پیادهسازی و استفرار آن، به محل استقرار برنامه تحت وب، خدمات مورد نیاز، نحوه مدیریت آن و سطح انعطافپذیری معماری و عملکرد مورد نیاز بستگی دارد.
معمولا WAF را میتوان به چهار روش زیر مستقر کرد:
- مبتنی بر ابر + مدیریت کامل بهعنوان سرویس: سریعترین و بیدردسرترین راه برای دریافت WAF در برنامهها میباشد. (مخصوصاً برای سازمانهایی که منابع امنیتی/IT داخلی محدودی دارند).
- مبتنی بر ابر + خود مدیریت: در این روش میتوان تمام انعطافپذیری و قابلیت تنظیم قوانین امنیتی ابر را به دست گرفت و در عین حال کنترل مدیریت ترافیک و تنظیمات خطمشی امنیتی را حفظ نمود.
- مبتنی بر ابر + ارائه خودکار: این سادهترین راه برای شروع کار با WAF در فضای ابری است و سیاستهای امنیتی را به روشی آسان و مقرونبهصرفه اجرا میکند.
- WAF پیشرفته (دستگاه مجازی یا سختافزاری) در محل: در جایی که انعطافپذیری، عملکرد و نگرانیهای امنیتی پیشرفتهتر از اهمیت بالایی برخوردار است، با سختترین نیازهای استقرار پاسخ میدهد.
چند نمونه از ارائه دهندگان WAF
کلودفلر (Cloudflare)
مطمئنا یکی از معروفترین سرویسهای ارائه دهنده خدمات ابری وب میباشد. این سرویس که دارای پلن های رایگان و پولی میباشد، بسیاری از سرویسهای مورد نیاز برنامههای تحت وب را ارائه میدهد که یکی از مهمترین آنها WAF میباشد.
کلودفلر WAF یک سرویس پیشرفته است که به شما کمک میکند برنامههای وب خود را در برابر حملات و تهدیدات امنیتی محافظت کنید.
با استفاده از تجزیه و تحلیل ترافیک وب و استفاده از هوش مصنوعی، کلوفلر قادر است به طور دقیق تهدیدات را شناسایی کند و قوانین قدرتمندی برای جلوگیری از آنها پیادهسازی کند.
کلوفلر WAF برای نصب و استفاده آسان طراحی شده است و با چند کلیک ساده میتوانید حفاظت وب را فعال کنید و به آسانی مدیریت کنید.
با استفاده از قوانین مدیریت شده توسط کلوفلر، میتوانید از حملات مبتنی بر آسیبپذیریهای روز صفر، حملات رایج OWASP و سایر تهدیدات محافظت کنید.
قابلیت های تشخیص داده های حساس، مسدودسازی دسترسیهای نامجاز و محدود کردن نرخ حملات و دستیابی به آمار و تجزیه و تحلیل فایروال از جمله ویژگیهایی هستند که کلوفلر WAF ارائه میدهد.
WAF کلودفلر در سال 2022 موفق شد نشان Customers’ Choice را برای ارائه سرویس WAF دریافت نماید.
ابرآروان
شرکت ابرآروان را میتوان به عنوان یکی از موفقترین نمونههای زیرساخت یکپارچه ابری در ایران در نظر گرفت. یکی از مهمترین خدمات ابری ابرآروان فایروال وب اپلیکیشن میباشد.
این سرویس که به عنوان یکی از سرویسهای امنیتی در بخش امنیت قرار دارد، میتواند به عنوان یک WAF مناسب و قوی جلوی حملات را گرفته و گزارشی دقیقی را نیزحملات صورت گرفته ارائه دهد.
برای استفاده بهتر از WAF ابرآروان میتوانید از پکیجهای ارائه شده در آن استفاده نمایید.
با استفاده از پکیجهای امنیتی، میتوانید بسته به نیاز خود تنظیمات از پیش آماده شده را به WAF اضافه کنید. هرکدام از پکیجهای امنیتی، تنظیمات مختلفی را در خود دارند که با فعالسازی پکیج، این تنظیمات روی دیواره آتش وب شما اعمال شده و در بررسی درخواستها مورد استفاده قرار میگیرد.
در حال حاضر، در کنار پکیج پیشفرض WAF ابر آروان، دو پکیج استاندارد CRS و Comodo نیز از بخش پکیجها در پنل کاربری WAF قابل فعالسازی و استفاده هستند.
از دیگر نمونههای خارجی WAF میتوان به لیست زیر اشاره کرد:
- AppTrana WAF
- Fortinet FortiWeb
- StackPath
- Sucuri
- Imperva
- Barracuda
- Prophaze
- MS Azure
- F5 Essential App Protect
- Akamai Kona Site Defender
همچنین نمونههای ایرانی دیگری مانند سامانه ASPA WAF و شرکت تاکیان نیز سرویس WAF را به کاربران خود ارائه میدهند.
پیشنهاد مطالعه مقاله: فایروال بومی چیست؟
WAF چگوه از API محافظت میکند؟
امروزه دیگر همانند گذشته سایتها و صفحات وب تنها با بکارگیری Hypertext Markup Language – به اختصار HTML – طراحی نشدهاند بلکه صفحات وب بسیار پیچیدهتر شده است. برنامههای کاربردی تحت وب امروزه سرویسهای حیاتی را با بکارگیری رابطهای API به جای HTML ساده ارائه دادهاند که این امکان پردازش دادههای خام را برای مشتریان فراهم میکند و تجاربی غنیتر و پاسخگوتری را ارائه میدهند. این رابطهای API همچنین از برنامههای کاربردی موبایل که کاربران به آنها نیاز دارند، پشتیبانی میکنند. بنابراین به یک WAF معتبر که توسط شرکتهایی نظیر Fortinet ،Barracuda یا سایر سازندگان، ساخته شده جهت محافظت، نیاز دارند تا از آنها در برابر 10 تهدید اول OWASP نظیر آسیبپذیریهای ناشناخته و سایر مواردی که به دنبال استفاده از ترافیک اینترنت، افزونه سرور یا سایر آسیبپذیریها هستند، محافظت کنند.
با در اختیار قرار دادن حجم زیادی از دادههای برنامههای کاربردی به Client، مهاجم راهی برای سوءاستفاده از قواعد API مییابد، اگر شرکتهای ارائه دهنده WAF مانند Barracuda، AWS یا Cloudflare وجود نداشته باشند، امکان این بهرهجویی قطعاً افزایش مییابد.
بکارگیری WAF جهت انطباق و سازگاری
در دسترس قرار دادن دادههای مربوط به برنامههای کاربردی تحت وب به برنامهها، اغلب با الزاماتی جهت برقراری سازگاری و انطباق همراه است. راهکارهای WAF به سازمانها کمک میکنند تا قواعد انطباق و سازگاری را نیز رعایت کنند، صرفنظر از اینکه ارائهدهنده این خدمات AWS، Barracuda، Imperva یا هر سازنده دیگری باشد، برقراری انطباق و سازگاری باید در اولویت باشد.
به عنوان مثال، Payment Card Industry Data Security Standard – به اختصار PCI DSS، مجموعه ای از استانداردهای امنیتی را برای سازمانهایی که کارتهای اعتباری را مدیریت میکنند، تعریف میکند که باید از آنها پیروی کنند. PCI 6.6 به طور خاص اغلب هنگام بحث درباره فناوریهای WAF طراحی شده و برای حفظ امنیت در ترافیک وب و تجهیزات مربوطه مورد استفاده قرار میگیرد.
این استاندارد مستلزم بازرسی ترافیک برنامههای کاربردی تحت وب است که با دادههای کارت تعامل دارند و به دو روش قابل پیادهسازی است: بررسی کد برنامه تحت وب (که میتواند منجر به کاهش سرعت شود) یا استقرار WAF بین مشتری و برنامه تحت وب. این خدمات توسط چندین ارائه دهنده بزرگ مانند Fortinet، Cloudflare و Barracuda ارائه میشود.
در دنیایی که انتظار میرود سازمانها بهطور مکرر و سریع تغییرات اعمال شده در کدها را در حین پذیرش متدولوژیهای DevOps اعمال کنند، اغلب یک فایروال وب اپلیکیشن قوی (WAF) راهکار بهتری برای رعایت این نوع قواعد انطباقی خواهد بود و در عین حال از سازمانها در برابر 10 تهدید اول OWASP محافظت میکند.
قابلیتهای پیشرفته WAF
سازمانها همچنین باید با بگارگیری WAF مربوط به برندهایی نظیر Fortinet، Barracuda یا Cloudflare از دادهها در برابر تهدیدات OWASP مدرن محافظت کنند و در عین حال هرگونه ناسازگاری را با آنچه کاربر نهایی هنگام ارتباط با یک برنامه کاربردی و ترافیک داده آن تجربه میکند به حداقل رسانند.
تجارب ناامیدکننده تهدیدات OWASP که معمولاً مشتریان با آن سروکار دارند شامل مسدودسازی مواردی است که به غلط مخرب تشخیص داده شده (False Positive) یا پیمایش بیش از حد درخواستهای CAPTCHA برای اثبات احراز هویت کاربران است. البته قابلیتهای پیشرفته فایروال برنامههای تحت وب که در ادامه شرح میدهیم، میتوانند تجربیات خوبی را برای مشتریان فراهم کنند:
یادگیری ماشین
فناوریهای سنتی بکارگرفته شده در برنامههای کاربردی تحت وب نیاز به تنظیم پارامترها به صورت دستی دارند و مستعد تشخیص نادرست (False Positive) در نتایج هستند. تنظیم مداوم برنامههای کاربردی در زمان اعمال تغییرات و اصلاح موارد نادرست تشخیص داده شده، حجم کاری ادمین (Admin) و سایر اعضاء را در تیمهای امنیتی افزایش میدهد.
این در حالی است که بکارگیری الگوریتمهای یادگیری ماشین در فایروال برنامههای تحت وب که کوکیها را بررسی میکنند، میتواند با مدلسازی خودکار رفتار واقعی برنامههای تحت وب، این سناریو را تغییر دهد. رفتار کاربران را میتوان با تحلیل کوکیهای آنها تقریب زد. علاوه بر این، با بهروزرسانی خودکار آن مدل با تکامل برنامه تحت وب، تیمهای امنیتی و سایر افراد در بخش فناوری اطلاعات زمان کمتری را صرف تنظیم دستی WAF بر اساس ترافیک و ایجاد استثنائات بر اساس موارد نادرست تشخیص داده شده، میکنند.
قابلیت گزارشگیری پیشرفته
صرفاً مسدودسازی یک سایت یا برنامه جهت افزایش امنیت برنامه و بیاثرسازی تاثیرات مخرب تهدیدات OWASP کافی نیست – سازمانها به جزئیات رویدادهایی که فایروال برنامههای تحت وب (WAF) رصد نموده و میتواند ارائه دهد، نیاز دارند. گزارشهای حمله باید شامل اطلاعات مهم و مورد نیاز تحلیلگران مرکز عملیات امنیتی (Security Operation Center – به اختصار SOC) باشند؛ اطلاعاتی نظیر کدهای بدنه HTTP (Body)، هرگونه کوکی قابلاجرا و نشانههای واضحی در خصوص اینکه بر چه مبنایی برخی قواعد امنیتی درخواست برنامه را مسدود نموده است.
رابط API برای سازگاری با WAF
یک راهکار پیشرفته WAF علاوه بر محافظت از رابطهای API مربوط به برنامههای کاربردی تجاری متصل به اینترنت، باید رابطهای API اختصاصی برای مدیریت خود WAF را نیز در اختیار داشته باشد.
برای مطالعه بیشتر در رابطه با WAF و آشنایی با انواع آن پیشنهاد می شود که مقاله تفاوت انواع WAF در چیست؟ را مطالعه نمایید.