AWS WAF (فایروال برنامه وب): شیرجه عمیق
معرفی
این مقاله برای اولین بار در وبلاگ خودم منتشر شد:
https://www.playingaws.com/posts/aws-waf-web-application-firewall-deep-dive/
فایروال برنامه وب (WAF) یک راه حل امنیتی است که protects web applications
از حملات مخرب مانند اسکریپت بین سایتی، تزریق SQL و ترافیک ربات های مخرب. WAF معمولاً به عنوان یک پروکسی معکوس مستقر می شود که بین اینترنت و برنامه وب قرار می گیرد تا درخواست های دریافتی را قبل از رسیدن به وب سرور بررسی و فیلتر کند.
در اینجا یک نمایش بصری از معماری اصلی AWS WAF است:
WAF چگونه کار می کند
WAF با تجزیه و تحلیل ورودی کار می کند HTTP and HTTPS
به یک برنامه وب درخواست می کند و درخواست ها را بر اساس قوانین امنیتی از پیش تعریف شده اجازه می دهد یا مسدود می کند. قوانین امنیتی می تواند بر اساس آدرس های IP، هدرها، پارامترها و سایر ویژگی های درخواست باشد. WAF همچنین میتواند بازرسی بسته عمیق (DPI) را برای بازرسی محتویات بار درخواست و تعیین اینکه آیا درخواست حاوی محتوای مخرب است انجام دهد.
اگر یک درخواست یک قانون امنیتی را نقض کند، WAF درخواست را مسدود می کند و یک پاسخ خطا را به مشتری برمی گرداند.
AWS WAF
AWS WAF یک انتخاب محبوب برای راه حل های WAF مبتنی بر ابر است که مجموعه ای جامع از قوانین امنیتی را برای محافظت از برنامه های کاربردی وب ارائه می دهد.
AWS WAF (Web Application Firewall) یک سرویس مبتنی بر ابر است که از برنامههای کاربردی وب شما محافظت میکند و در برابر سوء استفادههای رایج وب که میتوانند بر دسترسی، امنیت به خطر بیاندازند یا منابع بیش از حد مصرف کنند، دفاع میکند. به شما امکان می دهد دسترسی به محتوای وب خود را کنترل کنید و قوانین امنیتی قابل تنظیمی را برای فیلتر کردن ترافیک بر اساس آدرس های IP، هدرهای HTTP، محتوای بدنه HTTP یا رشته های URI ارائه می دهد.
منابع حفاظت شده
می توانید از انواع منابع زیر محافظت کنید:
- توزیع آمازون CloudFront
- Amazon API Gateway REST API
- Application Load Balancer
- AWS AppSync GraphQL API
- مجموعه کاربران آمازون Cognito
- سرویس AWS App Runner
- نمونه دسترسی تایید شده AWS
اجزای اصلی
اجزای اصلی AWS WAF شامل موارد زیر است:
-
قوانین: AWS WAF به شما امکان میدهد قوانینی ایجاد کنید که انواع ترافیکی را که میخواهید اجازه دهید یا دسترسی به برنامههای وب خود را مسدود کنید، تعریف میکند. شما می توانید قوانینی را بر اساس شرایط مختلف مانند آدرس های IP، هدرهای HTTP، رشته های URI و محتوای بدنه HTTP ایجاد کنید.
-
گروه های قوانین مدیریت شده: AWS WAF گروههای قوانین مدیریت شده از پیش ساخته شده را ارائه میکند که در برابر حملات رایج وب مانند تزریق SQL، اسکریپت بین سایتی (XSS) و غیره محافظت میکنند. این گروههای قوانین توسط AWS ایجاد و نگهداری میشوند و بهطور مرتب به روز میشوند تا اطمینان حاصل شود که محافظت بهروز در برابر آخرین تهدیدات را ارائه میکنند.
-
ACL های وب: AWS WAF از وب ACL (فهرست های کنترل دسترسی به وب) برای گروه بندی قوانینی استفاده می کند که سپس می توانید آنها را برای یک یا چند برنامه وب اعمال کنید. وب ACL به شما امکان می دهد مجموعه ای از قوانین را در چندین برنامه کاربردی وب اعمال کنید و مدیریت و اعمال مداوم سیاست های امنیتی را آسان تر می کند.
مزایا و ویژگی ها
AWS WAF طیف گسترده ای را ارائه می دهد benefits and features
، به شما قدرت می دهد تا برنامه های وب خود را به طور موثر ایمن کنید. در اینجا برخی از مزایای کلیدی استفاده از AWS WAF آورده شده است:
-
محافظت چابک در برابر حملات وب: انتشار و بهروزرسانی قوانین AWS WAF کمتر از یک دقیقه طول میکشد و به شما امکان میدهد در هنگام حمله یا هنگام بروز مشکلات امنیتی سریعتر واکنش نشان دهید.
-
سهولت استقرار و نگهداری: AWS WAF به راحتی قابل استقرار است و از برنامه(های) مستقر در Amazon CloudFront، Application Load Balancer یا Amazon API Gateway محافظت می کند. هیچ نرم افزار اضافی برای استقرار، پیکربندی DNS یا گواهی SSL/TLS برای مدیریت وجود ندارد.
-
مقرون به صرفه: AWS WAF یک سرویس پرداختی است که به این معنی است که شما فقط برای منابعی که استفاده می کنید هزینه پرداخت می کنید. این امر آن را به یک راه حل مقرون به صرفه برای ایمن سازی برنامه های وب شما تبدیل می کند.
-
دید ترافیک وب بهبود یافته است: AWS WAF به ترافیک وب شما تقریباً در زمان واقعی دید می دهد، که می توانید از آن برای ایجاد قوانین یا هشدارهای جدید در Amazon CloudWatch استفاده کنید.
-
مقیاس پذیری: AWS WAF برای مدیریت حجم بالای ترافیک طراحی شده است و می تواند به طور خودکار برای برآورده کردن نیازهای برنامه های کاربردی وب شما مقیاس شود.
-
انعطاف پذیری: AWS WAF طیف وسیعی از گزینهها را برای ایجاد قوانین سفارشی برای فیلتر کردن ترافیک فراهم میکند و به شما انعطافپذیری بیشتری در تعریف سیاستهای امنیتی شما میدهد.
عملی با AWS WAF
اول از همه، باید بدانید که AWS WAF یک سرویس منطقه ای است. با این حال، هنگامی که به آن دسترسی دارید، به نظر یک سرویس جهانی است، اما باید با استفاده از این گزینه بین مناطق تغییر دهید:
شروع کار با WAF نسبتاً ساده است، به سادگی وارد کنسول مدیریت AWS شوید و به سرویس AWS WAF بروید. از آنجا، می توانید یک خط مشی WAF جدید ایجاد کنید و خط مشی را با قوانین امنیتی مورد نظر پیکربندی کنید.
فعال کردن گزارشها
گزارشها بهطور پیشفرض غیرفعال هستند، بنابراین باید آن را فعال کنیم. باید وارد وب ACL ایجاد شده و دسترسی به آن شویم Logging and Metrics
برگه:
همانطور که می توانید در تصویر زیر بررسی کنید ما 3 گزینه به عنوان خواهیم داشت Logging Destination
(گروههای گزارش CloudWatch، جریان Kinesis Data Firehose و سطل S3):
پس از فعال کردن گزارشهای CloudWatch، میتوانیم به آن دسترسی داشته باشیم CloudWatch Log Insights
را برگه و پرس و جوهای نمونه را اجرا کنید یا پرس و جوهای سفارشی را برای تجزیه و تحلیل گزارش ها ایجاد کنید. ما می توانیم نتایج را به صورت گزارش یا در نمودار (تجسم) مشاهده کنیم:
معیارهای
AWS WAF گزارش می دهد metrics
به طور پیشفرض در فواصل یک دقیقهای به CloudWatch میروند و معیارها به مدت ۲ هفته حفظ میشوند.
معیارهای نظارت شده به شرح زیر است:
- AllowedRequests
- BlockedRequests
- درخواست های شمارش شده
- درخواست های پاس شده
این معیارها مجموع تعداد درخواستهای وب را ارائه میکنند که به یک قانون خاص یا Web ACL برخورد میکنند.
ایجاد آلارم های سفارشی
معمولاً ایده خوبی است که چند زنگ هشدار ایجاد کنیم تا در صورت ظاهر شدن برخی از درخواست های مسدودسازی در وب ما مطلع شویم، بنابراین ما می توانیم یک را پیکربندی کنیم CloudWatch Alarm
.
راه آسان برای ایجاد زنگ هشدار از طریق متریک AWS WAF برای است BlockeRequests
. در آنجا ما یک پیوند مستقیم برای ایجاد یک زنگ هشدار با این متریک مرتبط در صورت دسترسی داریم Graphed Metrics
و نماد مشخص شده را با رنگ قرمز انتخاب کنید:
پس از ایجاد، چیزی شبیه به آن خواهیم داشت:
برآورد هزینه ها
هزینه AWS WAF بسته به مقیاس استقرار شما، محدوده، می تواند متفاوت باشد from a few dollars
در ماه برای استقرارهای کوچک to several thousand dollars per month
برای استقرار در مقیاس بزرگ قیمت گذاری AWS WAF بر اساس تعداد درخواست های وب پردازش شده و تعداد قوانین امنیتی استفاده شده است.
مثالی از هزینه برای مثال ما (1 Web ACL با چند قانون مدیریت شده):
- 5.00 دلار برای هر وب ACL در ماه (نسبت به ساعت) * 1 وب ACL = 5.00 دلار
- 1.00 دلار به ازای هر قانون در ماه (نسبت به ساعت) * 5 قانون = 1.00 دلار
- 0.60 دلار به ازای هر میلیون درخواست پردازش شده * 1 (ما 1 میلیون درخواست را در نظر می گیریم) = 0.60 دلار
- 0.10 دلار برای هر متریک زنگ * 1 زنگ = 0.10 دلار
جمع: 6.70 دلار در ماه
اطلاعات بیشتر در مورد AWS WAF
برای اطلاعات بیشتر در مورد AWS WAF می توانید به لینک های زیر مراجعه کنید