Integrating Security in Application Development 6 November 2015 Jon C. Arce – [email protected] Agenda • What is the SDLC? – – – – In the beginning Waterfall to Agile Methodologies Scrum Roles (Security) •
Download ReportTranscript Integrating Security in Application Development 6 November 2015 Jon C. Arce – [email protected] Agenda • What is the SDLC? – – – – In the beginning Waterfall to Agile Methodologies Scrum Roles (Security) •
Integrating Security in Application Development
23 April 2020 Jon C. Arce – [email protected]
Agenda
• What is the SDLC?
– In the beginning – Waterfall to Agile Methodologies – Scrum – Roles (Security) • Security Development Lifecycle – Microsoft SDL – Phases to incorporate – How are the software giants doing?
• Threat Models – What is STRIDE?
– What is DREAD?
– Microsoft Application Threat Modeling • How to justify?
– Statement – Economic Impact
Agenda
• What is the SDLC? – In the beginning – Waterfall to Agile Methodologies – Scrum – Roles (Security) • Security Development Lifecycle – Microsoft SDL – Phases to incorporate – How are the software giants doing?
• Threat Models – What is STRIDE?
– What is DREAD?
– Microsoft Application Threat Modeling • How to justify?
– Statement – Economic Impact
Definition of SDLC
• A software development process is a structure imposed on the development of a software product. Synonyms include software life cycle and software process .
• There are several each describing approaches to a variety of tasks or activities models for such processes, that take place during the process.
Security should be one of those activities / tasks
Requirements
In the beginning … Waterfall Model
Where was security?
Design Implementation Verification
Each phase “pours over” into the next phase.
Security and the System Development Lifecycle
There are three important aspects of computer security in relation to the systems development lifecycle: 1. Security must be considered from the first phase of the systems lifecycle.
2. Development of computer security is an iterative process . The identification of vulnerabilities and the selection and implementation of safeguards continue as the system progresses through the phases of the lifecycle, including after the system has been released into production .
3.
All computer security considerations should be documented in the standard systems development lifecycle documents.
Security
Present times … Agile - Scrum
Roles from Generalist to Specialist
• Project Manager – Business Project Owner – Development Manager – Business Analyst • Architect – Solution Architect – Infrastructure Architect – Database Architect – Integration Architect • Developer – Senior • Business Objects & Entities – Junior • UI / Web Interface • Integration Developer – EAI / SOA • Database Developer – DB schema / Reports – Business Intelligence • Tester – Product Quality • – Performance Security Analyst • Model Consultant
Security Analyst by phase
Model Consultant
Developer UI Infraestructure Architect Developer Business Logic Developer Database Developer Integration Security Analyst Security Analyst • Critical Skills for Every Role – Understanding Business – Broad Understanding (like Infrastructure) – Multiple Perspectives – People Skills / Lifelong Learning Security Analyst Performance Testing
Agenda
• What is the SDLC?
– In the beginning – Waterfall to Agile Methodologies – Scrum – Roles (Security) • Security Development Lifecycle – Microsoft SDL – Phases to incorporate – How are the software giants doing? • Threat Models – What is STRIDE?
– What is DREAD?
– Microsoft Application Threat Modeling • How to justify?
– Statement – Economic Impact
S-SDL
• Secure Software Development covers those activities which lead to the development of better quality software from a security perspective.
• This software
would be expected
to have fewer and fewer exploitable software flaws security design vulnerabilities.
Secure by Design Secure by Default Secure in Deployment Communications
SD
3
+ C
Secure architecture Improved process Reduce vulnerabilities in the code Reduce attack surface area Unused features off by default Only require minimum privilege Protect, detect, defend, recover, manage Process: How to’s, architecture guides People: Training Clear security commitment Full member of the security community Microsoft Security Response Center
SDL Phases
• Requirements Phase • Design Phase • Implementation Phase Release • Verification Phase • Release Phase • Support and Servicing Phase Conception
Embedding Security Into Software And Culture
At Microsoft, we believe that delivering secure software requires Training Executive commitment Core training Educati on Response Require ments Dynamic/ security and Fuzz testing gates review Release archive Microsoft since 2004 Design Threat modeling Final security analysis SDL a mandatory policy at Implemen tation Specify tools Enforce banned functions Static analysis Technology and Process Verification testing Verify threat models/attack surface Training Release Response Specify tools Final security modeling Attack surface analysis execution Ongoing Process Improvements 6 month cycle
Processes
Figure 1. Baseline process and SDL Improvements
Deliverables by phases for S-SDL
• The S-SDL has six primary components: – Phase 1: Security guidelines, rules, and regulations – Phase 2: Security requirements: attack use cases – Phase 3: Architectural and design reviews / threat modeling – Phase 4: Secure coding guidelines – Phase 5: Black/gray/white box testing – Phase 6: Determining exploitability
Secure questions during interviews
Deliverables by Development Timeline
Security push/audit Threat analysis External review Learn & Refine Post Ship Concept Designs Complete Test plans Complete Code Complete Team member training Security Review Data mutation & Least Priv Tests Review old defects Check-ins checked Use tools Ship Secure coding guidelines = on-going
http://www.microsoft.com/sdl
Microsoft S-SDL
Microsoft S-SDL
Microsoft S-SDL
Microsoft S-SDL
Microsoft S-SDL
Microsoft S-SDL
Phases added for SDL
• Once it's been determined that a vulnerability has a high level of exploitability, the respective mitigation strategies need to be evaluated and implemented.
• Secure deployment of the application - means that the software is installed with secure defaults. File permissions & secure settings of the application's configuration are used.
• After the software has been deployed securely, its security needs to be maintained throughout its existence. An all encompassing software patch management process needs to be in place. Emerging threats need to be evaluated, and vulnerabilities need to be prioritized and managed.
Software Giants on SDL
• • Major software makers fail security transparency test ( April 24, 2009 ) In March, we threw down the gauntlet and challenged leading software companies and organizations to show us what they are doing to write secure software.
Not one
of the 23 companies and organizations that we listed responded, and in a follow-up in April, only four provided us with answers.
• • • Adobe, Amazon.com, the Apache Software Foundation, Apple, CollabNet, the Eclipse Foundation, the Free Software Foundation, IBM, Intel, the Linux Foundation, Oracle, Red Hat, Software AG, Sun Microsystems, Sybase, VMware and Yahoo did not respond to our inquiry. Nokia and Salesforce.com acknowledged the request but were unable to provide comment by deadline. Google, Hewlett-Packard, Novell, TIBCO have published to the web • Are those companies practicing security by obscurity?
Social Security Adm. Policy
• It is SSA's policy to integrate security into the systems development lifecycle reasons: 1. It is more effective - easier to achieve when security issues are considered as a part of a routine development process 2. It is less expensive - To retrofit security is generally more expensive than to integrate it into an application.
3. It is less obtrusive - When security safeguards are integral to a system, they are usually easier to use and less visible to the user.
Members: EMC, Juniper Networks, Microsoft, SAP, Symantec, Nokia
Total Vulnerabilities Disclosed One Year After Release 400 242 157 119 66 Windows XP Windows Vista Before SDL After SDL 45% reduction in Vulnerabilities OS I OS II OS III
Microsoft SDL And Internet Explorer (IE)
Vulnerabilities Fixed One Year After Release Medium High 8 18 3 14 Internet Explorer 6 Before SDL Internet Explorer 7 After SDL 35% reduction in vulnerabilities 63% reduction in high severity vulnerabilities Source: Browser Vulnerability Analysis, Microsoft Security Blog 27-NOV-2007
Agenda
• What is the SDLC?
– In the beginning – Waterfall to Agile Methodologies – Scrum – Roles (Security) • Security Development Lifecycle – Microsoft SDL – Phases to incorporate – How are the software giants doing?
• Threat Models – What is STRIDE? – What is DREAD? – Microsoft Application Threat Modeling • How to justify?
– Statement – Economic Impact
Threat Models
• Asset - is a resource of value. (customer data) • Threat - is an undesired event. A potential occurrence, often best described as an effect that might damage or compromise an asset.
• Vulnerability - is a weakness in some aspect or feature of a system that makes an exploit possible. Vulnerabilities can exist at the network, host, or application levels and include operational practices.
• Attack (or exploit) - is an action taken that utilizes one or more vulnerabilities to realize a threat. • Countermeasure - address vulnerabilities to reduce the probability of attacks or the impacts of threats.
Threat Models
• You cannot build secure applications unless you understand threats – “We use SSL!” Since the network is secure attacks are moving to the application itself • Find different bugs than code review and testing • • Approx 50% of issues come from threat models Threat Modeling Web Applications
Threat Modeling Process
• Create model of app (DFD, UML etc) • Categorize threats to each attack target node with STRIDE – Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege • Build threat tree (use tools) • Rank threats with DREAD – Damage potential, Reproducibility, Exploitability, Affected Users, Discoverability
Threat Spoofing user identity Tampering with data
Countermeasures
Countermeasures Use strong authentication.
Do not store secrets (for example, passwords) in plaintext.
Do not pass credentials in plaintext over the wire.
Protect authentication cookies with Secure Sockets Layer (SSL).
Use data hashing and signing.
Use digital signatures.
Use strong authorization.
Use tamper-resistant protocols across communication links.
Secure communication links with protocols that provide message integrity.
Threat Repudiation Information disclosure Denial of service Elevation of privilege
Countermeasures
Countermeasures Create secure audit trails.
Use digital signatures.
Use strong authorization.
Use strong encryption.
Secure communication links with protocols that provide message confidentiality.
Do not store secrets (for example, passwords) in plaintext.
Use resource and bandwidth throttling techniques.
Validate and filter input.
Use least privileged service accounts to run processes and access resources.
DREAD classification in Microsoft
• Critical: A vulnerability whose exploitation could allow the propagation of an Internet worm without user action.
• Important: A vulnerability whose exploitation could result in compromise of the confidentiality, integrity, or availability of users data, or of the integrity or availability of processing resources.
• Moderate: Exploitability is mitigated to a significant degree by factors such as default configuration, auditing, or difficulty of exploitation.
• Low: A vulnerability whose exploitation is extremely difficult, or whose impact is minimal.
Application Demo / PPT Demo
THREAT MODELING TOOL
Agenda
• What is the SDLC?
– In the beginning – Waterfall to Agile Methodologies – Scrum – Roles (Security) • Security Development Lifecycle – Microsoft SDL – Phases to incorporate – How are the software giants doing?
• Threat Models – What is STRIDE?
– What is DREAD?
– Microsoft Application Threat Modeling • How to justify? – Statement – Economic Impact
Joe is a drug dealer
A Short Quiz
Steve is a cyber criminal
1986–1995
The Evolution Of Cybercrime
1995–2003 2004+ 2006+
LANs First PC virus Motivation: damage Internet Era “Big Worms” Motivation: damage
Source: U.S. Government Accountability Office (GAO), FBI
OS, DB attacks Spyware, Spam Motivation: Financial Targeted attacks Social engineering Financial + Political
2007 Market prices: Credit Card Number Full Identity Bank Account $0.5-$20 $1-$15 $10 $1000
Attacks Are Moving To Application Layer
Vulnerabilities: Major Operating Systems versus Application Layer 6099 4069 2093 2004 2005
Applications
2006
Operating Systems
Source: Microsoft Security Intelligence Report 2007
~90% are exploitable remotely ~60% are in web applications
Sources: IBM X-Force, Symantec 2007 Security Reports
The Long Tail Of Security Vulnerabilities…
Vendors' Accountability for Vulnerabilities in 2007 86% 14% Top 5 ISVs Others Sources: IBM X-Force 2007 Security Report
ISO 9126 Quality Attributes
Maintainability Flexibility Can I fix it?
Can I change it?
Testability Can I test it?
Product Revision Product Transition Portability another machine?
Reusability Will I be able to use on Will I be able to reuse some of the software?
Interoperability Will I be able to interface it with another machine?
Product Operations Correctness Reliability Efficiency Does it do what I want?
Does it do it accurately all the time?
Will it run on my machine as well as it can?
Integrity Is it secure?
Usability Can I run it?
Cost to fix errors Phase In Which Found
Requirements Design Coding Development Testing Acceptance Testing Operation
Cost Ratio
1 3-6 10 15-40 30-70 40-1000
Resources
• The following papers and standards cover information security and secure coding and offer insight, principles, and processes that you can integrate immediately to improve software security – – – – – NIST Special Publication 800-64 —Security Considerations in the Information System NIST Special Publication 800-27 —Engineering Principles for Information Technology Security NIST Special Publication 800-55 —Security Metrics Guide for Information Technology Systems ISO/IEC 12207:1995 —Information technology—Software life cycle processes ISO/IEC 17799:2005 —Information technology—Security techniques—Code of practice for information security management