Opvallend evenwicht: softwarebeveiliging opnieuw definiëren met 'Shift Left' en SDLC Guardrails

Alle berichten

TL; DR

De afgelopen jaren heeft de technologie-industrie vurig gepleit voor het concept van ‘naar links verschuiven’ in de softwareontwikkeling, en gepleit voor een vroege integratie van beveiligingspraktijken in de ontwikkelingslevenscyclus. Deze beweging heeft tot doel ontwikkelaars de verantwoordelijkheid te geven om de veiligheid van hun code vanaf het begin van het project te garanderen. Hoewel de bedoelingen achter deze aanpak nobel zijn, schetst de realiteit een genuanceerder beeld – een beeld waarin het simplistische idee om uitsluitend te vertrouwen op ontwikkelaars om te handhaven beveiliging van de toeleveringsketen van software blijkt ontoereikend. In dit artikel presenteer ik een complementaire balanceringsaanpak: CISO-gestuurde SDLC-vangrails – automatische controlemaatregelen die het veiligheidsbeleid van SDLC bepalen of afdwingen.

Wie heeft mijn kaas achtergelaten?

Het shift-left-paradigma is in wezen bedoeld om beveiligingsproblemen in de beginfase van de ontwikkeling aan te pakken, waarbij van ontwikkelaars wordt verwacht dat ze proactief beveiligingsmaatregelen in hun code inbedden. Het is een aantrekkelijke ideologie waarin ontwikkelaars de taak hebben om kwetsbaarheden te identificeren en beveiligingsmaatregelen te implementeren terwijl ze hun code schrijven en implementeren.

Deze idealistische benadering stuit bij de praktische implementatie echter op aanzienlijke uitdagingen. Hoewel ze bedreven zijn in coderen, ontbreekt het ontwikkelaars mogelijk aan uitgebreide expertise op het gebied van beveiligingstechnieken en best practices. Hun primaire focus ligt op het voldoen aan functionele vereisten, en het is onrealistisch om van hen te verwachten dat ze een uitputtend inzicht hebben in het steeds evoluerende landschap van cyberbeveiliging.

Bovendien resulteren tijdgebrek en projectdruk vaak in een afweging tussen veiligheid en het halen van deadlines. In de haast om functies snel te leveren, kunnen ontwikkelaars onbedoeld potentiële beveiligingslekken over het hoofd zien of minder veilige codeermethoden gebruiken, waardoor kwetsbaarheden pas in een later stadium worden aangepakt. Uiteindelijk zijn hun KPI's snelheidsgericht en zal beveiliging voor de meerderheid van hen altijd op de tweede plaats komen.

Betreed CI/CD Guardrails

Dit is waar de noodzaak van het implementeren van veiligheidsbeveiligingen in de Continuous Integration/Continuous Deployment (CI/CD) pijplijn duidelijk wordt. Guardrails fungeren als geautomatiseerde controlepunten die zijn ingebed in de ontwikkelingspijplijn en zorgen ervoor dat beveiligingsmaatregelen niet uitsluitend afhankelijk zijn van handmatige interventies of de expertise of motivatie van individuele ontwikkelaars.

Guardrails dienen als proactieve poortwachters en bewaken en handhaven voortdurend beveiligingsstandaarden, beleid en regels gedurende de levenscyclus van softwareontwikkeling (SDLC). Deze geautomatiseerde controles kunnen verschillende beveiligingsaspecten omvatten, inclusief maar niet beperkt tot het blokkeren van slechte pakketten, het stoppen van code die kritieke kwetsbaarheden bevat, niet slaagt voor tests voor statische codeanalyse of problematische afhankelijkheden heeft, en het naleven van nalevingsnormen of het beveiligen van SDLC-beleid (bijvoorbeeld code beoordeling voor elke commit).

Met behulp van beleids-als-code-concepten kan men vrijwel elke regel creëren die men maar kan bedenken om als vangrail te implementeren. Hier zijn een paar voorbeelden van vangrailregels die in overeenstemming zijn met NIST 800-204D:

Vangrail voorbeeld

Voorbeeldige vangrailregels:

  1. Werkstation voor ontwikkelaars
    • Verifieer het eindpuntbeveiligingspakket van het ontwikkelaarswerkstation
  2. SCM
    • Verifieer de regels voor branchebescherming: dwing meerdere\specifieke beoordelingen af
    • Controleer of CI-bestanden alleen door bevoegd personeel worden gewijzigd
    •  Controleer of er een geheime scan is uitgevoerd en of er geen geheimen zijn gedetecteerd.
  3. CI
    • Controleer of het scannen van de code is uitgevoerd.
    • Controleer of de resultaten van het scannen van de code zich onder een vooraf gedefinieerde balk bevinden
  4. afhankelijkheden
    • Controleer open-sourcelicenties.
    • Controleer of open-sourcekwetsbaarheden in overeenstemming zijn met het organisatiebeleid
  5. Artifacts
    • Controleer of de juiste identiteit artefacten tekent.
    • Controleer de uiteindelijke kwetsbaarheden van artefacten.

