Drie manieren om de beveiliging van uw software-toeleveringsketen te verbeteren

Sectie vier van de ‘Executive Order on Improving the Nation’s Cybersecurity’ liet veel mensen in de technologiewereld kennismaken met het concept van een ‘Software Supply Chain’ en het beveiligen ervan. Als u software maakt en deze ooit aan een of meer federale instanties hoopt te verkopen, dan bent u dat wel hebben om hier aandacht aan te besteden. Zelfs als u nooit van plan bent om aan een overheid te verkopen, zal het begrijpen van uw softwaretoeleveringsketen en het leren hoe u deze kunt beveiligen, vruchten afwerpen in de vorm van een sterkere veiligheidsbasis en de voordelen die deze biedt. In dit artikel worden drie manieren besproken om uw Software Supply Chain-beveiliging een boost te geven.

Wat is uw software-toeleveringsketen? Het is in essentie alles wat er komt kijken bij het bouwen van een stukje software: van de IDE waarin de ontwikkelaar code schrijft, tot de afhankelijkheden van derden, tot de buildsystemen en scripts, tot de hardware en het besturingssysteem waarop het draait. Instabiliteiten en kwetsbaarheden kunnen, al dan niet met opzet, worden geïntroduceerd vanaf het begin tot aan de implementatie en zelfs daarna.

1: Houd je geheimen geheim

Enkele van de grotere cyberveiligheidsincidenten van 2023 vonden plaats door slechte actoren gevonden geheimen in platte tekst. Geheimen zijn in deze context zaken als combinaties van gebruikersnaam en wachtwoord, API-sleutels, ondertekeningssleutels en meer. Deze sleutels tot bedrijfskoninkrijken werden ergens gevonden waar ze niet hoorden te zijn.

Sourcegraph werd gepwnd toen ze code publiceerden naar een openbare instantie die een hardgecodeerd toegangstoken bevatte. Het token werd gebruikt om andere accounts aan te maken en mensen gratis toegang te geven tot de Sourcegraph API. Een hackergroep kreeg toegang tot een interne foutopsporingsomgeving van Microsoft en vond een ondertekeningssleutel in een crashdump waarmee ze e-mailreferenties konden aanmaken.

Met tools zoals GitGuardian kunt u uw code, zowel verouderde als geavanceerde, controleren op per ongeluk gepubliceerde geheimen of pogingen om deze te publiceren. Het is belangrijk om te weten welke geheimen mogelijk zijn vrijgegeven en deze te herstellen, en om veiligheidsmaatregelen te treffen in de vorm van geautomatiseerde tools en codebeoordelingen om ervoor te zorgen dat andere sleutels niet naar buiten komen.

2: Gebruik SCA om uw stuklijst op te bouwen

Bij de productie is een stuklijst (BOM) een uitgebreide inventaris die alle grondstoffen, componenten en richtlijnen bevat die nodig zijn voor de constructie, productie of reparatie van een product of dienst. Zowel de cyberbeveiligingsregelgeving als de best practices omarmen het idee van een softwarestuklijst die transparantie en herkomst biedt van alle onderdelen die bij het bouwen van uw software komen kijken.

Maar u kunt gewoon geen stuklijst samenstellen uit uw lijst met gedeclareerde afhankelijkheden.

Pakketrepository’s zoals NPM, PyPI en de integratie van open-sourceframeworks en bibliotheken werden geprezen omdat ze de ontwikkeling van software efficiënter maakten omdat ze de wielen niet opnieuw hoefden uit te vinden. In plaats daarvan konden ontwikkelaars gratis pakketten vinden die de functionaliteit implementeerden die ze nodig hadden en deze gemakkelijk in hun software integreren.

Ze stelden ontwikkelaars ook bloot aan een groeiend web van afhankelijkheden. Misschien merk je dat het voelt als “schildpadden helemaal naar beneden”, omdat je afhankelijkheden afhankelijkheden hebben die afhankelijkheden hebben… Je hebt misschien zelfs subafhankelijkheden op vier verschillende releases van hetzelfde pakket, die allemaal verschillende kwetsbaarheden hebben.

Software Composition Analysis-tools scannen automatisch de codebase van uw project en identificeren alle externe componenten die u gebruikt, inclusief alle schildpadden zo ver mogelijk naar beneden. Vervolgens voeren ze controles uit om er zeker van te zijn dat deze componenten up-to-date en veilig zijn en voldoen aan de licentievereisten.

Dit helpt niet alleen om te identificeren welke afhankelijkheden bekende exploits bevatten, zodat u deze kunt bijwerken of vervangen, maar dat is ook een grote hulp als u een schone stuklijst moet genereren voor inspectie door potentiële klanten en toezichthouders.

3: Ga jezelf hacken

Ethisch hacken is ouder dan de meeste recente CS-afstudeerders. Zoals vermeld in een recent webinar over ethisch hacken, gaat het om “het identificeren en exploiteren van kwetsbaarheden in computersystemen of netwerken op een verantwoordelijk en wettig Let op de nadruk op ‘verantwoordelijk’ en ‘wettig’.

In wezen gebruiken ethische hackers meest van dezelfde technieken als “black hat”-hackers om kwetsbaarheden in een systeem te vinden en te exploiteren. Het verschil dat niet genoeg kan worden benadrukt, is dat ze het met toestemming doen. Ze houden zich aan de systemen waarvoor ze toestemming hebben gekregen om ze te hacken en documenteren vervolgens alles zodat hun ontdekkingen kunnen worden gereproduceerd en geanalyseerd door het team/de klant aan wie ze ze rapporteren.

Hoewel dit vaak in een later stadium van het ontwikkelingsproces kan gebeuren, is het belangrijk. Als ze uw afhankelijkheden kunnen bepalen en hun eigen SCA kunnen uitvoeren die kwetsbare afhankelijkheden identificeert, is het spel voorbij. Als ze een onbewaakt toegangspunt kunnen vinden, is het spel voorbij. Als ze een web-app testen en debugcode ontdekken die vertrouwelijke uitvoer naar de console uitvoert, is het spel voorbij. Sommige kwetsbaarheden kunnen showstoppers zijn, andere hoeven alleen maar een regel foutopsporingscode te verwijderen.

Door ethisch hacken onderdeel te maken van het vrijgaveproces, mee te doen aan bugbounty-programma’s en nog veel meer, kun je ervoor zorgen dat je dingen oplost voordat je je ervoor moet verontschuldigen, ze moet melden aan toezichthouders en moet opruimen.

Samenvatting

Of u nu toezichthouders of klanten tevreden wilt stellen, door uw Software Supply Chain Security te verbeteren, kunt u meer tijd besteden aan het verkopen van uw software en minder tijd besteden aan het verontschuldigen ervan. En hoewel deze drie tips u een goede basis bieden, kunt u nog veel meer vinden in het SLSA-beveiligingsframework. Door aan het raamwerk te werken en uw toeleveringsketen te beveiligen, komt u (in de woorden van de SLSA-site) “van ‘veilig genoeg’ naar zo veerkrachtig mogelijk, op elke schakel in de keten.”

Thijs Van der Does