Blog 24/7
ARK. B35Parametr monitoringuBezpieczeństwo · lista 87 parametrów

Cloaking i spam SEO

ważność krytycznamierzonysposób infection

Strona pokazuje Googlebotowi inną treść niż ludziom albo ma w treści słowa spamu (leki, kasyna). Typowy skutek włamania nastawionego na pozycjonowanie cudzych stron.

Pusta blokada dla Googlebota to zabezpieczenie antybotowe, nie cloaking — dostaje osobne ustalenie bez wpływu na status.

ARK. 1

WIKI

wiedza ze źródeł zewnętrznych

Artykuł o parametrze „Cloaking i spam SEO” jest w przygotowaniu. Powstaje po kolei dla wszystkich 87 parametrów, każde twierdzenie z przypisem do źródła.

ARK. 2

STATS

wyniki z systemu · tylko liczby zbiorcze
TAB. 2.1Odczyty per strona—

Ten parametr nie zapisuje odczytu per strona — przebieg zostawia tylko ustalenia, więc liczby sprawdzonych stron i wyników „ok” system nie ma. Pojawią się po wdrożeniu zapisu przebiegów per strona per parametr.

TAB. 2.3Ustaleniaod 13.07.2026
Otwarte teraz
0stron: 0
Nowe w ostatnim dniu
113.08.2026
Otwarte od początku
2stron: 2
Zamknięte
2od początku
Mediana trwania
9 dni 22 hod wykrycia do zamknięcia
UstalenieSkutekOtwarte terazŁącznieZamknięte
Cloaking infection_cloakingprzejęcie strony022
Słowa spamowe w treści infection_seo_spamdo weryfikacji000
Blokada botów (nie incydent) bot_protection_detectedbez wpływu000
RYS. 2.2Nowe ustalenia, 30 dni
08.10.202623.10.202606.11.2026
Nowe ustalenia parametru Cloaking i spam SEO, 30 dni · wysokość słupka = liczba ustaleń dnia, warstwy od dołu: nowe ustalenia · dni bez odczytu: 30
Nowe ustalenia parametru Cloaking i spam SEO, 30 dni
Dzieńnowe ustalenia
08.10.20260 ustaleń
09.10.20260 ustaleń
10.10.20260 ustaleń
11.10.20260 ustaleń
12.10.20260 ustaleń
13.10.20260 ustaleń
14.10.20260 ustaleń
15.10.20260 ustaleń
16.10.20260 ustaleń
17.10.20260 ustaleń
18.10.20260 ustaleń
19.10.20260 ustaleń
20.10.20260 ustaleń
21.10.20260 ustaleń
22.10.20260 ustaleń
23.10.20260 ustaleń
24.10.20260 ustaleń
25.10.20260 ustaleń
26.10.20260 ustaleń
27.10.20260 ustaleń
28.10.20260 ustaleń
29.10.20260 ustaleń
30.10.20260 ustaleń
31.10.20260 ustaleń
01.11.20260 ustaleń
02.11.20260 ustaleń
03.11.20260 ustaleń
04.11.20260 ustaleń
05.11.20260 ustaleń
06.11.20260 ustaleń
TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
65sposób infection
W 30 dni
0przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
—65 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 01.10.2026

Jak ten parametr trafia do ClickUpa: wynik sondy to linia w subtasku 2. Pomiar, a usterka, którą otwiera — linia w subtasku 1. Podsumowanie (z identyfikatorem CWE i kategorią OWASP), skąd liczy się wskaźnik zagrożenia i status strony. Projekcja z bazy skanera odświeża oba subtaski co godzinę. Do 22.09 każde ustalenie dostawało własny subtask i status ze starego słownika (PODATNA, WARNING…) — te słowa zostały jeszcze w części opisów pomiaru niżej jako język wewnętrzny sond.

