Atak na Trivy rozszerza zasięg: złośliwe obrazy Docker, kradzież sekretów i zagrożenie dla Kubernetes - Security Bez Tabu

Atak na Trivy rozszerza zasięg: złośliwe obrazy Docker, kradzież sekretów i zagrożenie dla Kubernetes

Cybersecurity news

Wprowadzenie do problemu / definicja

Ataki na łańcuch dostaw oprogramowania należą dziś do najgroźniejszych zagrożeń dla środowisk DevSecOps. Najnowszy incydent związany z Trivy pokazuje, że kompromitacja popularnego narzędzia bezpieczeństwa może błyskawicznie przełożyć się na przejęcie pipeline’ów CI/CD, wyciek sekretów oraz dalszą propagację złośliwego kodu do środowisk kontenerowych i klastrów Kubernetes.

W tym przypadku problem nie dotyczy wyłącznie pojedynczego artefaktu, lecz całego zaufanego łańcucha dystrybucji, obejmującego obrazy Docker, repozytoria GitHub oraz GitHub Actions. To szczególnie niebezpieczne, ponieważ Trivy jest powszechnie wykorzystywany do skanowania podatności, konfiguracji i sekretów, a więc działa w miejscach, gdzie ma dostęp do wrażliwych danych.

W skrócie

Incydent objął trojanizację wybranych wersji Trivy publikowanych jako obrazy Docker oraz wcześniejsze naruszenie powiązanych komponentów GitHub Actions. Złośliwe artefakty zawierały infostealera, którego celem była kradzież danych uwierzytelniających, zmiennych środowiskowych i innych sekretów obecnych w środowiskach deweloperskich oraz CI/CD.

  • Złośliwe wersje Trivy mogły przechwytywać sekrety wykorzystywane w pipeline’ach.
  • Atak wykorzystał zaufanie do popularnego narzędzia bezpieczeństwa.
  • W dalszej fazie kampanii odnotowano działania typu worm oraz aktywność destrukcyjną wymierzoną w Kubernetes.
  • Najbardziej narażone były organizacje automatycznie pobierające najnowsze tagi lub korzystające z workflow bez twardego przypięcia wersji.

Kontekst / historia

Trivy to otwartoźródłowy skaner bezpieczeństwa szeroko używany w procesach CI/CD, analizie obrazów kontenerowych i audycie zasobów Kubernetes. Ze względu na swoją rolę często działa z dostępem do rejestrów kontenerowych, repozytoriów kodu, tokenów chmurowych oraz danych wykorzystywanych podczas budowania i wdrażania aplikacji.

Według ujawnionych informacji ostatnią znaną czystą wersją obrazu Trivy w Docker Hub była 0.69.3. Z kolei tagi 0.69.4, 0.69.5 i 0.69.6 zostały uznane za złośliwe i usunięte. Równolegle wskazano również na wcześniejsze naruszenie komponentów GitHub Actions wykorzystywanych do uruchamiania Trivy w workflow, co znacząco poszerzyło zasięg incydentu.

Badacze powiązali kampanię z grupą TeamPCP, która miała używać skradzionych poświadczeń do rozszerzania dostępu w środowiskach ofiar. Doniesienia o kompromitacji dodatkowych repozytoriów i komponentów sugerują, że incydent mógł mieć dłuższy i bardziej złożony przebieg niż początkowo zakładano.

Analiza techniczna

Technicznie mamy do czynienia z klasycznym atakiem na software supply chain, ale dostosowanym do realiów środowisk cloud-native. Atakujący mieli uzyskać możliwość publikacji lub podmiany zaufanych artefaktów, a następnie osadzić w nich kod odpowiedzialny za kradzież danych. Ponieważ Trivy działa często wewnątrz pipeline’ów z szerokimi uprawnieniami, skutki takiej kompromitacji są wyjątkowo poważne.

W przypadku złośliwych obrazów Docker mechanizm infekcji polegał na uruchomieniu trojanizowanej wersji skanera zamiast legalnego komponentu. Taki obraz mógł wykonywać dodatkowe operacje, w tym zbierać informacje o środowisku, wykradać sekrety oraz komunikować się z infrastrukturą kontrolowaną przez napastników. Szczególnie alarmującym sygnałem były tagi opublikowane bez odpowiadających im releasów i tagów w repozytorium kodu.

W warstwie GitHub Actions opisano scenariusz, w którym atakujący mogli zmienić znaczenie zaufanych tagów wersji i skierować workflow do uruchomienia złośliwego kodu. To krytyczny problem, ponieważ wiele organizacji nadal odwołuje się do akcji po tagu wersji, a nie po niezmiennym commit SHA.

