Artefact Poisoning in GitHub Actions tuo haittaohjelmia ohjelmistoputkien kautta

Lähdesolmu: 1769941

Hyökkääjä, joka lähettää muutoksia avoimen lähdekoodin arkistoon GitHubissa, voi saada myöhemmän vaiheen ohjelmistoprojektit, jotka sisältävät komponentin uusimman version, kokoamaan päivityksiä haitallisella koodilla.

Näin sanoo ohjelmistojen toimitusketjun tietoturvayritys Legit Security, joka sanoi 1. joulukuuta julkaistussa neuvonnassa, että tämä "artefaktimyrkytyksen" heikkous saattaa vaikuttaa ohjelmistoprojekteihin, jotka käyttävät GitHub Actionsia - palvelua kehitysputkien automatisointiin - käynnistämällä rakennusprosessin, kun ohjelmistoriippuvuudessa havaitaan muutos. 

Haavoittuvuus ei ole teoreettinen: Legit Security simuloi hyökkäystä Rustia hallitsevaan projektiin, mikä sai projektin kääntämään uudelleen käyttämällä mukautettua - ja haitallista - versiota suositusta GCC-ohjelmistokirjastosta, yritys totesi neuvonnassa.

Ongelma vaikuttaa todennäköisesti useisiin avoimen lähdekoodin projekteihin, koska ylläpitäjät yleensä testaavat lisättyä koodia ennen kuin he itse analysoivat koodia, sanoo Liav Caspi, Legit Securityn teknologiajohtaja.

"Se on yleinen malli nykyään", hän sanoo. "Monet avoimen lähdekoodin projektit tekevät nykyään muutospyynnöstä joukon testejä pyynnön vahvistamiseksi, koska ylläpitäjän ei halua tarkistaa koodia ensin. Sen sijaan se suorittaa automaattisesti testejä."

Hyökkäys hyödyntää automaattista rakennusprosessia GitHub Actionsin kautta. Rust-ohjelmointikielen tapauksessa haavoittuva malli olisi voinut antaa hyökkääjälle mahdollisuuden suorittaa koodia etuoikeutetulla tavalla osana kehitysprosessia, varastaa arkiston salaisuuksia ja mahdollisesti peukaloida koodia, Legit Security sanoi.

"Yksinkertaisesti sanottuna: haavoittuvaisessa työnkulussa jokainen GitHub-käyttäjä voi luoda haarukan, joka rakentaa artefaktin", yritys totesi neuvoa-antavassa lausunnossaan. "Lisää sitten tämä artefakti alkuperäiseen arkiston rakennusprosessiin ja muokkaa sen tulosta. Tämä on toinen ohjelmistotoimitusketjuhyökkäyksen muoto, jossa hyökkääjä muokkaa koontiversiota."

Haavoittuvuus mahdollistaa vastaavan hyökkäyksen haittaohjelmien lisäyshyökkäys, joka kohdistui CodeCoviin ja tämän yrityksen ohjelmiston kautta sen loppupään asiakkaat.

"[T]oman GitHub-toteutuksen puute työnkulkujen välistä artefaktiviestintää varten sai monet projektit ja GitHub Actions -yhteisön kehittämään epävarmoja ratkaisuja työnkulkujen väliseen viestintään ja teki tästä uhasta erittäin yleisen", Legit Security totesi neuvonnassa.

GitHub vahvisti ongelman ja maksoi tiedoista palkkion, kun taas Rust korjasi haavoittuvan putkistonsa, Legit Security totesi.

Lähde: Legit Security

Ohjelmiston toimitusketju tarvitsee suojausta

Haavoittuvuus on viimeisin tietoturvaongelma, joka vaikuttaa ohjelmistojen toimitusketjuihin. Teollisuus ja valtion virastot ovat yhä enemmän pyrkineet vahvistamaan avoimen lähdekoodin ohjelmistojen ja palveluina tarjottavien ohjelmistojen turvallisuutta.

Esimerkiksi toukokuussa 2021 Bidenin hallinto julkaisi toimeenpanomääräyksensä kansakunnan kyberturvallisuuden parantamisesta, liittovaltion säännöstä, joka muiden vaatimusten ohella velvoittaa hallituksen edellyttää perusturvastandardeja kaikille ostamilleen ohjelmistoille. Yksityisen teollisuuden puolella Google ja Microsoft ovat tehneet lupasi miljardeja dollareita turvaamaan avoimen lähdekoodin ekosysteemiä, joka tarjoaa koodin kattaa yli kolme neljäsosaa keskimääräisen sovelluksen koodikannasta.

Loogista, mutta haavoittuvaa

Suojausongelma kuuluu vaikeasti löydettäviin ongelmiin, jotka tunnetaan nimellä logiikkaongelmat, joihin kuuluvat käyttöoikeuksiin liittyvät ongelmat, mahdollisuus lisätä haarukkatietovarastoja putkiin ja erotuksen puute haarukka- ja perustietovarastojen välillä.

Koska ohjelmistoprojektit käyttävät usein automaattisia komentosarjoja koodilähetysten tarkistamiseen ennen niiden välittämistä ylläpitäjille, vetopyynnöt suoritetaan automaation läpi ennen kuin kukaan ihminen tarkistaa ne haitallisen koodin varalta. Vaikka automaatio säästää aikaa, sitä tulisi myös harkita tapana, jolla hyökkääjät voivat lisätä haitallista koodia putkistoon.

"Kun teet avoimen lähdekoodin kehitystä, ongelma on suurempi, koska otat vastaan ​​lahjoituksia keneltä tahansa maailmassa", Caspi sanoo. "Te teet asioita, joihin et voi luottaa."

GitHub tunnusti ongelman ja laajensi tapoja sulkea pois ulkopuolisten yhteistyökumppaneiden lähetyksiä automaattisesti lisättämästä Actions-putkiin. Yritys päivitti GetArtifact- ja ListArtifacts-sovellusliittymänsä tavoitteena on tarjota lisätietoja, joiden avulla voidaan määrittää, voidaanko artefaktiin luottaa.

"Jokainen, joka tekee jotain kuten Rust-projekti teki - luottaen kolmannen osapuolen panokseen - he ovat edelleen haavoittuvia", Caspi sanoo. "Se on logiikkaongelma. GitHub teki juuri turvallisemman käsikirjoituksen kirjoittamisen helpommaksi."

Aikaleima:

Lisää aiheesta Pimeää luettavaa