برنامه نویسی

AWS WAF را با زیرساخت واکنشی ترکیب کنید تا مهاجمان را مسدود کنید (و در این فرآیند خراب نشوید)

AWS WAF یک سرویس امنیتی واقعا قدرتمند است که از برنامه های کاربردی اینترنت شما در برابر مهاجمان تهاجمی محافظت می کند.

WAF به طور کلی کاملا مقرون به صرفه است. با این حال، همانطور که در اولین پست وبلاگ در این مجموعه ذکر کردم، برخی از قوانین پیشرفته WAF، مانند محافظت از سرقت حساب، 1000 برابر گرانتر از قوانین اولیه هستند.

امروز، مشتاقم اعلام کنم که ماژول WAF-Ja3FingerPrint-Blacklist Terraform را منبع باز کردم. که به شما کمک می‌کند AWS WAF را با زیرساخت‌های واکنشی ترکیب کنید، بنابراین می‌توانید بیشترین استفاده را از قوانین پیشرفته AWS داشته باشید.

ماژول WAF-Ja3FingerPrint-Blacklist Terraform چگونه کار می کند؟

ایده اصلی پشت ماژول این است که تشخیص دهد که یک قانون گران قیمت WAF، مانند قانون ATP، مکرراً یک مهاجم را مسدود کرده است. در صورت وجود، ما لاگ های AWS WAF را تجزیه و تحلیل می کنیم تا Ja3FingerPrint درخواست های مسدود شده را استخراج کنیم.

نمودار معماری راه حل

سپس Ja3FingerPrint را به یک گروه قانون WAF اضافه می کنیم، که به عنوان یک لیست سیاه/بلاک عمل می کند و می توانید آن را قبل از قوانین گران قیمت به WAF ACL خود اضافه کنید تا ترافیک را در اختیار بگیرد.

هنگامی که Ja3FingerPrint به لیست سیاه اضافه می شود، ترافیک را اشغال می کند

وقتی ترافیک آنها به طور سیستماتیک مسدود می شود، مهاجمان اغلب پس از مدت کوتاهی حمله را متوقف می کنند، زیرا جعل درخواست های HTTP از طریق TLS برای آنها نیز بسیار گران است!

کل فرآیند کاملاً بدون سرور است و از طریق یک ماشین حالت توابع مرحله ای و دو عملکرد لامبدا هماهنگ شده است.

صفحه کار توابع مرحله

Ja3FingerPrint چیست؟

همانطور که اسناد AWS توضیح می دهد:

اثر انگشت JA3 یک هش 32 کاراکتری است که از TLS Client Hello یک درخواست دریافتی به دست آمده است. این اثر انگشت به عنوان یک شناسه منحصر به فرد برای پیکربندی TLS مشتری عمل می کند

حتی اگر حمله از چندین آدرس IP باشد (که در مورد حملات DDoS صدق می‌کند، یا زمانی که مهاجم از این استراتژی برای اجتناب از قوانین مبتنی بر نرخ استفاده می‌کند)، اگر از یک پشته فنی استفاده کنند، درخواست‌ها به طور مداوم دارای Ja3FingerPrint خواهند بود.

یکی مهم هشدار: Ja3FingerPrint به اندازه کافی خاص نیست که مطمئن باشیم تنها 1 کاربر مسدود می شود. به همین دلیل است که ماژول بلوک را فقط برای مدت کوتاهی، در کسری از ترافیک برچسب‌گذاری شده اعمال می‌کند و تنها اثر انگشت‌هایی را که قبلاً چندین بار مطابقت داده شده‌اند، مسدود می‌کند.

چقدر صرفه جویی می کند؟ و هزینه آن چقدر است؟

هزینه ناچیز است! ماشین حالت توابع Step 6 حالت انتقال را انجام می دهد. لامبداها 700 و 1600 میلی‌ثانیه اجرا می‌شوند، بنابراین اگر به سطح رایگان برسید، مسدود کردن یک حمله 0.0035 دلار هزینه دارد.

در نمودار متریک CloudWatch بالا، قانون ATP هر 2 دقیقه یک دلار هزینه دارد (~500 درخواست در دقیقه * 1/1000 درخواست). هنگامی که WAF-Ja3FingerPrint-Blacklist روشن است، شما فقط باید این تلاش را برای چند دقیقه (تا زمانی که لاگ های WAF وارد و در دسترس قرار گیرند) قبل از شروع لیست بلاک ادامه دهید!

با پیاده‌سازی زیرساخت‌های واکنش‌گرا، یعنی پیکربندی مجدد پویای Rule Group بر اساس تحقیقات قانونی ترافیک واقعی، لازم نیست دعا کنید که مهاجم قبل از اتمام بودجه‌تان، درخواست‌ها را روی برنامه شما ارسال نکند. در عوض، پاسخ خود را به حملات به روشی مقرون به صرفه افزایش می دهید!

امیدوارم این به شما کمک کند برنامه های خود را ایمن نگه دارید!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا