Artefaktforgiftning i GitHub-handlinger importerer skadelig programvare via programvarerørledninger PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Artefaktforgiftning i GitHub-handlinger importerer skadelig programvare via programvarerørledninger

En angriper som sender inn endringer til et åpen kildekodelager på GitHub, kan føre til at nedstrøms programvareprosjekter som inkluderer den nyeste versjonen av en komponent kompilerer oppdateringer med ondsinnet kode.

Det er ifølge sikkerhetsselskapet Legit Security for programvareforsyningskjeden, som sa i et råd publisert 1. desember at denne svakheten i "artefaktforgiftning" kan påvirke programvareprosjekter som bruker GitHub Actions – en tjeneste for automatisering av utviklingspipelines – ved å utløse byggeprosessen når en endring oppdages i en programvareavhengighet. 

Sårbarheten er ikke teoretisk: Legit Security simulerte et angrep på prosjektet som administrerer Rust, noe som fikk prosjektet til å rekompilere ved hjelp av en tilpasset – og ondsinnet – versjon av det populære GCC-programvarebiblioteket, uttalte selskapet i meldingen.

Problemet påvirker sannsynligvis et stort antall åpen kildekode-prosjekter fordi vedlikeholdere vanligvis vil kjøre tester på bidratt kode før de faktisk analyserer koden selv, sier Liav Caspi, teknologisjef i Legit Security.

"Det er et vanlig mønster i dag," sier han. "Mange åpen kildekode-prosjekter i dag, etter en endringsforespørsel, kjører de en haug med tester for å validere forespørselen fordi vedlikeholderen ikke ønsker å måtte gjennomgå koden først. I stedet kjører den automatisk tester.»

Angrepet drar fordel av den automatiserte byggeprosessen gjennom GitHub Actions. Når det gjelder programmeringsspråket Rust, kunne det sårbare mønsteret ha tillatt en angriper å kjøre kode på en privilegert måte som en del av utviklingspipelinen, stjele depothemmeligheter og potensielt tukle med kode, sa Legit Security.

"For å si det enkelt: i en sårbar arbeidsflyt kan enhver GitHub-bruker lage en gaffel som bygger en artefakt," selskapet uttalte i sin rådgivende. "Sett deretter inn denne artefakten i den originale depotoppbyggingsprosessen og modifiser utdataene. Dette er en annen form for et programvareforsyningskjedeangrep, der byggeutgangen blir modifisert av en angriper.»

Sårbarheten muliggjør et angrep tilsvarende angrepet på innsetting av skadelig programvare som var rettet mot CodeCov og, gjennom selskapets programvare, dets nedstrømskunder.

"Manglen på innebygd GitHub-implementering for kommunikasjon med artefakter på tvers av arbeidsflyt førte til at mange prosjekter og GitHub Actions-fellesskapet utviklet usikre løsninger for kommunikasjon på tvers av arbeidsflyter og gjorde denne trusselen svært utbredt," uttalte Legit Security i meldingen.

GitHub bekreftet problemet og betalte en dusør for informasjonen, mens Rust fikset sin sårbare pipeline, uttalte Legit Security.

Kilde: Legit Security

Programvareforsyningskjeden trenger sikkerhet

Sårbarheten er det siste sikkerhetsproblemet som påvirker programvareforsyningskjeder. Industri og offentlige etater har i økende grad forsøkt å styrke sikkerheten til åpen kildekode-programvare og programvare levert som en tjeneste.

I mai 2021 ga for eksempel Biden-administrasjonen ut sin eksekutivordre om forbedring av nasjonens cybersikkerhet, en føderal regel som blant annet gir mandat at regjeringen skal krever grunnleggende sikkerhetsstandarder for all programvare de kjøper. På den private industrisiden har Google og Microsoft lovet milliarder av dollar å styrke sikkerheten i åpen kildekode-økosystemet, som gir koden som omfatter mer enn tre fjerdedeler av den gjennomsnittlige applikasjonens kodebase.

Logisk, men sårbar

Sikkerhetsproblemet tilhører en vanskelig å finne klasse av problemer kjent som logikkproblemer, som inkluderer problemer med tillatelser, potensialet for forked repositories som kan settes inn i en pipeline, og mangel på differensiering mellom forked og base repositories.

Fordi programvareprosjekter ofte bruker automatiserte skript for å sjekke kodeinnsendinger før de videresendes til vedlikeholderne, vil pull-forespørsler bli kjørt gjennom automatisering før noen mennesker sjekker dem for skadelig kode. Selv om automatiseringen sparer tid, bør den også betraktes som en måte for angripere å sette inn ondsinnet kode i rørledningen.

"Når du driver med åpen kildekode-utvikling, er problemet større, fordi du godtar bidrag fra hvem som helst i verden," sier Caspi. "Du utfører ting du ikke kan stole på."

GitHub erkjente problemet og utvidet måtene å ekskludere innsendinger fra eksterne samarbeidspartnere fra å automatisk settes inn i Actions-pipelinen. Firmaet oppdaterte GetArtifact og ListArtifacts APIer med målet om å gi mer informasjon for å avgjøre om en artefakt kan stole på.

"Alle som gjør noe som Rust-prosjektet gjorde - og stoler på innspill fra en tredjepart - da er de fortsatt sårbare," sier Caspi. «Det er et logisk problem. GitHub har nettopp gjort det enklere å skrive et sikrere skript."

Tidstempel:

Mer fra Mørk lesning