Zephyrnet-logo

Artefactvergiftiging in GitHub-acties Importeert malware via softwarepijplijnen

Datum:

Een aanvaller die wijzigingen aanbrengt in een open source-repository op GitHub, kan ertoe leiden dat downstream-softwareprojecten die de nieuwste versie van een component bevatten, updates met schadelijke code compileren.

Dat is volgens Legit Security, een beveiligingsbedrijf voor de toeleveringsketen van software, dat in een op 1 december gepubliceerd advies zei dat deze zwakte van "artefactenvergiftiging" softwareprojecten kan beïnvloeden die GitHub Actions gebruiken - een service voor het automatiseren van ontwikkelingspijplijnen - door het bouwproces te activeren wanneer er wordt een wijziging gedetecteerd in een softwareafhankelijkheid. 

De kwetsbaarheid is niet theoretisch: Legit Security simuleerde een aanval op het project dat Rust beheert, waardoor het project opnieuw werd gecompileerd met behulp van een aangepaste - en kwaadaardige - versie van de populaire GCC-softwarebibliotheek, aldus het bedrijf in het advies.

Het probleem is waarschijnlijk van invloed op een groot aantal open source-projecten, omdat beheerders doorgaans tests uitvoeren op ingeleverde code voordat ze de code daadwerkelijk zelf analyseren, zegt Liav Caspi, chief technology officer van Legit Security.

"Het is tegenwoordig een algemeen patroon", zegt hij. “Veel open source-projecten voeren tegenwoordig na een wijzigingsverzoek een aantal tests uit om het verzoek te valideren, omdat de beheerder niet eerst de code wil herzien. In plaats daarvan voert het automatisch tests uit.”

De aanval maakt gebruik van het geautomatiseerde bouwproces via GitHub Actions. In het geval van de Rust-programmeertaal zou het kwetsbare patroon een aanvaller in staat kunnen hebben gesteld om code op een geprivilegieerde manier uit te voeren als onderdeel van de ontwikkelingspijplijn, repository-geheimen te stelen en mogelijk met code te knoeien, zei Legit Security.

"Simpel gezegd: in een kwetsbare workflow kan elke GitHub-gebruiker een vork maken die een artefact bouwt", aldus het bedrijf. vermeld in zijn advies. “Injecteer dit artefact vervolgens in het oorspronkelijke bouwproces van de repository en wijzig de uitvoer ervan. Dit is een andere vorm van een software supply chain-aanval, waarbij de output van de build wordt aangepast door een aanvaller.”

De kwetsbaarheid maakt een aanval vergelijkbaar met de malware-insertie-aanval die gericht was op CodeCov en, via de software van dat bedrijf, zijn downstream-klanten.

"[D]e gebrek aan native GitHub-implementatie voor cross-workflow-artefactcommunicatie leidde ertoe dat veel projecten en de GitHub Actions-gemeenschap onveilige oplossingen voor cross-workflow-communicatie ontwikkelden, waardoor deze dreiging zeer wijdverbreid was", aldus Legit Security in het advies.

GitHub bevestigde het probleem en betaalde een premie voor de informatie, terwijl Rust zijn kwetsbare pijplijn repareerde, aldus Legit Security.

GitHub-artefactvergiftiging

Bron: legitieme beveiliging

Software Supply Chain heeft beveiliging nodig

De kwetsbaarheid is het nieuwste beveiligingsprobleem dat de toeleveringsketens van software treft. De industrie en overheidsinstanties hebben steeds meer geprobeerd de beveiliging van open source software en software die als een dienst wordt aangeboden, te versterken.

In mei 2021 heeft de regering-Biden bijvoorbeeld haar uitvoerend bevel over het verbeteren van de cyberbeveiliging van de natie vrijgegeven, een federale regel die onder andere voorschrijft dat de regering zal basisbeveiligingsnormen vereisen voor alle software die het koopt. Aan de kant van de particuliere sector hebben Google en Microsoft miljarden toegezegd om de veiligheid in het open source-ecosysteem te versterken, dat de code levert die omvat meer dan driekwart van de codebase van de gemiddelde applicatie.

Logisch, maar kwetsbaar

Het beveiligingsprobleem behoort tot een moeilijk te vinden klasse van problemen die bekend staan ​​als logische problemen, waaronder problemen met machtigingen, de mogelijkheid dat gevorkte repositories in een pijplijn worden ingevoegd en een gebrek aan onderscheid tussen gevorkte en basisrepository's.

Omdat softwareprojecten vaak geautomatiseerde scripts gebruiken om code-inzendingen te controleren voordat ze worden doorgestuurd naar de beheerders, worden pull-aanvragen geautomatiseerd uitgevoerd voordat iemand ze controleert op schadelijke code. Hoewel de automatisering tijd bespaart, moet het ook worden beschouwd als een manier voor aanvallers om kwaadaardige code in de pijplijn te plaatsen.

"Als je aan open source-ontwikkeling doet, is het probleem groter, omdat je bijdragen van iedereen ter wereld accepteert", zegt Caspi. "Je voert dingen uit die je niet kunt vertrouwen."

GitHub erkende het probleem en breidde de manieren uit om inzendingen van externe medewerkers uit te sluiten van automatische invoeging in de Actions-pijplijn. Het bedrijf heeft zijn GetArtifact- en ListArtifacts-API's bijgewerkt met als doel meer informatie te verstrekken om te helpen bepalen of een artefact kan worden vertrouwd.

"Iedereen die zoiets doet als het Rust-project - vertrouwend op de input van een derde partij - is nog steeds kwetsbaar", zegt Caspi. “Het is een logisch probleem. GitHub heeft het zojuist gemakkelijker gemaakt om een ​​veiliger script te schrijven.”

spot_img

Mobile

Laatste intelligentie

spot_img