آنچه در این مقاله میخوانید
امروزه از برنامههای تحت وب (Web Apps) در زمینههای مختلفی استفاده میشود؛ از خدمات بانکی گرفته تا پلتفرمهای سرگرمی. گسترش استفاده از آنها نیز باعث شده تا هکرها، برنامههای تحت وب را به عنوان هدف اصلی خود برای دسترسی به اطلاعات حساس کاربران و نفوذ به پایگاههای داده، انتخاب کنند. خوشبختانه، برای مقابله با این فعالیتهای مخرب، مهندسان ابزارهایی مثل Web Application Firewall یا همان فایروال تحت وب (WAF) را در اختیار دارند. در این مقاله به شما خواهیم گفت که WAF و انواع آن چیست، چگونه عمل میکند و چگونه میتوانید به بهترین شکل از آن استفاده کنید.
فایروال تحت وب (WAF) چیست و چه کاربردی دارد؟
Web Application Firewall یا فایروال تحت وب که به اختصار WAF نامیده میشود، سرویسی است که با فیلتر و نظارت بر ترافیک http/https بین یک برنامه وب و اینترنت، به محافظت از سامانهها و سرویسهای حیاتی در برابر حملات هکرها کمک میکند. به بیانی سادهتر WAF ترافیک ارسالشده از سمت کاربر به سامانه را بررسی کرده و در صورت مشکوک یا مخرب بودن درخواست، از رسیدن آن جلوگیری میکند.
سرویس WAF دیواری محافظ بین برنامه وب و کاربران تشکیل میدهد و افرادی که میخواهند به وبسرور دسترسی داشته باشند، باید درخواست ترافیک آنها ابتدا از WAF عبور کند.فایروال تحت وب تضمین میکند که فقط درخواستهای معتبر (Valid Requests) به اپلیکیشن برسد و از سرورها در برابر اقدامات مخرب، محافظت کند.
پیادهسازی WAF در یک پروژه، طیف وسیعی از مزایای امنیتی را ارائه میدهد. WAF با نظارت و پایش مدوام رفتار درخواست کاربران و اعمال پالیسی های امنیتی فعال کمک میکند تا اغلب آسیبپذیریهای شناخته شده برروی یک سامانه یا اپلیکیشن تحت وب برطرف شود. همچنین با جلوگیری از حملات SQL injection و cross-site scripting (XSS) که میتواند منجر به نقض اطلاعات شود، Endpoints را ایمن نگه میدارد.
این کنترل بر ترافیک ورودی و خروجی به شما کمک میکند تا حجم کاری یک اپلیکیشن را مدیریت کرده و اینگونه عملکرد آن را بهبود بخشید. علاوه بر این، فایروال تحت وب (WAF) امکان مدیریت و ارتقاء پالیسی های امنیتی برنامه ها و سامانه های تحت وب را دارا می باشد و از این طریق، درخواستها و ورودیهای غیرمجاز را فیلتر میکند.
مزایا و کارکردهای WAF
فیلتر کردن ترافیک و مانیتور real-time درخواستهای غیرمجاز
در زمان استفاده از WAF، به ابزارهای مختلفی برای فیلتر ترافیک ورودی برنامه تحت وب دسترسی دارید. یکی از این ابزارها استفاده از Whitelist/Blacklist است. تنظیم Whitelist به این معنی است که تمام ترافیک را مسدود میکنید و فقط به دادههای مجاز اجازه عبور میدهد؛ مثل آدرسهای IP. با تنظیم Blacklist نیز میتوانید انواع ترافیک انتخابی را حذف کرده و به آنچه میخواهید اجازه ورود دهید. علاوه بر این، WAF به شما کمک میکند تا ترافیک شبکه به صورت real-time نظارت کنید تا بتوانید در اسرع وقت، به هر اتفاقی واکنش نشان دهید. همچنین WAF گزارشهایی درباره ترافیک شناساییشده تولید میکند تا بتوانید آن را تجزیهوتحلیل کرده و دادههای غیرعادی، مشکلات احتمالی و فعالیتهای مشکوک را شناسایی کنید.
محافظت در برابر حملات Code Injection
یکی از مهمترین وظایف سرویس WAF، جلوگیری از حملاتی Code Injection است که هدف اصلی این حمله، ایجاد و تزریق کدها و اسکریپت های غیرمجاز به اپلیکیشن می باشد. به عنوان مثال، با تزریق اسکریپت یا کد برای هدف قرار دادن کاربران نهایی (حملات XSS)، ایجاد نمونههای کلاس نادرست در فرآیند deserialization و تزریق کد در کوئریهای SQL . هدف این حملات معمولاً اجرای دستورات سیستمی بر روی سرور و دسترسی به داده های حساس است.
یک مثال شناخته شده از این اکسپلویت، آسیبپذیری Log4Shell است، بر روی یکی از کتابخانههای جاوا به نام Java Logging Library (log4j) کشف شده که در صورت Log کردن یک رشته از کاراکترهای خاص میتواند منجر به Remote Code Execution (RCE) گردد. با این حال، سیستمهایی که قبلاً دارای سرویس فایروال تحت وب (WAF) بودند، توانستند به راحتی با بهروزرسانی پالیسی های امنیتی WAF در برابر این آسیبپذیری محافظت شوند.
تشخیص و پیشگیری از نفوذ
با پیادهسازی WAF، میتوانید از برنامه تحت وب خود در برابر بات های مشکوک و آلوده و ابزارهای مشابه محافظت کرد. همچنین با استفاده از الگوهای امنیتی امکان شناسایی اسکنرهای مخرب نیز وجود دارد. این ابزارهای مخرب، فهرستی دقیق از منابع و خدمات یک اپلیکیشن را جمع آوری و اطلاعات اولیه برای طراحی حملات پیچیده تر را فراهم می کند. WAF میتواند شما را از چنین فعالیتهای مشکوکی آگاه کند یا ترافیک افزایشیافته را گزارش کند. اینگونه میتوانید بات ها و اسکنرها را بلاک کنید یا برای محافظت از برنامه خود، اقدامات دیگری انجام دهید.
حفاظت از سیستمهای back-end
سرویس WAF با استفاده از مکانیسم های مختلف ضمانت میدهد که فقط ترافیک معتبر به سیستمهای back-end شما میرسد. این سرویس از حملات DoS جلوگیری میکنند و درخواستهای غیرضروری یا مخرب را پیش از بارگذاری بیش از حد سیستم متوقف میکنند. در نتیجه، برنامه وب شما نه تنها ایمن است، بلکه عملکرد بهتر و سریعتری نیز دارد.
انطباق با استانداردهای روز امنیتی
امنیت دادهها یکی از نگرانیهای اصلی بسیاری از کسبوکارها و همچنین حوزهای مهم در توسعه نرمافزار است. نصب فایروال تحت وب (WAF) میتواند به برنامه تحت وب شما کمک کند تا با استانداردهای امنیتی در حوزه داده یا پرداخت مانند HIPAA ،GDPR یا SOC 2 منطبق شود. البته لازم به توضیح است سرویس WAF امکان انطباق با استانداردهای مانند OWASP به منظور امن سازی وب و API ها دارا میباشد و با بررسی کنترل ها و پالیسی های امنیتی پیادهسازی شده، پیشنهاداتی را به منظور بهبود آن ها فراهم نماید.
انواع Web Application Firewall
بهطور کلی، چهار نوع فایروال تحت وب (WAF) وجود دارد که بر اساس نحوه استقرار آنها تعیین میشود؛ با این حال، شرکتها ممکن است بر اساس نیازهای محصول خاص خود، محدودیتهای بودجه و ملزومات قانونی، نوع خاصی از فایروال تحت وب را انتخاب کنند. در ادامه، شما را با انواع WAF آشنا میکنیم.
1. WAF مبتنی بر شبکه
WAF مبتنی بر شبکه (یا مبتنی بر نرمافزار) بین یک وبسرور و یک مرورگر اینترنت نصب میشود. همانندmod_security (Apache)، Snort، HAProxy Enterprise.
ترافیک ورودی و خروجی را تجزیهوتحلیل میکند و درخواستها و امضاها (Signatures) را بر اساس قوانین تعیینشده فیلتر میکند. این نوع WAF نسبتاً مقرون به صرفه است و از نظر سرورهای مختلفی که میتواند روی آنها مستقر شود، انعطافپذیری زیادی ارائه میدهد؛ اما فرآیندهای فیلتر و نظارت آن ممکن است در مقایسه با سایر انواع WAF کندتر باشد.
2. WAF مبتنی بر سختافزار
WAF مبتنی بر سختافزار، روی یک دستگاه فیزیکی اختصاصی مستقر است: همانند F5، Fortinet، Imperva SecureSphere، Barracuda Web Application Firewall. تمام ترافیک به این قطعه سختافزاری هدایت میشود و شامل تمام اجزای فیلتر و نظارت لازم است. این نوع WAF، سرعت بیشتر و عملکرد بسیار بهتری را ارائه می دهد؛ با این حال، خرید و نگهداری آن گاهی گرانتر از سایر انواع WAF است.
3. WAF مبتنی بر ابر
این نوع WAF یک جزء نرمافزاری در زیرساخت ابری است و معمولاً یک ارائهدهنده خدمات ابری، آن را به عنوان بخشی از راهحلهای نرمافزار بهعنوان سرویس (SaaS) ارائه میکند. مثل Microsoft Azure، Google Cloud Platform (GCP) و Amazon Web Services (AWS). این نوع WAF عملکرد قدرتمندی دارد، به راحتی ارتقا مییابد و از ترکیبهای مختلف پشتیبانی میکند و به شما کمک میکند امنیت سایبری پروژههای خود را افزایش دهید؛ مثلاً بر اساس Kubernetes.
4. WAF مبتنی بر رفتار
WAF مبتنی بر رفتار، یادگیری ماشینی (ML) را برای افزایش مانیتورینگ خود پیادهسازی میکنند. مثل: ThreatX Protection, Fastly Next-Gen WAF. آنها میتوانند از طریق تجزیهوتحلیل و شناسایی الگوهای پیشرفته، ناهنجاریهای ترافیکی، حملات zero-day و تلاشهای مخرب برای دور زدن WAF را شناسایی کنند؛ حتی اگر در پالیسی های امنیتی فعلی وجود نداشته باشد. آنها همچنین پایگاه دادههای الگوی خود را با بررسی ترافیک واقعی گسترش میدهند. این تجزیهوتحلیلها به WAF کمک میکند تا بهطور خودکار، قوانین مربوطه را برای ارتقای بیشتر سطوح امنیتی خود ایجاد کند.
عملکرد WAF مبتنی بر ابر
WAF موجود در پلتفرمهای مختلف، قابلیتهای ایمنی مشابهی را ارائه میدهند. پلتفرمی که برنامههای خود را در آن مستقر میکنید، رویکردهای فایروال تحت وب را تعیین میکند. اکنون که شما با مکانیسمهای مختلفی که WAF ارائه میدهد و برای بهبود امنیت پروژههای خود پیادهسازی میکند، آشنا هستید. ما نیز در این بخش، شما را عملکردهایی آشنا میکنیم که ارائهدهندگانی مانند Microsoft Azure، GCP و AWS آن را ارائه میدهند و میتوانید آنها را در راهحلهای WAF مبتنی بر ابر ببینید.
بهطور کلی، فایروال تحت وب (WAF) مبتنی بر ابر، امکانات زیر را در اختیار شما میگذارد::
- فیلتر ترافیک (بر اساس شرایط مختلف مانند کشورها، مناطق، آدرسهای IP، مجموعههای regex و سایر معیارهای سفارشی)؛
- پیادهسازی لیستهای کنترل دسترسی به وب (webACL)،
- مسدود کردن حملات XSS و SQL injection،
- محافظت از اپلیکیشن در برابر HTTP request smuggling، تقسیم پاسخ HTTP و گنجاندن فایل از راه دور؛
- شناسایی پارامترهای نادرست و نامنطبق با پروتکل RFC2616؛
- محافظت از اپلیکیشن در برابر رباتها، اسکرولرها و اسکنرها (مانند Shodan، ZoomEye و Censys)؛
- تجزیهوتحلیل محتویات بدنه اپلیکیشن برای جلوگیری از حملات تزریقی خارجی XML (XXE)؛
- جلوگیری از استفاده مهاجمان از حسابهای رهگیریشده برای ایجاد نقضهای امنیتی بیشتر – بهطور خاص، ویژگی کنترل کلاهبرداری AWS WAF شامل مکانیسمهای جلوگیری از تصاحب حساب (ATP) و جلوگیری از کلاهبرداری ایجاد حساب (ACFP) است و پایگاهدادهای از لاگینها و رمزهای عبور سرقتشده برای جلوگیری از حملات ایجاد میکند؛
- تجزیهوتحلیل الگوهای ترافیک و ایجاد خودکار قوانین فیلتر جدید (مثل Google Cloud Armor Adaptive Protection)؛
- تشخیص اشتباهات معمولی در پیکربندی برنامهها، مثل آپاچی و برنامههای خدمات اطلاعات اینترنتی (IIS)؛
بهترین روشها برای پیادهسازی و استفاده از فایروال تحت وب (WAF)
درک نحوه عملکرد WAF و مزایایی که ارائه میدهد، اولین گام برای ساخت برنامههای ایمن است. در واقع برای اینکه از WAF به بهترین شکل استفاده کنید و آن را برای مقابله با تهدیدهای جدید بهینهسازی کنید، باید عملکرد WAF را بهخوبی درک کنید.
برای مثال، در زمان اجرای WAF، باید به یاد داشته باشید که از preview mode استفاده کنید. این کار به شما کمک میکند تا از خطاها جلوگیری کنید و مطمئن شوید که WAF قبل از استقرار، مطابق انتظار عمل میکند. توصیه دیگر هنگام تنظیم WAF، ایجاد قوانین اختصاصی برای برنامههایی است که انواع خاصی از ترافیک را مدیریت میکنند (مثل قوانین برای هدر، بدنه و غیره). به این ترتیب میتوانید حملات و حوادث احتمالی به یک اپلیکیشن را در نظر بگیرید.
موقع پیکربندی WAF، قوانین مبتنی بر نرخ (Rate-based rules) انتخاب خوبی هستند. با ردیابی و محدود کردن نرخ درخواستهای ارسالشده از یک آدرس IP، میتوانید ترافیک بیش از حد را بلاک کنید. همچنین باید از گزارشهای درخواستی دقیق استفاده کنید. در صورت وقوع یک حادثه یا فعالیت مشکوک، این سوابق را میتوان برای درک آنچه اتفاق افتاده و برای شناسایی آسیب پذیریهای یک برنامه تجزیهوتحلیل کرد.
برای مدیریت آسان تمامی این مجموعه قوانین مختلف، ابزارهای Infrastructure as Code (IaC) مثل Terraform به شدت توصیه میشود. در واقع این ابزارها، ایجاد، بازگردانی، انتقال یا پیکربندی قوانین را برای شما آسانتر میکنند. برای تأیید قوانین نیز میتوانید از راهحلهای اسکن خارجی (مانند Qualys یا Tenable) استفاده کنید. علاوه بر این، باید مطمئن شوید که یک مکانیسم حفاظتی اختصاصی DDoS را بسته به پلتفرمی که استفاده میکنید، فعال کنید؛ مثل AWS Shield، Azure Front Door، Google Cloud Armor.
برای به حداکثر رساندن امنیت دادههای رد و بدلشده بین اپلیکیشن خود و یک مرورگر آنلاین، ترافیک را پس از تجزیهوتحلیل WAF، با اتصال جلسه پشتیبان به امنیت لایه حملونقل (TLS) رمزگذاری کنید. استفاده از TLS برای ارتباطات پشتیبان ممکن است راهحلی گران باشد؛ اما تضمین میکند که تمام اطلاعات، خصوصی و رمزگذاریشده باقی میمانند که درباره دادههای حساس بسیار مهم است.
در نهایت، بهطور منظم قوانین WAF را بررسی و بهروز کنید. برخی از تنظیمات ممکن است به تغییر یا اضافه کردن نیاز داشته باشند تا ویژگیهای جدید را در خود جای دهند. علاوه بر این، مهاجمان دائماً روشهای خود را اصلاح میکنند و تکنیکهای جدیدی را ارائه میکنند؛ به همین دلیل، مکانیسمهای امنیتی شما نیز باید همیشه بهروز باشند.
امنیت سایبری برای توسعه نرمافزار ابری با کیفیت ضروری است
فایروال تحت وب (WAF) ابزاری عالی برای محافظت از انواع حملاتی هستند که منجر به نشت دادههای حساس، آسیب به شهرت و از دست دادن اعتماد مشتریان شود. با این حال، درست مانند مکانیسمهای مشابه، نباید تنها به چند ابزار امنیتی تکیه کنید. WAF در صورتی بهترین عملکرد را خواهد داشت که در ساخت برنامههای مبتنی بر ابر، از معماری ایمن گرفته تا بهترین شیوههای بلندمدت، عنصری از راهحل امنیت سایبری لایهای در آن باشد.
اگر به دنبال امنیت وبسایت و پلیکیشن خود هستید کافیست از مشاوره رایگان کارشناسان ابرآمد استفاده کنید. همچنین در صورتی که نیاز به اطلاعات بیشتر درباره سرویس امنیتی WAF ابرآمد دارید اینجا کلیک کنید. ابرآمد با برخورداری از تیم امنیت متخصص و تجهیزات امنیتی بهروز خود میتواند آسیبهای امنیتی شما را به حداقل برساند.
این مقاله را به اشتراک بگذارید