Część Państwa cyfrowego łańcucha dostaw może zmienić właściciela bez zmiany choćby jednego wiersza kodu. Domena rozwiązuje się tak samo. Skrypt ma ten sam skrót. Ruch wygląda identycznie, bo jest identyczny. Zmieniło się to, kto decyduje, co ten element zrobi dalej, a z tej decyzji nie widać nic w przechwyceniu sieciowym.
Naruszenie, jeśli nadchodzi, nadchodzi miesiące albo lata później, przez kanał, któremu już zaufano. A pytanie, które by je wychwyciło, nigdy nie było techniczne. Brzmiało: kto to kupił, kiedy i od kogo.
Mechanizm

Każde z tych przekazań jest gdzieś zapisane na papierze

Każde zostawia gdzieś udokumentowany zapis. Umowa sprzedaży, wpis w rejestrze, zmiana uprawnień, akta pracownicze. Żadne z nich nie wytwarza pakietu, powiadomienia ani zmienionego skrótu, i właśnie dlatego monitorowanie, które by je wychwyciło, nie siedzi w sieci.

01

Zasób zostaje kupiony
Domena, repozytorium, pakiet, rozszerzenie albo firma stojąca za którymkolwiek z nich przechodzi w inne ręce. Istniejąca baza instalacji i zgromadzone zaufanie często są celem zakupu, a nie jego skutkiem ubocznym. Badacze opisują dziś nabywanie zadomowionych rozszerzeń przeglądarki właśnie dla ich istniejących użytkowników jako trwały model biznesowy, a nie ciąg odosobnionych incydentów.

02

Prawa do publikacji zostają przekazane
Nieopłacany opiekun pakietu, od którego zależą tysiące organizacji, otrzymuje od nieznajomego ofertę pomocy i ją przyjmuje. W głównych rejestrach nie wymaga to weryfikacji tożsamości strony wchodzącej poza kontrolą nad adresem poczty, nie wymaga okresu oczekiwania i nie wymaga powiadomienia nikogo dalej w łańcuchu. To jedno polecenie.

03

Zaufanie zostaje zbudowane
Tożsamość przez miesiące albo lata wnosi rzeczywistą, użyteczną pracę, awansuje za zasługi, a potem jest w pozycji pozwalającej dostarczyć cokolwiek. Po drodze nie ma żadnego oszukańczego kroku do wychwycenia, bo każdy krok jest prawdziwy aż do ostatniego. Tam, gdzie dotychczasowy opiekun jest pod presją, skoordynowana kampania pozornie niezależnych głosów naciskających na współopiekuna przyspiesza całość.

04

Zmieniają się ludzie wewnątrz
Programista z prawem zatwierdzania zmian, wykonawca z dostępem do wdrożeń, administrator u dostawcy trzy poziomy niżej. W ich dostępie nic się nie zmienia, bo ich dostęp zawsze był uprawniony. Zmieniają się ich okoliczności, ich pracodawca, ich zachęty albo to, kto ma nad nimi dźwignię nacisku, a tego nie da się obserwować z zewnątrz organizacji, która ich zatrudnia.
Poza siecią

Zapisy, które mają znaczenie, leżą poza siecią

