How The Security Development Lifecycle (SDL) Improved Windows Vista
How The Security Development Lifecycle (SDL) Improved Windows Vista
Development Lifecycle
(SDL) Improved
Windows Vista
Michael Howard
[email protected]
Senior Security Program Manager
Microsoft Corp.
OWAS
P
AppSe Copyright © 2006 - The OWASP Foundation
c
Permission is granted to copy, distribute and/or modify this document
under the terms of the Creative Commons Attribution-ShareAlike 2.5
License. To view this license, visit
Seattl http://creativecommons.org/licenses/by-sa/2.5/
e The OWASP
Oct 2006 http://www.owasp.org/ 1
Foundation
Who is this Guy?
[email protected]
Microsoft employee for 14 years
Always in security
A pragmatist!
Prescriptive
Guidance
OWAS
P
AppSe Copyright © 2006 - The OWASP Foundation
c
Permission is granted to copy, distribute and/or modify this document
under the terms of the Creative Commons Attribution-ShareAlike 2.5
License. To view this license, visit
Seattl http://creativecommons.org/licenses/by-sa/2.5/
e The OWASP
Oct 2006 http://www.owasp.org/ 7
Foundation
Standard Annotation Language
void FillString(
__out_ecount(cchBuf) TCHAR* buf,
size_t cchBuf,
TCHAR ch) {
buf[i] = ch;
}
}
__out_ecount(cchBuf)
Must check
return value Optional, can be NULL
__checkReturn __bcount_opt(_Size)
malloc(__in size_t _Size);
OWASP AppSec Seattle 2006 11
SAL at Work
void FillString(
__out_ecount(cchBuf) TCHAR* buf,
size_t cchBuf,
TCHAR ch) {
buf[i] = ch;
}
}
void main() {
TCHAR *buff = malloc(200 * sizeof(TCHAR));
FillString(buff,210,_T(’x’));
}
ning C6387: 'argument 1' might be '0': this does not adhere to
specification for the function 'FillString': Lines: 33, 34
OWASP AppSec Seattle 2006 12
Central Analysis (1 of 2)
• Core assumptions
– Code is never perfect
– Designs are never perfect
– We must protect customers
• Remember, security is “Man vs. Man”
– Security is a never-ending arms race
– You can never be “done” with security so long
as the adversary is still breathing
• Windows Vista includes numerous
defenses
Data Execution
Protection (aka NX/XD,
enabled by default†)
Harder to execute data
In Windows Vista, DEP
cannot be disabled
once turned on for a
process