Kolejna faza kampanii miała charakter post-exploitation. Przechwycone sekrety mogły zostać wykorzystane do dalszego kompromitowania usług, pakietów i środowisk developerskich. Badacze wskazali także na komponent typu worm, określany jako CanisterWorm, zdolny do samopropagacji. W wariancie wymierzonym w Kubernetes malware miało wdrażać uprzywilejowane DaemonSety, umożliwiające sabotaż, utrzymanie dostępu i dalszy ruch boczny w infrastrukturze.

Dodatkowo raportowano wykorzystanie skradzionych kluczy SSH oraz skanowanie sieci lokalnych pod kątem otwartych interfejsów Docker API na porcie 2375. To pokazuje, że atak nie kończył się na kradzieży danych, lecz był zaprojektowany jako wieloetapowa operacja nastawiona na szybkie rozszerzanie zasięgu.

Konsekwencje / ryzyko

Najpoważniejszym skutkiem tego incydentu jest utrata zaufania do narzędzia, które samo pełni funkcję kontrolną w procesie bezpieczeństwa. Jeżeli zainfekowany skaner działał w pipeline’ie, wyciekowi mogły ulec tokeny GitHub, dane dostępowe do rejestrów kontenerowych, poświadczenia chmurowe, sekrety aplikacyjne oraz materiały wykorzystywane do podpisywania buildów.

Ryzyko dla środowisk Kubernetes jest jeszcze większe. Uprzywilejowane kontenery mogą umożliwiać dostęp do hosta, przejęcie dodatkowych sekretów, modyfikację usług systemowych i trwałe osadzenie malware. W wariancie destrukcyjnym możliwe są także przerwy w działaniu klastra, utrata danych oraz sabotaż operacyjny.

Nawet jeśli organizacja nie zaobserwowała bezpośrednich szkód, samo uruchomienie złośliwego obrazu Trivy należy traktować jako potencjalne pełne naruszenie bezpieczeństwa. Oznacza to konieczność przeglądu integralności pipeline’ów, analizy logów oraz rotacji wszystkich dostępnych sekretów.

Rekomendacje

Organizacje korzystające z Trivy powinny w pierwszej kolejności ustalić, czy pobierały lub uruchamiały obrazy oznaczone tagami 0.69.4, 0.69.5 lub 0.69.6. Należy też zweryfikować, czy workflow wykorzystywały naruszone warianty powiązanych GitHub Actions. Jeśli tak, trzeba założyć możliwość wycieku sekretów i rozpocząć kontrolowaną rotację poświadczeń.

  • Przypinać GitHub Actions do commit SHA zamiast do ruchomych tagów wersji.
  • Pinować obrazy kontenerowe do digestów, a nie tylko do tagów semantycznych.
  • Weryfikować integralność artefaktów, podpisy i provenance przed użyciem w pipeline’ach.
  • Przeanalizować logi CI/CD pod kątem nietypowych połączeń sieciowych i zmian tagów.
  • Ograniczyć uprawnienia kont botów i tokenów usługowych do absolutnego minimum.
  • Segmentować runnery CI/CD i odseparować je od środowisk produkcyjnych.
  • Monitorować Kubernetes pod kątem uprzywilejowanych DaemonSetów, anomalii systemowych i nietypowych restartów węzłów.
  • Zabezpieczyć lub całkowicie zablokować dostęp do niezabezpieczonych interfejsów Docker API.

Z perspektywy bezpieczeństwa długofalowego incydent ten potwierdza, że narzędzia używane w procesie budowania i skanowania muszą być traktowane z taką samą ostrożnością jak systemy produkcyjne. Każdy element automatyzacji, który ma dostęp do sekretów, może stać się punktem wejścia dla ataku o bardzo dużym promieniu rażenia.

Podsumowanie

Kompromitacja Trivy i powiązanych komponentów to poważny przykład nowoczesnego ataku na software supply chain w środowiskach cloud-native. Złośliwe obrazy Docker, nadużycie zaufanych tagów GitHub Actions, kradzież sekretów oraz późniejsza aktywność typu worm i działania destrukcyjne wobec Kubernetes pokazują, jak szybko lokalny incydent może przekształcić się w wieloetapową kampanię obejmującą cały ekosystem developerski.

Dla zespołów bezpieczeństwa najważniejsze wnioski są jednoznaczne: nie ufać ruchomym tagom, minimalizować uprawnienia kont usługowych, stale monitorować integralność narzędzi w pipeline’ach oraz przyjmować, że kompromitacja jednego komponentu automatyzacji może prowadzić do przejęcia znacznie większej części infrastruktury.

Źródła

  1. The Hacker News — https://thehackernews.com/2026/03/trivy-hack-spreads-infostealer-via.html
  2. GitHub – aquasecurity/trivy — https://github.com/aquasecurity/trivy
  3. GitHub – aquasecurity/trivy-action — https://github.com/aquasecurity/trivy-action