Қазақша DDoS және бәсекелестердің алаяқтығы: Google Cloud Armor арқылы боттар шабуылын қалай тойтаруға және GA4-тегі қоқыс трафигін қалай тазартуға болады
Қазақстандық e-commerce-тің қатаң шынайылығы
Көз алдыңызға елестетіңіз: сіз — Қазақстандағы ірі техника интернет-дүкенінің маркетинг директорысыз. Жаңа смартфондарға ауқымды акция бастадыңыз, Google Ads-ке бюджет салдыңыз, бүкіл Қазақстанға таргет жасадыңыз. Сол кезде сиқыр басталады. Трафик тасып жатыр, жарнама кабинетіндегі CTR (Click-Through Rate) төбені тесіп барады, бірақ сатылым... сатылым нөл. Конверсия қателік шегіне дейін төмендеген. Сервер күшенеді, дерекқор қайнайды, ал касса бос.
Сіз Google Analytics 4 (GA4) ашасыз да, оғаш көріністі байқайсыз: пайдаланушылардың 90%-ы сайтқа кіреді, онда тура 2 секунд болады, бір рет скролл жасайды да, шығып кетеді. Бас тарту көрсеткіші (Bounce Rate) — 98%. География да қуантады: кенеттен сіздің жергілікті алматылық дүкеніңіз Үндістандағы ұмыт қалған бір қалашық тұрғындары, Франкфурттегі дата-орталықтар және GeoIP бойынша мүлдем табылмайтын біртүрлі IP-мекенжайлар арасында өте танымал болып кеткен.
Құттықтаймын, сіз кәдімгі «Қазақша DDoS» құрбаны болдыңыз. Бәсекелестер ұйықтап жатқан жоқ, сондықтан ең лас әдістер қолданылуда: жарнама бюджетін боттар арқылы басу (Click Fraud) және L7 DDoS-шабуылдары (қолданба деңгейіндегі шабуылдар). Олардың мақсаты — серверді «құлатып» қана қоймай, аналитикаңызды бұзу және бюджетіңізді желге ұшыру.
Шабуыл анатомиясы: Боттар тірі адамдар ретінде қалай бүркенеді
Қазіргі боттар — 2010 жылдардағы юзер-агентсіз GET / бас бетін ұрғылайтын Python-дағы ақымақ скрипттер емес. Бүгінгі ботнет — ақылды, үлестірілген желі. Олар Headless Chrome пайдаланады, User-Agent-ті қолдан жасайды, тышқан қозғалысын еліктетеді, бетті скролдайды, тіпті негізгі қорғаныстарды айналып өту үшін кездейсоқ сілтемелерді басады.
Біздің кейсте шабуыл көп деңгейлі болды:
- Жарнаманы басу (Click Fraud): Боттар Google Search-тегі хабарландыруларды басып, қызығушылықты еліктетті. Бюджет ғарыштық жылдамдықпен ұшып кетті.
- L7 DDoS (Application Layer Attack): Боттар ауыр сұраулар жасады. Олар жай ғана статиканы (Cloud CDN кэшінен берілетін) жүктеп қоймай, іздеу эндпойнттарын мақсатты түрде ұрғылады:
/search?q=iphone+15+pro+max+купить. Іздеу — бұл әрқашан дерекқорға немесе ElasticSearch-ке жасалатын ауыр сұрау. Секундына осындай 10 000 сұрау — және сіздің бэкендіңіз ұйқыға кетеді. - Аналитиканы улау (Analytics Poisoning): Боттар Javascript-ті орындағандықтан, олар GA4 пиксельдерін сәтті іске қосты. Нәтижесінде аналитикада үлкен қоқыс үйіндісі пайда болды және маркетологтар енді деректер негізінде дұрыс шешім қабылдай алмады.
№1 қорғаныс шебі: Google Cloud Armor іске қосылады
Сізге шабуыл жасалған кезде не істеу керек? Бірінші кезекте барлық күдікті IP-мекенжайларды Nginx арқылы бұғаттау ойға келеді. Бірақ шабуыл бүкіл әлем бойынша AWS, DigitalOcean және вирус жұққан MikroTik роутерлерінен 50 000 түрлі IP-ден келгенде, сіздің iptables жай ғана жыртылып кетеді.
Бұл кезде көмекке Google Cloud Armor келеді. Бұл Google-дың жаһандық Edge-желісіндегі Load Balancer алдында тұратын Enterprise-grade Web Application Firewall (WAF) және DDoS-тан қорғаныс. Яғни, қоқыс трафигі Қазақстандағы (немесе хостингіңіз орналасқан жердегі) серверіңізге жетпестен бұрын тойтарылады.
Біз Cloud Armor-да келесі ережелерді (Security Policies) орнаттық:
- Geo-blocking: Дүкен тауарларды тек Қазақстан бойынша жеткізетіндіктен, біз күдікті елдерден келетін барлық трафикті қатаң түрде (deny) кесіп тастадық, тек KZ пен сақтық үшін бірнеше көрші елдерді ғана қалдырдық. Иә, бұл дөрекі, бірақ шабуыл кезінде — таптырмас шешім.
- Rate Limiting (Throttle): Біз шектеу орнаттық: 1 минут ішінде бір IP-мекенжайдан 100 сұраудан артық емес. Егер біреу лимиттен асып кетсе, Cloud Armor 429 (Too Many Requests) қатесін беріп, бұл IP-ді автоматты түрде 60 минутқа бұғаттайды.
- WAF Rules (Preconfigured): SQL-инъекцияларға, XSS және осалдық сканерлеріне қарсы Google-дың стандартты ережелер жиынтығын қостық.
- Custom Rules (Сигнатуралар): Cloud Logging-тегі шабуыл логтарын талдай отырып, біз боттардың көпшілігі бірдей біртүрлі
Accept-Languageпайдаланғанын және белгілі бір URL мекенжайларын ұрғылағанын байқадық. Біз дәл осы паттернді түсіріп тастау үшін CEL (Common Expression Language) тілінде кастомды ереже жаздық.
# CEL тіліндегі Cloud Armor кастомды ережесінің мысалы
request.headers['user-agent'].contains('HeadlessChrome') ||
(request.headers['accept-language'] == 'en-US,en;q=0.5' && request.path.matches('/api/v1/search'))Нәтиже? Қоқыс трафигінің 99%-ы шекарада тойтарылды. Дерекқорға түсетін жүктеме қалыпты мәндерге дейін төмендеп, сервер демалды. Бірақ бір мәселе қалды: ішке кіріп кеткен ақылды боттар біздің GA4-ті әлі де бұзып жатты.
Сервер жүктемесі: Cloud Armor қосқанға дейін және кейін
Бэкендтегі RPS (Requests Per Second) және Cloud Armor бұғаттаған сұраулар саны.
№2 қорғаныс шебі: GA4 және BigQuery-дегі авгий атқораларын тазарту
Cloud Armor инфрақұрылымды сақтап қалды, бірақ аналитиканы қалай құтқарамыз? GA4 — керемет құрал, бірақ ол фронтенд жібергеннің бәрін жұта береді.
Қазақстандық компаниялардың сайттарындағы топ 10 қателік: неге сіз клиенттерден айырылып жатырсыз
Бұл жерде біз екі кезеңді тәсілді қолдандық:
1-кезең: Сүзгі ретіндегі Server-Side GTM (sGTM)
Біз sGTM туралы алдыңғы мақалаларда айтқанбыз. Оның жасырын артықшылықтарының бірі — трафикті Google Analytics-ке жібермес бұрын сүзу мүмкіндігі. Біз sGTM-ді келесі жағдайларда GA4-ке оқиғаларды (hits) жібермейтіндей етіп баптадық:
- Сұрауда Client ID жоқ (ақымақ боттарға тән).
- Пайдаланушының IP-мекенжайы қара тізімде болса (біз белгілі Tor-экзит-нодтар мен спам-боттардың тізімдерін үнемі жүктеп отырдық).
- Оқиға бір сессия үшін аномалды жоғары жиілікке ие болса.
2-кезең: BigQuery-дегі қатал SQL
Бірақ sGTM орнатылғанға дейін GA4-ке түсіп үлгерген қоқыспен не істейміз? Немесе нақты пайдаланушыларды еліктететін ақылды боттармен ше? Бұл жерде сахнаға BigQuery шығады.
GA4-тің шикі деректері күн сайын BigQuery-ге экспортталды. Біз мінез-құлық паттерндері негізінде сессияларды «фрод» деп белгілейтін SQL-сұрауын жаздық. Маркетологтар енді стандартты GA4 есептерін қарамады, олар BigQuery-дің тазартылған витринасынан деректер алатын Looker Studio-дағы дашбордты пайдаланды.
-- BigQuery-де бот-сессияларды анықтауға арналған SQL-сұрау мысалы
WITH session_stats AS (
SELECT
user_pseudo_id,
(SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id') AS session_id,
COUNT(*) AS total_events,
COUNTIF(event_name = 'page_view') AS pageviews,
MIN(event_timestamp) AS first_event,
MAX(event_timestamp) AS last_event,
-- Жалауша: сессия 3 секундтан аз созылды
TIMESTAMP_DIFF(TIMESTAMP_MICROS(MAX(event_timestamp)), TIMESTAMP_MICROS(MIN(event_timestamp)), SECOND) < 3 AS is_too_short,
-- Жалауша: тек бір бет қаралды (100% bounce)
COUNTIF(event_name = 'page_view') = 1 AS is_single_pageview
FROM
`your-project.analytics_123456789.events_*`
GROUP BY
1, 2
)
SELECT
user_pseudo_id,
session_id,
CASE
WHEN is_too_short AND is_single_pageview THEN 'Bot'
WHEN total_events > 500 THEN 'Scraper' -- Аномалды көп оқиғалар
ELSE 'Human'
END AS traffic_type
FROM
session_stats;Бұл SQL сиқыры бізге бидайды қауыздан ажыратуға мүмкіндік Үрді. Біз (адамдар арасындағы) нақты конверсияның 0.001% емес, толықтай сау 2.5% құрайтынын көрдік! Жарнама науқаны тамаша жұмыс істеген болып шықты, тек оның нәтижелері бот-трафик қабатының астында жасырылған екен.
Трафик сапасы: BigQuery арқылы аналитиканы тазарту
BigQuery-де мінез-құлық паттерндерін талдағаннан кейінгі сессияларды бөлу.
Google Ads-те скликинг үшін ақшаны қалай қайтаруға болады?
Клиенттер жиі қоятын сұрақ: "Боттар басып тастаған ақшаны қайтаруға бола ма?". Бақытымызға орай, Google Ads фродпен өзі жақсы күреседі. Оларда кликтің жарамсыз болғанын түсінсе, ақшаны теңгеріміңізге автоматты түрде қайтаратын кірістірілген алгоритмдер (Invalid Clicks) бар.
Бірақ кейде Google алгоритмдері күрделі шабуылдарды өткізіп жібереді. Мұндай жағдайда біз Cloud Armor және BigQuery-ден логтарды жүктеп алып, егжей-тегжейлі есеп (IP-мекенжайлармен, таймстамптармен және GCLID-термен) жасаймыз және оны Google-дың жеке менеджері арқылы қолдау қызметіне (Traffic Quality Team) жібереміз. Біздің кейсте осындай темірдей логтардың арқасында клиент 3000 доллардан астам жарнама бюджетін қайтара алды.
Қорытынды: Күн күркірегенше күтпеңіз
DDoS-шабуылдары және бәсекелестердің скликингі — бұл Қазақстандағы (және басқа жерлерде де) қазіргі e-commerce-тің қатаң шынайылығы. Егер сіздің бизнесіңіз сайттың тұрақтылығына және жарнаманың тиімділігіне тәуелді болса, сізге эшелондалған қорғаныс құру қажет.
- Cloud Armor — ботнеттері бар оқушылардан және брутфорсерлерден қорғаныстың бірінші шебі ретінде.
- Server-Side GTM — таза аналитикаға арналған сүзгі ретінде.
- BigQuery — аномалияларды іздеуге және деректерді тазартуға арналған ультимативті құрал ретінде.
Құрбан болмаңыз. Инфрақұрылымды дұрыс баптаңыз, ал бәсекелестеріңіз боттарға ақшаны босқа шаша берсін, бұл уақытта сіздің сату менеджерлеріңіз нақты мәмілелерді жауып жатады!

Рустам Шарафутдинов
Google Cloud архитектурасы саласындағы сарапшы және 15 жылдан астам тәжірибесі бар Senior Full-Stack әзірлеушісі. Ақауға төзімді архитектураларға, жоғары жүктемелі жобаларды оңтайландыруға және AI (Vertex AI) интеграциясына маманданған.