Allt eftersom mjukvaruleveranskedjans livscykel fortskrider från källkod till körbara artefakter, utgör byggfasen en kritisk punkt. Ändå är denna transformationsfas också mottaglig för en rad hot som kan äventyra mjukvarans integritet och build securityDessa hot kan infiltrera byggprocessen genom olika metoder, inklusive att kringgå de etablerade CI/CD pipeline, modifiera kodkontroll efter källkod, kompromettera själva byggprocessen eller manipulera artefaktförråd. I det här blogginlägget fördjupar vi oss i dessa hot på djupet och undersöker de vanligaste attackerna mot byggandet av mjukvaruleveranskedjan. Detta innehåll fortsätter vår bloggserie som utforskar software supply chain security genom SDLC.
Byggfasen i programvaruutvecklingens livscykel
Byggfasen i programvaruleveranskedjans livscykel omfattar processen att omvandla källkod till körbara programvaruartefakter. Detta steg involverar kompilering, länkning och paketering av källkoden, samt generering av installationspaket och konfigurationsfiler.
Build security Hot är sårbarheter som kan göra det möjligt för en motståndare att införa obehöriga ändringar i programvaran under byggprocessen utan att ändra källkoden. Dessa hot kan introduceras genom olika metoder, till exempel genom att kompromettera byggmiljön eller utnyttja sårbarheter i byggverktyg.
Vanligaste hoten mot programvaruleveranskedjan - Build-attacker
Bypass CI/CD
Detta hänvisar till praxisen att kringgå de etablerade CI/CD (kontinuerlig integration och kontinuerlig leverans) pipeline att direkt bygga och publicera programvara utan att genomgå de rigorösa test-, verifierings- och revisionsprocesser som vanligtvis tillämpas av den officiella pipelineDetta kan göras genom att manuellt bygga programvaran utanför CI/CD miljön eller genom att använda verktyg eller skript som tillåter obehöriga modifieringar av byggprocessen. Ett exempel på denna typ av vektorattack var Jenkins-attackenÅr 2022 infiltrerade hackare bygget pipeline av ett populärt öppen källkodsprogramvaruprojekt som heter Jenkins. Hackarna injicerade skadlig kod i en Jenkinsfile, vilket är ett skript som definierar byggprocessen. Den skadliga koden gjorde det möjligt för hackarna att kringgå CI/CD pipelinesäkerhetskontroller och injicerar deras kod i byggprocessen. Denna kod körs sedan på systemen hos organisationer som installerade programvaran.
Ändra kod efter källkodskontroll
Denna praxis innebär att obehöriga ändringar görs i källkoden efter att den har commitkopplad till ett betrodd källkontrollsystem (SCS) och sedan bygga programvaran med hjälp av denna modifierade kod. Detta kan göras genom att direkt modifiera koden på en utvecklares arbetsstation eller genom att använda externa verktyg eller skript för att injicera skadlig kod i byggprocessen. Ett exempel på denna vektorattack var GitLab-attacken 2022. Hackare infiltrerade byggprocessen pipeline of GitLabHackarna injicerade skadlig kod i GitLab CI/CD pipeline, vilket är ett verktyg som automatiserar build security process. Den skadliga koden gjorde det möjligt för hackarna att modifiera koden efter att den hade kontrollerats i källkodskontrollen. Detta gjorde det möjligt för dem att injicera sin kod i programvaran, som sedan kördes på systemen hos de organisationer som installerade programvaran.
Kompromittera byggprocessen
Detta innebär att manipulera eller ändra själva byggprocessen, antingen genom direkt åtkomst till byggmiljön eller genom att utnyttja sårbarheter i byggverktyg eller tredjepartsberoenden. Detta kan göras för att introducera skadlig kod i byggutgången, manipulera byggproveniens eller störa byggprocessen helt och hållet. Det mest kända exemplet på denna vektorattack var SolarWinds attackEn angripare hade fått obehörig åtkomst till SolarWinds byggplattform, ett system som används för att kompilera och paketera SolarWinds Orion-programvara. Detta skript injicerade skadlig kod i den kompilerade SolarWinds Orion-programvaran. När användarna installerade den komprometterade programvaran kördes den skadliga koden på deras system, vilket gav angriparen obehörig åtkomst till deras system. Angriparen kunde också stjäla känsliga uppgifter från deras system, såsom inloggningsuppgifter, immateriella rättigheter och kundinformation.
Kompromittera artefaktförråd
Detta hänvisar till obehörig åtkomst eller manipulation av ett artefaktförråd, där programvarupaket och binärfiler lagras för distribution till interna eller externa användare. Angripare kan utnyttja denna sårbarhet för att introducera skadlig kod, manipulera programvarans äkthet eller störa distributionsprocessen. Ett exempel på denna vektorattack var RubyGems år 2022Hackare infiltrerade artefaktförrådet i RubyGems. Hackarna ersatte en legitim artefakt med en skadlig, som sedan laddades ner av tusentals organisationer som byggde programvara med Ruby on Rails. Den skadliga artefakten gjorde det möjligt för hackarna att exekvera godtycklig kod på systemen hos organisationer som installerade programvaran. Detta skulle potentiellt kunna göra det möjligt för dem att stjäla data, installera skadlig kod eller störa verksamheten.
Slutliga kommentarer
I takt med att organisationer fortsätter att anamma programvaruutvecklingsmetoder som betonar automatisering och kontinuerlig leverans, har vikten av att säkra programvarubyggprocessen aldrig varit större. Genom att implementera robusta säkerhetsåtgärder under hela byggfasen kan organisationer avsevärt minska risken för att bli offer för skadliga attacker som kan äventyra programvarans integritet och säkerhet.
Strategierna som beskrivs i det här blogginlägget och de exempel som ges fungerar som en påminnelse om att byggfasen är en sårbar punkt i programvaruleveranskedjan. Organisationer bör vara uppmärksamma på dessa hot och implementera nödvändiga säkerhetsåtgärder för att skydda sin programvara från attacker. Genom att göra det kan de säkerställa programvarans integritet, säkerhet och tillförlitlighet för sina användare och kunder.
Följ med på vår resa mot ett säkert programvaruekosystem
Missa inte denna möjlighet att ligga steget före när det gäller att undvika hot mot mjukvaruleveranskedjan. Prenumerera på vår blogg idag och var först med att få våra senaste insikter, så att din organisation förblir motståndskraftig och säker mitt i föränderliga hot. Tillsammans kan vi bygga ett mer robust och säkert mjukvaruekosystem för alla.
Se vår videodemo