RYS. 3.1Droga parametru przez system: Cloaking i spam SEO
TAB. 3.1Pomiarpliki: 13
Obszar i ważnośćBezpieczeństwo · krytyczna (B35)
Workflow i częstotliwośćcreato_ping_security_v2 · P4 działa na LAB247Skaner 2.0, rytm „p4”: co 24 h (tier 1–3), co 48 h (tier 4) · Szybki skan: tylko ewidentne przejęcie widoczne z zewnątrz.creato_ping_security_v2 · P3 działa na LAB247Skaner 2.0, rytm „p3” / „bezpieczenstwo”: premium co 6 h, reszta co 24 h (tier 1–3), co 9 dni (tier 4) · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu.
Sonda i helpersposób infection · CREATO_PING/helpers/infection_check.py
Testy
  1. Gdzie chodzi: rytm p4 (dostęp i priorytet T1–T3 co 24 h, T4 co 48 h; bez priorytetu co 48 h), rytm p3 (premium co 6 h; dostęp i priorytet T1–T3 co 24 h, T4 co 9 dni; bez priorytetu co 9 dni) i badanie kohort — tura „co_to_za_strona” zestawów premium_pelny, tani_ciezki i tani_lekki, gdy sonda http dała ok. Ręcznie także zestawy premium_czujka i ecommerce.
  2. Dwa pobrania strony głównej przez wspólny bufor przebiegu (`html_fetch.BatchHtmlCache`): UA monitora i UA Googlebota, z adresu serwera monitoringu. Limit 5,0 s (TIMEOUTS["http"]), połączenie 5,0 s (TIMEOUTS["security_connect"]), do 5 przekierowań, treść do 3 MB (MAX_BODY_BYTES). Przy 403, 406, 415, 429 albo 451 UA monitora dostaje drugą próbę z nagłówkami przeglądarki — Googlebot nie.
  3. Cloaking: oba pobrania muszą dać kod < 400; strona przekierowana dla wszystkich na cudzy host jest pomijana. Sygnał = różnica długości treści > 50% albo różny tytuł.
  4. Odróżnienie od blokady antybotowej (bot_protection_detected): Googlebot dostał ≤ 512 B bez tytułu przy > 1000 B dla człowieka, albo tytuł-wyzwanie WAF (9 wzorców, np. „just a moment”, „checking your browser”), albo mniej treści przy tym samym tytule. W pozostałych przypadkach — infection_cloaking.
  5. Spam SEO: cały HTML pobrania dla człowieka małymi literami, szukane podciągi — 8 słów farmaceutycznych (viagra, cialis, kamagra…) i 10 hazardowych (online casino, slot gacor, kasyno online, zaklady bukmacherskie…). Trafienie w tytule = powaga pilna w helperze, poza tytułem — wysoka.
  6. Nieudane pobranie dla człowieka = żadna z tych reguł nie rusza; zostaje ustalenie parametru Skan infekcji nierozstrzygnięty.