Leuningen, geen leuningen

Door vangrails in de CI/CD-pijplijn te integreren, kunnen organisaties systematisch beveiligingsprotocollen afdwingen en resulteren in een veilig product zonder uitsluitend op de ontwikkelaars te vertrouwen voor uitgebreide beveiligingsmaatregelen. Rekening houdend met het feit dat ontwikkelaars beveiligingsmaatregelen kunnen omzeilen omwille van het ontwikkelingstempo, maakt de guardrails-benadering deze beslissingen onmogelijk of op zijn minst zichtbaar, zodat er rekening mee kan worden gehouden – zowel op het niveau van één build (bijvoorbeeld beslissen over de betrouwbaarheid van artefacten ) en op organisatieniveau (begrijpen wat wel en niet kan worden verwacht van de ontwikkelaars van de organisatie). Geautomatiseerde tools kunnen potentiële kwetsbaarheden of niet-nalevingsproblemen signaleren of zelfs blokkeren voordat de nieuwe versie wordt vrijgegeven voor productie of aan de klant wordt geleverd. Het aanpakken van een beveiligingsprobleem in de ontwikkelingsfase in plaats van na de oplevering is immers veel gemakkelijker, sneller en goedkoper.

Het is absoluut noodzakelijk om te erkennen dat de verschuiving naar links weliswaar de betrokkenheid van ontwikkelaars bij beveiligingspraktijken aanmoedigt, maar dat dit andere belanghebbenden (beveiligingsprofessionals, DevOps-ingenieurs en kwaliteitsborgingsteams) niet van hun rol mag ontslaan. Als u een productbeveiligingsmedewerker, AppSec, DevSecOps of CISO bent, weet u al dat het "naar links verschuiven" van de verantwoordelijkheid jegens ontwikkelaars de verantwoordelijkheid niet van uw schouders neemt. Omdat de meeste CISO's en hun teams niet uit R&D komen, waren softwareontwikkelomgevingen historisch gezien uit hun zicht. Traditioneel zouden ze zich richten op operationele beveiliging, netwerkbeveiliging en connectiviteit tussen organisaties. De guardrails-benadering is een manier om de CISO’s ‘delicaat’ naar het wilde westen van de ontwikkelomgevingen te krijgen, waardoor ze de controle terugkrijgen over waar ze verantwoordelijk voor zijn. Met ‘delicaat’ bedoel ik ‘samenwerkend’. Omdat productbeveiliging een gezamenlijke inspanning is van beveiligings- en ontwikkelingsteams, is samenwerking tussen deze entiteiten essentieel bij het ontwerpen en implementeren van robuuste vangrails die de CI/CD-pijplijn versterken tegen potentiële veiligheidsbedreigingen zonder de ontwikkelingssnelheid te belemmeren.

De integratie van verschuivende linkse principes met het opzetten van vangrails in de CI/CD-pijplijn is een goed evenwicht. Ontwikkelaars blijven verantwoordelijk voor het schrijven van veilige code en het begrijpen van de basisprincipes van beveiliging, terwijl het beveiligingsteam beslist aan welke normen het product moet voldoen om te worden vrijgegeven. Vervolgens worden vangrails dienovereenkomstig geautomatiseerd tot tools en processen die als vangnet kunnen fungeren, waarbij de beveiligingsnormen en het SDLC-beleid voortdurend worden bewaakt en versterkt. Vangrails zijn een essentiële stap in de richting van producten die zowel door hun ontwerp als door de standaardbeveiliging veilig zijn.

Afsluiten

Concluderend: hoewel het goed bedoeld is, schiet het concept van een verschuiving naar links tekort in het garanderen van alomvattende softwarebeveiliging uitsluitend via de betrokkenheid van ontwikkelaars. Om de integriteit en betrouwbaarheid van het uiteindelijke software-artefact te versterken, moeten organisaties de implementatie van vangrails binnen de CI/CD-pijplijn omarmen. Deze gecombineerde aanpak verbetert niet alleen de beveiligingspositie van software, maar bevordert ook een samenwerkingsomgeving waarin ontwikkelaars, beveiligingsprofessionals en automatiseringstools synergetisch werken aan een gemeenschappelijk doel: het creëren van veilige software.

Deze inhoud wordt u aangeboden door Scribe Security, een toonaangevende aanbieder van end-to-end software supply chain-beveiligingsoplossingen die state-of-the-art beveiliging levert voor codeartefacten en codeontwikkelings- en leveringsprocessen in de software supply chain. Meer informatie.