ARK. B15Parametr monitoringuBezpieczeństwo · lista 50 parametrów

Zmiana adresu IP

ważność wysokamierzonysposób ip_change

Porównanie aktualnego IP z poprzednim skanem DNS. Nieoczekiwana zmiana to przejęcie domeny lub migracja bez wiedzy agencji.

Pierwszy skan domeny tylko zapisuje wzorzec; ustalenie otwiera dopiero kolejny skan z innym adresem.

ARK. 1

WIKI

artykuł z 16.09.2026 · źródeł 8

Zmiana adresu IP to parametr monitoringu stron internetowych, który porównuje adresy IPv4 zwrócone dla domeny w bieżącym zapytaniu DNS z adresami zapamiętanymi przy poprzednim pomiarze. Możliwe wyniki to: adresy bez zmian, inny zbiór adresów niż poprzednio, pierwszy pomiar, który tylko zapisuje punkt odniesienia, albo brak odpowiedzi, przy którym porównania nie da się wykonać. Adres IPv4 hosta przechowuje rekord A z 32-bitowym adresem internetowym, a host z kilkoma adresami ma kilka rekordów A [2].

Jak działa

Pomiar zestawia dwie migawki. Pierwsza odpowiedź dla domeny staje się wzorcem, a każdą kolejną porównuje się z nim jako zbiór adresów. Kolejność rekordów nie powinna mieć znaczenia: RFC 1794 zauważa, że protokół DNS nie gwarantuje kolejności, a wczesne mechanizmy równoważenia obciążenia celowo rotowały rekordy adresowe metodą round-robin [3]. Po wykryciu różnicy nowy zbiór zwykle zastępuje wzorzec, żeby ta sama zmiana nie była zgłaszana w każdym kolejnym pomiarze.

RYS. 1.1Porównanie skanu N-1 i skanu N

Na wynik wpływa czas życia rekordu. TTL to limit czasu, przez który rekord może leżeć w pamięci podręcznej; ustala go administrator strefy [1]. RFC 1034 zaleca, by przed zapowiedzianą zmianą obniżyć TTL, a po zmianie przywrócić dawną wartość, co ogranicza niespójność w okresie przejścia [1]. Dwa kolejne pomiary mogą więc przez pewien czas widzieć raz stary, raz nowy adres, zależnie od tego, co pamięta pytany resolver.

Sama różnica adresów nie mówi, co się stało. Tę samą obserwację daje dostawca CDN, zaplanowana przeprowadzka serwera i przejęcie konta DNS, dlatego pomiar jest punktem wyjścia do rozróżnienia, a nie rozstrzygnięciem.

RYS. 1.2Rozróżnienie zmiany adresu

Standardy i specyfikacje

  • RFC 1034 i RFC 1035 definiują pole TTL i rekord A: 32-bitowy adres w danych rekordu, wiele rekordów A dla hosta z wieloma adresami oraz czas przechowywania w pamięci podręcznej [1] [2].
  • RFC 1794 (1995, dokument informacyjny) opisuje równoważenie obciążenia przez DNS. Odpowiedź zawiera wiele adresów, a w opisanym wdrożeniu adresy losowo przestawiano co 300 sekund. W takiej zmiennej strefie TTL rekordów musi być bardzo niski [3].
  • RFC 4786 definiuje anycast jako udostępnianie tego samego adresu usługi w wielu odrębnych lokalizacjach, tak że pakiety trafiają do jednej z nich [4].
  • NIST SP 800-128 definiuje konfigurację bazową (ang. baseline configuration) jako zestaw specyfikacji przejrzany i uzgodniony w danym momencie, który można zmieniać tylko przez procedury kontroli zmian [8]. Monitorowanie konfiguracji ma wykrywać, kiedy stan faktyczny odbiega od zatwierdzonego wzorca, czyli nieautoryzowaną zmianę [8].

Zagrożenia i skutki

