Naarmate de levenscyclus van de software-toeleveringsketen vordert van broncode tot uitvoerbare artefacten, is de bouwfase een kritieke fase. Toch is deze transformatieve fase ook vatbaar voor een reeks bedreigingen die de integriteit van de software in gevaar kunnen brengen en build securityDeze bedreigingen kunnen het bouwproces op verschillende manieren binnendringen, waaronder het omzeilen van de gevestigde CI/CD pipeline, het wijzigen van code na de broncode, het in gevaar brengen van het bouwproces zelf, of het manipuleren van opslagplaatsen voor artefacten. In deze blogpost gaan we dieper in op deze bedreigingen en onderzoeken we de meest voorkomende aanvallen op de supply chain van software. Deze inhoud vervolgt onze blogserie met verkennen software supply chain security door de SDLC.
De bouwfase in de levenscyclus van softwareontwikkeling
De bouwfase van de levenscyclus van de softwareleveringsketen omvat het proces van het transformeren van broncode in uitvoerbare softwareartefacten. Deze fase omvat het compileren, koppelen en verpakken van de broncode, evenals het genereren van installatiepakketten en configuratiebestanden.
Build security bedreigingen zijn kwetsbaarheden die een tegenstander in staat kunnen stellen om ongeautoriseerde wijzigingen in de software aan te brengen tijdens het bouwproces zonder de broncode te wijzigen. Deze bedreigingen kunnen op verschillende manieren worden geïntroduceerd, zoals het in gevaar brengen van de bouwomgeving of het exploiteren van kwetsbaarheden in bouwtools.
Meest voorkomende bedreigingen voor de softwaretoeleveringsketen: build-aanvallen
Bypass CI/CD
Dit verwijst naar de praktijk van het omzeilen van de gevestigde CI/CD (continue integratie en continue levering) pipeline om rechtstreeks software te bouwen en te publiceren zonder de rigoureuze test-, verificatie- en auditprocessen te ondergaan die doorgaans door de functionaris worden opgelegd pipelineDit kan worden gedaan door de software handmatig buiten de CI/CD omgeving of door tools of scripts te gebruiken die ongeautoriseerde wijzigingen aan het bouwproces toestaan. Een voorbeeld van dit type vectoraanval was de Jenkins-aanval. In 2022 infiltreerden hackers de build pipeline van een populair open-source softwareproject genaamd Jenkins. De hackers injecteerden kwaadaardige code in een Jenkinsfile, een script dat het bouwproces definieert. De kwaadaardige code stelde de hackers in staat om de CI/CD pipeline's veiligheidscontroles uitvoeren en hun code in het bouwproces injecteren. Deze code wordt vervolgens uitgevoerd op de systemen van organisaties die de software hebben geïnstalleerd.
Wijzig code na broncontrole
Deze praktijk houdt in dat er ongeoorloofde wijzigingen in de broncode worden aangebracht nadat deze zijn aangebracht commitovergebracht naar een vertrouwd broncontrolesysteem (SCS) en vervolgens de software bouwen met behulp van deze aangepaste code. Dit kan worden gedaan door de code rechtstreeks op het werkstation van een ontwikkelaar aan te passen of door externe tools of scripts te gebruiken om kwaadaardige code in het bouwproces te injecteren. Een voorbeeld van deze vectoraanval was de GitLab-aanval in 2022. Hackers infiltreerden in de build pipeline of GitLab. De hackers injecteerden kwaadaardige code in de GitLab CI/CD pipeline, een hulpmiddel dat de build security proces. De kwaadaardige code stelde de hackers in staat de code te wijzigen nadat deze was gecontroleerd in broncontrole. Hierdoor konden ze hun code in de software injecteren, die vervolgens werd uitgevoerd op de systemen van organisaties die de software installeerden.
Compromisbouwproces
Dit omvat het manipuleren of wijzigen van het bouwproces zelf, hetzij door directe toegang tot de bouwomgeving, hetzij door misbruik te maken van kwetsbaarheden in bouwtools of afhankelijkheden van derden. Dit kan worden gedaan om kwaadaardige code in de build-uitvoer te introduceren, met de herkomst van de build te knoeien of het bouwproces helemaal te verstoren. Het bekendste voorbeeld van deze vectoraanval was de SolarWinds-aanval. Een aanvaller had ongeautoriseerde toegang verkregen tot het buildplatform van SolarWinds, een systeem dat wordt gebruikt om SolarWinds Orion-software te compileren en te verpakken. Dit script injecteerde kwaadaardige code in de gecompileerde SolarWinds Orion-software. Toen gebruikers de besmette software installeerden, werd de kwaadaardige code op hun systemen uitgevoerd, waardoor de aanvaller ongeautoriseerde toegang tot hun systemen kreeg. De aanvaller kon ook gevoelige gegevens van hun systemen stelen, zoals inloggegevens, intellectueel eigendom en klantinformatie.
Compromis-artefactopslagplaats
Dit verwijst naar de ongeoorloofde toegang tot of manipulatie van een opslagplaats voor artefacten, waar softwarepakketten en binaire bestanden worden opgeslagen voor distributie naar interne of externe gebruikers. Aanvallers kunnen dit beveiligingslek misbruiken om kwaadaardige code te introduceren, de authenticiteit van de software te manipuleren of het implementatieproces te verstoren. Een voorbeeld van deze vectoraanval was De RubyGems in 2022. Hackers infiltreerden in de artefactopslagplaats van RubyGems. De hackers vervingen een legitiem artefact door een kwaadaardig artefact, dat vervolgens werd gedownload door duizenden organisaties die software bouwden met Ruby on Rails. Door het kwaadaardige artefact konden de hackers willekeurige code uitvoeren op de systemen van organisaties die de software hadden geïnstalleerd. Hierdoor kunnen ze mogelijk gegevens stelen, malware installeren of activiteiten verstoren.
Laatste opmerkingen
Terwijl organisaties softwareontwikkelingspraktijken blijven omarmen die de nadruk leggen op automatisering en continue levering, is het belang van het beveiligen van het softwarebouwproces nog nooit zo groot geweest. Door robuuste beveiligingsmaatregelen te implementeren tijdens de gehele bouwfase kunnen organisaties het risico aanzienlijk verkleinen dat ze het slachtoffer worden van kwaadaardige aanvallen die de integriteit en veiligheid van hun software in gevaar kunnen brengen.
De strategieën die in deze blogpost worden beschreven en de gegeven voorbeelden herinneren eraan dat de bouwfase een kwetsbaar punt is in de softwaretoeleveringsketen. Organisaties moeten rekening houden met deze bedreigingen en de nodige beveiligingsmaatregelen implementeren om hun software tegen aanvallen te beschermen. Door dit te doen kunnen ze de integriteit, veiligheid en betrouwbaarheid van hun software voor hun gebruikers en klanten garanderen.
Sluit u aan bij onze reis naar een veilig software-ecosysteem
Mis deze kans niet om voorop te blijven lopen bij het vermijden van bedreigingen voor de softwaretoeleveringsketen. Schrijf u vandaag nog in op onze blog en ontvang als eerste onze nieuwste inzichten, zodat uw organisatie veerkrachtig en veilig blijft te midden van evoluerende bedreigingen. Samen kunnen we een robuuster en veiliger software-ecosysteem voor iedereen bouwen.
Bekijk onze videodemo





