Artefaktimürgitus GitHub Actionsis impordib pahavara tarkvaratorude kaudu

Allikasõlm: 1769941

Ründaja, kes esitab GitHubi avatud lähtekoodiga hoidlas muudatusi, võib panna allavoolu tarkvaraprojektid, mis sisaldavad komponendi uusimat versiooni, kompileerima pahatahtliku koodiga värskendusi.

Nii väidab tarkvara tarneahela turbefirma Legit Security, kes ütles 1. detsembril avaldatud nõuandes, et see "artefaktide mürgituse" nõrkus võib mõjutada tarkvaraprojekte, mis kasutavad GitHub Actionsi – arendustorude automatiseerimise teenust – käivitades ehitusprotsessi, kui tarkvarasõltuvuses tuvastatakse muutus. 

Haavatavus ei ole teoreetiline: Legit Security simuleeris rünnakut Rusti haldava projekti vastu, mille tulemusena kompileeriti projekt populaarse GCC tarkvarateegi kohandatud ja pahatahtliku versiooni abil, teatas ettevõte nõuandes.

Probleem mõjutab tõenäoliselt suurt hulka avatud lähtekoodiga projekte, kuna hooldajad testivad tavaliselt lisatud koodi, enne kui nad koodi ise analüüsivad, ütleb Legit Security tehnoloogiajuht Liav Caspi.

"See on tänapäeval tavaline muster," ütleb ta. "Paljud avatud lähtekoodiga projektid käitavad tänapäeval muudatustaotluse korral taotluse kinnitamiseks hulga teste, kuna hooldaja ei taha koodi esmalt üle vaadata. Selle asemel käivitab see automaatselt teste.

Rünnak kasutab GitHub Actionsi kaudu automatiseeritud ehitusprotsessi. Programmeerimiskeele Rust puhul võis haavatav muster võimaldada ründajal käivitada koodi privilegeeritud viisil arendustoru osana, varastada hoidla saladusi ja potentsiaalselt koodi rikkuda, teatas Legit Security.

"Lihtsustatult öeldes: haavatavas töövoos saab iga GitHubi kasutaja luua kahvli, mis loob artefakti," ütles ettevõte. teatas oma nõuandes. "Seejärel sisestage see artefakt algsesse hoidla ehitusprotsessi ja muutke selle väljundit. See on tarkvara tarneahela rünnaku teine ​​vorm, kus ründaja muudab ehitusväljundit.

Haavatavus võimaldab sarnast rünnakut pahavara sisestamise rünnak, mis oli suunatud CodeCovile ja selle ettevõtte tarkvara kaudu selle allkliendid.

"Töövooüleste artefaktide suhtluse jaoks mõeldud GitHubi omarakenduse puudumine pani paljud projektid ja GitHub Actionsi kogukonna välja töötama ebaturvalisi lahendusi töövooüleseks suhtluseks ja muutis selle ohu väga levinud," teatas Legit Security nõuandes.

GitHub kinnitas probleemi ja maksis teabe eest raha, samal ajal kui Rust parandas oma haavatava torujuhtme, teatas Legit Security.

Allikas: Legit Security

Tarkvara tarneahel vajab turvalisust

Haavatavus on uusim turvaprobleem, mis mõjutab tarkvara tarneahelaid. Tööstus- ja valitsusasutused on üha enam püüdnud tugevdada avatud lähtekoodiga tarkvara ja teenusena pakutava tarkvara turvalisust.

Näiteks 2021. aasta mais andis Bideni administratsioon välja oma korralduse rahva küberjulgeoleku parandamise kohta – föderaalreegli, mis lisaks muudele nõuetele kohustab valitsust nõuda mis tahes ostetud tarkvara puhul baasturvastandardeid. Eratööstuse poolel on seda teinud Google ja Microsoft pantinud miljardeid dollareid turvalisuse suurendamiseks avatud lähtekoodiga ökosüsteemis, mis pakub koodi, mida hõlmab enam kui kolmveerandi keskmise rakenduse koodibaasist.

Loogiline, kuid haavatav

Turvaprobleem kuulub raskesti leitavasse probleemide klassi, mida tuntakse loogikaprobleemidena ja mis hõlmavad õigustega seotud probleeme, võimalust, et torujuhtmesse sisestatakse kahvelhoidlaid, ning kahvli- ja baashoidlate eristamise puudumist.

Kuna tarkvaraprojektid kasutavad koodi esitamise kontrollimiseks sageli automaatseid skripte enne nende hooldajatele edastamist, käivitatakse tõmbetaotlused automatiseeritult, enne kui inimene kontrollib neid pahatahtliku koodi suhtes. Kuigi automatiseerimine säästab aega, tuleks seda kaaluda ka viisina, kuidas ründajad võivad pahatahtlikku koodi torujuhtmesse sisestada.

"Kui teete avatud lähtekoodiga arendust, on probleem suurem, kuna võtate vastu panuse kõigilt maailmast, " ütleb Caspi. "Te teostate asju, mida te ei saa usaldada."

GitHub tunnistas probleemi ja laiendas võimalusi väliste kaastöötajate esildiste automaatseks lisamiseks Actions'i kanalisse. Ettevõte värskendas oma GetArtifacti ja ListArtifactsi API-sid eesmärgiga pakkuda rohkem teavet, mis aitab kindlaks teha, kas artefakti saab usaldada.

"Igaüks, kes teeb midagi sellist, nagu Rust projekt tegi, usaldades kolmanda osapoole panust, on endiselt haavatav," ütleb Caspi. "See on loogikaprobleem. GitHub tegi lihtsalt turvalisema skripti kirjutamise lihtsamaks.

Ajatempel:

Veel alates Tume lugemine