Przejęcie DNS. Dyrektywa CISA ED 19-01 z 22 stycznia 2019 r. opisywała kampanię, w której napastnik po zdobyciu danych logowania zmieniał rekordy A, MX lub NS i kierował ruch na własną infrastrukturę [7]. Dyrektywa nakazywała sprawdzić, czy publiczne rekordy DNS wskazują zamierzone miejsca; CISA zamknęła ją 8 stycznia 2026 r. [7]. Szerzej o przejęciu domeny pisze artykuł Rozwiązywanie DNS.

Migracja poza kontrolą zmian. NIST SP 800-128 wśród przyczyn nieautoryzowanych zmian wymienia zmiany przypadkowe, działania osób, które nie znają procesu kontroli zmian albo uważają, że ich nie dotyczy, oraz opóźnienie między wprowadzeniem zmiany a aktualizacją wzorca [8]. Nieautoryzowana zmiana może świadczyć o ataku albo o tym, że procedury nie są przestrzegane, dlatego NIST zaleca analizować jej przyczynę [8]. Przeniesienie strony na inny serwer bez wiedzy osób, które ją utrzymują, wygląda z zewnątrz tak samo jak zmiana wprowadzona przez napastnika.

Fałszywe alarmy przy CDN. Dla rekordu obsługiwanego przez proxy Cloudflare zapytanie DNS zwraca adresy anycast Cloudflare zamiast adresu serwera źródłowego [5]. Zakresy tych adresów są wspólne dla wszystkich hostów za proxy [6]. TTL takich rekordów wynosi 300 sekund i nie da się go zmienić; krótki czas ma sprawić, że zmiana przypisanego adresu anycast szybko zacznie obowiązywać [5]. Inny adres w odpowiedzi nie oznacza wtedy zmiany serwera ani hostingu. Podobnie przy równoważeniu obciążenia przez DNS: jeśli zawartość puli rekordów zmienia się co kilka minut [3], porównanie pełnych zbiorów zgłosi zmianę przy każdej takiej rotacji.

Zmiana niewidoczna. Proxy działa też w drugą stronę i ukrywa przeprowadzkę: odwiedzający dostaje adres Cloudflare zamiast prawdziwego adresu serwera źródłowego [6]. Migracja serwera za CDN nie zmienia więc odpowiedzi DNS, a porównanie rekordów A jej nie wykryje.

Przykłady

ObserwacjaWynik porównaniaTypowa przyczyna
Te same adresy w innej kolejnościbez zmianrotacja round-robin [3]
Jeden adres zastąpiony innym, TTL wcześniej obniżonyzmianazapowiedziana migracja serwera [1]
Adresy z zakresów CDN zamiast adresu serwerazmianawłączenie proxy, adresy anycast [5] [6]
Inny adres CDN przy niezmienionej konfiguracjizmianadostawca zmienił przydział adresu anycast [5]
Nowy adres i zmienione rekordy NS lub MXzmianaprzejęcie konta DNS [7]
Nowy adres, którego nikt nie zatwierdziłzmianamigracja poza procesem kontroli zmian [8]
Migracja serwera schowanego za proxybez zmianadres źródłowy ukryty za CDN [6]
Brak odpowiedzi albo nazwa nie istniejenie da się porównaćawaria DNS, wygaśnięcie domeny — patrz Rozwiązywanie DNS
TAB. 1.1Przypisy8
  1. [1] RFC 1034 — Domain Names: Concepts and Facilities · IETF
  2. [2] RFC 1035 — Domain Names: Implementation and Specification · IETF
  3. [3] RFC 1794 — DNS Support for Load Balancing · IETF
  4. [4] RFC 4786 — Operation of Anycast Services · IETF
  5. [5] Proxy status — Cloudflare DNS docs · Cloudflare
  6. [6] Cloudflare IP addresses — Cloudflare Fundamentals docs · Cloudflare
  7. [7] Emergency Directive 19-01 — Mitigate DNS Infrastructure Tampering · CISA
  8. [8] SP 800-128 — Guide for Security-Focused Configuration Management of Information Systems · NIST
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.3Ustalenia

