← بازگشت به وبلاگ

WAF مشتریان موبایل را به دلیل CGNAT مسدود می‌کند: ۶ بررسی و نحوه رفع مسدودیت‌ها

بررسی می‌کنیم که چرا WAF به طور گسترده کاربران موبایل را به دلیل CGNAT مسدود می‌کند و 6 روش برای شناسایی و اصلاح این مشکل بدون از دست دادن مشتریان واقعی ارائه می‌دهیم.

📅۱۸ مهر ۱۴۰۵

اگر نرخ تبدیل ترافیک موبایل به طور ناگهانی کاهش یافته و فرم ثبت‌نام یا پرداخت برای مشتریان واقعی خطای 403 را نشان می‌دهد — احتمالاً مقصر، هکر نیست، بلکه WAF خود شماست. فایروال هزاران درخواست از یک آدرس IP اپراتور موبایل را مشاهده کرده و آن را به عنوان DDoS یا brute force شناسایی می‌کند. در واقع، پشت این IP صدها یا هزاران نفر عادی نشسته‌اند — این فناوری CGNAT است. بررسی می‌کنیم که چگونه این مشکل را شناسایی و حل کنیم، بدون اینکه در برابر حملات واقعی آسیب‌پذیر شویم.

CGNAT چیست و چرا مشکل ایجاد می‌کند

CGNAT (Carrier-Grade NAT) فناوری است که اپراتورهای موبایل به دلیل کمبود آدرس‌های IPv4 استفاده می‌کنند. به جای اینکه به هر مشترک یک IP عمومی منحصر به فرد بدهند، اپراتور هزاران کاربر را پشت یک یا چند آدرس مشترک پنهان می‌کند. برای وب‌سایت، این به این صورت به نظر می‌رسد: ترافیک از یک IP به طور همزمان از صدها نفر مختلف می‌آید — دستگاه‌های مختلف، مرورگرهای مختلف، رفتارهای مختلف، اما یک آدرس خارجی یکسان.

برای یک سرور وب عادی این مشکل نیست — او فقط درخواست‌ها را پردازش می‌کند. اما برای سیستم‌های امنیتی که درخواست‌ها را در یک واحد زمان از یک IP شمارش می‌کنند، این به عنوان یک ناهنجاری به نظر می‌رسد. تصور کنید: در یک دقیقه از یک آدرس 200 درخواست به صفحه ورود می‌آید. برای WAF این یک الگوی کلاسیک brute force یا scraping است. در واقع، ممکن است 150 مشتری واقعی از یک اپراتور موبایل در منطقه شما باشند که به طور همزمان پس از ارسال تبلیغات یا انتشار در شبکه‌های اجتماعی به سایت مراجعه کرده‌اند.

این مشکل به ویژه در کشورهایی با تراکم بالای اینترنت موبایل به شدت نمایان می‌شود — اپراتورها تعداد زیادی از مشترکان را پشت تعداد کمی از IP های خارجی جمع می‌کنند. به همین دلیل، باید رفتار سایت را نه از IP های معمولی دیتاسنتر، بلکه به طور خاص از پروکسی‌های موبایل تست کنید که واقعاً از زیرساخت CGNAT اپراتور عبور می‌کنند — تنها در این صورت می‌توان همان تصویری را که WAF در کاربران واقعی می‌بیند، بازتولید کرد.

چرا WAF CGNAT را تهدید می‌بیند

بیشتر راه‌حل‌های WAF — Cloudflare، AWS WAF، Imperva، ماژول‌های داخلی Nginx/ModSecurity — از rate-limiting بر اساس آدرس IP به عنوان مکانیزم پایه‌ای برای محافظت در برابر ربات‌ها و DDoS استفاده می‌کنند. منطق ساده است: اگر از یک IP بیشتر از N درخواست در T ثانیه باشد — مسدود می‌کنیم یا CAPTCHA نشان می‌دهیم. این قاعده برای حملات کلاسیک از یک دستگاه به خوبی کار می‌کند، اما در ترافیک CGNAT کاملاً خراب می‌شود.

