Otrăvirea artefactelor în GitHub Actions Importă programe malware prin conducte software

Nodul sursă: 1769941

Un atacator care trimite modificări la un depozit open source de pe GitHub ar putea determina proiecte software în aval care includ cea mai recentă versiune a unei componente pentru a compila actualizări cu cod rău intenționat.

Aceasta este conform companiei de securitate a lanțului de aprovizionare cu software Legit Security, care a spus într-un aviz publicat la 1 decembrie că această slăbiciune a „otrăvirii cu artefacte” ar putea afecta proiectele software care utilizează GitHub Actions – un serviciu pentru automatizarea conductelor de dezvoltare – prin declanșarea procesului de construire atunci când este detectată o modificare într-o dependență de software. 

Vulnerabilitatea nu este teoretică: Legit Security a simulat un atac asupra proiectului care gestionează Rust, făcând ca proiectul să se recompileze folosind o versiune personalizată – și rău intenționată – a popularei biblioteci de software GCC, a declarat compania în aviz.

Problema afectează probabil un număr mare de proiecte open source, deoarece întreținerii vor rula de obicei teste pe codul contribuit înainte de a analiza codul ei înșiși, spune Liav Caspi, director de tehnologie al Legit Security.

„Este un model comun astăzi”, spune el. „O mulțime de proiecte open source astăzi, la o solicitare de schimbare, rulează o grămadă de teste pentru a valida cererea, deoarece întreținătorul nu vrea să fie nevoit să revizuiască mai întâi codul. În schimb, rulează automat teste.”

Atacul profită de procesul de construire automatizat prin GitHub Actions. În cazul limbajului de programare Rust, modelul vulnerabil ar fi putut permite unui atacator să execute cod într-un mod privilegiat, ca parte a conductei de dezvoltare, furând secretele depozitului și potențial modificând codul, a spus Legit Security.

„Pentru a spune simplu: într-un flux de lucru vulnerabil, orice utilizator GitHub poate crea o furcă care construiește un artefact”, a spus compania. a declarat în avizul său. „Apoi injectați acest artefact în procesul original de construire a depozitului și modificați-i rezultatul. Aceasta este o altă formă de atac al lanțului de aprovizionare software, în care rezultatul build-ului este modificat de către un atacator.”

Vulnerabilitatea permite un atac similar cu atacul de inserare de malware care a vizat CodeCov și, prin intermediul software-ului companiei respective, clienții săi din aval.

„Lipsa implementării native GitHub pentru comunicarea artefactelor în fluxul de lucru încrucișat a determinat multe proiecte și comunitatea GitHub Actions să dezvolte soluții nesigure pentru comunicarea între fluxuri de lucru și a făcut ca această amenințare să fie foarte răspândită”, a declarat Legit Security în aviz.

GitHub a confirmat problema și a plătit o recompensă pentru informații, în timp ce Rust și-a remediat conducta vulnerabilă, a declarat Legit Security.

Sursa: Legit Security

Lanțul de aprovizionare software are nevoie de securitate

Vulnerabilitatea este cea mai recentă problemă de securitate care afectează lanțurile de aprovizionare cu software. Industria și agențiile guvernamentale au căutat din ce în ce mai mult să consolideze securitatea software-ului open source și a software-ului oferit ca serviciu.

În mai 2021, de exemplu, administrația Biden și-a lansat ordinul executiv privind îmbunătățirea securității cibernetice a națiunii, o normă federală care, printre alte cerințe, impune ca guvernul să necesită standarde de securitate de bază pentru orice software achiziționat. Pe partea industriei private, Google și Microsoft au a promis miliarde de dolari pentru a consolida securitatea în ecosistemul open source, care oferă codul care cuprinde mai mult de trei sferturi din baza de cod medie a aplicației.

Logic, dar vulnerabil

Problema de securitate aparține unei clase de probleme greu de găsit cunoscute sub denumirea de probleme de logică, care includ probleme cu permisiunile, potențialul ca depozitele bifurcate să fie inserate într-o conductă și o lipsă de diferențiere între depozitele bifurcate și cele de bază.

Deoarece proiectele software folosesc adesea scripturi automate pentru a verifica trimiterile de cod înainte de a le înainta întreținătorilor, cererile de extragere vor fi executate prin automatizare înainte ca vreun om să le verifice pentru cod rău intenționat. Deși automatizarea economisește timp, ar trebui să fie considerată și o modalitate prin care atacatorii pot introduce cod rău intenționat în conductă.

„Când faci dezvoltare open source, problema este mai mare, pentru că accepți contribuția oricui din lume”, spune Caspi. „Execuți lucruri în care nu poți avea încredere.”

GitHub a recunoscut problema și a extins modalitățile de excludere a trimiterilor de la colaboratori externi de la inserarea automată în pipeline Actions. Compania și-a actualizat API-urile GetArtifact și ListArtifacts cu scopul de a oferi mai multe informații pentru a ajuta la determinarea dacă un artefact poate fi de încredere.

„Oricine face ceva ca proiectul Rust – având încredere în contribuția unei terțe părți – atunci este încă vulnerabil”, spune Caspi. „Este o problemă de logică. GitHub a făcut mai ușor să scrieți un script mai sigur.”

Timestamp-ul:

Mai mult de la Lectură întunecată