Operace probíhala přibližně mezi 11:36 a 17:48 UTC, což naznačuje vysoce automatizovaný systém navržený ke kompromitaci velkého množství repozitářů dříve, než si správci změn všimli.
Kampaň spoléhala na automatizaci a sociální maskování, aby škodlivé commity vypadaly jako běžná údržba CI.
Útočníci vytvořili jednorázové GitHub účty s náhodnými uživatelskými jmény a padělali identity automatizace, jako například:
Tyto identity způsobily, že commity vypadaly jako z rutinních automatizačních systémů, nikoli od lidského útočníka.
Údaje o autorství commitů a zprávy byly vytvořeny tak, aby vypadaly legitimně – často připomínaly běžné aktualizace workflow nebo úpravy konfigurace CI. To pomohlo commitům zapadnout do běžné vývojářské aktivity a oddálilo podezření.
Kampaň se zaměřila na repozitáře, kde byla ochrana větví slabá nebo chyběla. Bez povinných revizí pull requestů nebo omezení, kdo může upravovat workflow, mohli útočníci nahrát změny workflow přímo do výchozí větve repozitáře.
Každý škodlivý commit vložil soubor GitHub Actions workflow obsahující payload v Base64 kódování. Když se CI pipeline spustila, skript se provedl v rámci GitHub Actions runneru a začal získávat přihlašovací údaje.
Tento design znamenal, že útok často zůstal nečinný až do příštího spuštění CI, které workflow aktivovalo.
Skript vložený do workflow byl navržen ke shromažďování citlivých dat z CI prostředí a jejich odesílání na infrastrukturu ovládanou útočníky.
Mezi hlášené cíle patřily:
Malware shromažďoval proměnné prostředí, informace o systému a tajemství přístupná CI runneru, než je odeslal na command-and-control server.
Protože CI pipeline často obsahují nasazovací přihlašovací údaje, může kompromitace sestavovacího prostředí otevřít cestu k cloudové infrastruktuře, balíčkovým registrům a produkčním nasazením.
Hlavním cílem payloadu Megalodon byly OIDC tokeny GitHub Actions.
Moderní CI/CD pipeline často používají OpenID Connect (OIDC) federaci k autentizaci k cloudovým providerům bez ukládání dlouhodobých přihlašovacích údajů. Místo toho workflow požádá o krátkodobý identitní token, který cloudoví provideré vymění za dočasné přístupové údaje.
Tento přístup zvyšuje bezpečnost odstraněním statických API klíčů nebo přihlašovacích údajů service accountů. Představuje však nové riziko: pokud útočník může token ukrást během provádění pipeline, může dočasně zosobnit identitu CI úlohy.
Protože cloudové identitní systémy těmto tokenům důvěřují, lze ukradený token potenciálně vyměnit za dočasný přístup do cloudu se stejnými oprávněními, jaká má nasazovací pipeline.
To znamená, že kompromitované CI workflow může vést k:
I když OIDC tokeny rychle vyprší, oprávnění k nim připojená mohou útočníkům poskytnout krátkodobý, ale vysoce hodnotný přístup.
Kampaň Megalodon ilustruje posun v útocích na dodavatelský řetězec od modifikace aplikačního kódu směrem ke kompromitaci automatizační infrastruktury.
Tím, že se útočníci zaměřili na CI workflow namísto zdrojového kódu, mohou:
Protože tisíce repozitářů spoléhají na CI pipeline s mocnými přihlašovacími údaji, může jediná úprava workflow odhalit tajemství napříč mnoha navazujícími systémy.
Přibližně ve stejné době GitHub oznámil samostatný bezpečnostní incident týkající se otráveného Visual Studio Code rozšíření nainstalovaného na zařízení zaměstnance. Toto škodlivé rozšíření umožnilo útočníkům přístup k přibližně 3 800 interním GitHub repozitářům, než byla kompromitace zadržena.
Tento únik byl vysledován ke kompromitovanému vývojářskému prostředí a zahrnoval krádež přihlašovacích údajů prostřednictvím trojanizovaného rozšíření distribuovaného přes VS Code marketplace.
Některé bezpečnostní zprávy si všímají podobností v načasování a taktice mezi tímto incidentem a jinými útoky na dodavatelský řetězec zaměřenými na vývojářské nástroje. Veřejné důkazy však nepotvrdily, že by interní únik GitHubu přímo umožnil kampaň Megalodon.
Prozatím jsou oba incidenty nejlépe chápány jako samostatné, ale současné události ohrožující bezpečnost dodavatelského řetězce, které postihly vývojářský ekosystém.
Megalodon demonstruje, jak rychle může automatizace škálovat útok na dodavatelský řetězec napříč tisíci repozitářů. Kombinací zosobněných botů, automatizovaných commitů a otrávených CI workflow útočníci proměnili běžnou sestavovací infrastrukturu v systém pro krádež přihlašovacích údajů.
Incident posílil několik obranných priorit pro softwarové týmy:
S tím, jak vývojové pipeline stále častěji řídí cloudová nasazení a produkční infrastrukturu, se bezpečnost CI/CD workflow stala kritickou součástí obrany softwarového dodavatelského řetězce.