چندین سناریو معمول وجود دارد که در آن این مشکل به وجود می‌آید:

  • Rate-limiting بر اساس IP. محدودیت "100 درخواست در دقیقه از یک IP" برای ترافیک دیتاسنتر عادی است، اما برای منطقه موبایل با یک میلیون مشترک پشت یک آدرس فاجعه‌بار است.
  • امتیازدهی رفتاری. اگر سیستم "شهرت" IP را بر اساس تاریخچه درخواست‌ها جمع‌آوری کند، یک کاربر "بد" در CGNAT می‌تواند شهرت آدرس را برای هزاران مشتری واقعی بعدی خراب کند.
  • هیوریستیک جغرافیایی. WAF گاهی اوقات IP را به عنوان مشکوک علامت‌گذاری می‌کند اگر افزایش ناگهانی فعالیتی را ببیند که برای یک کاربر "عادی" غیرمعمول است — و رفتار آدرس CGNAT دقیقاً اینگونه است: بارهای اوج در ساعات فعالیت مخاطب.
  • مسدود کردن بر اساس ASN اپراتور. برخی از قوانین WAF کل دامنه‌های ASN اپراتورهای موبایل را مسدود می‌کنند اگر قبلاً از این دامنه‌ها حملاتی صورت گرفته باشد — تمامی مشتریان اپراتور در کشور تحت تأثیر قرار می‌گیرند.

نتیجه: هرچه WAF "از جعبه" سخت‌تر تنظیم شده باشد، احتمال بیشتری وجود دارد که او نه ربات‌ها، بلکه مخاطبان واقعی موبایل شما را مسدود کند — به ویژه اگر کسب‌وکار شما به کشورهای با اینترنت موبایل پیشرفته و سهم بالای ترافیک CGNAT متمرکز باشد.

این مشکل چه تهدیدی برای کسب‌وکار دارد: مشتریان و پول از دست رفته

مشکل مسدودسازی CGNAT به ندرت در تجزیه و تحلیل استاندارد قابل مشاهده است. Google Analytics و Yandex.Metrica به سادگی افرادی را که خطای 403 را در سطح WAF دریافت کرده‌اند ثبت نمی‌کنند — این بازدیدها اغلب حتی به شمارنده نمی‌رسند. در نتیجه، بازاریاب کاهش نرخ تبدیل را می‌بیند، اما دلیل آن را نمی‌فهمد و شروع به بهینه‌سازی خلاقیت‌ها و صفحات فرود می‌کند، در حالی که مشکل در زیرساخت است.

عواقب واقعی برای بخش‌های مختلف کسب‌وکار:

  • E-commerce. خریدار از اینترنت موبایل نمی‌تواند فرآیند سفارش را به پایان برساند — فرم پرداخت خطا می‌دهد، سبد خرید گم می‌شود. خسارات مستقیم در درآمد، به ویژه پس از راه‌اندازی تبلیغات در TikTok Ads یا Facebook Ads که ترافیک اصلی آن موبایل است، قابل توجه است.
  • SaaS و ثبت‌نام‌ها. کاربر سعی می‌کند ثبت‌نام کند یا وارد حساب کاربری خود شود، در هر مرحله CAPTCHA دریافت می‌کند یا مسدود می‌شود — به رقیب می‌رود.
  • محتوا و تبلیغات. ترافیک تبلیغاتی از دستگاه‌های موبایل به طور گسترده‌ای در صفحه فرود "قطع می‌شود"، بودجه تبلیغاتی صرف می‌شود، اما تبدیل وجود ندارد — الگوریتم‌های پلتفرم‌های تبلیغاتی این را به عنوان کیفیت پایین مخاطب تفسیر کرده و قیمت کلیک را افزایش می‌دهند.
  • خدمات پشتیبانی. تعداد درخواست‌ها "سایت شما باز نمی‌شود"، "نمی‌توانم ثبت‌نام کنم" افزایش می‌یابد — در حالی که پشتیبانی فنی مشکل را نمی‌بیند، زیرا خودشان از دسکتاپ از طریق Wi-Fi اداری بدون CGNAT وارد می‌شوند.

بدترین قسمت این است که چنین مسدودسازی‌ها به سختی پس از وقوع قابل تشخیص هستند، زیرا لاگ WAF یک IP "مشکوک" با تعداد زیادی درخواست را نشان می‌دهد و مدیر در این مورد تأیید درستی مسدودسازی را می‌بیند، نه یک هشدار کاذب.

6 بررسی با IP های موبایل برای شناسایی مشکل

برای فهمیدن اینکه آیا WAF شما مشتریان واقعی موبایل را مسدود می‌کند یا نه، باید شرایط واقعی CGNAT را بازتولید کنید — یعنی سایت را با IP های واقعی موبایل از اپراتورهای مختلف و مناطق مختلف تست کنید. در اینجا یک چک‌لیست عملی از 6 بررسی آورده شده است.

بررسی 1: ورود انبوه از یک IP موبایل

