Amenaces a la cadena de subministrament de programari en la fase de compilació

A mesura que el cicle de vida de la cadena de subministrament de programari progressa des del codi font fins als artefactes executables, la fase de compilació es presenta com un punt crític. Tot i això, aquesta fase transformadora també és susceptible a una sèrie d'amenaces que poden posar en perill la integritat del programari i build securityAquestes amenaces poden infiltrar-se en el procés de construcció a través de diversos mètodes, com ara eludir les normes establertes. CI/CD pipeline, modificant el control posterior al codi font, comprometent el procés de compilació en si o manipulant repositoris d'artefactes. En aquesta entrada de blog, aprofundim en aquestes amenaces i examinem els atacs de compilació de la cadena de subministrament de programari més prevalents. Aquest contingut continua la nostra sèrie de blogs que explora software supply chain security en tot el SDLC.

La fase de construcció en el cicle de vida del desenvolupament de programari 

La fase de compilació del cicle de vida de la cadena de subministrament de programari engloba el procés de transformació del codi font en artefactes de programari executables. Aquesta fase implica la compilació, l'enllaç i l'empaquetament del codi font, així com la generació de paquets d'instal·lació i fitxers de configuració.

Build security Les amenaces són vulnerabilitats que podrien permetre a un adversari introduir canvis no autoritzats al programari durant el procés de compilació sense alterar el codi font. Aquestes amenaces es poden introduir a través de diversos mètodes, com ara comprometre l'entorn de compilació o explotar vulnerabilitats a les eines de compilació. 

atac-de-creació-de-seguretat-de-la-cadena-de-subministrament-de-programari-atacs-de-creació-de-la-cadena-de-subministrament-de-programari

Amenaces més comunes a la cadena de subministrament de programari: atacs de construcció

derivació CI/CD

Això fa referència a la pràctica d'eludir l'establert CI/CD (integració contínua i lliurament continu) pipeline crear i publicar programari directament sense passar pels rigorosos processos de prova, verificació i auditoria que normalment apliquen les autoritats oficials pipelineAixò es pot fer compilant manualment el programari fora del CI/CD entorn o mitjançant l'ús d'eines o scripts que permeten modificacions no autoritzades al procés de compilació. Un exemple d'aquest tipus d'atac vectorial va ser el Atac de JenkinsEl 2022, els pirates informàtics es van infiltrar a la compilació. pipeline d'un popular projecte de programari de codi obert anomenat Jenkins. Els pirates informàtics van injectar codi maliciós en un fitxer Jenkinsfile, que és un script que defineix el procés de compilació. El codi maliciós va permetre als pirates informàtics eludir el CI/CD pipelinecomprovacions de seguretat i injecten el seu codi al procés de compilació. Aquest codi s'executa als sistemes de les organitzacions que han instal·lat el programari.

Modificar el codi després del control de codi font 

Aquesta pràctica implica fer canvis no autoritzats al codi font després que aquest hagi estat commitconnectat a un sistema de control de fonts (SCS) de confiança i després compilant el programari utilitzant aquest codi modificat. Això es pot fer modificant directament el codi a l'estació de treball d'un desenvolupador o utilitzant eines o scripts externs per injectar codi maliciós al procés de compilació. Un exemple d'aquest atac vectorial va ser l'atac de GitLab del 2022. Els pirates informàtics es van infiltrar al procés de compilació. pipeline of GitLabEls pirates informàtics van injectar codi maliciós al GitLab. CI/CD pipeline, que és una eina que automatitza el build security procés. El codi maliciós permetia als pirates informàtics modificar el codi després que s'hagués registrat al control de codi font. Això els permetia injectar el seu codi al programari, que després s'executava als sistemes de les organitzacions que havien instal·lat el programari.

Procés de construcció compromès

Això implica manipular o alterar el procés de compilació en si, ja sigui mitjançant l'accés directe a l'entorn de compilació o explotant vulnerabilitats en eines de compilació o dependències de tercers. Això es pot fer per introduir codi maliciós a la sortida de la compilació, manipular la procedència de la compilació o interrompre el procés de compilació per complet. L'exemple més famós d'aquest atac vectorial va ser el Atac de SolarWindsUn atacant havia obtingut accés no autoritzat a la plataforma de compilació de SolarWinds, un sistema utilitzat per compilar i empaquetar el programari SolarWinds Orion. Aquest script injectava codi maliciós al programari SolarWinds Orion compilat. Quan els usuaris instal·laven el programari compromès, el codi maliciós s'executava als seus sistemes, donant a l'atacant accés no autoritzat als seus sistemes. L'atacant també va poder robar dades sensibles dels seus sistemes, com ara credencials, propietat intel·lectual i informació del client.

Repositori d'artefactes compromesos

Això fa referència a l'accés o la manipulació no autoritzats d'un repositori d'artefactes, on s'emmagatzemen paquets de programari i binaris per a la seva distribució a usuaris interns o externs. Els atacants poden explotar aquesta vulnerabilitat per introduir codi maliciós, manipular l'autenticitat del programari o interrompre el procés de desplegament. Un exemple d'aquest atac vectorial va ser Les RubyGems el 2022Uns pirates informàtics es van infiltrar al repositori d'artefactes de RubyGems. Els pirates informàtics van substituir un artefacte legítim per un de maliciós, que després van ser descarregats per milers d'organitzacions que creaven programari amb Ruby on Rails. L'artefacte maliciós permetia als pirates informàtics executar codi arbitrari als sistemes de les organitzacions que havien instal·lat el programari. Això podria permetre'ls robar dades, instal·lar programari maliciós o interrompre les operacions.

Observacions finals

A mesura que les organitzacions continuen adoptant pràctiques de desenvolupament de programari que emfatitzen l'automatització i el lliurament continu, la importància de protegir el procés de compilació de programari mai ha estat tan gran. Mitjançant la implementació de mesures de seguretat robustes durant tota la fase de compilació, les organitzacions poden reduir significativament el risc de ser víctimes d'atacs maliciosos que poden comprometre la integritat i la seguretat del seu programari.

Les estratègies descrites en aquesta entrada de blog i els exemples proporcionats serveixen com a recordatori que la fase de compilació és un punt vulnerable de la cadena de subministrament de programari. Les organitzacions han de tenir en compte aquestes amenaces i implementar les mesures de seguretat necessàries per protegir el seu programari dels atacs. D'aquesta manera, poden garantir la integritat, la seguretat i la fiabilitat del seu programari per als seus usuaris i clients.

Uneix-te al nostre viatge cap a un ecosistema de programari segur

No perdeu aquesta oportunitat d'anar per davant de les amenaces de la cadena de subministrament de programari. Subscriviu-vos al nostre blog avui mateix i sigueu els primers a rebre les nostres últimes novetats, garantint que la vostra organització es mantingui resilient i segura enmig de les amenaces en constant evolució. Junts, podem construir un ecosistema de programari més robust i segur per a tothom.

Explora les funcions de Xygeni!
Mireu la nostra demostració en vídeo
sca-tools-software-composition-analyse-tools
Prioritzar, solucionar i protegir els riscos del programari
Obtén el teu compte gratuït.
No es requereix cap targeta de crèdit.

Assegura el desenvolupament i el lliurament del teu programari

amb el paquet de productes Xygeni