
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
Megalodon to nazwa zautomatyzowanej kampanii malware wymierzonej w łańcuch dostaw oprogramowania, której celem stały się repozytoria GitHub oraz procesy CI/CD oparte na GitHub Actions. Mechanizm ataku polegał na wstrzykiwaniu lub podmienianiu plików workflow zapisanych w YAML, co pozwalało uruchamiać złośliwy kod w zaufanym środowisku budowania i przejmować wrażliwe dane używane przez zespoły deweloperskie.
Największe zagrożenie wynika z faktu, że atak nie musi wykorzystywać klasycznej luki w aplikacji. Wystarczy przejęcie lub nadużycie zaufania do automatyzacji, aby uzyskać dostęp do sekretów CI/CD, tokenów chmurowych, kluczy SSH czy poświadczeń wykorzystywanych podczas publikacji artefaktów.
W skrócie
Kampania Megalodon została zaobserwowana 18 maja 2026 roku i według analiz objęła ponad 5,5 tys. repozytoriów w ciągu około sześciu godzin. Atakujący używali fałszywych kont oraz spreparowanych tożsamości autorów commitów, aby wprowadzać złośliwe workflowy GitHub Actions.
- Atak był wymierzony w repozytoria GitHub i procesy CI/CD.
- Złośliwe workflowy eksfiltrowały sekrety do infrastruktury kontrolowanej przez napastników.
- Wykryto wariant masowy oraz wariant bardziej ukryty, oparty na ręcznym wyzwalaniu workflow.
- Incydent pokazał, jak łatwo legalny pipeline może stać się narzędziem dalszej kompromitacji.
Kontekst / historia
Megalodon wpisuje się w rosnącą falę ataków na software supply chain, w których celem nie jest już wyłącznie kod aplikacji, lecz cała otoczka procesu wytwórczego. W 2026 roku szczególnie widoczne stały się kampanie ukierunkowane na konta deweloperów, zaufane repozytoria open source i pipeline’y odpowiedzialne za budowanie oraz publikowanie pakietów.
W analizowanych przypadkach badacze zwracali uwagę, że kompromitacja nie kończyła się na samym repozytorium. Skażony kod lub artefakty mogły trafiać dalej do użytkowników downstream, ponieważ były publikowane w ramach legalnego procesu release przez uprawnionych maintainerów. To pokazuje, że skutki ataku na CI/CD mogą rozlewać się daleko poza pojedynczy projekt.
Analiza techniczna
Techniczna istota kampanii sprowadzała się do modyfikacji plików w katalogu .github/workflows. GitHub Actions uruchamia workflowy w odpowiedzi na zdarzenia takie jak push, pull request czy ręczne wywołanie. Oznacza to, że każda nieautoryzowana zmiana workflow może bezpośrednio skutkować wykonaniem poleceń w środowisku CI.
Badacze opisali dwa główne warianty złośliwego ładunku. Pierwszy dodawał nowy workflow identyfikowany jako SysDiag, uruchamiany przy zdarzeniach push i wybranych operacjach związanych z pull requestami. Taki model zwiększał prawdopodobieństwo automatycznego wykonania malware bez dodatkowego działania ze strony maintainerów.
Drugi wariant był bardziej dyskretny. Polegał na zastępowaniu istniejących workflowów wersją wykorzystującą wyzwalacz workflow_dispatch. Taki mechanizm może przez dłuższy czas pozostawać niewidoczny w standardowej aktywności projektu, a jednocześnie działać jak uśpione tylne wejście, uruchamiane ręcznie lub przez API.
Ładunki zawierały zakodowane polecenia shell odpowiedzialne za eksfiltrację danych z kontekstu wykonania workflow. Celem były przede wszystkim sekrety CI/CD, tokeny dostępowe do usług chmurowych, klucze SSH, tokeny OIDC oraz inne wartości przechowywane jako zmienne środowiskowe lub nadane uprawnienia workflow. W niektórych przypadkach złośliwe definicje żądały dodatkowych uprawnień, co zwiększało potencjał dalszej eskalacji i nadużyć.
Z perspektywy zespołów bezpieczeństwa ważne są również artefakty operacyjne pozostawione przez kampanię. Należały do nich fałszywe nazwy botów, spreparowane adresy e-mail autorów commitów, powtarzalne komunikaty commitów oraz charakterystyczne pliki YAML dodawane do workflowów. Takie wskaźniki mogą być przydatne zarówno w threat huntingu, jak i retrospektywnej analizie historii zmian.
Konsekwencje / ryzyko
Najpoważniejszym skutkiem kampanii Megalodon jest przejęcie sekretów wykorzystywanych przez pipeline’y, a więc danych dających dostęp do kluczowych zasobów organizacji. Mogą to być poświadczenia do rejestrów kontenerów, środowisk chmurowych, prywatnych repozytoriów, systemów wdrożeniowych oraz usług zewnętrznych używanych w procesie developmentu.
W praktyce pojedynczy złośliwy workflow może otworzyć drogę do ruchu bocznego, sabotażu procesu release, kradzieży kodu źródłowego, publikacji skażonych pakietów albo trwałego osadzenia się napastnika w łańcuchu dostaw. Szczególnie wysokie ryzyko dotyczy organizacji, które utrzymują szerokie uprawnienia domyślne dla GitHub Actions, nie egzekwują przeglądu zmian w workflowach i przechowują sekrety długoterminowe.
- Ujawnienie poświadczeń do chmury i systemów wdrożeniowych.
- Ryzyko publikacji zainfekowanych artefaktów do rejestrów i repozytoriów.
- Możliwość dalszej eskalacji uprawnień z wykorzystaniem tokenów tożsamości.
- Trudność pełnego oczyszczenia środowiska po eksfiltracji sekretów.
Istotnym problemem jest również pozorne poczucie rozwiązania incydentu po usunięciu złośliwego pliku z repozytorium. Jeżeli workflow zdążył się wykonać i wyprowadzić sekrety, samo cofnięcie commitu nie zamyka sprawy. Wszystkie potencjalnie ujawnione poświadczenia należy traktować jako skompromitowane i odtworzyć.
Rekomendacje
Organizacje korzystające z GitHub powinny potraktować repozytoria, workflowy i konta maintainerów jako zasoby krytyczne. Ochrona procesu CI/CD musi być porównywalna z ochroną systemów produkcyjnych, ponieważ to właśnie pipeline coraz częściej staje się dogodnym punktem wejścia dla atakujących.
- Przeprowadzić natychmiastowy przegląd katalogu
.github/workflowspod kątem nowych lub zmodyfikowanych plików. - Zweryfikować historię commitów pod kątem fałszywych botów, nietypowych autorów i podejrzanych komunikatów.
- Unieważnić i odtworzyć sekrety dostępne dla potencjalnie skażonych pipeline’ów.
- Ograniczyć uprawnienia GitHub Actions zgodnie z zasadą najmniejszych uprawnień.
- Wymusić code review dla każdej zmiany dotyczącej workflowów automatyzacji.
- Preferować krótkotrwałe mechanizmy uwierzytelniania zamiast statycznych sekretów.
- Monitorować połączenia wychodzące z runnerów CI/CD i analizować anomalie.
- Weryfikować integralność artefaktów wydanych w czasie incydentu.
- Wzmocnić ochronę kont maintainerów poprzez MFA i kontrolę sesji.
Podsumowanie
Megalodon to wyraźny przykład nowoczesnego ataku na łańcuch dostaw oprogramowania, w którym kluczowym celem nie jest sama aplikacja, lecz zaufana automatyzacja otaczająca proces developmentu. Wstrzyknięcie złośliwego workflow do GitHub Actions pozwala wykorzystać legalną infrastrukturę CI/CD do kradzieży sekretów i dalszej kompromitacji środowisk.
Dla zespołów bezpieczeństwa oznacza to konieczność stałego monitorowania workflowów, kontroli zmian w repozytoriach i ograniczania zaufania do automatycznych procesów build i release. Incydent z Megalodon pokazuje, że nawet poprawnie działający pipeline może stać się nośnikiem ataku, jeśli zabraknie nadzoru nad jego integralnością.
Źródła
- Dark Reading: Feeding Frenzy: 'Megalodon’ Malware Infects Thousands of GitHub Repos — https://www.darkreading.com/application-security/megalodon-malware-infects-thousands-github-repos
- SafeDep: Megalodon: Mass GitHub Repo Backdooring via CI Workflows — https://safedep.io/megalodon-mass-github-repo-backdooring-ci-workflows
- OX Security: Megalodon: CI/CD Malware Spreading Across GitHub Repositories — https://www.ox.security/blog/megalodon-cicd-malware-github/
- GitHub Docs: Understanding GitHub Actions — https://docs.github.com/es/actions/get-started/understand-github-actions
- GitHub Docs: Manually running a workflow — https://docs.github.com/enterprise-cloud%40latest/actions/how-tos/managing-workflow-runs-and-deployments/managing-workflow-runs/manually-running-a-workflow