Ten parametr nie otworzył jeszcze żadnego ustalenia w bazie LAB247. Pusto nie znaczy „czysto” — znaczy, że nic nie przekroczyło reguły.

TAB. 2.4Przebiegi z tym sposobem sprawdzeniaod 09.09.2026
Przebiegów
33sposób ip_change
W 30 dni
33przebiegów
Ostatni
19.09.2026start przebiegu
Stron w przebiegach
33 przebiegów bez liczby stron
ARK. 3

CARD

karta z kodu CREATO_PING, odczyt 16.09.2026
RYS. 3.1Droga parametru przez system: Zmiana adresu IP
TAB. 3.1Pomiarpliki: 5
Obszar i ważnośćBezpieczeństwo · wysoka (B15)
Workflow i częstotliwośćcreato_ping_security_v2 · P3 działa na LAB247cron co 24 h, T1–T3; T4 raz po anomalii · Dokładny skan. dns_integrity porównuje NS, MX, SPF i DMARC z wzorcem z poprzedniego przebiegu.
Sonda i helpersposób ip_change · CREATO_PING/helpers/ip_change.py
Testy
  1. Tylko przebieg P3: Tier 1–3 codziennie o 03:11, 03:13 i 03:15 UTC, Tier 4 wyzwalaczem „po anomalii” o 07:17 UTC; domena bez rekordu A pominięta na wstępie.
  2. Zapytanie o rekord A przez resolver systemowy serwera monitoringu, do 20 domen naraz; rekordów AAAA nie pytamy.
  3. Wzorzec: plik ip_baseline.json w katalogu stanu serwera monitoringu, per domena posortowana lista adresów (2026-09-16: 282 domeny, 39 z więcej niż jednym adresem).
  4. Pierwszy odczyt domeny tylko zapisuje wzorzec. NXDOMAIN, brak rekordu A, timeout albo inny błąd dają pustą listę: bez ustalenia i bez nadpisania wzorca.
  5. Zbiór inny niż we wzorcu = ip_changed; w tym samym przebiegu wzorzec jest nadpisywany nowym zbiorem.
Typ wyniku0 albo 1 ustalenie ip_changed na stronę w przebiegu; w szczegółach stary i nowy zbiór adresów, w dowodzie obie listy
Jednostkabrak — wynik jakościowy (zbiór adresów IPv4 z rekordów A względem wzorca z poprzedniego przebiegu)
Próg i regułaTimeout zapytania 3,0 s — stała w helperze, poza config.py. Reguła: posortowane listy adresów różne = zmiana; wystarczy jeden adres dodany albo usunięty z puli.
Gdzie leżą pokrętłaCREATO_PING/helpers/ip_change.py → diff_ips, _resolve_a (timeout 3,0 s), check_batch (concurrency 20), _BASELINE_FILENAMECREATO_PING/helpers/security_runner.py → _TASK_SEVERITIES (dalej idą tylko urgent i high)CREATO_PING/config/incident_policy.toml → [finding] ip_changedCREATO_PING/config/wyjatki_falszywych_alarmow.toml → wąskie wyjątki per strona
Retencja odczytówNic w bazie LAB247 (2026-09-16: 0 ustaleń ip_changed; ślad tylko przez ręczny import z ClickUp). Plik wzorca trzyma ostatni zbiór per domena i nadpisuje go przy zmianie — poprzedni adres zostaje tylko w opisie subtaska w ClickUp. Replay niemożliwy.
Znane rozbieżności
  1. Katalog mówi o „nieoczekiwanej” zmianie, a kod nie zna zmian oczekiwanych: każda zmiana, także zapowiedziana migracja, daje ustalenie.
  2. Każda różnica zbioru to zmiana: pula CDN albo round-robin podająca inny podzbiór adresów daje fałszywe ustalenie; 39 z 282 domen we wzorcu ma więcej niż jeden adres.
  3. Brak rozpoznania zakresów CDN: nowy przydział adresu anycast wygląda tak samo jak przejęcie.
  4. Za proxy CDN przeprowadzka serwera źródłowego jest niewidoczna — rekord A pokazuje adres CDN.
  5. Wzorzec to ostatnio widziany stan, nie zatwierdzony: nadpisywany w przebiegu, który zgłasza zmianę, więc powrót do starego adresu daje drugie zgłoszenie zamiast zamknięcia.
  6. Brak trzeciego stanu: błąd albo timeout zapytania to pusta lista i cisza, bez „nie dało się sprawdzić”.
  7. Tylko rekordy A: zmiana rekordów AAAA nie jest wykrywana.
  8. Brak automatycznego zamknięcia: subtask zostaje otwarty także po potwierdzonej migracji.
  9. Dwa niepowiązane źródła prawdy o adresie: oczekiwany adres w odczycie DNS skanu dostępności (ręczny) i wzorzec tego parametru (automatyczny).
  10. Przebiegi P3 Tier 1–3 startują co 2 minuty i każdy czyta oraz zapisuje cały plik wzorca — nakładające się przebiegi mogą nadpisać sobie zmiany (do potwierdzenia).
  11. Ustalenie nie trafia do bazy LAB247 automatycznie: STATS zostaje puste do ręcznego importu z ClickUp.
