دیوار آتش وب | WAF
دیواره آتش وب یا WAF ابر آروان با استفاده از قوانین Regex و بر اساس روش Anomaly Scoring درخواستهای مخرب را مسدود میکند. روش Anomaly Scoring را میتوان راهی با دقت بالا برای شناسایی حملات معرفی کرد. در این روش به هر قانون، امتیازی اختصاص پیدا میکند. به هنگام تطابق چند قانون با یک درخواست، امتیاز قوانین مطابقتیافته با هم جمع میشوند و با مقدار حد آستانهی تعیینشده برای دیواره آتش وب (میزان حساسیت) مقایسه میشود. اگر امتیاز قوانین مطابقت یافته با آن درخواست، مساوی یا بیشتر از میزان حساسیت مشخصشده برای WAF باشد، آن درخواست مسدود خواهد شد.
در این راهنما به شیوهی تنظیمات و پیکربندی WAF ابر آروان میپردازیم.
پیکربندی و تنظیمات WAF در پنل ابر آروان
برای انجام تنظیمات WAF در پنل کاربری ابر آروان، به بخش CDN، سپس «دیواره آتش وب (WAF)» بروید.
در بخش تنظیمات عمومی WAF، شما میتوانید WAF خود را روی یکی از سه حالت تعیینشده در بخش «دیواره آتش وب» قرار دهید.
-
با فعال کردن دکمهی خاموش، سرویس WAF برای وبسایت شما غیرفعال میشود.
خاموش کردن WAF به کمک API:
curl --location --request PATCH https://napi.arvancloud.ir/cdn/4.0/domains/example.com/waf'' \
--header 'authority: napi.arvancloud.ir' \
--header 'accept: application/json, text/plain, */*' \
--header 'authorization: API KEY 1 2 3 4' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data-raw '{"mode":"off"}' -
اگر در این صفحه، WAF در حالت شناسایی قرار داده شود، دیواره آتش وب فقط گزارش (Log) ثبت میکند. دقت داشته باشید که در این حالت هیچ درخواست ورودی بلاک نمیشود.
فعال کردن وضعیت شناسایی با API:
curl --location --request PATCH 'https://napi.arvancloud.ir/cdn/4.0/domains/example.com/waf' \
--header 'authority: napi.arvancloud.ir' \
--header 'accept: application/json, text/plain, */*' \
--header 'authorization: API KEY 1 2 3 4' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data-raw '{"mode":"detect"}' -
فعالسازی گزینهی روشن، سرویس WAF را برای وبسایت شما فعال میکند و باعث میشود درخواستهای مشکوک بلاک شوند.
روشن کردن WAF به کمک API:
curl --location --request PATCH 'https://napi.arvancloud.ir/cdn/4.0/domains/example.com/waf' \
--header 'authority: napi.arvancloud.ir' \
--header 'accept: application/json, text/plain, */*' \
--header 'authorization: API KEY 1 2 3 4' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data-raw '{"mode":"protect"}'
پیشنهاد ما این است که در ابتدای راهاندازی دیواره آتش وب برای یک بازهی زمانی کوتاه، WAF خود را روی حالت شناسایی قرار دهید. با این کار، میتوان حملات واقعی را شناسایی کرد.
پس از گذشت این بازهی زمانی مشخص، به قسمت «امنیت»، «تحلیل حملات WAF»، سپس بخش «جزییات حملات انجام شده» بروید. در این بخش با کلیک روی هر یک از حملات، میتوانید از جزییات حمله و کد خطای مربوط به آن آگاه شوید.
براساس این گزارشها م یتوان False Positiveها را شناسایی کرد. منظور از False Positiveها، درخواستهای سالمی هستند که از جانب WAF بهاشتباه حمله شناسایی میشوند. با مشخص شدن False Positiveها میتوان مشخص کرد که چه قوانینی باید غیرفعال شوند. شما میتوانید از خروجی گزارش حاصل، شمارهی ID را بردارید، سپس با جستوجوی آن در بستهی امنیتی مربوطه، قانون را بیابید و غیرفعال کنید.
خاموش کردن یک قانون مشخص با API: برای این کار باید پارامتر "disabled_rules" را با شماره قوانین مورد نظر ارسال کنید.
curl --location --request PATCH 'https://napi.arvancloud.ir/cdn/4.0/domains/example.com/waf/packages/default?revelio' \
--header 'authority: napi.arvancloud.ir' \
--header 'accept: application/json, text/plain, */*' \
--header 'authorization: API KEY 1 2 3 4' \
--header 'cache-control: no-cache' \
--header 'content-type: application/json' \
--data-raw '{"disabled_rules":["21001","21003","21006","21009","40026","99001","21002"]}'
پس از اتمام مدتزمان مشخص برای قرار گرفتن WAF در حالت شناسایی، به بخش تنظیمات WAF بروید، گزینهی روشن را فعال کنید و مطابق با آنچه از بخش گزارش دریافت کردهاید، قوانین را تنظیم و میزان حساسیت را مشخص کنید.
توجه داشته باشید هنگام فعال بودن WAF بیشترین حجم Body درخواستها ۵۲۴۲۸۸ بایت خواهد بود.
هرچه میزان حساسیت، عدد بیشتری تعیین شود، یعنی تعداد قوانینی که باید با درخواست ورودی مطابقت پیدا کنند بیشتر و بهمعنای حساسیت پایینتر WAF است. به بیان دیگر، رابطهی عدد مشخصشده برای حساسیت و قدرت عملکرد WAF، رابطهای معکوس است. پس عدد کمتر بهمعنای حساسیت بیشتر WAF خواهد بود.
پکیجها
با استفاده از پکیجهای امنیتی، میتوانید بسته به نیاز خود تنظیمات از پیش آماده شده را به WAF اضافه کنید. هرکدام از پکیجهای امنیتی، تنظیمات مختلفی را در خود دارند که با فعالسازی پکیج، این تنظیمات روی دیواره آتش وب شما اعمال شده و در بررسی درخواستها مورد استفاده قرار میگیرد.
در حال حاضر، در کنار پکیج پیشفرض WAF ابر آروان، دو پکیج استاندارد CRS و Comodo نیز از بخش پکیجها در پنل کاربری WAF قابل فعالسازی و استفاده هستند.
پکیج WAF ابر آروان
این پکیج، بستهی قوانین پیشفرض ابر آروان برای استفاده با قابلیت WAF است. در بخش زیر به معرفی امکانات و قوانین این پکیج میپردازیم.
-
اجرای کدهای مخرب XSS (کد 42xxx) این حمله نتیجهی اجرای ورودی داده شده (کد مخرب) به وسیلهی مرورگر، بدون اعتبارسنجی مناسب است. در این حمله، مهاجم با روشهای مختلفی همچون ارسال یک URL با استفاده از ایمیل، بارگذاری در بخشهای آسیبپذیر وبسایت و ... اسکریپت مخرب خود را در مرورگر کاربر دیگری اجرا میکند و با این روش کنترل مرورگر کاربر قربانی را در اختیار میگیرد.
-
حملات SQL Injection (کد 41xxx) در این حمله مهاجم یک SQL Query ناخواسته را از راه اطلاعات ورودی یک فرم یا پارامترهای یک URL، از سمت کاربر بهسمت سرور ارسال میکند. در این حمله احتمال ایجاد، ویرایش، حذف و خواندن اطلاعات محرمانه، تغییر اطلاعات دیتابیس یا ایجاد دسترسیهای غیرمجاز برای یک کاربر خاص (همچون گرفتن دسترسی Admin از سوی مهاجم) وجود دارد.
-
درخواستهای خلاف قاعده (کد 21xxx) در این دسته، مهاجم پروتکل HTTP را مورد حمله قرار میدهد و WAF با بررسی هدرهای HTTP مواردی همچون معتبر بودن هدر، وجود مقداری معتبر در هدر و... را اعتبارسنجی میکند و بر این اساس هدرهای HTTP درست را از نادرست تشخیص میدهد.
-
باتهای مخرب (کد 35xxx) در این بخش، WAF از فعالیت باتهای مخرب جلوگیری میکند. باتهای عادی همگی از قوانین WAF پیروی میکنند و بهوسیلهی آن بلاک نمیشوند. تنها آن دسته از باتها که سعی در نقض قوانین WAF دارند و بهدنبال استفاده از آسیبپذیریهای مختلف در اپلیکیشنها هستند، بهوسیلهی WAF بلاک میشوند.
-
جلوگیری از درخواستهای خارج از استاندارد HTTP (کد 20xxx) در این حالت، WAF عملکرد درست پروتکل HTTP را بررسی میکند؛ مانند بررسی اینکه متدهای POST/GET دارای Body باشند یا درخواست POST شامل هدر Content Length باشد.
-
حملات عمومی (کد 40xxx) در این دسته از حملات، مهاجم از فقدان اعتبارسنجی دادههای ورودی/خروجی استفاده و کد مخرب خود را به برنامه تزریق میکند. با تفسیر این کد بهکمک برنامه، مهاجم میتواند اعمالی همچون سرقت اطلاعات یا bypass فرآیند احراز هویت و ... را انجام دهد. از مشهورترین این حملات میتوان به (Remote File Inclusion (RFI و (Local File Inclusion (LFI اشاره کرد.
پکیج CRS
این بسته شامل قوانین عمومی برای تشخیص حملات است و امکان استفاده از آن روی قابلیت WAF ابر آروان وجود دارد. با فعالسازی دیواره آتش وب و انتخاب پکیج CRS روی آن در پنل کاربری، میتوانید از وبسایت خود در برابر حملات مختلفی مخافظت کنید. جلوگیری از حملات رایج زیر بخشی از پکیج CRS را شامل میشود.
پکیج Comodo
این پکیج نیز در کنار پکیجهای دیگر از طریق بخش مربوطه در پنل کاربری ابر آروان قابل انتخاب و اعمال است. قوانین پکیج Comodo شامل Rulesetهای اصلی Intrusion Protection و Advanced Filtering میشود.