در این پست قرار با موضوع «استفاده از Application Security Module برای حفاظت از سرورهای مجازی در »، به بررسی جزئیات ماژول امنیت برنامهها و توضیحاتی درباره نگاه کلی به تکنولوژی WAF پیشرفته، تهیه و تنظیم افزونههای BIG-IP اضافی، مواردی که در ایجاد سیاستهای امنیتی باید در نظر گرفته شوند، و اعمال تایید سیاست امنیتی و مرور اقدامات پیشنهادی خواهیم پرداخت. با مطالب آموزشی این پست، از ابزارها و قابلیتهای مهم F5 BIG-IP برای تقویت امنیت شبکههای خود بهره مند شوید.
Web Application Firewall – WAF
در ابتدای این مطلب، به ماژول Web Application Firewall که به نام WAF نیز شناخته میشود، اشاره کردم. این ماژول به طور خاص برای مقابله با حملات وب لایه هفت طراحی شده است. همانطور که از نام پیداست، WAF، یک دیواره آتش است که به منظور حفاظت در برابر حملات لایه هفت در برنامههای HTTP یا HTTPS طراحی شده است.
این موضوع با دیواره آتش سنتی که تنها در مقابل حملات لایه شبکه تمرکز دارد، متفاوت است. با توجه به اینکه بیشتر برنامههای اینترنت از پروتکلهای HTTP و HTTPS استفاده میکنند، Web Application Firewall تلاش میکند تا در برابر حملات لایه هفت این پروتکلها محافظت کند.
حملات مختلفی بر روی وبسایتها وجود دارند، از جمله حملات SQL Injection، حملات Cross-Site Scripting، بهروزنگه نشده بودن و یا آسیبپذیریهای نرمافزارها، و حملات Server-Side Request Forgery (SSRF) که به تازگی در پست گزارش OAS Top Ten به عنوان 10 حمله رایج به برنامههای وب توضیح داده شده است.
تمامی این حملات از چند نکته بهره میبرند. یکی از این نکات، آسیبپذیریهای ذاتی در پروتکل HTTP است، که به عنوان یک نقطه ضعف به دلیل طراحی اولیه این پروتکل برای استفاده امروزی پیشبینی نشده بود. دیگر نکته این است که این حملات در واقع درونمایههای قانونی درخواستهای اچتیتیپی هستند. به عبارت دیگر، این حملات مشاهده و به عنوان پکتهای HTTP قانونی شناخته میشوند.
هدف اصلی F5 WAF این است که اطمینان حاصل شود که این حملات وب مسدود شوند و برنامههای وب شما آسیبپذیر نباشند. این دیواره آتش نه تنها در مقابل حملات رایج اینترنت محافظت میکند، بلکه قابلیتهای حفاظتی نسل بعدی را نیز دربر میگیرد، از جمله تشخیص حملات DDoS (حملات اشغالی توزیع شده) و حملات DDoS لایه هفت.
این دیواره آتش همچنین قادر به بررسی ترافیک و رفتارهای مشتری در تعامل با برنامه وب است تا ببیند آیا آنها یک ربات هستند یا خیر. از آنجایی که در دنیای امروز هزاران ربات قادر به حمله به برنامههای وب هستند، شناسایی ترافیک به عنوان یک ربات و سپس محدود کردن دسترسی آن مهم است.
با توجه به اینکه بسیاری از شرکتها اپلیکیشنهای تلفن همراه را برای تعامل با برنامههای وب خود ایجاد میکنند، این موضوع باعث مشکلاتی برای دیوارههای آتش سنتی میشود چرا که ترافیک این اپلیکیشنها از طریق مرورگر وب نمیگذرد. برای مقابله با این موضوع، F5 WAF دارای یک کیت توسعه نرمافزار ضد ربات موبایل است که قادر به بررسی ترافیک این اپلیکیشنها و تشخیص حملات رباتی است و سپس میتواند آن را مسدود کند.
همچنین، F5 Networks سرویس امنیتی مبتنی بر ابر به نام Silver Line Security را ارائه میدهد. بنابراین، اگر دیواره آتش فکر کند که ترافیک خطرناک در حال اتفاق افتادن است، میتواند این ترافیک را از طریق Silver Line به سمت آنتالیسهای اضافی هدایت کند.
همچنین، F5 WAF پشتیبانی از امنیت API را نیز دارد. به این ترتیب، نه تنها برنامه وب شما امن است بلکه فراخوانیهای API نیز با امنیت انجام می شود.
برای جلوگیری از جمعآوری اطلاعات حساس در یک فرم وب، از Data Safe استفاده میشود و اطمینان حاصل میشود که حملهکنندگان نمیتوانند اطلاعات حساس را در یک فرم وب جمعآوری کنند. علاوه بر این، اگر اطلاعات اعتباری کاربران در یک نقض اطلاعاتی آسیبپذیر شده باشند، اطلاع رسانی به کاربران صورت میگیرد.
حالا که یک تصویر خوب از کمک هایی که دیواره آتش میتواند ارائه دهد دارید، بیایید در مورد نحوه پیکربندی F5 برای حفاظت در برابر این حملات صحبت کنیم.
هرچند که میتوانید یک سیاست امنیتی ایجاد کنید که در برابر تهدیدات مورد نظر شما محافظت کند، اما قدرت واقعی ماژول Application Security Manager (ASM) در این است که ترافیک را نظارت کرده، درباره تهدیدهای مختلف یاد بگیرد و سپس به شما اطلاع دهد که چگونه سیاست امنیتی هنوز آسیبپذیر است.
مشکل اصلی امنیت این است که هرچه امنتر کنید، بسیاری اوقات استفاده از برنامه توسط ترافیک معتبر را مشکلآفرین میکند. گاهی اوقات، اگر ایمنی را بیش از حد افزایش دهید، برنامه غیرقابل استفاده میشود، زیرا ممکن است از مؤلفههای قدیمی استفاده کند که با روشهای امنیتی امروزی به درستی کار نمیکنند. F5 تمام ترافیک را نظارت میکند و به شما اطلاع میدهد که آیا حملاتی به برنامه شما اتفاق افتاده است یا خیر.
F5 دارای الگوریتمی است تا تشخیص دهد چقدر مطمئن است که حملاتی که تشخیص داده است، واقعاً حملات هستند. این الگوریتمها از مدلهای یادگیری ماشین و الگوریتمهای هوش مصنوعی برای تحلیل ترافیک و تشخیص الگوهای مشکوک استفاده میکنند. این اطلاعات تجزیه و تحلیل میشوند تا تصمیم گیری در مورد واکنشهای امنیتی صورت گیرد.
همچنین، F5 قابلیت تطبیق سیاست امنیتی را دارد، به این معنا که به طور پویا میتواند سیاستهای امنیتی را تغییر دهد و به تطبیق با تهدیدهای جدید بپردازد. این به این معناست که به طور خودکار و در زمان واقعی، سیاستهای امنیتی به روزرسانی میشوند تا در مقابل تهدیدات جدید مقاومت کنند.
با توجه به این نقاط، F5 BIG-IP به عنوان یک WAF نه تنها از لایه هفت برنامههای وب محافظت میکند، بلکه با بهرهگیری از تکنولوژیهای پیشرفته، توانایی مقابله با تهدیدات مختلف را ارتقا میبخشد.
دستور خط فرمان زیر را میتوانید در محیط F5 BIG-IP CLI برای تأیید نصب بودن ویژگیهای پیشرفته Web Application Firewall (WAF) اجرا کنید. این دستور اطلاعات مربوط به ماژولهای “waf_gc” (ماژول مربوط به یادگیری تجزیه و تحلیل ترافیک WAF)، “mod_waf” (ماژول مربوط به WAF) و “mod_datasafe” (ماژول مربوط به امنیت داده) را از فایل لایسنس F5 BIG-IP با نام “bigip.license” با استفاده از دستور “grep” استخراج میکند.
grep -e waf_gc -e mod_waf -e mod_datasafe bigip.license
Provisioning Additional BIG-IP Modules در F5 BIG-IP
در ادامه، به بررسی فرآیند اختصاص منابع برای ماژول امنیت برنامه یا به عبارتی دیگر، دیواره آتش پیشرفته (WAF) در F5 BIG-IP خواهیم پرداخت. این مراحل به شما نشان میدهد چگونه میتوانید از ماژول WAF پیشرفته جهت افزایش امنیت برنامههای وب خود استفاده کنید.
- مشاهده گزینههای امنیت: در ابتدا، میتوانید گزینههای امنیتی موجود در F5 BIG-IP را بررسی کنید. برای این منظور، به قسمت “Security” بروید و اطلاعات مربوط به خدمات ابری را بررسی کنید.
- اختصاص منابع به ماژول WAF: سپس، به بخش “System” و سپس “Resource Provisioning” بروید. در این بخش، میتوانید منابع مورد نیاز برای ماژول امنیت برنامه را اختصاص دهید. انتخاب کنید که میخواهید منابع را به ماژول WAF پیشرفته اختصاص دهید.
- تنظیمات اختصاص منابع: از طریق گزینههای موجود، میتوانید تنظیمات مربوط به اختصاص منابع را مشاهده کنید. در یک محیط آزمایشی، میتوانید این تنظیمات را با توجه به منابع موجود تنظیم کنید. F5 BIG-IP به شما اطلاعات دقیقی از تقسیم منابع بین ماژولهای مختلف ارائه میدهد.
- اعمال تغییرات و راهاندازی مجدد: پس از اعمال تنظیمات، تغییرات را ارسال کرده و بعد از تایید مجدد سیستم را راهاندازی کنید. این مرحله ممکن است نیاز به راهاندازی مجدد سیستم داشته باشد.
- بررسی وضعیت: پس از راهاندازی مجدد، به صفحه مدیریت دستگاه بروید و وضعیت ماژول امنیت برنامه را بررسی کنید. از این پس، گزینههای متعددی برای امنیت برنامه در دسترس خواهید داشت.
حالا که ماژول امنیت برنامه به صورت موثر فعالسازی شده است، میتوانید از ویژگیهای پیشرفته WAF برای افزایش امنیت برنامههای وب خود بهره ببریم.
ملاحظات در ایجاد سیاستهای امنیتی در F5 BIG-IP
این مطالب به شما راهنمایی میکند تا در ایجاد سیاستهای امنیتی خود تعادلی مناسب میان امنیت و کارایی برنامهها داشته باشید.
هنگام تدوین سیاستهای امنیتی در F5 BIG-IP، هدف اصلی این است که امنیت برنامهها را تضمین کنیم، اما در عین حال از تولید خطاهای غیرضروری (false positives) بپرهیزیم. در اینجا به بررسی موارد مهمی میپردازیم که در ایجاد سیاستهای امنیتی در F5 مد نظر قرار میگیرند.
1. حالت اجرای سیاست (Enforcement Mode):
- Blocking (مسدود کننده): در این حالت، سیاست امنیتی فوراً تهدیدات را مسدود میکند.
- Transparent (شفاف): در این حالت، سیاست امنیتی تنها مانیتورینگ ترافیک را انجام میدهد و هیچ تداخلی با آن ایجاد نمیکند.
2. حالت یادگیری در تدوین سیاست (Policy Building Learning Mode):
- Manual (دستی): در این حالت، یادگیری تهدیدات توسط مدیر انجام میشود و اقدامات امنیتی به صورت دستی اعمال میشوند.
- Automatic (خودکار): در این حالت، F5 به صورت خودکار تشخیص میدهد که چه تهدیداتی رخ دادهاند و اقدامات امنیتی نیز به صورت خودکار اعمال میشوند.
الگوهای سیاست:
- الگوی راهاندازی سریع (Rapid Deployment):
- هدف: ایجاد امنیت ضروری با تعداد کمی از false positives؛ نیاز به تنظیم کمتری دارد.
- حالت اجرایی: شفاف
- حالت یادگیری در تدوین سیاست: دستی
- الگوی اساسی (Fundamental):
- هدف: ایجاد امنیت بهتر، اما ممکن است نیاز به تنظیم بیشتری داشته باشد.
- حالت اجرایی: مسدود کننده
- حالت یادگیری در تدوین سیاست: خودکار
- الگوی جامع (Comprehensive):
- هدف: حداکثر امنیت با فعالسازی تمام ویژگیها؛ نیاز به زمان بیشتری برای تنظیم دارد.
- حالت اجرایی: مسدود کننده
- حالت یادگیری در تدوین سیاست: خودکار
انتخاب تمپلیت مناسب: F5 تمپلیتهای مختلفی برای ایجاد سیاست امنیتی فراهم کرده است. از تمپلیت راهاندازی سریع برای مبتدیان گرفته تا سیاست امنیتی کامل با پشتیبانی از شناسایی و اصلاح تهدیدات. انتخاب تمپلیت مناسب بر اساس نیازهای شما و ویژگیهای برنامههای خود مهم است.
سوالات مهم:
- چقدر سیاست را محدود میخواهید؟ هر چه سختتر باشد، احتمال وقوع false positives بیشتر میشود.
- آیا نیاز به یک سیاست کلی برای تمام برنامههای خود دارید یا برای هر برنامه سیاست جداگانه میخواهید؟
- چقدر ترافیک هر ویژوال سرور دریافت میکند؟
- آیا برنامههای شما پیچیده هستند؟
تعیین سیاستهای امنیتی در F5 BIG-IP نیازمند توجه به مسائل مختلفی است. تعادل بین امنیت، کارایی و پیچیدگی سیاستها امری حیاتی است. این مقاله به شما کمک میکند تا در ایجاد سیاستهای امنیتی خود تصمیمات مناسبی بگیرید و از قابلیتهای امنیتی قدرتمند F5 BIG-IP به بهترین شکل استفاده کنید.
پیکربندی یک Fundamental Security Policy در F5 BIG-IP
این سیاست امنیتی به شما کمک میکند تا برنامههای وب خود را از تهدیدات مختلف محافظت کرده و از آسیبپذیریهای ممکن جلوگیری نمایید.
1. ورود به سرور وب آسیبپذیر: در ویدیوی ابتدایی، وارد سرور وب آسیبپذیر میشویم و از نام کاربری و گذرواژه پیشفرض “admin” و “password” برای ورود استفاده میشود.
2. تنظیمات اولیه: در این مرحله، سطح امنیت برنامه وب به حالت “پایین” تنظیم شده است، که نشاندهنده نبود هیچ اقدام امنیتی موثری است. این باعث میشود که برنامه وب به تهدیدات گوناگون آسیبپذیر باشد.
3. حمله SQL Injection: یک حمله SQL Injection به سرعت اجرا میشود تا نشان دهد چگونه یک حمله ساده میتواند اطلاعات کاربران را از پایگاه داده بازیابی کند.
4. آموزش پیکربندی سیاست امنیتی در F5 BIG-IP:
- ورود به محیط مدیریت F5 BIG-IP و انتخاب گزینه Security.
- انتخاب گزینه Application Security و ایجاد یک سیاست جدید.
- تنظیم نام سیاست به عنوان “Default Security Policy” و انتخاب الگوی “Fundamental” برای سیاست.
- مشخص کردن تنظیمات عمومی اولیه و مشخص کردن حالت اجرایی (Blocking) و حالت یادگیری (Automatic).
- اعمال تنظیمات دیگر مانند زمان یادگیری و دقت امضاهای امنیتی.
- ذخیره تنظیمات و اعمال سیاست به صورت اتوماتیک بر روی ویژوال سرور مشخص شده.
حالا در ویدیو زیر خیلی ساده و مختصر یک دمو تست SQL Injection در ابزار DVWA را نمایش میدیم که پنل نمایش داده شده مشکل امنیتی داره و سپس روش کانفیگ F5 را نمایش می دهیم که چطور میتونیم با این که کد ما مشکل امنیتی SQL Injection دارد ولی میتواند F5 آن را تشخصی دهد.
حالا که در ویدیو بالا روش کانفیگ برای شناسایی این باگ را نمایش دادیم میتونید در ویدیو پایین مشاهده کنید که با این که دموی ما هنوز مشکل SQL Injection دارد ولی خود F5 جلو آن را می گیرد و همچنین لاگ آن را ثبت می کند.