kandydaci do pętli: kod a opis parametru albo specyfikacja
Karta przepisana zCREATO_PING/helpers/ip_change.py · CREATO_PING/helpers/security_runner.py · CREATO_PING/config/incident_policy.toml · CREATO_PING/helpers/clickup_writer_v2.py · CREATO_PING/helpers/tests/test_ip_change.py · odczyt 16.09.2026
TAB. 3.2Co oznacza failtypów ustaleń: 1

Helper zgłasza powagę wysoką, więc ustalenie przechodzi filtr przebiegu. Polityka: wysoka, niepewna, do weryfikacji, gate=true, bez alertu — subtask DO WERYFIKACJI pod stroną; status strony DO WERYFIKACJI, jeśli nic ważniejszego nie jest otwarte. Kolejna zmiana przy otwartym subtasku aktualizuje jego opis. Helper nigdy nie wysyła zamknięcia, więc subtask zamyka człowiek.

UstaleniePowagaPewnośćSkutekSubtask / alarmCo zrobić
Zmiana adresu IPip_changedWysokieNiepewneDO WERYF.tak / niePotwierdź migrację i zaktualizuj oczekiwany IP.
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
20.09Zastrzeżony PESEL: zmiana raz na 30 minut, blokada przy wypłaciedobreprogramy.pl20.09Fałszywe SMS-y od GITD o mandacie za autostradę wyłudzają dane kartyinstalki.pl20.09Pakiet npm indexed-btree omija blokadę skryptów instalacyjnychbleepingcomputer.com19.09SolarWinds łata CVE-2026-28326 w Access Rights Manager, zdalny kod bez logowaniathehackernews.com19.09Orkes Conductor: luka CVE-2026-58138 atakowana w sieci, poprawka w wersji 3.30.2thehackernews.com19.09Trzy luki jądra Linux w katalogu CISA KEV, Red Hat potwierdza aktywne atakithehackernews.com18.09Publiczne exploity na cztery luki jądra Linux dają lokalnie uprawnienia rootthehackernews.com18.09Brevo: skradziony klucz API Cloudflare i skrypty ClickFix na stronach klientówbleepingcomputer.com18.09WaterPlum z Korei Północnej zainfekowała 30 000 urządzeń w 100 krajachtherecord.media18.09Jedna zgoda OAuth daje napastnikowi dostęp do poczty i plików mimo MFAdarkreading.com