atak na łańcuch dostaw
| Po angielsku | supply chain attack |
|---|---|
| Którą formą pisać | obie formy Obie formy są w obiegu. Przy pierwszym wystąpieniu pisz „polski termin (english term)”, dalej sam polski. |
| Inne formy | supply chain attack · atak przez dostawcę · atak na oprogramowanie firm trzecich |
| Kategoria | Ataki i socjotechnika |
Atak na łańcuch dostaw (supply chain attack) to atak na organizację przeprowadzony przez jej dostawcę: podmieniony komponent, zatrutą aktualizację, zainfekowaną bibliotekę albo konto partnera z dostępem do jej systemów. MITRE opisuje go jako manipulowanie produktami lub mechanizmami ich dostarczania, zanim trafią do odbiorcy [2]. OWASP w zestawieniu Top 10 z 2025 roku ujmuje problem szerzej jako awarie łańcucha dostaw oprogramowania, czyli załamania lub kompromitacje procesu budowania, dystrybucji albo aktualizacji oprogramowania [1]. Ofiara nie popełnia tu oczywistego błędu. Instaluje to, co dostarcza zaufane źródło, a złośliwa zmiana przychodzi tym samym kanałem co poprawki bezpieczeństwa.
Jak działa
Atakujący nie włamuje się do celu wprost. Przejmuje ogniwo, któremu cel ufa, i czeka, aż złośliwa zmiana dotrze do odbiorców zwykłą drogą, na przykład przez aktualizację. Schemat poniżej pokazuje typowy przebieg.
MITRE wymienia punkty, w których można wprowadzić zmianę: narzędzia i środowisko programistyczne, repozytoria kodu źródłowego, zależności open source, mechanizmy aktualizacji i dystrybucji, obrazy systemów, a nawet podmianę oprogramowania na zmodyfikowaną wersję [2]. Podtechniki rozróżniają kompromitację zależności i narzędzi programistycznych, łańcucha dostaw oprogramowania oraz sprzętu [2].
Odmiany
Poszczególne ogniwa mają własne nazwy i hasła w słowniku.
| Ogniwo | Przykładowa technika |
|---|---|
| publiczne repozytorium pakietów | typosquatting, dependency confusion (podmiana zależności) |
| potok budowania | atak na potok CI/CD (CI/CD pipeline compromise) |
| konto dewelopera | przejęcie hasłem z wycieku [3] |
| zmiana właściciela produktu | złośliwa aktualizacja po przejęciu [5] |
| serwer producenta | podmiana plików do pobrania [6] |
W WordPressie
Strona na WordPressie składa się z rdzenia, motywu i wtyczek od wielu autorów, a każdy z nich jest dostawcą. Każda automatyczna aktualizacja to zaufanie do wszystkich osób, które mogą wydać nową wersję.
Przejęte konta autorów. Zespół katalogu wtyczek WordPress.org napisał 29 czerwca 2024 roku, że atakujący, używając haseł ujawnionych w wyciekach z innych serwisów, dodali złośliwy kod do kilku wtyczek w katalogu [3]. Była to więc odmiana credential stuffing wymierzona w autorów. Zespół wymusił reset haseł wszystkich autorów wtyczek, a nowe commity przez pewien czas wymagały akceptacji [3]. Od 1 października 2024 roku autorzy wtyczek i motywów z prawem zapisu muszą mieć uwierzytelnianie dwuskładnikowe (two-factor authentication, 2FA), a do repozytorium SVN logują się osobnym hasłem [4]. Uwierzytelniania dwuskładnikowego nie da się zastosować bezpośrednio do SVN, dlatego WordPress.org łączy 2FA na poziomie konta, hasła SVN o wysokiej entropii i potwierdzanie wydań [4]. Uzasadnienie brzmi: konta z prawem zapisu mogą wypychać zmiany do wtyczek i motywów używanych przez miliony stron na świecie [4].
Zmiana właściciela. Sekurak 20 grudnia 2017 roku opisał wtyczkę Captcha z około 300 000 aktywnych instalacji, która po przejściu do nowego właściciela dostała aktualizację z tylną furtką (backdoor) [5]. Kod pozwalał bez uwierzytelnienia uzyskać dostęp administracyjny do strony: tworzył sesję użytkownika o domyślnym identyfikatorze administratora, ustawiał ciasteczka uwierzytelniające, po czym usuwał się [5].
Włamanie do producenta. Jetpack 18 stycznia 2022 roku opisał włamanie do serwisu AccessPress Themes we wrześniu 2021 roku [6]. Atakujący dodali złośliwy kod do motywów i wtyczek pobieranych ze strony producenta, podczas gdy wersje z WordPress.org pozostały czyste [6]. Plik instalujący umieszczał webshell w wp-includes/vars.php i usuwał się, by utrudnić wykrycie [6]. Webshell reagował tylko na żądania z określonym ciasteczkiem i nagłówkiem User-Agent, co pozwalało atakującym wykonywać dowolny kod na zainfekowanych stronach [6].
Osobnym ryzykiem są źródła spoza katalogu, zwłaszcza pirackie wtyczki (nulled plugins), oraz porzucone wtyczki, które mogą zmienić właściciela.
Zagrożenia i skutki
Skala jest cechą wyróżniającą ten atak. OWASP przypomina kompromitację SolarWinds z 2019 roku, która doprowadziła do kompromitacji około 18 000 organizacji [1]. Wymienia też kradzież 1,5 mld dolarów z giełdy Bybit w 2025 roku, spowodowaną atakiem na oprogramowanie portfela, oraz Shai-Hulud, pierwszego samoreplikującego się robaka w rejestrze npm, także z 2025 roku [1]. W ankiecie społeczności przy tworzeniu Top 10 z 2025 roku dokładnie 50% respondentów umieściło tę kategorię na pierwszym miejscu [1].
W WordPressie skutkiem bywa nieautoryzowane konto administratora, tylna furtka albo webshell na wszystkich stronach, które zainstalowały daną wersję.
Jak się bronić
OWASP zaleca między innymi [1]:
- prowadzenie SBOM, czyli wykazu komponentów, i ciągłe śledzenie podatności w zależnościach bezpośrednich i pośrednich;
- pobieranie komponentów tylko z oficjalnych, zaufanych źródeł przez bezpieczne połączenia i preferowanie paczek podpisanych, zob. podpisywanie kodu (code signing);
- aktualizowanie narzędzi CI/CD i stopniowe wdrażanie aktualizacji zamiast jednoczesnego wszędzie;
- rozdział obowiązków, tak by jedna osoba nie mogła sama wdrożyć zmiany na produkcję.
MITRE dodaje ostrożny wybór bibliotek zewnętrznych, przypinanie zależności do konkretnych wersji, korzystanie z wewnętrznych, zweryfikowanych repozytoriów oraz ciągłe skanowanie [2]. Wśród środków wymienia też aktualizowanie oprogramowania, w tym usuwanie nieużywanych i podatnych zależności, weryfikację integralności rozruchu i ograniczanie uprawnień, z jakimi działa oprogramowanie [2]. To ostatnie to zasada najmniejszych uprawnień: komponent z mniejszymi uprawnieniami wyrządzi mniej szkód, jeśli okaże się zatruty. Dla właściciela strony na WordPressie oznacza to w praktyce wtyczki tylko ze znanych źródeł, test aktualizacji na środowisku testowym (staging) przed produkcją, monitorowanie integralności plików oraz zarządzanie ryzykiem dostawców (third-party risk management, TPRM), czyli ocenę, komu powierza się kod działający na stronie.
Historia i przykłady
Poza WordPressem Niebezpiecznik 25 marca 2026 roku opisał zatrucie biblioteki LiteLLM w repozytorium PyPI; tytuł wpisu mówi o paczce z 97 milionami pobrań [7]. Złośliwe były wersje 1.82.7 i 1.82.8, a według wpisu atakujący uzyskali dostęp przez kompromitację skanera Trivy używanego w potoku CI/CD projektu [7]. Wstrzyknięty kod zbierał między innymi klucze SSH, zmienne środowiskowe i dane dostępowe do chmur [7]. Przykład pokazuje, że ogniwem łańcucha może być także narzędzie bezpieczeństwa, jeśli ma dostęp do sekretów procesu wydawniczego.
Przypisy
7- [1] A03:2025 Software Supply Chain Failures · OWASP
- [2] Supply Chain Compromise (T1195) · MITRE ATT&CK
- [3] Password Reset Required for Plugin Authors · WordPress.org
- [4] Upcoming Security Changes for Plugin and Theme Authors on WordPress.org · WordPress.org
- [5] Plugin CAPTCHA do WordPressa (300 000 instalacji) – z backdoorem · Sekurak
- [6] Backdoor Found in Themes and Plugins from AccessPress Themes · Jetpack
- [7] Ktoś zatruł popularną pythonową paczkę z 97 milionami pobrań… · Niebezpiecznik
Hasła w tym artykule
17- typosquatting
- dependency confusion (podmiana zależności)
- atak na potok CI/CD
- automatyczna aktualizacja
- credential stuffing
- uwierzytelnianie dwuskładnikowe
- tylna furtka
- webshell
- piracka wtyczka (nulled plugin)
- porzucona wtyczka
- nieautoryzowane konto administratora
- SBOM (wykaz komponentów oprogramowania)
- podpisywanie kodu
- zasada najmniejszych uprawnień
- środowisko testowe
- monitorowanie integralności plików
- zarządzanie ryzykiem dostawców (TPRM)
Linkują tutaj
39- OWASP Top 10
- tylna furtka
- NIS2
- koń trojański
- porzucona wtyczka
- kod jednorazowy
- uwierzytelnianie wieloskładnikowe
- Vulnerable and Outdated Components
- credential stuffing
- błąd logiki biznesowej
- podatność w motywie
- zaszyte w kodzie hasło
- CDN
- piracka wtyczka (nulled plugin)
- dropper
- podpis cyfrowy
- typosquatting
- APT
- malvertising
- drive-by download
- bomba logiczna
- OAuth 2.0
- aktualizacja oprogramowania
- zarządzanie ryzykiem dostawców (TPRM)
- modelowanie zagrożeń
- bezpieczne hasła
- vibe coding
- zatruwanie narzędzi
- due diligence
- podpisywanie kodu
- slopsquatting
- akt o cyberodporności
- atak na potok CI/CD
- grupa sponsorowana przez państwo (APT)
- zatruwanie danych / zatruwanie modelu
- SBOM (wykaz komponentów oprogramowania)
- dependency confusion (podmiana zależności)
- sideloading
- OSV