Każdy mechanizm na tej stronie wytwarza zapis. Firmy rejestrują się i składają sprawozdania. Domeny przechodzą z rąk do rąk, a rejestratorzy to zapisują. Zmiany własności repozytoriów i wpisów w rejestrach zapisuje się na listach członków i w metadanych pakietów. Programy zaufanych certyfikatów wymagają ujawnienia dokładnie takiej zmiany. Sankcje i działania nadzorcze wskazują strony. Nic z tego nie jest tajne. Wszystko to leży poza siecią, którą obserwuje zespół bezpieczeństwa, w źródłach, których czytania nikomu nie przypisano jako obowiązku.
Dlatego obserwacja sama nie wystarcza i dlatego ta metoda nie zatrzymuje się na tym, z kim aplikacja się łączy. Przechwycenie ustala, które strony znajdują się wewnątrz Państwa granicy zaufania. Przypisanie tych stron do firm i właścicieli pozwala później zauważyć, że jedna z nich nie jest już firmą, którą Państwo ocenili. Te dwie połowy nie są wobec siebie alternatywą.
Dane rejestracyjne także istotnie pogorszyły się jako źródło. Do 2024 roku około 89% domen w ogólnych domenach najwyższego poziomu nie miało w danych publicznych ustalonego abonenta, wobec około 24% przed zmianą przepisów o prywatności. Zapis przekazania nadal istnieje. Odsunął się tylko dalej od kogokolwiek, kto by na jego podstawie działał, co podnosi koszt patrzenia i obniża prawdopodobieństwo, że ktoś to zrobi.
Opóźnienie

Zanim ktokolwiek zauważył

Łańcuch własności prześledzony w górę od jednej firmy przez warstwowe spółki holdingowe i nieprzejrzystych inwestorów w wielu jurysdykcjach aż do osób, które za nimi stoją.
Dopiero przypisanie dostawcy do stron, które za nim stoją, czyni późniejszą zmianę w tych stronach w ogóle widoczną. Więcej o mapowaniu łańcucha własności.
W praktyce

Każdy z tych zapisów zmienia się według innego zegara

Lista osób uprawnionych do publikowania pakietu zmienia się w sekundzie, w której wykonuje się polecenie. Zapis u rejestratora zmienia się w dniu zakończenia przekazania. Sprawozdanie do rejestru może pojawiać się tygodniami, a wpis na listę sankcyjną przychodzi wtedy, kiedy przychodzi. Dopiero obserwowanie wszystkich czterech nadaje wartość najszybszemu z nich.
Zdarzenia korporacyjne
Przejęcia, zmiany zarejestrowanej kontroli, nowe sprawozdania, zmiany członków organów lub adresu siedziby, niewypłacalność oraz pojawienie się inwestora, którego interesy różnią się od tych, które Państwo ocenili. Firma, którą Państwo zatwierdzili, nie zawsze jest firmą nadal działającą pod tą nazwą.
Przekazanie domeny i infrastruktury
Zmiany rejestratora i serwerów nazw, przenosiny hostingu i dostarczania treści, zmiana wystawców certyfikatów oraz przechodzenie przestrzeni adresowej w inne ręce. Każde osobno zwyczajne, a razem najwyraźniejsza wczesna oznaka, że coś u dostawcy się przesunęło.
Kontrola nad repozytorium i rejestrem
Zmiany własności i opiekunów pakietów oraz repozytoriów, od których łańcuch rzeczywiście zależy, pojawienie się nowych osób publikujących przy zadomowionym pakiecie i nagłe zmiany tego, kto podpisuje wydanie. Zapis jest publiczny. Dalej w łańcuchu prawie nikt go nie czyta.
Reputacja i działania nadzorcze
Wpisy na listy sankcyjne, działania nadzorcze, postępowania sądowe, decyzje programów zaufanych certyfikatów o odebraniu zaufania oraz niekorzystne doniesienia o którejkolwiek stronie w łańcuchu, a nie tylko o dostawcy, z którym zawarto umowę. Ekspozycję dziedziczy się z każdego poziomu, a zła sława tak samo.
Odstęp

Osiem z tych przekazań, mierzonych od dnia przejścia kontroli

Dwa tygodnie dla Nano Adblocker. Dwadzieścia osiem miesięcy dla xz-utils. Odstęp nie jest funkcją tego, jak duży jest element, ile osób od niego zależy ani jak starannie go wybrano. Jest funkcją tego, ile czasu minęło, zanim ktoś spojrzał.
Osiem udokumentowanych przypadków narysowanych jako poziome słupki na skali miesięcy od chwili, gdy kontrola nad elementem przeszła w inne ręce. Particle i Nano Adblocker w ciągu kilku dni, event-stream dwa miesiące, Polyfill.io cztery, The Great Suspender pięć, WoSign i StartCom dwanaście, Stylish osiemnaście, a xz-utils dwadzieścia osiem.
Historia