Typ wyniku0–2 ustalenia: infection_cloaking albo bot_protection_detected (porównanie dwóch pobrań) oraz infection_seo_spam (słowa spamu); w dowodzie długości treści i tytuły obu pobrań albo trafione słowa
Jednostkabrak — wynik jakościowy; różnica długości treści jako ułamek (diff_ratio)
Próg i regułaCloaking: diff_ratio > 0,5 albo inny tytuł (infection_check.py:288). Blokada antybotowa: _BOT_PROTECTION_MAX_LEN = 512 B, _BOT_PROTECTION_MIN_NORMAL_LEN = 1000 B (infection_check.py:48–49). Spam: dowolne trafienie słowa z listy.
Gdzie leżą pokrętłaCREATO_PING/helpers/infection_check.py → detect_cloaking, _BOT_PROTECTION_MAX_LEN, _BOT_PROTECTION_MIN_NORMAL_LEN, _CHALLENGE_TITLESCREATO_PING/helpers/infection_check.py → SPAM_PATTERNS_PHARMA, SPAM_PATTERNS_CASINO, detect_seo_spamCREATO_PING/helpers/html_fetch.py → MAX_BODY_BYTES, GOOGLEBOT_USER_AGENTCREATO_PING/config/incident_policy.toml → [finding] infection_cloaking, infection_seo_spam, bot_protection_detected
Retencja odczytówSurowy pomiar jako NIEZMIENNY wiersz tabeli `odczyty` w bazie skanera (wejście, wyjście, dowody, sha karty sondy i helpera, commit kodu) — trigger odrzuca każdą zmianę. Okno retencji z kohorty: 90 dni premium, 30 dni reszta; poza oknem zostają odczyty z werdyktem problemu, akcją albo etykietą, bo replay reguł ich potrzebuje (`skaner/retencja.py`). Do LAB247 ten kanał nie idzie (do bazy serwisu jadą dziś tylko sprawdzenia dostępności), więc poza odczytem zostaje werdykt w tabeli `werdykty` i sprawa w tabeli `sprawy`.
Znane rozbieżności
  1. Sonda podaje się za Googlebota z adresu serwera monitoringu: kod maskujący, który sprawdza adres Google (odwrotny DNS), pokazuje jej to samo co ludziom — test łapie tylko maskowanie po samym nagłówku User-Agent.
  2. Słowa spamu szukane są wyłącznie w pobraniu dla człowieka: spam podawany tylko Googlebotowi przy podobnej długości i tym samym tytule przechodzi.
  3. Odpowiedź z kodem ≥ 400 tylko dla Googlebota (403 z WAF) kończy porównanie bez wyniku: ani cloaking, ani blokada antybotowa.
  4. Spam liczony w całym HTML, także w skryptach, komentarzach i atrybutach: legalna treść o zakładach sportowych albo „blackjack” w nazwie produktu daje ustalenie; spam w innym języku niż angielski i polski nie jest rozpoznawany.
  5. Severity niespójna: helper pilna albo wysoka dla spamu, polityka normalna.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/infection_check.py · CREATO_PING/helpers/html_fetch.py · CREATO_PING/helpers/config.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/helpers/security_testy.py · CREATO_PING/skaner/kohorty.toml · CREATO_PING/skaner/limity.toml · CREATO_PING/skaner/scenariusze/premium_pelny.toml · CREATO_PING/skaner/scenariusze/tani_ciezki.toml · CREATO_PING/skaner/scenariusze/tani_lekki.toml · CREATO_PING/config/incident_policy.toml · CREATO_PING/skaner/usterki.toml · CREATO_PING/skaner/ocena.py · odczyt 01.10.2026
TAB. 3.2Co oznacza failtypów Findingów: 3

infection_cloaking: bramka polityki otwarta (gate=true) → sprawa w skanerze → Inna treść dla Google niż dla ludzi (cloaking) — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. infection_seo_spam: bramka polityki otwarta (gate=true) → sprawa w skanerze → Słowa spamowe (apteka/kasyno) w treści — waga 5 → ocena 9–10 (czerwony), status strony „krytyczny”, dopóki sprawa jest otwarta. bot_protection_detected: bramka polityki zamknięta (gate=false) — zostaje odczyt i werdykt „bez_subtaska” w bazie skanera, sprawa nie powstaje, więc usterka „Strona odsiewa podszywające się roboty — zabezpieczenie działa poprawnie” (waga 0) nie wchodzi do wskaźnika strony. Sprawy zakłada rytm (worker, zlecenia z harmonogramu); w badaniu ta sama droga kończy się na usterce przebiegu i wskaźniku badania. Cloaking nie ma w katalogu znacznika incydentu — bywa legalną zmianą (kryterium właściciela z 30.09).

