Trends en tips voor bescherming software supply chain
Het afgelopen jaar hebben aanvallen op de software supply chain flinke schade veroorzaakt voor de reputaties en resultaten van bedrijven. Eén van de bekendste was Nvidia, waarvan gestolen certificaten voor het ondertekenen van softwarecode zijn misbruikt om malware te ondertekenen. Nvidia is aangevallen met ransomware die leidde tot een datalek van zo’n 1TB. Behalve de inloggegevens van medewerkers en intellectueel eigendom, zijn er ook twee verlopen certificaten voor het ondertekenen van software gestolen en hun privé sleutels.
Hoewel de gestolen Nvidia-certificaten al waren verlopen stond Microsoft Windows het destijds nog toe dat stuurprogramma’s ondertekend met vertrouwde certificaten voor codesigning in het besturingssysteem werden geladen. Uit voorbeelden die na deze hack zijn geüpload naar de Virustotal-malwarescanservice, blijken de gestolen Nvidia-certificaten te zijn benut om malware en hacktools te ondertekenen, zoals Cobalt Strike beacons, Mimikatz, backdoors en trojans voor externe toegang.
Code signing-aanvallen
Aanvallen op servers voor code-signing zijn niet nieuw. De afgelopen jaren is er al veelvuldig gewaarschuwd voor het risico van gestolen certificaten en sleutels voor code signing, waarmee kwaadwillenden malware digitaal kunnen ondertekenen en als 'vertrouwd' kunnen verspreiden. De risico’s worden echter steeds groter. Er worden niet alleen meer sleutels gestolen, maar ook uploadomgevingen misbruikt en met malware geïnfecteerde code of kwetsbaarheden ontdekt als gevolg van de steeds vaker toegepaste open source bibliotheken bij softwareontwikkeling. Deze ontwikkeling leidt tot grote financiële en imagoschade voor de getroffen organisaties. Code signing aanvallen zijn zo wijdverspreid dat de Verenigde Staten een uitvoerend bevel hebben uitgegeven om de cyberbeveiliging van het land te verbeteren. Eén van de belangrijkste stappen daarin is het gebruik van een oplossing voor code signing om de integriteit van de softwarecode te kunnen waarborgen.
Wat kunt u zelf doen om de software te beveiligen die gerelateerd is aan code signing, om toekomstige problemen te voorkomen en de evolutie van securityrisico’s voor software bij te houden? Wij adviseren een centrale managementoplossing voor code signing. In deze blog worden de valkuilen uitgelegd van de traditionele, handmatige of lokale methode voor code signing en hoe een managementoplossing helpt best practices te gebruiken.
Kwetsbaarheden handmatige code signing
Cybercriminelen zoeken continu naar kansen om misbruik te maken van onveilige methoden voor code signing. Volgens het National Institute of Standards and Technology (NIST) is het ondermijnen van code signing een van de gebruikelijke aanvalstechnieken bij aanvallen op de software supply chain. Het handmatig ondertekenen van code kan leiden tot kwetsbaarheden in de sleutelbeveiliging, beleid of gedrag en processen.
- Sleutelbeveiliging: bij het handmatig ondertekenen van softwarecode is het moeilijk om bij te houden waar sleutels zijn en hoe ze worden beschermd. De sleuteltoegang kan niet eenvoudig worden ingetrokken als werknemers vertrekken, en sleutels of certificaten worden mogelijk niet veilig opgeslagen. Dit maakt het maar al te gemakkelijk om sleutels voor het ondertekenen van softwarecode te delen, te misbruiken of te stelen.
- Beleid/gedrag: bij handmatig ondertekenen is er geen gemakkelijke oplossing om bij te houden of te controleren wie, wat, wanneer, heeft ondertekend. Zonder rechtenbeheer is het afdwingen en handhaven van het securitybeleid en gewenst gedrag vrij moeilijk.
- Processen: processen voor het scheiden van taken en organiseren welke sleutels of certificaten te gebruiken bij het ondertekenen, kunnen leiden tot de uitgifte van sleutels die voor alle apps worden toegepast. Daarmee wordt het herstel belemmerd en tevens gemakkelijker gemaakt om builds te ondertekenen die onbewust malware bevatten.
Om securityrisico’s te voorkomen naarmate de kwetsbaarheden toenemen, is het verstandig om een centraal beheerde managementoplossing te gebruiken voor code signing en het gebruik van ‘best practices’ te waarborgen
Managementoplossing voor code signing
Een managementoplossing voor code signing helpt de best practices te waarborgen voor o.a.:
- Bescherming sleutels
- Hash-ondertekening
- Beveiligingscontroles
- Rolgebaseerde toegangscontroles
- Naleving securitybeleid handhaven
- Inzicht softwarelevenscyclus
- SBOM (Software Bill of Materials)
Naleving handhaven is relevanter dan ooit, zoals conform de verbeterde richtlijnen voor code signing sleutelbeveiliging ontwikkeld door de Code Signing Working Group van het CA/B Forum. Hiervoor zijn wijzigingen in het beheer van code-signing nodig. Met een managementoplossing kan men gemakkelijker op de hoogte blijven van en voldoen aan veranderende regelgeving.
Managementplossingen voor code signing bieden tevens methoden om het risico van gestolen sleutels te verkleinen. DigiCert Secure Software Manager beveiligt sleutels, centraliseert het beheer, dwingt beleid af en integreert met CI/CD, met flexibele opties voor het implementeren ervan.
Softwarelevenscyclus inzichtelijk maken en monitoren
Het inzichtelijk maken van de softwarelevenscyclus is niet langer alleen maar nodig voor het eigen inzicht van organisaties, het wordt ook steeds belangrijker voor alle klanten en partners. Klanten willen tegenwoordig weten hoe software wordt gemaakt, zodat ze plannen en controles kunnen invoeren om actie te ondernemen als een onderdeel ervan wordt gecompromitteerd.
Het is belangrijk dat organisaties die software ontwikkelen de levenscyclus daarvan blijven monitoren, zodat ze een volledig inzicht hebben in wat er in verschillende releases verandert. Tevens biedt het volgen van de levenscyclus beter inzicht in waar men risico's loopt door het gebruik van code van derden en een bibliotheek die deel uitmaakt van de software.
SBOM maakt kwetsbaarheden inzichtelijk
Net zoals IoT-apparaten kwetsbaar zijn voor cyberaanvallen, zijn alle software, hardware en zelfs gecontaineriseerde datacenters dat ook. De al eerder genoemde US Executive Order on Cybersecurity is ontworpen om deze kwetsbaarheden te helpen oplossen en werkt op basis van een volledige SBOM. SBOM's zijn het beste te gebruiken voor toepassingen van open source software en private trust, draaiend op met het Internet verbonden apparaten
Pas als de samenstelling bekend is kan men software vertalen naar een overzichtelijke SBOM, vergelijkbaar met het etiket op een voedselproduct. Dit helpt organisaties niet alleen waakzaam te blijven voor kwetsbaarheden afkomstig van derden, maar helpt ook het vertrouwen bij klanten en partners te vergroten door middel van transparantie. Het geeft hen namelijk de mogelijkheid om snel actie te ondernemen binnen de eigen omgeving, zodra er software of een apparaat met een kwetsbaar onderdeel wordt geïdentificeerd.
Software evolueert en verandert continu, waardoor zowel het eigen management als klanten willen weten waaruit deze bestaat. Daarom verwachten ik dat een SBOM in de toekomst aan alle software wordt toegevoegd, als één van de stappen die de industrie zet om beter inzicht te krijgen in alle componenten waaruit de gebruikte software bestaat.
Dave Roche, Senior Product Manager bij DigiCert