DevOps is een populair begrip geworden. Google Trends bevestigt dat de bekendheid met het begrip het afgelopen jaar geëxplodeerd is. Het is niet alleen populair, er is ook behoefte aan DevOps. Dat blijkt uit dat ook traditionele organisaties nu de overstap maken naar DevOps. Doordat de focus bij DevOps ligt op het snel op kunnen leveren van nieuwe functionaliteit lijkt software security ondergesneeuwd te raken, maar gelukkig hoeft dat niet.
DevOps is een software ontwikkelmethode waarbij gestimuleerd wordt dat teams van ontwikkelaars, testers en beheerders die productieomgevingen onderhouden met elkaar samenwerken. De samenwerking tussen teams maakt het mogelijk om de time-to-market te verkorten, de kans op een succesvolle release te vergroten en fouten en/of incidenten sneller te verhelpen. Om deze doelen te bereiken wordt DevOps vaak ingezet in combinatie met elementen van Continuous Delivery en Continuous Deployment zoals het gebruik van gestandaardiseerde ontwikkelomgevingen, automatisering van integratie- en testprocessen en geautomatiseerde installatie & distributie van applicaties (deployment). Hierdoor wordt het releasen van toepassingen een voorspelbaar en efficiënt proces.
De voordelen van DevOps klinken te mooi om waar te zijn. Een veel gehoorde kritiek is dat een ontwikkelaar in een DevOps organisatie, een full-stack ontwikkelaar, kennis en ervaring in veel verschillende domeingebieden nodig heeft: server en netwerk-infrastructuur, applicatieservers, data modeling en management, business logica, APIs, software raamwerken en bibliotheken, gebruikersinterfaces en natuurlijk de eisen en wensen van de klant. Critici menen dat deze kennis en ervaring niet in een persoon verenigbaar zijn, zeker in grote organisaties.
Beveiligingsspecialisten uiten andere zorgen. De eerste ligt ten grondslag aan de cultuur binnen sommige DevOps-organisaties. Deze cultuur legt een focus op het verkorten van de time-to-market om functionaliteit op te leveren. Aan niet direct zichtbare of tastbare zaken zoals security wordt volgens critici onvoldoende prioriteit gegeven. Het resultaat: minder veilige software in productie.
De tweede zorg ligt in de snelheid van het voortbrengingsproces. Snelle wijzigingen in configuratie en code kunnen leiden tot nieuwe beveiligingsrisico’s. Door het toepassen van automatische security tests zijn kwetsbaarheden in een vroeg stadium op te sporen. Echter, niet alle typen kwetsbaarheden zijn met automatische security tests op te sporen, een voorbeeld zijn logische fouten. Handmatige en tijdrovende security analyses (code review, penetratie testen) blijven dus nodig. Door de snelheid van het voortbrengingsproces in een DevOps omgeving kunnen de resultaten van deze analyses achterhaald zijn.
Kortom, door toepassing van DevOps kunnen beveiligingsrisico’s onontdekt blijven. In een volgende blogpost zullen we zien dat DevOps juist heel veel kansen en mogelijkheden biedt om de beveiliging van software naar een hoger niveau te brengen.
In toenemende mate omarmen organisaties DevOps om snel nieuwe functionaliteit op te kunnen leveren. In onze vorige blogpost, hebben we beschreven dat door toepassing van DevOps beveiligingsrisico’s onontdekt kunnen blijven waardoor het beveiligingsniveau van software applicaties omlaag gaat. Toch biedt DevOps juist heel veel kansen en mogelijkheden om de beveiliging van software naar een hoger niveau te brengen.
Tijdens de beveiligingsonderzoeken die we uitvoeren, zien we dat organisaties die DevOps toepassen een aantal voordelen hebben:
Het toepassen van DevOps maakt een applicatie niet automatisch veiliger. De introductie van DevOps in een software ontwikkelorganisatie biedt juist kansen en mogelijkheden om een Secure Software Development Life Cycle (SSDLC) in te voeren of deze te verbeteren. Een SSDLC is een proces dat ontwikkelaars helpt bij het realiseren van veilige software gedurende het gehele software ontwikkelproces, in plaats van achteraf over software security na te denken. Binnen zo’n SSDLC zijn een aantal security activiteiten te onderscheiden zoals threat modeling, code review met behulp van statische analyse tools en het gebruik van vulnerability scanners.
In pure DevOps omgevingen wordt vaak gestuurd op IT performance-gerelateerde metrieken zoals deployment frequency en deployment lead time. Door alleen hierop te sturen, bestaat inderdaad het risico dat software security het kind van de rekening wordt. Organisaties moeten daarom ook security metrieken in ogenschouw nemen zodat gestuurd kan worden op het verbeteren van software security. Een goede eerste stap is om vast te stellen hoe succesvol een organisatie is in het integreren van security in het ontwikkelproces.
Door: Theodoor Scholte, Software Security Consultant bij de Software Improvement Group, ism met cqure.nl kennisplatform