Software Supply Chain Security Amenințări în etapa de pachet

Software Supply Chain Security Amenințări în etapa de pachet

Pe măsură ce dezvoltarea software-ului progresează de-a lungul ciclului de viață al lanțului de aprovizionare cu software, etapa de pachetizare apare ca un punct crucial, transformând codul sursă în artefacte executabile pregătite pentru distribuție. Această etapă critică, însă, nu este imună la vulnerabilități, ceea ce o face o țintă principală pentru actorii rău intenționați care doresc să submineze integritatea și securitatea software-ului. Această postare pe blog analizează amenințările predominante care pot apărea în timpul acestei faze și prezintă strategii eficiente pentru a le atenua. Acest conținut servește ca o continuare a seriei noastre de bloguri care explorează... software supply chain security peste SDLC.

Etapa de pachetizare în ciclul de viață al dezvoltării software

Etapa de ambalare din ciclul de viață al lanțului de aprovizionare cu software cuprinde procesul de ambalare și pregătire a software-ului pentru distribuirea către utilizatori. Această etapă implică crearea pachetelor de instalare, gestionarea dependențelor și generarea de metadate pentru software.

Amenințările la adresa integrității versiunii sunt vulnerabilități care ar putea permite atacatorilor să introducă modificări neautorizate în software în timpul procesului de împachetare. Aceste amenințări pot fi introduse prin diverse metode, cum ar fi compromiterea registrului pachetelor, exploatarea vulnerabilităților din instrumentele de împachetare sau manipularea dependențelor terților.

Dependența totală de componentele open-source din software-ul modern a făcut ca această etapă să fie cea mai frecventă SSCA țintă. Introducerea unui malware ascuns într-o componentă open-source populară este un vis pentru mulți infractori cibernetici. Acesta este motivul pentru care mai mult de 245,000 de pachete rău intenționate au fost descoperite în 2023. 

Exemple de Software Supply Chain Security Amenințări în etapa de pachet

atacuri-asupra-pachetelor-de-securitate-ale-lanțului-de-aprovizionare-software-atacuri-asupra-pachetelor-de-securitate-ale-lanțului-de-aprovizionare-software
Folosește pachetul compromis

Aceasta se referă la actul de implementare sau utilizare a unui pachet software care a fost modificat sau manipulat de un adversar.

Acest lucru se poate întâmpla după ce pachetul a părăsit registrul oficial de pachete, fie prin acces direct la sistemul utilizatorului, fie prin tactici de inginerie socială care păcălesc utilizatorul să descarce sau să instaleze un pachet rău intenționat. Un exemplu al acestui vector a fost Navigare tipografiere Atac.

Un atacator, care încerca să compromită sistemele Linux și Mac, s-a infiltrat în procesul de dezvoltare al unei biblioteci Node.js populare numite Browserify. Atacatorul a introdus cod malițios în codul sursă al proiectului, intenționând să îl distribuie prin registrul de pachete NPM. Odată ce pachetul Browserify infectat era încărcat pe NPM, dezvoltatorii neavizați îl descărcau și îl instalau, crezând că este versiunea legitimă. Codul malițios, încorporat în pachet, rula silențios, compromițând integritatea sistemelor infectate. Acest lucru putea duce la furt de date, instabilitate a sistemului sau chiar acces de la distanță pentru atacator.

Registrul pachetelor compromise

Un registru de pachete compromis este un depozit de software care a fost infiltrat de un adversar care a obținut acces neautorizat la interfața administrativă sau la infrastructura registrului.

Acest lucru permite adversarului să modifice sau să înlocuiască pachete software legitime cu unele rău intenționate, care pot fi apoi distribuite utilizatorilor instalați fără să știe ce. Un exemplu al acestui tip de amenințare a fost Atac asupra oglinzilor de pachete: Un cercetător, cu intenția de a promova software open-source, a compromis mai multe registre de pachete populare, inclusiv Maven Central, NPM și RubyGems. Obținând acces la aceste registre, cercetătorul a reușit să creeze mirror-uri și replici ale depozitelor originale, ceea ce a oferit o alternativă convenabilă dezvoltatorilor pentru descărcarea pachetelor.

Totuși, aceste oglinzi aveau un scop sinistru. Oglinzile compromise serveau drept canale pentru cercetător pentru a distribui pachete rău intenționate. Aceste pachete le înlocuiau pe cele legitime, nedetectate de registrele principale, iar dezvoltatorii neatenți le descărcau și le instalau fără să știe. Odată instalate, aceste pachete rău intenționate își dezlănțuiau sarcina utilă, executând cod arbitrar, furând date sensibile sau perturbând operațiunile.

Încărcați pachetul modificat