چندین جلسه موازی را از طریق یک IP موبایل یکسان تنظیم کنید (این برای پروکسی‌های CGNAT اپراتور طبیعی است) و 50-100 عمل معمولی — باز کردن صفحات، افزودن به سبد خرید، جابجایی بین بخش‌ها — را انجام دهید. اگر پس از رسیدن به یک آستانه خاص، CAPTCHA یا 403 شروع به ظاهر شدن کرد — این اولین علامت مشکل است.

بررسی 2: تغییر User-Agent در یک IP

یک آدرس CGNAT دستگاه‌های مختلف را سرویس‌دهی می‌کند — iPhone، Android، مرورگرهای مختلف. درخواست‌هایی با رشته‌های User-Agent مختلف از طریق یک IP راه‌اندازی کنید و بررسی کنید که آیا قانون WAF "تنوع مشکوک دستگاه‌ها از یک آدرس" فعال می‌شود یا خیر.

بررسی 3: تست در فرم‌های حساس

مسیر کامل مشتری را طی کنید — ثبت‌نام، ورود، تکمیل سفارش، پرداخت — دقیقاً از طریق IP موبایل اپراتور. اغلب WAF به طور تهاجمی‌تر بر روی فرم‌هایی که ورودی داده دارند (ورود، پرداخت) تنظیم شده است، جایی که خطر brute force بالاتر است و این اولین جایی است که مشتریان واقعی از دست می‌روند.

بررسی 4: بررسی با اپراتورهای مختلف و مناطق مختلف

رفتار CGNAT در اپراتورهای مختلف و کشورهای مختلف متفاوت است — در جایی 50 مشترک پشت یک IP پنهان شده‌اند، در جایی 5000. سایت را با IP های موبایل چندین اپراتور در مناطق کلیدی برای کسب‌وکار تست کنید تا بفهمید آیا ویژگی‌های منطقه‌ای در مسدودسازی‌ها وجود دارد یا خیر.

بررسی 5: تحلیل پاسخ سرور بر اساس کدها و هدرها

نه تنها واقعیت مسدودسازی را ثبت کنید، بلکه کد HTTP دقیق و هدرهای پاسخ (به عنوان مثال، cf-mitigated: challenge در Cloudflare) را نیز ثبت کنید. این به شما کمک می‌کند بفهمید کدام مکانیزم محافظتی فعال شده است — rate-limit، شناسایی ربات یا قانون جغرافیایی.

بررسی 6: نظارت بلندمدت بر شهرت IP

تست را از یک IP موبایل یکسان در طول چند روز تکرار کنید. اگر دسترسی به مرور زمان بدون دلایل قابل مشاهده از سمت شما بدتر می‌شود — به این معنی است که سیستم امتیازدهی انبوه "شهرت" آدرس را به دلیل فعالیت سایر مشترکان در همان CGNAT خراب می‌کند و این یک مشکل سیستمی و نه یک مشکل مقطعی است.

مهم است که درک کنید:

برای چنین تست‌هایی به IP های واقعی موبایل نیاز دارید، نه آدرس‌های دیتاسنتر یا معمولی — تنها ترافیکی که از زیرساخت اپراتور عبور می‌کند، الگوی CGNAT را که WAF شما در کاربران واقعی می‌بیند، به درستی بازتولید می‌کند.

چگونه WAF را تنظیم کنیم تا مشتریان واقعی را مسدود نکند

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

مشکل راه‌حل در WAF
محدودیت سخت‌گیرانه بر اساس IP افزایش محدودیت برای ASN های شناخته شده اپراتورهای موبایل یا انتقال به محدودیت بر اساس جلسه/کوکی به جای IP خالص
امتیازدهی انبوه شهرت IP کاهش زمان "حافظه" شهرت برای دامنه‌های CGNAT، افزودن لیست سفید برای ASN های شناخته شده اپراتورها
مسدود کردن بر اساس جغرافیا/ASN به طور کامل جایگزینی مسدودسازی کامل با چالش نرم (بررسی JS) به جای 403
CAPTCHA سخت‌گیرانه در فرم‌های ورود فعال کردن CAPTCHA به صورت تطبیقی — فقط در صورت وجود نشانه‌های واقعی brute force (تلاش‌های ناموفق متعدد از یک حساب کاربری)، نه به صرف CGNAT-IP

