image

Microsoft: Meer security en minder lekken door SDL

maandag 28 maart 2005, 10:45 door Redactie, 7 reacties

Microsoft is met haar anti-virus en anti-spyware niet alleen bezig met symptoombestrijding, want de softwaregigant doet ook haar best om veilig te programmeren. Dankzij de "Security Development Lifecycle", die bijna voor alle produkten geldt, is het aantal security lekken en de ernst ervan, "significant verminderd". De bevindingen en richtlijnen zijn te vinden het 19-pagina's tellende whitepaper: The Trustworthy Computing Security Development Lifecycle, waarin de procedures voor het ontwikkelen van software bij Microsoft van het begin tot het einde besproken worden.

SDL is verplicht voor 90% van alle programma's die bij Microsoft gemaakt worden. Het maakt gebruik van vier principes die tijdens elke fase van de ontwikkeling toegepast worden. "Ten tijde van de oude methode schreef je code en ging je dan op zoek naar bugs, maar dat werkt niet meer. Je moet je processen en technieken zo aanpassen om van het begin tot het einde software te ontwikkelen die kwaadaardige aanvallen kan weerstaan." zo laat Michael Howard van Microsoft weten.

Door SDL zouden Microsoft programmeurs nu tijdens elke fase met security bezig zijn. Van ontwerp tot implementatie, SDL eist dat de architectuur zichzelf kan beschermen tegen de informatie die het verwerkt en het aanvallen weerstaan. "Dit is absoluut verplicht. En de opdracht komt van Bill Gates en Steve Ballmer. Dat is een van de meest opwindende dingen vanuit een security standpunt gezien, aangezien we 1000% ondersteuning van het hoogste management hebben." zo gaat Howard verder.

Reacties (7)
28-03-2005, 11:43 door Anoniem
90 procent van de programma's gedekt door SDL ?
Vallen windows en IE zeker onder die resterende 10 procent !
28-03-2005, 11:43 door rob
Betekent dit dat microsoft hiervoor geen aandacht aan
security besteedde gedurende de ontwerp-fase? Niet dat dat
me verrast hoor :-)
28-03-2005, 13:54 door Anoniem
Dat is natuurlijk ook een manier om te brengen dat je
eigenlijk jarenlang op onverantwoordelijke wijze producten
gemaakt hebt en in de markt hebt gezet. Ah well.. marketing..
28-03-2005, 18:18 door GateHawk
Iedereen die wel eens een CGI-script voor een webserver
heeft geschreven en zich een beetje verdiept heeft in
veiligheid weet dat het veilig schrijven een gigantische
klus is. Simpel voorbeeld;

Variabele $file kan ingevoerd worden op een pagina en wordt
gebruikt in: system("ls $file");
Als de gebruiker nu eens "help.txt; rm -rf /" invoerd heb je
al een probleem. Gaan we controleren op meta-characters
krijgen we;

if ($file =~ /[;~[]{}&'"]/)
exit;
else
system ("ls $file");

Echter is het nog steeds mogelijk om via code een
meta-character in de system-aanroep te krijgen. Uiteindelijk
wordt het dus;

system 'wc', '-c', $file;

Ik hoop dat het nu een beetje duidlijk is dat ECHT veilig
programmeren een drama is. Je kan tenslotte niet alles overzien.
28-03-2005, 21:04 door Anoniem
"
Iedereen die wel eens een CGI-script voor een webserver
heeft geschreven en zich een beetje verdiept heeft in
veiligheid weet dat het veilig schrijven een gigantische
klus is. Simpel voorbeeld;

Variabele $file kan ingevoerd worden op een pagina en wordt
gebruikt in: system("ls $file");
Als de gebruiker nu eens "help.txt; rm -rf /" invoerd heb je
al een probleem. Gaan we controleren op meta-characters
krijgen we;

if ($file =~ /[;~[]{}&'"]/)
exit;
else
system ("ls $file");

Echter is het nog steeds mogelijk om via code een
meta-character in de system-aanroep te krijgen. Uiteindelijk
wordt het dus;

system 'wc', '-c', $file;

Ik hoop dat het nu een beetje duidlijk is dat ECHT veilig
programmeren een drama is. Je kan tenslotte niet alles overzien.

"

Het probleem ligt in de programmeertalen van tegenwoordig.
Je gebruikt lib functies om het te vergemakkelijken.
Wat betreft de commando's in zo'n programmeertaal ?
Maar wat als hierin niet wordt gecontroleerd op de voorwaarden
zoals je bijvoorbeeld boven aan geeft ?
Zelf schrijven gaat niet want daar krijg je de tijd niet voor. Of de
kennis hoe het onderliggende systeem werkt is niet aanwezig om
diverse redenen.

Ik denk dat dat het probleem in de flexibiliteit ligt. Om soepel te
zijn kan een gegeven programmeertaal een hoop. Om veiligheid
te bieden kan een programmeertaal weinig. 2 Door meer
personen al opgemerkte onverenigbare situaties zolang het
fundament niet vanaf stap 1 goed doordacht is.

Dat microsoft dit nu inziet is mooi, maar alles uitsluiten, ik denk
het niet. Je kan niet alles overzien, maar je kan wel degelijk van
tevoren een hoop problemen voorkomen en vervelende situaties
uitsluiten. Dat heet visie. De visie van microsoft ligt meer op het
economische vlak en dat doen ze dan ook verdraaid goed.

ALG
29-03-2005, 00:50 door Anoniem
Door rob
Betekent dit dat microsoft hiervoor geen aandacht aan
security besteedde gedurende de ontwerp-fase? Niet dat dat
me verrast hoor :-)
Het betekent m.i. dat men eerst de code schreef om de
dead-line te halen en als er nog tijd over was ook nog even
naar de bugs zocht.
Het op tijd uitbrengen van software is goed voor de
aandelen, het vervolgens nog jaren moeten plakken en
pleisteren om het veilig te krijgen heeft blijkbaar geen
effect op die aandelen, terwijl het voor de leverancier
enorm kostbaar kan zijn.

Probleem lijkt er een beetje op dat je managers eigenlijk
niet wijs kunt maken dat dingen nou eenmaal langer duren (=
duurder worden), als je ze goed wilt doen; "daar is geen
budget voor".

We worden dus uiteindelijk allemaal geregeerd door mensen
die op korte termijn winst willen.

En dat is meer dan jammer.
29-03-2005, 08:39 door fd0
veilig programmeren begint aan de basis nl. ontwerpen voor
veiligheid. Vaak is veiligheid omgekeerd evenredig met
productiviteit. Het zou handig zijn als het OS M$ van de
grond af aan opnieuw wordt ontworpen en geschreven met
veiligheid in het achterhoofd, ipv security-patch na
security-patch uit te moeten geven.

Nu maar hopen dat Longhorn vanaf de grond af aan veilig is
ontworpen en gebouwd
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.