Aanval op de PyTorch-infrastructuur, waardoor de repository en releases in gevaar worden gebracht

Er werden details onthuld van de aanval op de infrastructuur die werd gebruikt bij de ontwikkeling van het PyTorch machine learning-framework, waardoor het mogelijk werd om toegangssleutels te extraheren die voldoende waren om willekeurige gegevens in de repository te plaatsen met projectreleases op GitHub en AWS, en om code te vervangen in de hoofdtak van de repository en voeg een achterdeur toe via afhankelijkheden. PyTorch-releasespoofing kan worden gebruikt om grote bedrijven zoals Google, Meta, Boeing en Lockheed Martin aan te vallen die PyTorch in hun projecten gebruiken. Als onderdeel van het Bug Bounty-programma betaalde Meta onderzoekers $ 16250 voor informatie over het probleem.

De essentie van de aanval is de mogelijkheid om uw code uit te voeren op continue integratieservers die reconstructies uitvoeren en taken uitvoeren om nieuwe wijzigingen te testen die naar de repository zijn verzonden. Het probleem is van invloed op projecten die hun eigen externe 'Self-Hosted Runner'-handlers gebruiken met GitHub-acties. In tegenstelling tot traditionele GitHub-acties draaien zelfgehoste handlers niet op de GitHub-infrastructuur, maar op hun eigen servers of op door ontwikkelaars onderhouden virtuele machines.

Door assemblagetaken op uw servers uit te voeren, kunt u de lancering van code organiseren die het interne netwerk van een onderneming kan scannen, de lokale FS kan doorzoeken op coderingssleutels en toegangstokens, en omgevingsvariabelen kan analyseren met parameters voor toegang tot externe opslag of cloudservices. Bij gebrek aan een goede isolatie van de assemblageomgeving kunnen gevonden vertrouwelijke gegevens extern naar aanvallers worden verzonden, bijvoorbeeld via toegang tot externe API’s. Om het gebruik van Self-Hosted Runner door projecten te bepalen, kan de Gato-toolkit worden gebruikt om openbaar toegankelijke workflowbestanden en CI-taakstartlogboeken te analyseren.

In PyTorch en veel andere projecten die de Self-Hosted Runner gebruiken, mogen alleen ontwikkelaars waarvan de wijzigingen eerder door vakgenoten zijn beoordeeld en opgenomen in de codebase van het project, bouwtaken uitvoeren. Als u de status 'contributor' heeft bij gebruik van de standaardinstellingen in de repository, kunt u GitHub Actions-handlers starten bij het verzenden van pull-aanvragen en dienovereenkomstig uw code uitvoeren in elke GitHub Actions Runner-omgeving die is gekoppeld aan de repository of de organisatie die toezicht houdt op het project.

De link naar de status "bijdrager" bleek gemakkelijk te omzeilen - het volstaat om eerst een kleine wijziging in te dienen en te wachten tot deze in de codebasis wordt geaccepteerd, waarna de ontwikkelaar automatisch de status van een actieve deelnemer ontvangt, waarvan de pull-aanvragen zonder afzonderlijke verificatie in de CI-infrastructuur mogen worden getest. Om de status van actieve ontwikkelaar te bereiken, omvatte het experiment kleine cosmetische wijzigingen om typefouten in de documentatie te corrigeren. Om toegang te krijgen tot de repository en opslag van PyTorch-releases, onderschepte de aanval tijdens het uitvoeren van code in de “Self-Hosted Runner” het GitHub-token dat werd gebruikt om toegang te krijgen tot de repository vanuit bouwprocessen, evenals de AWS-sleutels die werden gebruikt om de build-resultaten op te slaan .

Het probleem is niet specifiek voor PyTorch en treft veel andere grote projecten die de standaardinstellingen gebruiken voor "Self-Hosted Runner" in GitHub Actions. Er werd bijvoorbeeld melding gemaakt van de implementatie van soortgelijke aanvallen om een ​​achterdeur te installeren in enkele grote cryptocurrency-wallets en blockchain-projecten met een kapitalisatie van een miljard dollar, wijzigingen aan te brengen in de releases van Microsoft Deepspeed en TensorFlow, een van de CloudFlare-applicaties in gevaar te brengen en ook code op een computer in het Microsoft-netwerk. Details over deze incidenten zijn nog niet bekendgemaakt. In het kader van de bestaande bugbounty-programma's hebben onderzoekers meer dan twintig aanvragen ingediend voor beloningen ter waarde van enkele honderdduizenden dollars.

Bron: opennet.ru

Voeg een reactie