Pe măsură ce ciclul de viață al lanțului de aprovizionare al software-ului progresează de la codul sursă la artefactele executabile, etapa de construire reprezintă un punct critic. Cu toate acestea, această fază de transformare este, de asemenea, susceptibilă la o serie de amenințări care pot pune în pericol integritatea software-ului și... build securityAceste amenințări se pot infiltra în procesul de construire prin diverse metode, inclusiv prin ocolirea regulilor stabilite CI/CD pipeline, modificarea controlului post-sursă al codului, compromiterea procesului de compilare în sine sau manipularea depozitelor de artefacte. În această postare pe blog, analizăm în profunzime aceste amenințări și examinăm cele mai răspândite atacuri asupra lanțului de aprovizionare software. Acest conținut continuă seria noastră de bloguri care explorează software supply chain security pe tot parcursul SDLC.
Etapa de construire din ciclul de viață al dezvoltării software
Etapa de construire a ciclului de viață al lanțului de aprovizionare software cuprinde procesul de transformare a codului sursă în artefacte software executabile. Această etapă implică compilarea, conectarea și împachetarea codului sursă, precum și generarea pachetelor de instalare și a fișierelor de configurare.
Build security Amenințările sunt vulnerabilități care ar putea permite unui adversar să introducă modificări neautorizate în software în timpul procesului de compilare fără a modifica codul sursă. Aceste amenințări pot fi introduse prin diverse metode, cum ar fi compromiterea mediului de compilare sau exploatarea vulnerabilităților din instrumentele de compilare.

Cele mai frecvente amenințări la adresa lanțului de aprovizionare cu software - Atacuri la nivel de construcție
Bypass CI/CD
Aceasta se referă la practica de eludare a regulilor stabilite CI/CD (integrare continuă și livrare continuă) pipeline să construiască și să publice direct software fără a fi supus proceselor riguroase de testare, verificare și auditare impuse de obicei de autoritățile oficiale pipelineAcest lucru se poate face prin construirea manuală a software-ului în afara CI/CD mediu sau prin utilizarea de instrumente sau scripturi care permit modificări neautorizate ale procesului de construire. Un exemplu al acestui tip de atac vectorial a fost Atac JenkinsÎn 2022, hackerii s-au infiltrat în construcție pipeline unui proiect software open-source popular numit Jenkins. Hackerii au injectat cod malițios într-un fișier Jenkins, care este un script care definește procesul de construire. Codul malițios le-a permis hackerilor să ocolească CI/CD pipelineverificările de securitate și injectează codul lor în procesul de compilare. Acest cod este apoi executat pe sistemele organizațiilor care au instalat software-ul.
Modificarea codului după controlul sursei
Această practică implică efectuarea de modificări neautorizate ale codului sursă după ce acesta a fost commitlegat la un sistem de control al sursei (SCS) de încredere și apoi construind software-ul folosind acest cod modificat. Acest lucru se poate face prin modificarea directă a codului pe stația de lucru a unui dezvoltator sau prin utilizarea de instrumente sau scripturi externe pentru a injecta cod rău intenționat în procesul de construire. Un exemplu al acestui atac vectorial a fost atacul GitLab din 2022. Hackerii s-au infiltrat în procesul de construire. pipeline of GitLabHackerii au injectat cod rău intenționat în GitLab. CI/CD pipeline, care este un instrument care automatizează build security proces. Codul rău intenționat le-a permis hackerilor să modifice codul după ce acesta fusese înregistrat în controlul sursei. Acest lucru le-a permis să își injecteze codul în software, care a fost apoi executat pe sistemele organizațiilor care au instalat software-ul.
Procesul de construire compromis
Aceasta implică manipularea sau modificarea procesului de compilare în sine, fie prin acces direct la mediul de compilare, fie prin exploatarea vulnerabilităților din instrumentele de compilare sau din dependențele terților. Acest lucru se poate face pentru a introduce cod rău intenționat în rezultatul compilației, a modifica proveniența compilației sau a perturba complet procesul de compilare. Cel mai faimos exemplu al acestui atac vectorial a fost... Atacul SolarWindsUn atacator a obținut acces neautorizat la platforma de compilare SolarWinds, un sistem folosit pentru compilarea și împachetarea software-ului SolarWinds Orion. Acest script a injectat cod rău intenționat în software-ul SolarWinds Orion compilat. Când utilizatorii au instalat software-ul compromis, codul rău intenționat a fost executat pe sistemele lor, oferind atacatorului acces neautorizat la sistemele lor. Atacatorul a reușit, de asemenea, să fure date sensibile din sistemele lor, cum ar fi acreditări, proprietate intelectuală și informații despre clienți.
Depozit de artefacte compromise
Aceasta se referă la accesul neautorizat sau manipularea unui depozit de artefacte, unde pachetele software și fișierele binare sunt stocate pentru distribuire către utilizatori interni sau externi. Atacatorii pot exploata această vulnerabilitate pentru a introduce cod rău intenționat, a modifica autenticitatea software-ului sau a perturba procesul de implementare. Un exemplu al acestui atac vectorial a fost RubyGems în 2022Hackerii au infiltrat depozitul de artefacte RubyGems. Hackerii au înlocuit un artefact legitim cu unul rău intenționat, care a fost apoi descărcat de mii de organizații care dezvoltau software cu Ruby on Rails. Artefactul rău intenționat le-a permis hackerilor să execute cod arbitrar pe sistemele organizațiilor care au instalat software-ul. Acest lucru le-ar putea permite să fure date, să instaleze programe malware sau să perturbe operațiunile.
Observații finale
Pe măsură ce organizațiile continuă să adopte practici de dezvoltare software care pun accent pe automatizare și livrare continuă, importanța securizării procesului de construire a software-ului nu a fost niciodată mai mare. Prin implementarea unor măsuri robuste de securitate pe parcursul etapei de construire, organizațiile își pot reduce semnificativ riscul de a deveni victime ale unor atacuri rău intenționate care pot compromite integritatea și securitatea software-ului lor.
Strategiile prezentate în această postare pe blog și exemplele furnizate servesc drept reamintire a faptului că etapa de construire este un punct vulnerabil în lanțul de aprovizionare cu software. Organizațiile ar trebui 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 asigura 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 această oportunitate de a fi cu un pas înainte în evitarea amenințărilor la nivelul lanțului de aprovizionare cu software. Abonați-vă astăzi la blogul nostru și fiți printre primii care primesc cele mai recente informații, asigurându-vă că organizația dvs. 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 toți.
Urmăriți demonstrația noastră video