Un adversar încarcă un pachet modificat într-un depozit sau canal de distribuție care conține cod sau sarcini utile rău intenționate. Acest lucru se poate face prin modificarea codului sursă, a ambalajului sau a metadatelor pachetului.

Una dintre cele mai notorii amenințări de acest tip a fost Atacul CodeCov din 2021. Un atacator, care încearcă să compromită proiectele software folosind CodeCov, o metodă populară de integrare continuă și livrare continuă (CI/CD) a folosit acreditări scurse pentru a obține acces neautorizat la bucket-ul Google Cloud Storage (GCS) al unui proiect. Odată ce atacatorul a obținut acces la bucket-ul GCS, acesta a încărcat un artefact rău intenționat, o versiune modificată a pachetului CodeCov, care a fost apoi distribuit utilizatorilor prin intermediul serviciului CodeCov. Dezvoltatorii neavizați, bazându-se pe funcția de actualizări automate, descărcau și instalau pachetul rău intenționat, crezând că este cel legitim. Odată instalat, codul rău intenționat rula silențios, compromițând integritatea sistemelor infectate. Acest lucru putea duce la furt de date, instabilitate a sistemului sau chiar acces de la distanță pentru atacator.

Atacurile asupra registrelor de pachete sunt atât de frecvente încât unele modele de atac au primit un nume:

In typosquatting, atacatorul încarcă în registru mai multe pachete rău intenționate cu mici erori de scriere sau nume similare cu cele legitime, populare, în speranța că dezvoltatorii vor scrie greșit numele pachetului dorit cu unul rău intenționat. Adesea, pachetul rău intenționat se deghizează în cel legitim pentru a trece nedetectat, crescând probabilitatea de a fi lovit de un atac de tip „stargazing”. 

Confuzie privind dependența utilizează modul în care unii manageri de pachete rezolvă pachetele solicitate din mai multe registre. Atunci când o organizație utilizează componente interne publicate într-un registru intern, un atacator care cunoaște acest lucru poate publica o componentă rău intenționată cu același nume într-un registru public. Dacă numele utilizat pentru componenta internă nu este definit în domeniu, unii manageri de pachete vor prelua componenta rău intenționată în locul celei interne.   

cu Pachete Troyan, infractorul cibernetic deghizează malware-ul printre cod valid și util. Acesta ar putea fi folosit de autorul real sau de un contribuitor care se oferă să întrețină pachetul. Aceasta este cunoscută și sub numele de Deturnare de coleteAtacatorii au folosit numeroase tehnici pentru a deturna un pachet existent, cum ar fi Preluarea domeniului unde un domeniu expirat abandonat a fost preluat de atacator, care a recreat vechea adresă de e-mail a administratorului și a efectuat recuperarea parolei pentru a prelua controlul asupra contului de administrator.

Observații finale

Pe măsură ce organizațiile adoptă din ce în ce mai mult metodologii de dezvoltare software care prioritizează automatizarea și livrarea continuă, importanța securizării etapei de pachet software nu a fost niciodată mai importantă. Prin implementarea unor măsuri robuste de securitate pe parcursul acestei faze critice, organizațiile pot atenua substanțial riscul de a ceda în fața atacurilor rău intenționate care pot compromite integritatea și securitatea software-ului lor.

Strategiile descrise în această postare pe blog, împreună cu exemplele furnizate, servesc drept o reamintire clară a faptului că etapa de pachetizare reprezintă un punct vulnerabil în cadrul lanțului de aprovizionare cu software. Organizațiile trebuie să ia în considerare aceste amenințări și să implementeze măsurile de securitate necesare pentru a-și proteja software-ul de atacuri. Procedând astfel, ele pot garanta integritatea, securitatea și fiabilitatea software-ului lor pentru utilizatori și clienți.

Alătură-te călătoriei noastre către un ecosistem software sigur

Nu ratați șansa de a fi cu un pas înainte în domeniul software supply chain securityAbonează-te astăzi la blogul nostru și fii printre primii care primesc cele mai recente informații, asigurându-ne că organizația ta rămâne rezistentă și sigură în mijlocul amenințărilor în continuă evoluție. Împreună, putem construi un ecosistem software mai robust și mai sigur pentru toată lumea.

Amintiți-vă, software supply chain security este o călătorie continuă, nu o destinație. Prin evaluarea și adaptarea continuă a practicilor de securitate pentru a aborda amenințările emergente, organizațiile își pot proteja lanțul de aprovizionare cu software și pot livra software de încredere utilizatorilor lor.

Explorează caracteristicile Xygeni!
Urmăriți demonstrația noastră video
sca-tools-software-instrumente-de-analiză-a-compoziției
Prioritizați, remediați și securizați riscurile software
Obține-ți contul gratuit.
Nu este necesar un card de credit.

Securizează-ți dezvoltarea și livrarea de software

cu suita de produse Xygeni