OWASP-Montreal-24022009

Microsoft Security Development
Lifecycle for IT
Rob Labbé
Security Engagement Manager
MSIT Infosec – ACE
roblab@microsoft.com
Microsoft IT Environment
94,000 Vista clients
48,000 Windows 7
clients
127,238 Office 2007
clients
129,000 Exchange 2007
mailboxes
359,000 SharePoint Sites
MSCRM deployment for
premier services
business
Dynamics business
running on Dynamics
products
5 data centers
9,700 production
servers
108,000 servers
(MSN)
98 countries
550 buildings
260,000+ SMS
managed
computers
585,000 devices
141,549 end users
2,400,000 internal
e-mails with
18,000,000 inbound
(97% filter rate)
36,000,000 IMs
per month
136,000+ e-mail
server accounts
137,000,000+
remote
connections
per month
Know Yourself, Know your
Enemies
“If you know your enemy and know
yourself, you need not fear the result of
a hundred battles. If you know yourself
but not the enemy, for every victory
gained you will also suffer a defeat. If
you know neither the enemy nor
yourself, you will succumb in every
battle.”
Sun Tzu, The Art of War
“Hacking Microsoft UK”
http://www.youtube.com/watch?v=tJSRnJkH2Ek
The Reasons for Secure Software
There are
many
threats to
data and
systems
• Data can be stolen by attackers
• Data can be corrupted by viruses
• Data can be lost or corrupted by
employees
• IT Systems can be used by attackers
• To send Spam, viruses, or launch
other attacks from
• IT Systems can be crashed by attackers
Application Layer = Weak Point
• Attackers target the weakest point. The OS
Layer and Network layer are too hard now
• On Average over 70% of IT security budget is
spent on Infrastructure, yet over 75% of attacks
happen at the Application level
• According to Microsoft research, only 1/3 of
developers are confident that they write secure
code
• The focus must be on hardening the
application layer
Reasons for IT Security
• Card Services - A Real World Example
• $10 Million a month in revenue
• Processed credit cards for American Express, Master
Card, and VISA
• They Lost 40 Million records to hacking
•
•
•
•
Government imposed heavy fines
Subject to audits every 6 months for 20 years
Amex, Master Card and Visa dropped them
A $10 Million a month company destroyed
Understanding The Attackers
Spy,
Terrorist
National Interest,
Chaos
Thief,
Booster,
Fence,
Classic Criminals
Steal Something
of Value / assets
Disgruntled
Employee
Personal Fame,
To Embarrass,
To Win
Curiosity
Nothing
Mal-Tech
Trespasser
Author
Vandal,
Cyberpun
k
Anyone
UnScriptintentional Kiddie
Hobbyist
Hacker
Expert
Specialist
Hackers are very smart
We need better security
Implement an SDL
• Implement an SDL to build security into
your development process
• Train your developers in secure coding
techniques
• Incorporate Threat Modeling, Secure Code
Review, Security Focused Testing into the
process
Purpose of the SDL
• Inventory and assess applications
• Identify and ensure resolution of
security/privacy vulnerabilities found in those
applications
• Enable Application Risk Management:
•
•
•
•
Strategic
Tactical
Operational
Legal
The SDL is NOT Optional
• At Microsoft all line-of-business
application teams must go through SDL-IT,
All shrink-wrapped products must go
through the SDL
• If they fail to do so, they cannot go into
production
• Enforcement of the SDL-IT process
attributes to it’s success
Visibly Measure the Process
• Have internally visible score cards
• Have contests to see if you can find bugs
and offer prizes
• Offer incentives to teams with the best
security records (no cheating!)
SDL aligns with SDLC
SDLC
SDL-IT
Envision
Design
Application
Entry / Risk
Assessment
Threat
Model /
Design
Review
Develop /
Purchase
Internal
Review
Test
Release /
Sustainment
PostPre-Production Production
Assessment
Assessment
Application Entry / Risk Assessment
App Entry
Internal Review
Threat Model /
Design Review
• Objective:
Post-Production
Assessment
Pre-Production
Assessment
• Application Inventory
• Determine Application Risk Categorization
• High Risk Security/Privacy Release
• Medium Risk Security/Privacy Release
• Low Risk Security/Privacy Release
Threat Model / Design Review
App Entry
Internal Review
Threat Model /
Design Review
• Objective:
•
•
•
Post-Production
Assessment
Pre-Production
Assessment
Threat modeling provides a consistent methodology for objectively evaluating threats to
applications.
Review application design to verify compliance with security standards and best practices
Verify application meets application principles
• Confidentiality
• Integrity
• Authentication
• Authorization
• Availability
• Non-repudiation
Internal Review
Internal Review
App Entry
Threat Model /
Design Review
Post-Production
Assessment
Pre-Production
Assessment
• Review security checklist/policy site
• Team conducts ‘self’ code review and attack and
penetration testing
Pre-Production Assessment
Internal Review
App Entry
Threat Model /
Design Review
• Objective:
• Low Risk Applications
•
Host Level Scan
• Windows
• IIS
• SQL
• High/Medium Risk Applications
•
•
Host Level Scan
White Box Code Review
Post-Production
Assessment
Pre-Production
Assessment
White Box Code Review
• Process
• Application team provides source code
• Analysts review application code
uncovering security vulnerabilities
• Vulnerabilities logged in bug database
• Application team required to address all
sev 1 bugs prior to going into
production
•
•
•
•
•
Some common attack patterns
white box review may reveal
Cross-Site Script Vulnerabilities
SQL Injection
Buffer Overflow
Poor Authorization Controls
Secrets Stored In Clear Text
Post-Production Assessment
Post-Production
App Entry
Internal Review
Threat Model /
Design Review
Assessment
Pre-Production
Assessment
• Objective:
• High/Medium/Low Risk Applications
• Host Level Scan
• Windows
• IIS
• SQL
Conclusion
• The need for security is obvious, we have to
protect the company and our customers
• To do that we need
• Management Support
• Secure Development Life Cycles
• Developers trained in secure development
• A Security First attitude!
Conclusions
• Continuous improvement of the process
• Invest time in upfront activities:
• Threat Modeling
• Design Reviews
• A holistic view
• People
• Process
• Tools
• It may seem hard to get started – ask for help!
People: Providing guidance on
secure application development
Process: Security
cannot be an
afterthought
Tools: Providing the
most innovative tools
Call To Action
• Implement a Secure Development Lifecycle
• Create more secure and reliable software
• Build Trust!
Resources
•
•
•
•
•
•
ACE Team Blog:
http://blogs.msdn.com/ace_team/default.aspx
Threat Modeling Tool
http://go.microsoft.com/fwlink?linkid=77002
Threat Modeling Blog:
http://blogs.msdn.com/threatmodeling/
© 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered
trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this
presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part
of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.