KodFindingSeverityPewnośćSkutekFinding / alarmWaga → ocenaCo zrobić
B35.01Cloakinginfection_cloakingKrytycznaEwidentneprzejęcie stronytak / takwaga 5 → ocena 9–10 (czerwony)Usuń złośliwy kod z motywu i wtyczek, sprawdź .htaccess.
B35.02Słowa spamowe w treściinfection_seo_spamŚredniaNiepewnedo weryfikacjitak / niewaga 5 → ocena 9–10 (czerwony)Wyszukaj frazy w treści; jeśli obce, strona jest przejęta.
B35.03Blokada botów (nie incydent)bot_protection_detectedNiskaPrawdopodobnie fałszywebez wpływunie / niewaga 0 — nie usterkaNic do zrobienia.
TAB. 3.3B35.01 · Cloakingwersja 1 · 01.10.2026
Kod i kluczB35.01 · infection_cloaking · w tabeli typów
Co znaczyBoty wyszukiwarek dostają inną treść niż ludzie — typowy SEO-hack.
Kiedy powstajeOba fetche strony głównej (UA monitora i UA Googlebota „Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)”) mają status < 400, final_url normalnego fetchu nie leży poza domeną, i zachodzi |len_n − len_g| / max(len_n, len_g) > 0,5 LUB różne <title>; oraz NIE jest to bot_protection, tj. nie spełnia: (g_len ≤ 512 i n_len > 1000 i brak tytułu u Googlebota), ani tytuł Googlebota to challenge (just a moment / one moment, please / attention required / access denied / 403 forbidden / please wait / verifying / checking your browser / security check) przy zwykłym tytule normalnym, ani (tytuły równe i g_len < n_len). W praktyce: Googlebot dostaje WIĘCEJ treści albo inny tytuł.Logika: detect_cloaking, infection_check.py:251–313. Długości liczone w znakach zdekodowanego HTML (len(str)). Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćKrytyczna · Ewidentne
Skutek dla stronyprzejęcie strony · zakłada Finding · alarm tak
Waga → ocenawaga 5 → ocena 9–10 (czerwony)
KlasyfikacjaCWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.006 Stage Capabilities: SEO Poisoning (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004)
Rekord OCSFfinding_info.analytic.uid = "B35.01" · analytic.name = "infection_cloaking" · finding_info.types = ["B35 Cloaking i spam SEO"]
Co zrobićUsuń złośliwy kod z motywu i wtyczek, sprawdź .htaccess.
Wersje typu
  1. v1 · 01.10.2026 — kod B35.01 nadany; wydzielony z B06 przy rozbiciu parametru (finding-codes.ts)
TAB. 3.4B35.02 · Słowa spamowe w treściwersja 1 · 01.10.2026
Kod i kluczB35.02 · infection_seo_spam · w tabeli typów
Co znaczyFrazy pharma/casino w HTML — mocny sygnał, ale możliwy fałsz przy treści legalnej.
Kiedy powstajeCały HTML (lowercase) zawiera podciąg z listy pharma (viagra, cialis, levitra, kamagra, tadalafil, sildenafil, buy pills online, online pharmacy) lub casino (online casino, poker online, blackjack, slot machine, free spins, bet365, kasyno online, ruletka online, zaklady bukmacherskie, slot gacor). Severity urgent, gdy trafienie jest w <title>, inaczej high.Listy: infection_check.py:79–88. Zwykłe dopasowanie podciągu, bez granic słów. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćŚrednia · Niepewne
Skutek dla stronydo weryfikacji · zakłada Finding · alarm nie
Waga → ocenawaga 5 → ocena 9–10 (czerwony)
KlasyfikacjaCWE: CWE-506 (Embedded Malicious Code)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.006 Stage Capabilities: SEO Poisoning (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004)
Rekord OCSFfinding_info.analytic.uid = "B35.02" · analytic.name = "infection_seo_spam" · finding_info.types = ["B35 Cloaking i spam SEO"]
Co zrobićWyszukaj frazy w treści; jeśli obce, strona jest przejęta.
Wersje typu
  1. v1 · 01.10.2026 — kod B35.02 nadany; wydzielony z B06 przy rozbiciu parametru (finding-codes.ts)