یک عمل خوب این است که لیست خود را از دامنه‌های شناخته شده اپراتورهای موبایل در مناطق کلیدی خود نگه دارید و به آن‌ها قوانین جداگانه و ملایم‌تری نسبت به ترافیک اینترنت عادی بدهید. این نیاز به زمان برای تنظیم دارد، اما به طور چشمگیری تعداد مسدودسازی‌های کاذب را کاهش می‌دهد.

ابزارها برای تست با پروکسی‌های موبایل

برای ممیزی منظم امنیت سایت، استفاده از ترکیبی از مرورگرهای ضد شناسایی و پروکسی‌های موبایل مناسب است. مرورگرهای ضد شناسایی (Dolphin Anty، AdsPower، Multilogin، GoLogin، Octo Browser) اجازه می‌دهند پروفایل‌های ایزوله با اثر انگشت‌های مختلف دستگاه ایجاد کنید، در حالی که پروکسی‌های موبایل ترافیک واقعی CGNAT را از اپراتورها فراهم می‌کنند.

رویکرد مرحله‌ای برای تست:

  1. چندین پروفایل در مرورگر ضد شناسایی با پارامترهای مختلف دستگاه (User-Agent مختلف، وضوح صفحه، منطقه زمانی) ایجاد کنید.
  2. به هر پروفایل پروکسی‌های موبایل از منطقه و اپراتور مورد نیاز متصل کنید — این رفتار واقعی CGNAT را فراهم می‌کند.
  3. سناریوهای کلیدی کاربری را طی کنید: ثبت‌نام، ورود، افزودن به سبد خرید، پرداخت.
  4. تمام موارد CAPTCHA، 403 و سایر مسدودسازی‌ها را ثبت کنید و با تنظیمات WAF مقایسه کنید.
  5. تست را از طریق پروکسی‌های مقیم برای مقایسه تکرار کنید — این به شما کمک می‌کند بفهمید آیا مشکل خاص برای ترافیک موبایل است یا خیر.

برای تست موازی در مناطق مختلف، پروکسی‌های مقیم نیز مفید هستند پروکسی‌های مقیم — آن‌ها کمک می‌کنند تا بفهمید WAF چقدر به طور یکسان برای ترافیک خانگی عادی و CGNAT موبایل تهاجمی است. اگر قصد دارید تست‌های بارگذاری را از زیرساخت سرور بدون وابستگی به اپراتور انجام دهید، برای بررسی‌های کنترلی بدون اثر CGNAT می‌توانید پروکسی‌های دیتاسنتر متصل کنید — آن‌ها خط پایه‌ای خالص بدون اعوجاج‌های مربوط به شبکه‌های موبایل را ارائه می‌دهند.

این رویکرد جامع — IP های موبایل، مقیم و دیتاسنتر در یک تست — تصویر کاملی را ارائه می‌دهد: شما دقیقاً می‌بینید که کجا محافظت فعال می‌شود و برای کدام نوع ترافیک، نه اینکه بر اساس نشانه‌های غیرمستقیم در لاگ‌ها حدس بزنید.

سوالات متداول

آیا می‌توان دامنه‌های CGNAT را به طور کامل از قوانین WAF حذف کرد؟
توصیه نمی‌شود — این امنیت در برابر حملات واقعی که ممکن است از طریق شبکه‌های موبایل نیز انجام شود را کاهش می‌دهد. بهتر است آستانه‌ها را نرم کرده و به چالش نرم به جای مسدودسازی سخت منتقل شوید.

چند وقت یک بار باید چنین بررسی‌هایی انجام شود؟
حداقل یک بار در ماه و حتماً پس از هر تغییر در قوانین WAF یا راه‌اندازی کمپین تبلیغاتی جدید برای مخاطبان موبایل.

آیا این بر SEO تأثیر می‌گذارد؟
بله — اگر ربات‌های جستجو یا کاربران واقعی از دستگاه‌های موبایل خطای 403 دریافت کنند، این باعث افزایش نرخ پرش می‌شود و ممکن است بر معیارهای رفتاری رتبه‌بندی تأثیر منفی بگذارد.

نتیجه‌گیری

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

اگر قصد دارید به طور منظم رفتار سایت و قیف‌های تبلیغاتی را به گونه‌ای تست کنید که مشتریان واقعی موبایل آن را می‌بینند، توصیه می‌کنیم از پروکسی‌های موبایل استفاده کنید — آن‌ها ترافیک واقعی CGNAT اپراتورها را فراهم می‌کنند و به شما اجازه می‌دهند تا مسدودسازی‌های کاذب را قبل از اینکه مشتریان شما آن‌ها را پیدا کنند، شناسایی کنید.