Denne artikel stammer fra det trykte Computerworlds arkiv. Artiklen blev publiceret den CTO d. 9. december 2005.
Siden 2002 har Microsoft fokuseret på at indbygge bedre sikkerhed i deres produkter. Udviklingsmetodikker med sikkerhedsfokus efter principperne i såkaldt Trustworthy Computing er en vigtig del af den proces.
I næste måned er det nøjagtigt fire år siden, at Bill Gates skrev et memo til alle Microsoft-ansatte om Trustworthy Computing - pålidelig it. Bill Gates ønskede, at brugerne af Microsofts produkter fik større tillid til selskabets software.
Det blev startskuddet til en intern proces, hvor fokus var at få bygget bedre sikkerhed ind i alle Microsofts produkter. Det krævede blandt andet, at Microsofts interne udviklingsproces blev ændret. Computerworld CTO har talt med Amy Roberts, leder af Product Management i Microsofts Security Technology Unit, om, hvilke ændringer Trustworthy Computing har medført for blandt andet den interne udviklingsproces hos Microsoft.
- En af de største umiddelbare ændringer som Trustworthy Computing medførte, var at alle udviklere skulle igennem et obligatorisk kursus i Trustworthy Computing, siger Amy Roberts.
Efter udviklerne havde været igennem sikkerhedskurset, skulle de gennemgå den kode, som de var ansvarlige for og sørge for, at kursusundervisningen blev omsat til praksis. At sende alle udviklere på kursus og bagefter bede dem om at evaluere deres kode med nye værktøjer og principper fra sikkerhedstræningen havde selvfølgelig stor betydning for Microsofts forskellige projekter.
Amy Roberts nævner, at udviklingen af Windows Server 2003 eksempelvis blev stoppet i to måneder som følge af sikkerhedstræningen. I dag er kurser i sikkerhed en naturlig del af en Microsoft-udviklers arbejdsliv. Alle Microsofts udviklere skal i løbet af et år deltage i obligatoriske sikkerhedskurser.
Det er dog ikke kun den enkelte udviklers kompetencer, der er blevet forbedret. I selve udviklingsprocessen har Microsoft forsøgt at indbygge procedurer og milepæle, der skal forbedre sikkerheden i softwareprodukterne. Det er gjort ved at udvikle den såkaldte Secure Development Lifecycle (SDL). SDL kører parallelt med den normale udviklingsproces og er specielt rettet mod software til forretningsbrug og al software, der på den ene eller anden måde er forbundet til intternettet.
- Allerede når et projekt går i gang, fastlægger vi sikkerhedskriterierne for produktet. Derudover er der milepæle med stresstest og forskellige sikkerhedstest gennem hele udviklingsprocessen, siger Amy Roberts.
Når designet for softwaren fastlægges, bliver der eksempelvis udarbejdet trusselsmodeller for softwaren. Trusselsmodellerne skal bruges til at identificere potentielle sikkerhedshuller i softwaredesignet og finde måder at imødegå truslerne på.
SDL integreres med den udviklingsmodel som et projekt har valgt at følge. Eksempelvis anvendes Scrum og Extreme Programming i .Net Developer Platform gruppens udviklingsproces. Der er dog ikke én udviklingsmetode, som anvendes overalt i Microsoft, men for hvert projekt vælges den udviklingsmetode, som passer bedst til projektet.
Foruden procesforbedring og træning af udviklerne, anvender Microsoft en række værktøjer, der skal være med til at minimere antallet af sårbarheder i produkterne.
- Vi anvender automatiske softwareværktøjer, der scanner koden for mulige sårbarheder som potentielle buffer-overflows, siger Amy Roberts.
Nogle af værktøjerne, eksempelvis kodeanalyse- og fejlfindings-værktøjer som PreFix og PreFast, er begyndt at blive gjort tilgængelige uden for Microsofts interne projekter.
Det er en gruppe fra Amy Roberts' Security Technology Unit, der gennemgår et udviklingsprojekts kode. Til sidst i sikkerhedstesten, bliver produktet udsat for et "Final Security Review". Her har gruppen bemyndigelse til at udskyde et produkts frigivelsesdato, hvis kvaliteten af det pågældende produkt ikke er god nok.
I september i år skrev Wall Street Journal, at Microsoft i sommeren 2004 besluttede at droppe den hidtidige kode for Vista og starte forfra med udviklingen.
Amy Roberts siger, at hun ikke kender ikke til den beslutning, og at hun ikke kan kommentere den konkrete sag.
- Generelt vil der være tale om, at en sådan beslutning træffes på øverste ledelsesniveau, siger Amy Roberts.
Boks:
Trustworthy Computing
Microsofts Trustworthy Computing har fire mål, som brugeren har forventninger til
Mål Brugerens forventninger
Sikkerhed Brugeren skal forvente, at et system kan modstå et angreb, og at fortrolighed, integritet samt tilgængelighed til systemet og dets data er bevaret.
Privatliv Brugeren skal have kontrol over sine personlige informationer. Dem, der anvender personlige informationer, skal overholde fair informations-principper.
Pålidelighed Brugeren kan forvente, at systemets funktioner er tilgængelige, når brugeren har brug for dem.
Integritet Leverandøren af et produkt opfører sig ansvarligt og lytter til brugerne af produktet.
Kilde: Trustworthy Computing whitepaper