TAB. 3.5B35.03 · Blokada botów (nie incydent)wersja 1 · 01.10.2026
Kod i kluczB35.03 · bot_protection_detected · w tabeli typów
Co znaczyStrona blokuje niezweryfikowane Googleboty; to poprawna praca zabezpieczenia.
Kiedy powstajeTa sama bramka co cloaking (oba fetche < 400, final_url w domenie, diff_ratio > 0,5 lub różne tytuły), ale spełniony jeden z warunków ochrony: (a) odpowiedź Googlebota ≤ 512 znaków, normalna > 1000 znaków i brak <title> u Googlebota; (b) tytuł Googlebota zawiera frazę challenge (just a moment, one moment, please, attention required, access denied, 403 forbidden, please wait, verifying, checking your browser, security check), a normalny nie; (c) tytuły identyczne i Googlebot dostał mniej znaków niż UA monitora.Uwaga: 4xx dla Googlebota daje status 'fail' → detect_cloaking zwraca None, więc twarda blokada 403 NIE generuje tego typu — tylko odpowiedź < 400. Severity low. Wejście wspólne dla infection_*: GET {scheme}://{domena}/ (follow_redirects, max 5, cap 3 MB, timeout http 5 s, connect 5 s) z UA „CREATO_PING/1.0 (+monitoring; contact: tomek@creato.pl)”; przy 403/406/415/429/451 jedna powtórka z nagłówkami przeglądarki. Heurystyki działają tylko, gdy ten fetch ma status_code < 400 (html_fetch.py:206). Uruchamiane na poziomie p3 i p4.
Severity · pewnośćNiska · Prawdopodobnie fałszywe
Skutek dla stronybez wpływu · tylko statystyka (gate=false) · alarm nie
Waga → ocenawaga 0 — nie usterka
KlasyfikacjaOCSF 1.9.0: poza klasami Findingu
Rekord OCSFfinding_info.analytic.uid = "B35.03" · analytic.name = "bot_protection_detected" · finding_info.types = ["B35 Cloaking i spam SEO"]
Co zrobićNic do zrobienia.
Wersje typu
  1. v1 · 01.10.2026 — kod B35.03 nadany; wydzielony z B06 przy rozbiciu parametru (finding-codes.ts)
ARK. 4

LOOP

bez pętli
RYS. 4.1Pętla parametru — sześć etapów
TAB. 4.1Trafność, 30 dnialarmy · prawdziwe · fałszywe · bez rozstrzygnięcia

Trafności jeszcze nie liczymy: zamknięcie subtaska nie niesie dziś werdyktu (prawdziwy / fałszywy / nie dało się sprawdzić). Cztery liczby pojawią się, gdy każde zamknięcie dostanie werdykt — to warunek startu pętli 1.

TAB. 4.2Pętle—

Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.

Blog 24/7
05.11CISA i FBI wzywają do zabezpieczenia sterowników chłodzenia po atakach w Europietherecord.media05.11Midnight Blizzard atakowała iPhone'y i Androidy przez zainfekowane strony w Europie i USAsecurityweek.com05.11APT29 kradła dane z iPhone'ów i Androidów przez przejęte i podrobione stronytherecord.media05.11Grupa APT29 przejęła skrypt Plerdy i atakowała niezałatane iPhone'y i Androidythehackernews.com05.11Microsoft wykrył 7,3 mld wiadomości phishingowych w III kwartale 2026microsoft.com05.11DigiCert ujawnia wyciek danych klientów i skanów dokumentów tożsamościbleepingcomputer.com05.11CWPdoor podmienia serwer cwpsrv w Control Web Panel i otwiera tylne wejście do Linuksableepingcomputer.com05.11Brytyjskie NCSC ostrzega, że narzędzia AI zwiększyły liczbę wykrywanych luk zero-daythehackernews.com05.11Skaner RootEvidence sprawdza starą lukę w Cisco IOS i dodaje nagłówki Opt-Outisc.sans.edu05.11Włamanie do portalu grantowego Norad, zagrożone dane 20 614 użytkownikówhelpnetsecurity.com