De Security Development Lifecycle (SDL) is sinds enkele jaren de leidraad van Microsoft bij de ontwikkeling van haar software. Het bedrijf uit Redmond was jarenlang het lachtertje van de klas als het ging om het produceren van veilige code, maar heeft door de toepassing van de SDL de laatste jaren grote stappen gezet. Niet alleen past het zelf de regels van de SDL toe binnen de eigen processen, ook stimuleert het anderen deze werkwijze over te nemen. Daartoe publiceert het bedrijf de onderliggende regels en werkwijze en heeft het ook de tools hiermee in overeenstemming gebracht die het zelf voor softwareontwikkeling maakt.

Agile softwareontwikkeling

Microsoft heeft nu de SDL aangepast vanwege de nieuwe ontwikkelingen bij de ontwikkeling van software en bij het op het internet hosten van bedrijfsapplicaties. De eerste grote aanpassing aan de SDL is dat Microsoft deze geschikt heeft gemaakt voor gebruik door teams die agile softwareontwikkeling toepassen. Bij agile softwareontwikkeling gebeurt het hele proces van softwareontwikkeling in een reeks korte slagen, in plaats van in een lang traject. Iedere slag levert een nieuwe versie op en een hele reeks slagen het beoogde product. Agile softwareontwikkeling is vooral populair bij ontwikkeling van software voor het web.

De kortstondige cycli binnen agile softwareontwikkelingen stemden voorheen niet overeen met de werkwijze die door de SDL werd aangedragen. De SDL was meer gericht op langere projecten met meer mogelijkheden voor controle en bijstelling. Met de nieuwste versie van de SDL is dit probleem opgelost.

Volgens Bryan Sullivan van het Microsoft’s Trustworthy Computing Group binnen Microsoft, heeft men de SDL aangepast op basis van best practices bij teams die al probeerden agile softwareontwikkeling in overeenstemming te brengen met de SDL. Sullivan, die we spraken op TechEd in Berlijn, vertelt hoe de eisen van SDL zijn onderverdeeld in eisen die eenmalig gesteld worden binnen een heel langlopend project, eisen die regelmatig moeten worden gesteld en eisen waar bij elke slag van de agile softwareontwikkeling naar moet worden gekeken omdat ze cruciaal zijn voor de uiteindelijke kwaliteit en veiligheid van de software. “Belangrijk is dat we daarbij de requirements allemaal hebben gehandhaafd, we hebben er geen een laten vallen. De uiteindelijke kwaliteitseis van de SDL is daarmee onveranderd”, aldus Sullivan. Tot de eerste categorie rekent Sullivan onder meer het opstellen van een systeem voor bug-tracking en het upgraden van de compilers, terwijl threat-modelling en code-review elke ronde moeten gebeuren.

Veilige software voor de cloud

Behalve de aanpassing aan recente trends in de softwareontwikkeling heeft Microsoft ook een whitepaper gepubliceerd over de SDL in relatie tot software voor gebruik in de cloud. De paper is geschreven door Steve Lipner, de Senior Director voor Security Engineering Strategy binnen de Microsoft Trustworthy Computing Group enoorspronkelijk auteur van het Security Development Lifecycle-proces. Ook Lipner was aanwezig op TechEd.

Volgens Lipner stelt cloud-computing softwareontwikkelaars voor een nieuwe uitdaging. Doordat de applicatie in de cloud draait is het niet meer voldoende alleen de applicatie via SDL te beveiligen, maar moet ook de cloud worden gecontroleerd. “De veiligheid van de applicatie is de combinatie van de beveiliging van de software en de beveiliging van het cloudplatform”, aldus Lipner.

Om een voorbeeld te geven beschrijft Lipner in zijn whitepaper hoe Microsoft de regels van SDL heeft toegepast bij ontwikkeling en design van haar cloudplatform. Daarnaast heeft Microsoft de eigen beheerorganisatie onderworpen aan onder meer een ISO27001:2005 en SAS 70-traject om de kwaliteit van het beheer inzichtelijk te maken.

Lipner roept ontwikkelaars op om hun ontwikkelproces in overeenstemming te brengen met de best practices van de SDL. De nieuwste aanpassing maakt dit bovendien juist ook mogelijk voor ontwikkelaars die ontwerpen voor gebruik van software in de cloud.

Bron: Techworld