Trzynaście lat tej samej porażki, nadchodzącej sześcioma różnymi drogami

Dwadzieścia zdarzeń w porządku dat, sześcioma drogami wejścia. Trzy z nich są przekazaniami kontroli i właśnie one nie zostawiły śladu technicznego w chwili, gdy nastąpiły. Pozostałe są tu dlatego, że to samo dotyczy strony ponoszącej ekspozycję: prawie nigdy nie jest to strona, która zawiodła.
Oś czasu od lewej do prawej od 2013 do 2026 roku, z osią lat u góry i u dołu oraz dwudziestoma zdarzeniami narysowanymi jako słupki czasu trwania w sześciu pasmach: kanał kompilacji lub aktualizacji, przekazana własność lub kontrola, konto opiekuna lub osoby publikującej, skrypt zewnętrzny na działającej stronie, platforma lub usługa zarządzana oraz element, który wbudowują wszyscy.
Target, 2013
Napastnicy weszli przez dane uwierzytelniające wydane wykonawcy instalacji chłodniczych i wentylacyjnych, który miał zdalny dostęp do sieci Target, i przeszli stamtąd do systemów płatniczych. Zabrano około 40 milionów zapisów o kartach i 70 milionów zapisów o klientach. Dostawca nie miał żadnej roli w płatnościach ani żadnego powodu, aby się przy nich znajdować.
WoSign i StartCom, 2015
Jeden urząd certyfikacji po cichu nabył drugi i tego nie ujawnił, naruszając zasady programu zaufanych certyfikatów przeglądarek, które wymagają dokładnie takiego ujawnienia. Potem pojawiły się certyfikaty z datami wstecznymi i przypadki nieprawidłowego wydawania. Mozilla, Google i Apple odebrały zaufanie obu, traktując zatajoną zmianę kontroli jako główne naruszenie.
left-pad, 2016
Autor usunął z publicznego rejestru pakiet o jedenastu wierszach po sporze o nazwę, a w ciągu kilku godzin na całym świecie przestały działać tysiące kompilacji. Nic nie zostało naruszone i nikogo nie zaatakowano. Ustaliło to, że element, którego nikt nie wybrał świadomie, może jednak zatrzymać bardzo dużo pracy.
M.E.Doc i NotPetya, 2017
Kanał aktualizacji ukraińskiego programu do rachunkowości podatkowej wykorzystano do rozprowadzenia niszczącego oprogramowania złośliwego do każdej organizacji, która go używała, a stamtąd rozeszło się przez połączone sieci. Merck i Maersk były wśród firm, których działalność stanęła na tygodnie. Roszczenie ubezpieczeniowe Merck z tytułu tej straty wyniosło około 1,4 miliarda dolarów, a jego rozstrzygnięcie zajęło lata postępowań.
CCleaner, 2017
Kompilację powszechnie używanego narzędzia z furtką podpisano własnym certyfikatem dostawcy i rozprowadzono przez własną infrastrukturę pobierania dostawcy. Zainstalowało ją około 2,27 miliona użytkowników, zanim naruszenie wykryto. Dostawcę nabyto krótko wcześniej, ale dowody wskazują na włamanie do środowiska kompilacji, a nie na tę transakcję.
Ticketmaster i Inbenta, 2018
Skrypt czatbota dostarczony przez podmiot zewnętrzny działał na stronach płatności. Naruszona została infrastruktura dostawcy, a nie sprzedawcy, i dotknęło to do dziewięciu milionów klientów. Organ nadzoru ukarał sprzedawcę, który zakwestionował odpowiedzialność za skrypt, którego nie napisał.
British Airways, 2018
Do kodu hostowanego przez samą linię lotniczą dodano dwadzieścia dwa wiersze skryptu, a przez trzy tygodnie zabrano dane płatnicze około 429 000 osób. Było to naruszenie kodu własnego przy użyciu tych samych technik, a nie porażka dostawcy zewnętrznego, i te dwa przypadki często i błędnie łączy się razem. Organ nadzoru ukarał linię lotniczą grzywną 20 milionów funtów.
event-stream, 2018
Do opiekuna, który wycofał się z pakietu pobieranego miliony razy w tygodniu, zwrócił się nieznajomy z ofertą pomocy, a opiekun przekazał mu prawa do publikowania. Dwa miesiące później zależność dodana przez nowego opiekuna zawierała ładunek skierowany na konkretny portfel kryptowalut. Trzy miesiące później wykrył to programista czytający kod.
Stylish, 2017
Rozszerzenie przeglądarki z około dwoma milionami użytkowników nabyła w 2017 roku firma analityczna. Osiemnaście miesięcy później badacz udokumentował, że odsyłało ono pełną historię przeglądania każdego, kto je zainstalował, do nowego właściciela. Zarówno Chrome, jak i Firefox usunęły je w ciągu kilku dni od tego zgłoszenia.
Nano Adblocker, 2020
Twórca dwóch rozszerzeń blokujących reklamy sprzedał je w październiku 2020 roku i wtedy publicznie o tym powiedział. W ciągu około dwóch tygodni nowi właściciele wydali aktualizację zbierającą dane użytkowników, a rozszerzenia wycofano. Tam, gdzie odstęp dla Polyfill.io wyniósł cztery miesiące, a dla xz-utils dwadzieścia osiem, tutaj wyniósł dwa tygodnie.
ASUS, 2019
Narzędzie aktualizacji dostawcy, poprawnie podpisane i podawane z własnych serwerów dostawcy, dostarczyło furtkę na dużą liczbę maszyn. Badacze ustalili, że ładunek porównywał każdą maszynę z wpisaną w kod listą kilkuset adresów sieciowych i na wszystkich pozostałych nie robił nic. Masowe rozpowszechnienie było sposobem dostarczenia do bardzo niewielkiej liczby zamierzonych celów.
SolarWinds, 2020
Napastnicy dotarli do potoku kompilacji produktu do zarządzania siecią i wstawili kod do podpisanego wydania. Uważa się, że dotkniętą wersję zainstalowało mniej niż 18 000 klientów, a wobec znacznie mniejszej liczby prowadzono dalsze działania. Wykryła to firma bezpieczeństwa badająca włamanie do własnych systemów, a nie którykolwiek klient.
The Great Suspender, 2020
Rozszerzenie przeglądarki z ponad dwoma milionami instalacji twórca sprzedał nabywcy, którego tożsamości nie ujawniono. Działanie się nie zmieniło i żadna aktualizacja nie wyglądała niezwykle. Złośliwe zachowanie pojawiło się pięć miesięcy później, a rozszerzenie usunięto i zdalnie wyłączono na maszynach użytkowników w lutym następnego roku.
Kaseya, 2021
Oprogramowanie wymuszające okup przepchnięto przez platformę zdalnego zarządzania, z której dostawcy usług zarządzanych korzystają, aby administrować systemami swoich klientów. Dotknęło to do około 1 500 przedsiębiorstw dalej w łańcuchu, z których większość nigdy nie słyszała o tej platformie. Były narażone przez narzędzia swojego dostawcy, a nie przez cokolwiek, co uruchamiały same.
Log4Shell, 2021
Wada w bibliotece dziennika dla języka Java, obecnej w ogromnej liczbie aplikacji, stała się trywialnie wykorzystywalna, a organizacje tygodniami próbowały ustalić, gdzie ta biblioteka w ogóle się znajduje. Większość nie potrafiła odpowiedzieć na to pytanie szybko. Ten pośpiech dotyczył nie tyle samej wady, ile braku jakiejkolwiek inwentaryzacji, z którą można by ją porównać.
3CX, 2023
Pracownik zainstalował na prywatnej maszynie kopię niepowiązanego oprogramowania do handlu, zawierającą konia trojańskiego. Napastnicy wykorzystali zdobyte tam dane uwierzytelniające, aby dotrzeć do własnego środowiska kompilacji firmy i umieścić konia trojańskiego w jej aplikacji stacjonarnej, która miała ponad 600 000 organizacji klienckich. Jest to najwyraźniej udokumentowany przypadek wykorzystania jednego naruszenia łańcucha dostaw do przygotowania drugiego.
MOVEit, 2023
Wadę w produkcie do zarządzanego przesyłania plików wykorzystano, aby wydobyć dane z organizacji, które go używały, oraz z wielu innych, których dane te organizacje przechowywały. Rejestry zanotowały znacznie ponad 2 000 dotkniętych organizacji i dziesiątki milionów osób. Duża część tych osób nie miała żadnej relacji ani z tym oprogramowaniem, ani z firmami, które je obsługiwały.
xz-utils, 2021 do 2024
Tożsamość wniosła swój pierwszy zwyczajny wkład do podstawowej biblioteki kompresji w październiku 2021 roku, otrzymała większą rolę w połowie 2022 roku po długotrwałej kampanii pozornie niepowiązanych głosów naciskających na jedynego opiekuna, aby przyjął pomoc, a w lutym 2024 roku wstawiła furtkę do skryptów kompilacji. Minęło dwadzieścia osiem miesięcy bez żadnego oszukańczego kroku do wychwycenia, bo każdy krok był prawdziwy aż do ostatniego. Wykryto to przypadkiem, gdy inżynier badał niepowiązany problem z wydajnością, a furtka dotarła do dystrybucji testowych i kroczących, a nie do wydań stabilnych.
Polyfill.io, 2024
Domenę i repozytorium powszechnie używanej usługi skryptowej sprzedano w lutym 2024 roku firmie zarejestrowanej w Chinach, a programiści podnieśli tę zmianę w publicznym zgłoszeniu w repozytorium w tym samym miesiącu. Złośliwe przekierowania udokumentowano niezależnie pod koniec czerwca i dotknęły one ponad 100 000 witryn. Nabywcę objął sankcjami Departament Skarbu Stanów Zjednoczonych w maju 2025 roku za niepowiązaną działalność oszukańczą.
CrowdStrike, 2024
Wadliwa aktualizacja treści dla agenta bezpieczeństwa sprawiła, że według Microsoftu około 8,5 miliona maszyn z systemem Windows nie zdołało się uruchomić. Nic nie zostało naruszone i nikt niczego nie zaatakował. Linie lotnicze, szpitale i banki przestały działać, bo wszystkie zależały od tego samego elementu, i tak wygląda koncentracja, gdy zawodzi przypadkiem.
tj-actions, 2025
Ukradziony token dostępu wykorzystano, aby przepisać znaczniki wersji powszechnie używanej akcji ciągłej integracji tak, by wskazywały kod wypisujący sekrety kompilacji do publicznie czytelnych dzienników. Do tej akcji odwoływało się około 23 000 repozytoriów. Token zdobyto kilka miesięcy wcześniej przez niepowiązany projekt.
Shai-Hulud, 2025
Ukradzione dane do publikowania wykorzystano, aby dodać do wydań pakietów kod, który następnie zbierał dane uwierzytelniające z maszyn instalujących te pakiety i używał ich do publikowania kolejnych dotkniętych wydań. Jest to pierwszy udokumentowany przypadek naruszenia samorozprzestrzeniającego się w dużym rejestrze pakietów. W pierwszej fali dotknięto ponad sto pakietów.

Ocena traci ważność w chwili, gdy własność się przesuwa

To właśnie jest argument za tym, aby najpierw ustalić strony, a potem czytać zapisy. Metoda, która wytwarza mapę, i to, co ustala jedna sesja, są tematem następnego opracowania.