WAF فستلی حالا داخل لودبالانسر گوگل کلاد
خلاصهٔ کاملتر
این مقالهٔ فستلی یه سؤال ساده رو مطرح میکنه: چی میشه اگه خود لودبالانسر بتونه جلوی حمله رو بگیره، قبل از اینکه اصلاً درخواست به اپلیکیشن برسه؟ به گفتهٔ نویسنده، ترکیب Google Cloud Service Extensions با WAF نسلجدید فستلی دقیقاً همینو ممکن میکنه؛ یعنی بازرسی لحظهای ترافیک همون داخل مسیر لودبالانسر انجام میشه، بدون اینکه از کارایی کم بشه.
service extensions گوگل دو راه برای اضافهکردن منطق دلخواه میده: plugin و callout. اینجا از حالت callout استفاده میشه که به لودبالانسر اجازه میده موقع پردازش داده، به یه سرویس بیرونی درخواست gRPC بزنه. WAF فستلی هم میتونه بهعنوان یه سرور gRPC عمومی رو ماشینهای خود کاربر، رو پادهای GKE، یا حتی محیطهای on-premise اجرا بشه.
قلب این یکپارچگی، پروتکل پردازش بیرونی انوی یعنی ExtProc روی gRPC هست. با این پروتکل، WAF میتونه سر چند مرحلهٔ کلیدی ترافیک رو بررسی کنه: هدرهای درخواست (REQUEST_HEADERS) رو در برابر threat intelligence چک میکنه، بدنهٔ درخواست (REQUEST_BODY) رو برای محتوای مخرب بهصورت استریم بازرسی میکنه، و هدرهای پاسخ (RESPONSE_HEADERS) رو هم برای نشت داده زیر نظر میگیره.
نویسنده یه سناریوی واقعی رو مثال میزنه: یه پلتفرم فروشگاهی رو GKE که چند منطقهای کار میکنه و ثانیهای ۱۰٬۰۰۰ درخواست میگیره. چالش اینه که جلوی حملاتی مثل credential stuffing، تزریق SQL و ترافیک بات گرفته بشه ولی زمان پاسخ هم زیر ۲۰۰ میلیثانیه بمونه. راهحل اینه که WAF بهشکل یه callback امنیتی درست تو سطح لودبالانسر تصمیم بگیره.
نکتهٔ مهم معماری اینه که چون تصمیم امنیتی همون سطح لودبالانسر گرفته میشه، تهدید قبل از رسیدن به بکاند بلاک میشه و همزمان با زیرساخت GKE موجود مقیاس میگیره. فستلی همچنین یه حالت fail-open پیشنهاد میده، یعنی اگه ایجنت WAF موقع نگهداری از دسترس خارج شد، ترافیک قطع نشه و دسترسپذیری سرویس حفظ بمونه. برای پیادهسازی هم یه ایمیج داکر آماده و مستندات کامل ارائه شده.
نکات کلیدی:
- WAF نسلجدید فستلی رو میشه بهعنوان یه callout gRPC مستقیم تو مسیر لودبالانسر گوگل کلاد اجرا کرد
- بازرسی رو پروتکل ExtProc انوی انجام میشه و هدر درخواست، بدنه و هدر پاسخ رو پوشش میده
- تهدید قبل از رسیدن به بکاند شناسایی و بلاک میشه، بدون افت محسوس کارایی
- WAF میتونه رو VM کاربر، پاد GKE یا محیط on-premise اجرا بشه
- حالت fail-open باعث میشه موقع نگهداری ایجنت، دسترسپذیری سرویس حفظ بمونه




