Beveiligingsonderzoekers waarschuwen dat een enorme supply chain-aanval genaamd "Megalodon" malware in meer dan 5.500 GitHub-repository's heeft geïnjecteerd via geautomatiseerde commits. De aanval maakte misbruik van GitHub Actions-workflows om stealth-payloads in de continue integratieomgeving te plaatsen, gericht op gevoelige informatie zoals inloggegevens, CI-geheimen, sleutels en tokens.

Volgens een rapport van beveiligingsbedrijf SafeDep vertrouwde Operatie Meg op kwaadaardige GitHub Actions-workflows die in batches in de doelrepository's werden geïnjecteerd met valse geautomatiseerde commits, waardoor in slechts zes uur een geconcentreerde golf van aanvallen ontstond. SafeDep zei dat de aanvallers op 18 mei gedurende een periode van zes uur meer dan 5.700 kwaadaardige commits naar getroffen repository's hebben gepusht, waarbij uiteindelijk 5.561 onafhankelijke repository's werden getroffen.
Bij de aanval werden ten minste twee verschillende ladingen gebruikt. Eén van hen zal een nieuwe workflow in het magazijn toevoegen, zodat deze automatisch wordt geactiveerd telkens wanneer er een push- of pull-verzoek wordt gedaan, waardoor tijdens het ontwikkel- en bouwproces kwaadaardige code blijft worden uitgevoerd. De andere vervangt de triggercondities van de bestaande workflow en transformeert deze in een ‘slaapachterdeur’, die een wekkanaal op afstand reserveert voor aanvallers zonder het dagelijkse proces te beïnvloeden.
Zodra de doelomgeving is geïnfecteerd, zal de kwaadaardige workflow proberen CI-omgevingsvariabelen, AWS-inloggegevens, GCP-toegangstokens, Azure-inloggegevens, SSH-privésleutels, Docker- en Kubernetes-configuraties, verschillende API-sleutels, databaseverbindingsreeksen en tientallen verschillende soorten gevoelige informatie te stelen, zoals GitHub Actions-tokens en GitLab CI/CD-tokens. Zodra deze informatie uitlekt, kan deze worden gebruikt om de cloudinfrastructuur, codebases en productieomgevingen verder in gevaar te brengen.
Volgens SafeDep werd "Megalodon" ontdekt tijdens het analyseren van het open source chat- en chatbotplatform Tiledesk. Onderzoekers merkten dat het project tussen 19 en 21 mei achtereenvolgens geknoeide kwaadaardige versies van NPM-pakketten vrijgaf, waardoor een grootschalige inbraak in magazijnen erachter werd blootgelegd. Het NPM-account dat verband houdt met de aanval heet eljohnny en het e-mailadres van het account is [email protected]. Het heeft zowel een schone versie 2.18.5 als een besmette versie uitgebracht.
SafeDep wees erop dat de aanvaller niet rechtstreeks controle had over het NPM-account zelf, maar begon met het compromitteren van de bijbehorende GitHub-repository. Nadat de broncode was "vergiftigd", heeft de beheerder onbewust kwaadaardige pakketten uit de geïnfecteerde code vrijgegeven, wat ook het typische risico benadrukte dat "er stilletjes met de upstream-bron wordt geknoeid" bij aanvallen op de toeleveringsketen.
Bij het traceren van de bron van de aanval ontdekte SafeDep dat de kwaadwillige inzending die de infectieketen in gang zette, ook op 18 mei plaatsvond, en dat de auteur van de inzending werd geïdentificeerd als 'build-bot'. Na het doorzoeken van de relevante mailbox ontdekten de onderzoekers dat er die dag in totaal 2878 inzendingen via deze mailbox waren gedaan, en nog eens 2841 inzendingen via een andere gerelateerde mailbox. In totaal werden op dezelfde dag 5718 kwaadwillige inzendingen voltooid.
In termen van technische middelen heeft de aanvaller het workflowtype 'workflow_dispatch' in GitHub Actions gekozen om de achterdeur te activeren. Deze triggermethode kan worden aangeroepen via de GitHub API, en het gestolen GitHub-token kan worden gebruikt om de slapende achterdeur op elk gewenst moment later op afstand te activeren. Belangrijker nog is dat dit triggertype is vrijgesteld van de ‘anti-recursieve regels’ van GitHub en niet wordt beperkt door te voorkomen dat ‘gebeurtenissen die door tokens worden geactiveerd, opnieuw nieuwe workflows genereren’, waardoor aanvallers meer speelruimte krijgen.
Terwijl het ‘Megalodon’-incident aan het licht kwam, probeerde het ecosysteemniveau ook soortgelijke bedreigingen het hoofd te bieden. NPM heeft onlangs aangekondigd dat het alle fijnmazige toegangstokens heeft ongeldig verklaard die tweefactorauthenticatie omzeilen en schrijfrechten hebben om supply chain-aanvallen vergelijkbaar met "Mini Shai-Hulud" te voorkomen. Beveiligingsbedrijf Ox Security is van mening dat deze maatregel het risico op accountkaping helpt verkleinen, maar het onderliggende risico niet echt wegneemt.
Ox Security waarschuwt dat zolang platforms toestaan dat willekeurige code wordt geüpload en gedistribueerd zonder strenge controle, de verspreiding van kwaadaardige code via gecompromitteerde opslagplaatsen zal blijven opduiken. Het bedrijf wees erop dat supply chain-aanvallen een nieuw tijdperk ingaan. De eerdere aanval van TeamPCP op GitHub was nog maar het begin. In de toekomst zullen golven van aanvallen gericht op de ontwikkelaarsgemeenschap volgen als een "tsunami".
Naast dit incident zijn er ook andere recente gevallen rond de beveiliging van de toeleveringsketen aan het licht gekomen, waaronder het gebruik van TanStack-aanvallen om Grafana-code en -gegevens te stelen, en meerdere grootschalige vergiftigingsoperaties gericht op NPM-pakketten. Deze opeenvolgende incidenten tonen aan dat kwetsbaarheden in de softwaretoeleveringsketen en een gebrek aan zichtbaarheid prominente problemen blijven waarmee de hele sector wordt geconfronteerd.