Obce skrypty i ukryte ramki
ważność średniamierzonysposób infection
Skrypt z obcej domeny albo niewidoczny iframe w HTML strony. Sam nie dowodzi infekcji — bywa legalną integracją — więc wymaga przejrzenia.
WIKI
wiedza ze źródeł zewnętrznychArtykuł o parametrze „Obce skrypty i ukryte ramki” jest w przygotowaniu. Powstaje po kolei dla wszystkich 87 parametrów, każde twierdzenie z przypisem do źródła.
STATS
wyniki z systemu · tylko liczby zbiorczeTen 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.
- Otwarte teraz
- 0stron: 0
- Nowe w ostatnim dniu
- 121.08.2026
- Otwarte od początku
- 38stron: 34
- Zamknięte
- 38od początku
- Mediana trwania
- 4 dni 19 hod wykrycia do zamknięcia
| Ustalenie | Skutek | Otwarte teraz | Łącznie | Zamknięte |
|---|---|---|---|---|
| Obcy skrypt infection_foreign_script | do weryfikacji | 0 | 11 | 11 |
| Ukryty iframe infection_hidden_iframe | do weryfikacji | 0 | 27 | 27 |
| Dzień | nowe ustalenia |
|---|---|
| 08.10.2026 | 0 ustaleń |
| 09.10.2026 | 0 ustaleń |
| 10.10.2026 | 0 ustaleń |
| 11.10.2026 | 0 ustaleń |
| 12.10.2026 | 0 ustaleń |
| 13.10.2026 | 0 ustaleń |
| 14.10.2026 | 0 ustaleń |
| 15.10.2026 | 0 ustaleń |
| 16.10.2026 | 0 ustaleń |
| 17.10.2026 | 0 ustaleń |
| 18.10.2026 | 0 ustaleń |
| 19.10.2026 | 0 ustaleń |
| 20.10.2026 | 0 ustaleń |
| 21.10.2026 | 0 ustaleń |
| 22.10.2026 | 0 ustaleń |
| 23.10.2026 | 0 ustaleń |
| 24.10.2026 | 0 ustaleń |
| 25.10.2026 | 0 ustaleń |
| 26.10.2026 | 0 ustaleń |
| 27.10.2026 | 0 ustaleń |
| 28.10.2026 | 0 ustaleń |
| 29.10.2026 | 0 ustaleń |
| 30.10.2026 | 0 ustaleń |
| 31.10.2026 | 0 ustaleń |
| 01.11.2026 | 0 ustaleń |
| 02.11.2026 | 0 ustaleń |
| 03.11.2026 | 0 ustaleń |
| 04.11.2026 | 0 ustaleń |
| 05.11.2026 | 0 ustaleń |
| 06.11.2026 | 0 ustaleń |
- Przebiegów
- 65sposób infection
- W 30 dni
- 0przebiegów
- Ostatni
- 19.09.2026start przebiegu
- Stron w przebiegach
- —65 przebiegów bez liczby stron
CARD
karta z kodu CREATO_PING, odczyt 01.10.2026Jak 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.
| Obszar i ważność | Bezpieczeństwo · średnia (B36) |
|---|---|
| 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 helper | sposób infection · CREATO_PING/helpers/infection_check.py |
| Testy |
|
| Typ wyniku | 0–2 ustalenia: infection_foreign_script (do 5 adresów w dowodzie) i infection_hidden_iframe (liczba ramek) |
| Jednostka | brak — wynik jakościowy; liczba obcych skryptów i ukrytych ramek w szczegółach |
| Próg i reguła | Reguła: co najmniej jeden obcy skrypt albo jedna ukryta ramka = ustalenie (helper: powaga wysoka; polityka: niska, „do weryfikacji”). |
| Gdzie leżą pokrętła | CREATO_PING/helpers/infection_check.py → SCRIPT_WHITELIST, _is_whitelisted_script, detect_foreign_scriptsCREATO_PING/helpers/infection_check.py → _IFRAME, _HIDDEN_PATTERN, detect_hidden_iframesCREATO_PING/config/incident_policy.toml → [finding] infection_foreign_script, infection_hidden_iframe |
| Retencja odczytów | Surowy 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 |
|
| Karta przepisana z | CREATO_PING/helpers/infection_check.py · CREATO_PING/helpers/html_fetch.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/helpers/security_testy.py · CREATO_PING/skaner/kohorty.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 |
infection_foreign_script: bramka polityki otwarta (gate=true) → sprawa w skanerze → Obcy skrypt spoza listy znanych integracji — waga 3 → ocena 5–6 (żółty), status strony „sredni”, dopóki sprawa jest otwarta. infection_hidden_iframe: bramka polityki otwarta (gate=true) → sprawa w skanerze → Ukryta ramka w treści strony — waga 3 → ocena 5–6 (żółty), status strony „sredni”, dopóki sprawa jest otwarta. Waga 3 przy powadze niskiej w polityce ma w katalogu uzasadnienie: to zdarzenie do rozstrzygnięcia, nie dowód infekcji. Sprawy zakłada rytm; w badaniu droga kończy się na usterce przebiegu i wskaźniku badania.
| Kod | Finding | Severity | Pewność | Skutek | Finding / alarm | Waga → ocena | Co zrobić |
|---|---|---|---|---|---|---|---|
| B36.01 | Obcy skryptinfection_foreign_script | Niska | Niepewne | do weryfikacji | tak / nie | waga 3 → ocena 5–6 (żółty) | Potwierdź, że skrypt jest znany. Jeśli nie, usuń go. |
| B36.02 | Ukryty iframeinfection_hidden_iframe | Niska | Niepewne | do weryfikacji | tak / nie | waga 3 → ocena 5–6 (żółty) | Sprawdź źródło iframe'a w kodzie strony. |
| Kod i klucz | B36.01 · infection_foreign_script · w tabeli typów |
|---|---|
| Co znaczy | Skrypt spoza białej listy; zwykle legalna integracja (PayU, Klaviyo, chat). |
| Kiedy powstaje | W HTML jest co najmniej jeden <script ... src="..."> z adresem absolutnym (zaczyna się od //, http:// lub https://), którego host nie jest domeną strony ani jej subdomeną i nie jest równy ani subdomeną żadnej pozycji SCRIPT_WHITELIST (m.in. gstatic.com, googleapis.com, google.com, googletagmanager.com, cloudflare.com, jsdelivr.net, unpkg.com, jquery.com, wp.com, facebook.net, hotjar.com, clarity.ms, payu.com, przelewy24.pl, klaviyo.com, elfsight.com, cookiebot.com, cookieyes.com, tawk.to, smartsupp.com, hubspot.com, trustindex.io, inpost.pl, vetineo.com — pełna lista ok. 60 domen).Whitelista: infection_check.py:58–77; porównanie hosta: :143–149. 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 · Niepewne |
| Skutek dla strony | do weryfikacji · zakłada Finding · alarm nie |
| Waga → ocena | waga 3 → ocena 5–6 (żółty) |
| Klasyfikacja | CWE: CWE-829 (Inclusion of Functionality from Untrusted Control Sphere)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.004 Stage Capabilities: Drive-by Target (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004) |
| Rekord OCSF | finding_info.analytic.uid = "B36.01" · analytic.name = "infection_foreign_script" · finding_info.types = ["B36 Obce skrypty i ukryte ramki"] |
| Co zrobić | Potwierdź, że skrypt jest znany. Jeśli nie, usuń go. |
| Wersje typu |
|
| Kod i klucz | B36.02 · infection_hidden_iframe · w tabeli typów |
|---|---|
| Co znaczy | Iframe 0×0; zwykle Tag Manager lub Pixel. |
| Kiedy powstaje | W HTML jest ≥ 1 tag <iframe ...>, którego atrybuty pasują do display\s*:\s*none|visibility\s*:\s*hidden|width\s*=\s*['"]?0|height\s*=\s*['"]?0 (case-insensitive), z pominięciem iframe'ów zawierających w atrybutach 'googletagmanager.com/ns.html' albo 'gform_ajax_frame'.Wyjątki GTM i Gravity Forms zaszyte w kodzie: infection_check.py:171–174. Regex width/height=0 łapie każdą wartość zaczynającą się od cyfry 0. 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 · Niepewne |
| Skutek dla strony | do weryfikacji · zakłada Finding · alarm nie |
| Waga → ocena | waga 3 → ocena 5–6 (żółty) |
| Klasyfikacja | CWE: CWE-829 (Inclusion of Functionality from Untrusted Control Sphere)OWASP Top 10:2025: A08:2025 Software or Data Integrity FailuresMITRE ATT&CK 19.2: T1608.004 Stage Capabilities: Drive-by Target (ślad)OCSF 1.9.0: Detection Finding (class_uid 2004) |
| Rekord OCSF | finding_info.analytic.uid = "B36.02" · analytic.name = "infection_hidden_iframe" · finding_info.types = ["B36 Obce skrypty i ukryte ramki"] |
| Co zrobić | Sprawdź źródło iframe'a w kodzie strony. |
| Wersje typu |
|
LOOP
bez pętliTrafnoś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.
Ten parametr nie przeszedł jeszcze żadnej pętli. Kolejność po pierwszych pięciu grupach ustali miara trafności.