This presentation is part of one of talk, I gave in Microsoft .NET Bootcamp. The contents are slightly edited to share the information in public domain. In this presentation, I covered the significance and all related theory of Threat modeling and analysis.This presentation will be useful for software architects/Managers,developers and QAs. Do share your feedback in comments.
Security Training: #3 Threat Modelling - Practices and ToolsYulian Slobodyan
This document provides an overview of threat modeling practices and tools. It begins with an introduction that defines threat modeling and outlines its benefits. It then covers threat modeling basics like principles, approaches and reasons it is avoided. The main threat modeling process is described, including creating diagrams, identifying threats and planning mitigations. Popular threat modeling tools and a demo are discussed. Standard mitigation techniques and a sample threat model appendix are also included.
This document discusses the importance of secure application development and having a security development lifecycle (SDLC). It argues that application security cannot be bolted on after development, and that all developers need to understand security principles. The document outlines key aspects of a secure SDLC, including requirements, design, implementation, testing, code reviews, authorization enforcement, logging, error handling, and conclusions. The core theme is that secure applications start with good, tested code and having a mature development process in place.
Threat modeling is about thinking what bad can happen and what can you do about it. It can also find logical flaws and reveal problems in the architecture or software development practices. These vulnerabilities cannot usually be found by technical testing.
Threat modeling helps you deliver better software, prioritize your preventive security measures, and focus your penetration testing to the most risky parts of the system. The beauty of threat modeling is that you can assess security already in the design phase. In addition, it is something every team member can participate in because it doesn't require any source code, special skills, or tools. Threat modeling is for everyone: developers, testers, product owners, and project managers.
The presentation covers various methods, such as the STRIDE model, for finding security and privacy threats. You will also learn to analyze use cases for finding business level threats. The presentation also includes practical tips for arranging threat workshops and representing your results.
This presentation was held in the Diana Initiative 2018 and Nixucon 2018 conferences.
This document discusses application threat modeling (ATM) as a systematic approach to identifying security risks in software applications. It describes how ATM can be used at different stages of the software development lifecycle, from requirements to design to testing. The key steps of ATM include decomposing the application, identifying threats and vulnerabilities, analyzing attack vectors, and determining mitigation strategies. ATM helps prioritize risks and supports decision making around risk acceptance, avoidance, or mitigation.
1. Create a diagram of the relevant processes, data stores, data flows, and external entities.
2. Apply the STRIDE methodology to systematically identify potential threats to each element in the diagram.
3. Mitigate the identified threats through techniques like redesigning to eliminate threats, applying standard security controls, or inventing new controls.
4. Validate that the threat modeling process was comprehensive by ensuring all elements and potential threats were considered, and that the proposed mitigations adequately address the threats.
This presentation discusses the importance of threat Modeling. This presentation also discusses about different ways to perform threat modeling. This threat modeling should be done during the design phase of the application development. The main aim of the threat modeling is to identify the import assets or functionalities of the application and to protect them. Threat Modeling cuts down the cost of application development as it identifies the issues during the design phase. In this presentation we also discuss about basics of Mobile Threat Modeling. This presentation mainly concentrates on STRIDE and DREAD.
This document summarizes Miriam Celi's presentation on secure coding and threat modeling. The key points are:
1. Miriam Celi discussed secure coding principles and resources like CWE, CVE, and OWASP to help developers write more secure code. Threat modeling was presented as a way to identify risks and address them in the design process.
2. Threat modeling involves identifying threats, assets, and vulnerabilities in a system and making design decisions to mitigate risks. It is an iterative team activity that should be performed throughout development.
3. Resources like STRIDE, CAPEC, and Microsoft's threat modeling tool were presented to help structure the threat modeling process. Statistics on rising costs of
This document discusses security development lifecycle tools presented by Sunil Yadav. It describes SDL as a Microsoft process to define security requirements and minimize issues. Key SDL tools covered are Binscope for binary analysis, SDL Regex Fuzzer for testing regular expressions, Code Analysis Tool (CAT.NET) for identifying vulnerabilities, and Minifuzz File Fuzzer for detecting flaws in file handling code. Demos and references are provided for each tool.
The document summarizes key points about web application security vulnerabilities and how to address them. It discusses common vulnerabilities like parameter manipulation, cross-site scripting, and SQL injection that occur due to improper validation of user input. It emphasizes the importance of validating all user input on the server-side to prevent attacks, and not storing sensitive values in cookies or hidden form fields that can be manipulated by attackers.
The document discusses threat modeling methodologies for identifying and categorizing threats. It introduces the STRIDE methodology which categorizes threats into spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privileges. It also discusses the DREAD methodology for risk rating threats based on damage potential, reproducibility, exploitability, affected users, and discoverability. Examples of rated threats are provided. Other methodologies like OCTAVE for organizational security assessment are also briefly mentioned.
How to scale threat modelling activities across many applications and large development teams using templates and risk patterns.
Introducing IriusRisk Community edition
Presentation given at O'Reilly Security Amsterdam 2016
Threat Modeling workshop by Robert HurlbutDevSecCon
This document summarizes a presentation on threat modeling concepts and processes. It began with defining key threat modeling terms like assets, threats, vulnerabilities, and risk. It described threat modeling as understanding potential threats to a system. The presentation covered approaches like STRIDE and asking questions. It emphasized decomposing systems and identifying threats through data flows. Determining mitigations and risk ratings for threats was also discussed. The goal of threat modeling is to have an ongoing, living understanding of security risks to a system.
Link to Youtube video: https://youtu.be/OJMqMWnxlT8
You can contact me at [email protected]
My linkdin id : https://www.linkedin.com/in/abhimanyu-bhogwan-cissp-ctprp-98978437/
Threat Modeling(system+ enterprise)
What is Threat Modeling?
Why do we need Threat Modeling?
6 Most Common Threat Modeling Misconceptions
Threat Modelling Overview
6 important components of a DevSecOps approach
DevSecOps Security Best Practices
Threat Modeling Approaches
Threat Modeling Methodologies for IT Purposes
STRIDE
Threat Modelling Detailed Flow
System Characterization
Create an Architecture Overview
Decomposing your Application
Decomposing DFD’s and Threat-Element Relationship
Identify possible attack scenarios mapped to S.T.R.I.D.E. model
Identifying Security Controls
Identify possible threats
Report to Developers and Security team
DREAD Scoring
My Opinion on implementing Threat Modeling at enterprise level
Mobile application security and threat modelingShantanu Mitra
From Telegraph to 5G, there is huge evolution and transformation in the network accessibility, application design, security threats and risk assessment - the change is getting reflected everywhere. The presentation describes here how good we can follow the best practices in our developments, how best we can we gain the trust of our clients.
"CERT Secure Coding Standards" by Dr. Mark ShermanRinaldi Rampen
OWASP DC - November 2015 Talk
Abstract:
This presentation will start with an overview of CERT’s view of the tools, technologies and processes for building secure software from requirements to operational deployment, including architecture, design, coding and testing. After providing the context for building secure software, the discussion will focus on the current state of the CERT Coding Standards: what is available, how the rules evolve and how the rules are put into practice.
Bio:
Dr. Mark Sherman is the Technical Director of the Cyber Security Foundations group at CERT within CMU’s Software Engineering Institute. His team focuses on foundational research on the life cycle for building secure software and on data-driven analysis of cyber security. Before coming to CERT, Dr. Sherman was at IBM and various startups, working on a mobile systems, integrated hardware-software appliances, transaction processing, languages and compilers, virtualization, network protocols and databases. He has published over 50 papers on various topics in computer science.
The document discusses several topics related to information security certification exams:
- Detection risk is the risk that an auditor will not be able to find faults or issues during an audit of a company's network.
- The key roles required for a National Information Assurance Certification and Accreditation Process (NIACAP) security assessment are the certification agent, designated approving authority, information systems program manager, and user representative.
- Factors used to calculate the single loss expectancy and annualized loss expectancy for security risk assessment include the asset value, exposure factor, and annualized rate of occurrence.
The document discusses integrating software security into the software development lifecycle. It recommends addressing security as early as possible, including during the requirements phase by performing threat assessments and defining security requirements. During design, it suggests involving security experts, using threat modeling to understand risks, and implementing defenses like isolation, least privilege, and defense in depth. Throughout development and testing, it advises performing security reviews, testing, and activities to find and fix vulnerabilities before deployment.
Threat modeling is a way of thinking about what can go wrong and how to prevent it. Instinctively, we all think this way in regard to our own personal security and safety. When it comes to building or evaluating information systems, we need to develop a similar mindset. In this slide deck, Robert Hurlbut provides practical strategies to develop a threat modeling mindset by: understanding a system, identifying threats, identifying vulnerabilities, determining mitigations and applying the mitigations through risk management.
This document provides an introduction to the concepts of software security. It discusses how security vulnerabilities in software can enable attacks. The goals of the course are explained as helping students understand the nature of software security vulnerabilities, principles of secure software development, and techniques for security testing, analysis, and prevention of vulnerabilities. The lecture topics are outlined and assignments are described, including threat modeling, security policy design, and analyzing buffer overflow attacks and web application vulnerabilities.
For Business's Sake, Let's focus on AppSecLalit Kale
Slide-Deck for session on Application Security at Limerick DotNet-Azure User Group on 15th Feb, 2018
Event URL: https://www.meetup.com/Limerick-DotNet/events/hzctdpyxdbtb/
Application Security Architecture and Threat ModellingPriyanka Aash
95% of attacks are against “Web Servers and Web Applications”
Security Architecture and SDLC
3 Tier – Web App Architecture
Would you trust the code?
Traditional SDLC
Secure SDLC
SAST vs. DAST
This document discusses threat modeling for software applications. It covers the key stages of threat modeling including decomposing the application, determining and ranking threats using STRIDE, and determining countermeasures. Specific topics covered include threat modeling approaches, data flow diagrams, trust levels, the STRIDE framework for analyzing spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege threats. It also discusses mobile threat modeling and provides an example threat analysis of a student results portal application.
This document provides best practices and guidance for threat modeling. It discusses key concepts like taxonomy, timing of threat modeling, contributors, audience, and tools. Common pitfalls discussed include not making it a collaborative effort, poor presentation of results, deleting threats, failing to identify assets properly, making unreasonable threats, digging too deep initially, and not versioning threat modeling results. The overall aim is to help people understand how to effectively incorporate threat modeling into their projects and security development lifecycle.
Real World Application Threat Modelling By ExampleNCC Group
This document provides an overview of threat modeling a virtual appliance called the Djigzo Email Encryption Gateway. It describes a process for enumerating the technologies, interfaces, and functionality of the appliance without initial knowledge. This includes getting shell access, mapping listening ports, reviewing processes, and examining the database. Next, it creates high-level and low-level dataflow diagrams. Finally, it develops an initial threat model by brainstorming threats against different interfaces like the web interface, admin console, and mail transfer agent. The presentation concludes that thorough threat modeling requires deep security knowledge and significant effort to understand risks and verify mitigations.
The document describes threat modeling for a content translation memory application. It discusses decomposing the application into assets and entry points, then determining threats and ranking them based on likelihood and impact. Potential threats include stolen credentials, brute force login attacks, and denial of service. Countermeasures like authentication, authorization, and input validation are recommended.
The Microsoft Threat Modeling Tool simplifies identifying security vulnerabilities during the design phase of development through a structured threat modeling approach. It allows for customization of threats and has new features like a Threat Grid, Template Editor, and migrating of existing Data Flow Diagrams. The tool helps analyze threats against elements like spoofing, tampering, and elevation of privilege. Each threat documented in the tool includes fields for the threat title, category, justification, interaction details, associated diagram, last modification, state, and priority.
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)FFRI, Inc.
• About threat analysis support tool
• Examples of tools
• Analysis target system
• Analysis result
– How to read result
– Overview of threats
• Effective usage
– About template
– Additional definition of threat information
• Conclusions
• References
This document summarizes Miriam Celi's presentation on secure coding and threat modeling. The key points are:
1. Miriam Celi discussed secure coding principles and resources like CWE, CVE, and OWASP to help developers write more secure code. Threat modeling was presented as a way to identify risks and address them in the design process.
2. Threat modeling involves identifying threats, assets, and vulnerabilities in a system and making design decisions to mitigate risks. It is an iterative team activity that should be performed throughout development.
3. Resources like STRIDE, CAPEC, and Microsoft's threat modeling tool were presented to help structure the threat modeling process. Statistics on rising costs of
This document discusses security development lifecycle tools presented by Sunil Yadav. It describes SDL as a Microsoft process to define security requirements and minimize issues. Key SDL tools covered are Binscope for binary analysis, SDL Regex Fuzzer for testing regular expressions, Code Analysis Tool (CAT.NET) for identifying vulnerabilities, and Minifuzz File Fuzzer for detecting flaws in file handling code. Demos and references are provided for each tool.
The document summarizes key points about web application security vulnerabilities and how to address them. It discusses common vulnerabilities like parameter manipulation, cross-site scripting, and SQL injection that occur due to improper validation of user input. It emphasizes the importance of validating all user input on the server-side to prevent attacks, and not storing sensitive values in cookies or hidden form fields that can be manipulated by attackers.
The document discusses threat modeling methodologies for identifying and categorizing threats. It introduces the STRIDE methodology which categorizes threats into spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privileges. It also discusses the DREAD methodology for risk rating threats based on damage potential, reproducibility, exploitability, affected users, and discoverability. Examples of rated threats are provided. Other methodologies like OCTAVE for organizational security assessment are also briefly mentioned.
How to scale threat modelling activities across many applications and large development teams using templates and risk patterns.
Introducing IriusRisk Community edition
Presentation given at O'Reilly Security Amsterdam 2016
Threat Modeling workshop by Robert HurlbutDevSecCon
This document summarizes a presentation on threat modeling concepts and processes. It began with defining key threat modeling terms like assets, threats, vulnerabilities, and risk. It described threat modeling as understanding potential threats to a system. The presentation covered approaches like STRIDE and asking questions. It emphasized decomposing systems and identifying threats through data flows. Determining mitigations and risk ratings for threats was also discussed. The goal of threat modeling is to have an ongoing, living understanding of security risks to a system.
Link to Youtube video: https://youtu.be/OJMqMWnxlT8
You can contact me at [email protected]
My linkdin id : https://www.linkedin.com/in/abhimanyu-bhogwan-cissp-ctprp-98978437/
Threat Modeling(system+ enterprise)
What is Threat Modeling?
Why do we need Threat Modeling?
6 Most Common Threat Modeling Misconceptions
Threat Modelling Overview
6 important components of a DevSecOps approach
DevSecOps Security Best Practices
Threat Modeling Approaches
Threat Modeling Methodologies for IT Purposes
STRIDE
Threat Modelling Detailed Flow
System Characterization
Create an Architecture Overview
Decomposing your Application
Decomposing DFD’s and Threat-Element Relationship
Identify possible attack scenarios mapped to S.T.R.I.D.E. model
Identifying Security Controls
Identify possible threats
Report to Developers and Security team
DREAD Scoring
My Opinion on implementing Threat Modeling at enterprise level
Mobile application security and threat modelingShantanu Mitra
From Telegraph to 5G, there is huge evolution and transformation in the network accessibility, application design, security threats and risk assessment - the change is getting reflected everywhere. The presentation describes here how good we can follow the best practices in our developments, how best we can we gain the trust of our clients.
"CERT Secure Coding Standards" by Dr. Mark ShermanRinaldi Rampen
OWASP DC - November 2015 Talk
Abstract:
This presentation will start with an overview of CERT’s view of the tools, technologies and processes for building secure software from requirements to operational deployment, including architecture, design, coding and testing. After providing the context for building secure software, the discussion will focus on the current state of the CERT Coding Standards: what is available, how the rules evolve and how the rules are put into practice.
Bio:
Dr. Mark Sherman is the Technical Director of the Cyber Security Foundations group at CERT within CMU’s Software Engineering Institute. His team focuses on foundational research on the life cycle for building secure software and on data-driven analysis of cyber security. Before coming to CERT, Dr. Sherman was at IBM and various startups, working on a mobile systems, integrated hardware-software appliances, transaction processing, languages and compilers, virtualization, network protocols and databases. He has published over 50 papers on various topics in computer science.
The document discusses several topics related to information security certification exams:
- Detection risk is the risk that an auditor will not be able to find faults or issues during an audit of a company's network.
- The key roles required for a National Information Assurance Certification and Accreditation Process (NIACAP) security assessment are the certification agent, designated approving authority, information systems program manager, and user representative.
- Factors used to calculate the single loss expectancy and annualized loss expectancy for security risk assessment include the asset value, exposure factor, and annualized rate of occurrence.
The document discusses integrating software security into the software development lifecycle. It recommends addressing security as early as possible, including during the requirements phase by performing threat assessments and defining security requirements. During design, it suggests involving security experts, using threat modeling to understand risks, and implementing defenses like isolation, least privilege, and defense in depth. Throughout development and testing, it advises performing security reviews, testing, and activities to find and fix vulnerabilities before deployment.
Threat modeling is a way of thinking about what can go wrong and how to prevent it. Instinctively, we all think this way in regard to our own personal security and safety. When it comes to building or evaluating information systems, we need to develop a similar mindset. In this slide deck, Robert Hurlbut provides practical strategies to develop a threat modeling mindset by: understanding a system, identifying threats, identifying vulnerabilities, determining mitigations and applying the mitigations through risk management.
This document provides an introduction to the concepts of software security. It discusses how security vulnerabilities in software can enable attacks. The goals of the course are explained as helping students understand the nature of software security vulnerabilities, principles of secure software development, and techniques for security testing, analysis, and prevention of vulnerabilities. The lecture topics are outlined and assignments are described, including threat modeling, security policy design, and analyzing buffer overflow attacks and web application vulnerabilities.
For Business's Sake, Let's focus on AppSecLalit Kale
Slide-Deck for session on Application Security at Limerick DotNet-Azure User Group on 15th Feb, 2018
Event URL: https://www.meetup.com/Limerick-DotNet/events/hzctdpyxdbtb/
Application Security Architecture and Threat ModellingPriyanka Aash
95% of attacks are against “Web Servers and Web Applications”
Security Architecture and SDLC
3 Tier – Web App Architecture
Would you trust the code?
Traditional SDLC
Secure SDLC
SAST vs. DAST
This document discusses threat modeling for software applications. It covers the key stages of threat modeling including decomposing the application, determining and ranking threats using STRIDE, and determining countermeasures. Specific topics covered include threat modeling approaches, data flow diagrams, trust levels, the STRIDE framework for analyzing spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege threats. It also discusses mobile threat modeling and provides an example threat analysis of a student results portal application.
This document provides best practices and guidance for threat modeling. It discusses key concepts like taxonomy, timing of threat modeling, contributors, audience, and tools. Common pitfalls discussed include not making it a collaborative effort, poor presentation of results, deleting threats, failing to identify assets properly, making unreasonable threats, digging too deep initially, and not versioning threat modeling results. The overall aim is to help people understand how to effectively incorporate threat modeling into their projects and security development lifecycle.
Real World Application Threat Modelling By ExampleNCC Group
This document provides an overview of threat modeling a virtual appliance called the Djigzo Email Encryption Gateway. It describes a process for enumerating the technologies, interfaces, and functionality of the appliance without initial knowledge. This includes getting shell access, mapping listening ports, reviewing processes, and examining the database. Next, it creates high-level and low-level dataflow diagrams. Finally, it develops an initial threat model by brainstorming threats against different interfaces like the web interface, admin console, and mail transfer agent. The presentation concludes that thorough threat modeling requires deep security knowledge and significant effort to understand risks and verify mitigations.
The document describes threat modeling for a content translation memory application. It discusses decomposing the application into assets and entry points, then determining threats and ranking them based on likelihood and impact. Potential threats include stolen credentials, brute force login attacks, and denial of service. Countermeasures like authentication, authorization, and input validation are recommended.
The Microsoft Threat Modeling Tool simplifies identifying security vulnerabilities during the design phase of development through a structured threat modeling approach. It allows for customization of threats and has new features like a Threat Grid, Template Editor, and migrating of existing Data Flow Diagrams. The tool helps analyze threats against elements like spoofing, tampering, and elevation of privilege. Each threat documented in the tool includes fields for the threat title, category, justification, interaction details, associated diagram, last modification, state, and priority.
An Example of use the Threat Modeling Tool (FFRI Monthly Research Nov 2016)FFRI, Inc.
• About threat analysis support tool
• Examples of tools
• Analysis target system
• Analysis result
– How to read result
– Overview of threats
• Effective usage
– About template
– Additional definition of threat information
• Conclusions
• References
The document discusses the Microsoft Threat Modeling Tool 2016. It provides an introduction to threat modeling and the Microsoft Security Development Lifecycle approach. It then describes the tool, which uses data flow diagrams and the STRIDE threat classification model to graphically identify processes, data flows, and potential threats in an application. Developers can use the tool to communicate security designs, analyze them for issues, and manage mitigations.
Application Security Program Management with Vulnerability ManagerDenim Group
The document discusses application security program management and Vulnerability Manager. It describes the challenges of application security scanning and remediation, including that vulnerabilities often persist for months. Vulnerability Manager aims to address this by automating the import of scan data, generating virtual patches, and integrating with defect tracking systems. The presentation demonstrates Vulnerability Manager's core features and future plans to further develop the tool and metrics for measuring security maturity.
Vulnerability Management In An Application Security World: AppSecDCDenim Group
This document provides a summary of a presentation on vulnerability management in application security. It discusses how application vulnerabilities should be treated as software defects and tracked in a defect management system. It also covers how to prioritize vulnerabilities based on a risk calculation considering likelihood, impact, and remediation effort. The presentation provides examples of different vulnerability management challenges and recommendations for improving policies, baselines, prioritization, remediation, and ongoing maintenance of applications.
The document discusses security best practices, focusing on the Microsoft Security Development Lifecycle (SDL). The SDL is a 6-month iterative process that includes threat modeling, secure coding guidelines, code reviews, testing, and response. It aims to integrate security into all phases of development. Key SDL principles discussed are attack surface reduction, basic privacy, threat modeling, defense in depth, least privilege, and secure defaults.
This document discusses implementing a secure software development lifecycle (SDLC). It emphasizes building security into software from the start rather than adding it later. The summary is:
The document outlines a secure SDLC process involving defining security requirements, designing for security, implementing secure coding practices, testing software security, and ongoing security monitoring. It notes that software security is a shared responsibility and discusses challenges like team pushback and measuring security benefits. The document also presents a case study of a company that implemented a secure SDLC process to address client security issues and prevent future problems.
The document discusses the importance of IT security best practices for healthcare organizations. It outlines why IT security is important, how to get started with a security program, and provides information on specific best practices. These include recommendations for securing remote users' access to protected health information, implementing system log management, and meeting meaningful use security criteria. The document aims to help healthcare organizations develop an IT security roadmap.
This document discusses implementing a secure software development lifecycle (SDLC) to improve application security. It outlines why the traditional approach of only involving security experts does not work. Instead, it proposes integrating security practices throughout each phase of the development process, including requirements, design, implementation, verification, and release. This includes training developers, conducting threat modeling and security testing, using security tools in continuous integration, and analyzing results to address issues early. The goal is to reduce security defects over time by changing developer mindsets and integrating security as applications are built.
The document discusses various topics related to security management practices including change control, data classification, employment policies, information security policies, risk management, roles and responsibilities, security awareness training, and security management planning. It provides details on each topic, such as the importance of change control and different tools that can be used. It also discusses how to classify data, conduct background checks, develop effective information security policies, and assess risks both qualitatively and quantitatively. The document emphasizes the importance of security management planning and identifying potential losses, costs, and benefits of implementing proper security.
Office 365 Planner provides a hub for team members to create plans, organize and assign tasks to different users and to check updates on progress through dashboards. It also provides a centralized place where files can be shared and gives visibility to the whole team.
Microsoft have created a suite of apps that all complement one another and work together. Planner allows users to easily integrate tasks into Outlook, attach and view task documentation by linking to SharePoint, discuss a project within Teams while having your Plan open, open a video call with Teams, (formerly Skype for Business) and more!
In this training session, we will demonstrate how to get started using Office 365 Planner. We
The document outlines security design principles from Microsoft's Security Development Lifecycle (SDL). It discusses principles like attack surface reduction, basic privacy, threat modeling, defense in depth, least privilege, and secure defaults. It provides examples for each principle and tips for implementing them, like minimizing exposed points of attack, considering both security and privacy, using threat modeling to understand threats, employing multiple layers of defense, giving applications only the necessary privileges, and using secure configurations by default. The goal is to help deliver more secure software through these foundational design practices.
The document discusses application security best practices. It notes that 60% of internet attacks target web applications, with SQL injection and XSS making up 80% of vulnerabilities. It recommends that security be incorporated throughout the entire software development lifecycle, from requirements to testing. Key steps include threat modeling, secure coding practices, code reviews, fuzz testing and penetration testing. Ongoing maintenance is also important.
This document provides a high-level summary of a course on secure programming. It discusses whether secure programming is more of an art or a science, and describes different software engineering maturity levels. It also briefly outlines several topics that will be covered in the course, including secure design principles, security requirements, software development processes, and the role of cryptography.
Break it while you make it: writing (more) secure softwareLeigh Honeywell
The document discusses core security principles for developers, including the three pillars of security (confidentiality, integrity, availability), common vulnerabilities like buffer overflows and injection flaws, security mindsets and architectures, and tools for testing applications. It provides an overview of the OWASP top 10 security risks and recommends resources for further learning about secure coding practices.
The document provides an overview of Microsoft's Security Development Lifecycle (SDL) threat modeling process and tool. The SDL threat modeling process involves 4 main steps: 1) modeling the system, 2) enumerating potential threats, 3) identifying mitigations, and 4) validating the threat model. Threat modeling helps identify security risks early and guide other security activities. The Microsoft SDL Threat Modeling Tool supports collaboration on threat modeling and integrates with other SDL processes.
Chapter 2- Software Security FULL SLIDES.pptLina Shimelis
Chapter 2: Software Security covers the essential principles and practices for protecting software systems from various vulnerabilities and threats. It explores common security risks such as buffer overflows, injection attacks, and improper access control, while providing strategies to mitigate them through secure coding techniques, regular testing, and adherence to security frameworks. The chapter emphasizes the importance of proactive security measures, including threat modeling and code reviews, to prevent potential exploits and ensure the integrity and confidentiality of software applications.
The document discusses approaches to building secure web applications, including establishing software security processes and maturity levels. It covers security activities like threat modeling, defining security requirements, secure coding standards, security testing, and metrics. Business cases for software security focus on reducing costs of vulnerabilities, threats to web apps, and root causes being application vulnerabilities and design flaws.
The document discusses security assessments and threat modeling for software applications. It provides an overview of the current state of the software industry and common security issues. It then describes the process for conducting a threat modeling session, including identifying security requirements, understanding the application architecture, identifying potential threats, and determining existing countermeasures and vulnerabilities. Conducting threat modeling helps prioritize testing and inform secure development practices.
Introduction to Microsoft Security Development Lifecycle.
1. What is Microsoft Security Development Lifecycle (SDL)?
2. Understanding various phases of SDL
3. Threat Modeling
4. Security & Privacy Bugs
5. SDL Training
Using Third Party Components for Building an Application Might be More Danger...Achim D. Brucker
Today, nearly all developers rely on third party components for building an application. Thus, for most software vendors, third
party components in general and Free/Libre and Open Source Software (FLOSS) in particular, are an integral part of their
software supply chain.
As the security of a software offering, independently of the delivery model, depends on all components, a secure software supply
chain is of utmost importance. While this is true for both proprietary and as well as FLOSS components that are consumed,
FLOSS components impose particular challenges as well as provide unique opportunities. For example, on the one hand,
FLOSS licenses contain usually a very strong “no warranty” clause and no service-level agreement. On the other hand, FLOSS
licenses allow to modify the source code and, thus, to fix issues without depending on an (external) software vendor.
This talk is based on working on integrating securely third-party components in general, and FLOSS components in particular,
into the SAP's Security Development Lifecycle (SSDL). Thus, our experience covers a wide range of products (e.g., from small
mobile applications of a few thousands lines of code to large scale enterprise applications with more than a billion lines of code),
a wide range of software development models (ranging from traditional waterfall to agile software engineering to DevOps), as
well as a multiple deployment models (e.g., on premise products, custom hosting, or software-as-a-service).
AMI Security 101 - Smart Grid Security East 2011dma1965
The document outlines the agenda for an AMI security workshop, including introductions, an overview of AMI security challenges from both top-down and bottom-up perspectives, how utilities are managing security, vulnerability testing, lessons learned, and the road ahead. Presenters are from security companies and utilities to discuss topics like threat modeling, attack surfaces, software development lifecycles, penetration testing, and ongoing security processes.
Appsec2013 assurance tagging-robert martindrewz lin
The document discusses engineering software systems to be more secure against attacks. It notes that reducing a system's attack surface alone is not enough, as software and networks are too complex and it is impossible to know all vulnerabilities. It then discusses characteristics of advanced persistent threats, including that the initial attack may go unnoticed and adversaries cannot be fully kept out. Finally, it argues that taking a threat-driven perspective beyond just operational defense can help balance mitigation with detection and response.
Security testing requires analyzing software from the perspective of an attacker to identify potential vulnerabilities. It involves understanding key information sources, adopting an attacker mindset when considering a wide range of unexpected inputs, and determining when enough testing has been done to verify security. Automation plays an important role by allowing for larger test coverage, regression testing, and improved efficiency compared to manual security testing.
Social Enterprise Rises! …and so are the Risks - DefCamp 2012DefCamp
The document discusses social enterprise software and associated security risks. It provides an overview of social enterprise software, why organizations use it, and common deployment models. It then discusses some common security risks like data loss, exploitation of vulnerabilities, and social engineering. The document outlines strategies for risk mitigation and examines several case studies of vulnerabilities found in social enterprise software solutions. It emphasizes that even large vendors can overlook application security and stresses the importance of verification testing.
Security in the cloud protecting your cloud appsCenzic
The document discusses security best practices for cloud applications. It notes that 75% of cyber attacks target internet applications and over 400 new vulnerabilities are discovered each month. The top vulnerabilities include cross-site scripting, SQL injection, and insecure direct object references. The document provides examples of how these vulnerabilities can be exploited by hackers and recommends best practices like input validation, output encoding, secure authentication and session management to help protect applications.
The document discusses various threat modeling processes and tools that can be used to secure an e-learning environment. It describes the basics of threat modeling including gathering information about the system, decomposing applications into components, identifying risks through use cases and attack trees. Several threat modeling approaches are outlined such as Microsoft's threat modeling process, STRIDE classification scheme, DREAD, and OCTAVE. The advantages of using threat modeling to understand vulnerabilities and develop mitigation strategies are also highlighted.
There's never been a better time to create amazing technology solutions. In this hands on workshop, you will learn the fundamental skills and techniques necessary to transform a digital dream into a viable solution that your customers and users will love.
Lean is a manufacturing production approach that focuses on precisely defining value, defining the value stream, making value flow through the process, and pulling value rather than pushing it. Agile is a software development movement driven by collaboration with customers to deliver value through frequent changes. Key takeaways are to grow a repeatable yet adaptable process, deliver in small batches, pivot when conditions change, address bottlenecks, understand lean and agile principles versus methodologies, and watch out for saboteurs like unengaged stakeholders.
MICROSOFT BLAZOR - NEXT GENERATION WEB UI OR SILVERLIGHT ALL OVER AGAIN?Clint Edmonson
In this talk we'll take a look at Microsoft’s latest foray into web UI frameworks. We’ll look at how Blazor works, the unique features it brings to bear, what the code looks like and wrap up with a discussion of the pros, cons, and whether or not it can live up to its promises.
The document discusses the concept of "flow" or being fully immersed in an activity. It provides characteristics of flow including clear goals, strong concentration, intrinsic reward, loss of self-consciousness and time distortion. The document then discusses how teams and organizations can achieve flow through optimizing their processes to reduce bottlenecks and wait times, using techniques like Scrum of Scrums and PI planning. Key aspects that can disrupt flow are discussed, like fractionalized work and excessive work in progress. The document emphasizes the need for intentional design of work systems and value streams to achieve organizational flow at scale.
This presentation distills the best industry guidance into a hands-on approach to designing application architectures. Along the way, we'll examine the key decisions that must be made when choosing our architectural styles and designing our layers and show how those decisions turn into real shippable code on a project.
Code smells and Other Malodorous Software OdorsClint Edmonson
This document discusses code smells, which are surface indications in source code that typically correspond to deeper problems in the system. It defines several common code smells such as duplicate code, large methods, magic numbers, dead code, and speculative code. The document provides explanations of these smells and recommendations for addressing them, such as extracting duplicated code into methods, breaking large classes into smaller focused classes, and avoiding checking in experimental code. It notes that code smells often arise from issues like haste, apathy, and ignorance when developing code.
This summer the Agile Alliance gathered together the world’s greatest Agile thinkers and practioners to further the advancement of Lean and Agile principles. Agile Developers and Teams, Executives and Managers, Coaches and Consultants came to Atlanta, Georgia to collaborate and learn from experts and thought leaders sharing their passion.
Please join us as we present our key takeaways and insights from this gathering of Agile tribes.
Key Topics:
The continuing evolution of Agile
Agile culture change
Scaling Agile in the enterprise
Advances in Agile architecture and DevOps
Lean & Agile DevOps with VSTS and TFS 2015Clint Edmonson
Take a guided tour of the latest features in Visual Studio Team Services & Team Foundation Server 2015 to help your team adopt Agile and DevOps practices. We will show you how the products and services will shape your process and enable your teams to build amazing applications on any platform.
Key Experiences:
Agile work item flow
Builds and continuous integration
Infrastructure as code
Self-hosted package management
Release management
And much more…
This presentation distills the best industry guidance into a hands-on approach to designing application architectures. Along the way, we'll examine the key decisions that must be made when choosing our architectural styles and designing our layers and show how those decisions turn into real shippable code on a project.
When it comes to development methods, lean and agile have clearly taken the lead. In the spirit of Kaizen, this session will take a look at the measures we can glean from agile teams, why the are relevant and interesting, and how we can use them to help our teams get even better.
Ever heard of the Law of Demeter? How about the Liskov Substitution Principle? This talk introduces key object-oriented laws and principles currently used in our field and provides guidance for their use when building applications on the .NET platform.
This presentation distills the best industry guidance into a hands-on approach to designing application architectures. Along the way, we'll examine the key decisions that must be made when choosing our architectural styles and designing our layers and show how those decisions turn into real shippable code on a project.
The document discusses ADO.NET Entity Framework (EF) 5 and what is new in EF 6. It provides an introduction to EF 5 and the different development approaches like code first, database first, and model first. It also covers EF architecture, tips and tricks for using EF, and what new features are coming in EF 6 like async query/save, enum support on .NET 4.0, and code first stored procedure support.
With the release of Windows 8, Microsoft has delivered a rich client application platform that is both powerful and approachable. Apps on this platform install easily and uninstall cleanly. They run in a single window that fills the entire screen by default. They automatically work with a variety of input sources, including touch, pen, mouse, and keyboard. Instead of static icons, they use live tiles that can display notifications. Best of all, these apps can be written using HTML5, CSS, and JavaScript.
Windows Azure enables you to quickly build, deploy and manage applications across a global network of Microsoft-managed datacenters. With this past summer’s new feature release, you can build applications using any operating system, language or tooling. In this session, we’ll bring you up to speed on all the amazing services available to developers in Windows Azure including web sites, cloud services, and virtual machines.
Introduction to Windows Azure Virtual MachinesClint Edmonson
With Windows Azure’s Infrastructure as a Service (IaaS) offerings you can easily run customized Windows Server or Linux images in the cloud. You retain full control of your images and maintain them as your business requires. In this session, you’ll get an overview of the offerings and see first-hand how to build, configure, and run your own VMs on Windows Azure.
Peering through the Clouds - Cloud Architectures You Need to MasterClint Edmonson
Heard of elastic computing? Cloud-bursting? Off-line rendering? Join us in this session where we walk through the key cloud scenarios every developer should be familiar with and when and where each should be used. We’ll discuss how the architecture of each of these scenarios is realized using the Windows Azure cloud platform
Architecting Scalable Applications in the CloudClint Edmonson
There is an increasing importance to architect applications for both growth and optimal user experience. Modern development tools allow you to develop fantastic applications, but there are pitfalls with architecting the applications in the wrong way. This talk will discuss industry proven best practices for building highly scalable web sites and applications and how they might be implemented on Windows Azure.
The Windows Azure platform provides cloud computing services including infrastructure as a service (IaaS), platform as a service (PaaS) and software as a service (SaaS). It allows integration across devices and on-premises/cloud services. The platform includes compute, storage, networking and applications services. It supports various programming languages and frameworks running on virtual machines and containers at varying sizes.
The document provides an overview of the Windows Azure Platform. It describes the client, integration, and application layers that make up the platform. It also outlines the data services available, including storage, databases, computing resources, and networking capabilities. Finally, it discusses high availability and deployment options for ensuring reliability and uptime of applications and services built on the Azure platform.
The Peter Cowley Entrepreneurship Event Master 30th.pdfRichard Lucas
About this event
The event is dedicated to remember the contribution Peter Cowley made to the entrepreneurship eco-system in Cambridge and beyond, and includes a special lecture about his impact..
We aim to make the event useful and enjoyable for all those who are committed to entrepreneurship.
Programme
Registration and Networking
Introduction & Welcome
The Invested Investor Peter Cowley Entrepreneurship Talk, by Katy Tuncer Linkedin
Introductions from key actors in the entrepreneurship support eco-system
Cambridge Angels Emmi Nicholl Managing Director Linkedin
Cambridge University Entrepreneurs , Emre Isik President Elect Linkedin
CUTEC Annur Ababil VP Outreach Linkedin
King's Entrepreneurship Lab (E-Lab) Sophie Harbour Linkedin
Cambridgeshire Chambers of Commerce Charlotte Horobin CEO Linkedin
St John's Innovation Centre Ltd Barnaby Perks CEO Linkedin
Presentations by entrepreneurs from Cambridge and Anglia Ruskin Universities
Jeremy Leong Founder Rainbow Rocket Climbing Wall Linkedin
Mark Kotter Founder - bit.bio https://www.bit.bio Linkedin
Talha Mehmood Founder CEO Medily Linkedin
Alison Howie Cambridge Adaptive Testing Linkedin
Mohammad Najilah, Director of the Medical Technology Research Centre, Anglia Ruskin University Linkedin
Q&A
Guided Networking
Light refreshments will be served. Many thanks to Penningtons Manches Cooper and Anglia Ruskin University for covering the cost of catering, and to Anglia Ruskin University for providing the venue
The event is hosted by
Prof. Gary Packham Linkedin Pro Vice Chancellor Anglia Ruskin University
Richard Lucas Linkedin Founder CAMentrepreneurs
About Peter Cowley
Peter Cowley ARU Doctor of Business Administration, honoris causa.
Author of Public Success Private Grief
Co-Founder CAMentrepreneurs & Honorary Doctorate from Anglia Ruskin.
Chair of Cambridge Angels, UK Angel Investor of the Year, President of European Business Angels Network Wikipedia. Peter died in November 2024.
About Anglia Ruskin University - ARU
ARU was the recipient of the Times Higher Education University of the Year 2023 and is a global university with students from 185 countries coming to study at the institution. Anglia Ruskin prides itself on being enterprising, and innovative, and nurtures those qualities in students and graduates through mentorship, support and start-up funding on offer through the Anglia Ruskin Enterprise Academy. ARU was the first in the UK to receive the prestigious Entrepreneurial University Award from the National Centre for Entrepreneurship in Education (NCEE), and students, businesses, and partners all benefit from the outstanding facilities available.
About CAMentrepreneurs
CAMentrepreneurs supports business and social entrepreneurship among Cambridge University Alumni, students and others. Since its launch in 2016 CAMentrepreneurs has held more than 67 events in Boston, Cambridge, Dallas, Dubai, Edinburgh, Glasgow, Helsinki, Hong Kong, Houston, Lisbon, London, Oxford, Paris, New
Top 5 Mistakes to Avoid When Writing a Job ApplicationRed Tape Busters
Applying for jobs can be tough, especially when you’re making common application mistakes. Learn how to avoid errors like sending generic applications, ignoring job descriptions, and poor formatting. Discover how to highlight your strengths and create a polished, tailored resume. Stand out to employers and increase your chances of landing an interview. Visit for more information: https://redtapebusters.com/job-application-writer-resume-writer-brisbane/
Diagrams are key to architectural work, aligning teams and guiding business decisions. This session covers best practices for transforming text into clear flowcharts using standard components and professional styling. Learn to create, customize, and reuse high-quality diagrams with tools like Miro, Lucidchart, ... Join us for hands-on learning and elevate your diagramming skills!
NewBase 05 May 2025 Energy News issue - 1785 by Khaled Al Awadi_compressed.pdfKhaled Al Awadi
Greetings,
Hawk Energy is pleased to share with you its latest energy news from NewBase Energy
as per attached file NewBase 05 May 2025 Energy News issue - 1785 by Khaled Al Awadi
Regards.
Founder & Senior Editor NewBase Energy
Khaled M Al Awadi, Energy ConsultantGreetings,
Hawk Energy is pleased to share with you its latest energy news from NewBase Energy
as per attached file NewBase 05 May 2025 Energy News issue - 1785 by Khaled Al Awadi
Regards.
Founder & Senior Editor NewBase Energy
Khaled M Al Awadi, Energy ConsultantGreetings,
Hawk Energy is pleased to share with you its latest energy news from NewBase Energy
as per attached file NewBase 05 May 2025 Energy News issue - 1785 by Khaled Al Awadi
Regards.
Founder & Senior Editor NewBase Energy
Khaled M Al Awadi, Energy ConsultantGreetings,
Hawk Energy is pleased to share with you its latest energy news from NewBase Energy
as per attached file NewBase 05 May 2025 Energy News issue - 1785 by Khaled Al Awadi
Regards.
Founder & Senior Editor NewBase Energy
Khaled M Al Awadi, Energy Consultant
NewBase 28 April 2025 Energy News issue - 1783 by Khaled Al Awadi_compressed...Khaled Al Awadi
Greetings
Attached our latest energy news
NewBase 28 April 2025 Energy News issue - 1783 by Khaled Al AwadiGreetings
Attached our latest energy news
NewBase 28 April 2025 Energy News issue - 1783 by Khaled Al AwadiGreetings
Attached our latest energy news
NewBase 28 April 2025 Energy News issue - 1783 by Khaled Al Awadi
Smart Home Market Size, Growth and Report (2025-2034)GeorgeButtler
The global smart home market was valued at approximately USD 52.01 billion in 2024. Driven by rising consumer demand for automation, energy efficiency, and enhanced security, the market is expected to expand at a CAGR of 15.00% from 2025 to 2034. By the end of the forecast period, it is projected to reach around USD 210.41 billion, reflecting significant growth opportunities across emerging and developed regions as smart technologies continue to transform residential living environments.
Kiran Flemish is a dynamic musician, composer, and student leader pursuing a degree in music with a minor in film and media studies. As a talented tenor saxophonist and DJ, he blends jazz with modern digital production, creating original compositions using platforms like Logic Pro and Ableton Live. With nearly a decade of experience as a private instructor and youth music coach, Kiran is passionate about mentoring the next generation of musicians. He has hosted workshops, raised funds for causes like the Save the Music Foundation and Type I Diabetes research, and is eager to expand his career in music licensing and production.
Yuriy Chapran: Zero Trust and Beyond: OpenVPN’s Role in Next-Gen Network Secu...Lviv Startup Club
Yuriy Chapran: Zero Trust and Beyond: OpenVPN’s Role in Next-Gen Network Security (UA)
UA Online PMDay 2025 Spring
Website – https://pmday.org/online
Youtube – https://www.youtube.com/startuplviv
FB – https://www.facebook.com/pmdayconference
Petslify Turns Pet Photos into Hug-Worthy MemoriesPetslify
Petslify transforms your pet’s photo into a custom plush that captures every detail. Customers love the lifelike result, making it feel like their furry friend is still with them—soft, cuddly, and full of love.
Alan Stalcup is the visionary leader and CEO of GVA Real Estate Investments. In 2015, Alan spearheaded the transformation of GVA into a dynamic real estate powerhouse. With a relentless commitment to community and investor value, he has grown the company from a modest 312 units to an impressive portfolio of over 29,500 units across nine states. He graduated from Washington University in St. Louis and has honed his knowledge and know-how for over 20 years.
The Fascinating World of Hats: A Brief History of Hatsnimrabilal030
Hats have been integral to human culture for centuries, serving various purposes from protection against the elements to fashion statements. This article delves into hats' history, types, and cultural significance, exploring how they have evolved and their role in contemporary society.
Looking for Reliable BPO Project Providers?"anujascentbpo
"Looking for Reliable BPO Project Providers?" tailored for businesses potentially seeking outsourcing partners, especially those in or considering Noida and India.
**Title:** Accounting Basics – A Complete Visual Guide
**Author:** CA Suvidha Chaplot
**Description:**
Whether you're a beginner in business, a commerce student, or preparing for professional exams, understanding the language of business — **accounting** — is essential. This beautifully designed SlideShare simplifies key accounting concepts through **colorful infographics**, clear examples, and smart layouts.
From understanding **why accounting matters** to mastering **core principles, standards, types of accounts, and the accounting equation**, this guide covers everything in a visual-first format.
📘 **What’s Inside:**
* **Introduction to Accounting**: Definition, objectives, scope, and users
* **Accounting Concepts & Principles**: Business Entity, Accruals, Matching, Going Concern, and more
* **Types of Accounts**: Asset, Liability, Equity explained visually
* **The Accounting Equation**: Assets = Liabilities + Equity broken down with diagrams
* BONUS: Professionally designed cover for presentation or academic use
🎯 **Perfect for:**
* Students (Commerce, BBA, MBA, CA Foundation)
* Educators and Trainers
* UGC NET/Assistant Professor Aspirants
* Anyone building a strong foundation in accounting
👩🏫 **Designed & curated by:** CA Suvidha Chaplot
Harnessing Hyper-Localisation: A New Era in Retail StrategyRUPAL AGARWAL
Discover how hyper-localisation is transforming the retail landscape by allowing businesses to tailor products, services, and marketing strategies to meet the unique needs of specific communities. This presentation explores the concept, benefits, and real-world examples of hyper-localisation in action, helping retailers boost customer satisfaction and drive growth.
Brandon Flatley masterfully blends creativity and community impact. As a mixologist and small business owner, he delivers unforgettable cocktail experiences. A musician at heart, he excels in composition and recording.
7. Microsoft Security Development Lifecycle (SDL)Executive commitment SDL a mandatory policy at Microsoft since 2004EducationAccountabilityTechnology and ProcessOngoing Process Improvements 6 month cycle
8. Security auditSecurity pushSDL Product Development TimelineSecurity sign-offcriteria determinedThreatanalysisSecure questionsduring interviewsLearn & RefineExternal reviewConceptDesignsCompleteTest plansCompleteCodeCompleteShipPostShipTeam membertrainingReview old defects Check-ins checkedSecure coding guidelinesUse toolsData mutation& Least PrivTestsSWIReview
12. SDL Core Principle: Attack Surface ReductionAttack Surface:Any part of an application that is accessible by a human or another programEach one of these can be potentially exploited by a malicious userAttack Surface Reduction:Minimize the number of exposed attack surface points a malicious user can discover and attempt to exploit
18. Etc.Attack Surface Analysis TipsIterative process, for all features you need to also analyze their sub-features Restrict access to features as much as possible
21. SDL Core Principle: Basic PrivacySecurity versus PrivacySecurity: Establishing protective measures that defend against hostile acts or influences and protects the confidentiality of personal informationPrivacy: Empowering users to control the use, collection and distribution of their personal informationSecurity AND Privacy together are key factors to trustworthy computing
22. Important Note: Security Does Not Always Guarantee PrivacyIt is possible to have a secure system that does not preserve users’ privacy.Authentication vs. AuthorizationVerify who areVerify what they can access
24. Microsoft Privacy Guidelines for Developing Products and ServicesDocumented requirements and recommendations for privacy-compliant products and servicesAvailable online for downloadMicrosoft customers will be empowered to control the collection, use, and distribution of their personal information
25. SDL Core Principle: Threat ModelingThreat Modeling: A process to understand threats to an applicationThreats and vulnerabilitiesThreats: Actions a malicious user may attempt in order to compromise a systemVulnerabilities: A specific way a threat is exploitable, such as a coding error
27. Microsoft Threat Modeling ToolMicrosoft has published the threat modeling tool and it uses internally to assess threats against products and servicesFreely available online for download
28. SDL Core Principle: Defense In DepthDefense in Depth: If one defense layer is breached, what other defense layers (if any) provide additional protection to the application?Assume that software and/or hardware will fail at some pointMost applications today can be compromised when a single, and often only, layer of defense is breached (firewall)
31. SDL Core Principle: Least PrivilegeAssume that all applications can and will be compromisedLeast Privilege: If an application is compromised, then the potential damage that the malicious person can inflict is contained and minimized accordingly
38. Limited capabilitiesLeast Privilege TipsEvaluate your application and think minimally!What is the minimum access level your application requires to perform its functions?Elevate privileges only when needed, and then release those elevated privileges when their purposes have been satisfied
39. SDL Core Principle: Secure DefaultsSecure Defaults: Deploy applications in more secure configurations by default.Helps to better ensure that customers get safer experience with your application out of the box, not after extensive configurationIt is up to the user to reduce security and privacy levels
41. Clint’s Dirty DozenClient-side enforcement of server-side securityImproper input validationClear transmission of sensitive informationFailure to preserve SQL query integrityCross-site request forgery (HTML output integrity)Error message information leak
42. Clint’s Dirty Dozen File or path name leakingCritical state data exposureImproper access control (authorization)Use of broken or risky cryptography algorithmsHard-coded passwordsExecution with unnecessary privilegesFailure to constrain operations within memory buffers (buffer overrun)(a concern in unmanaged languages)
43. ConclusionSafer applications begin with secure planning and designSDL Core principles:Attack Surface ReductionBasic PrivacyThreat ModelingDefense in DepthLeast PrivilegeSecure Defaults
46. Microsoft Security Development Lifecycle (SDL)SDL Book:http://www.microsoft.com/mspress/books/8753.aspxOfficial SDL Web Site: http://www.microsoft.com/sdl
48. Microsoft Developer Network (MSDN) Security Developer CenterOfficial Web site: http://msdn.microsoft.com/security
49. Secure Development BlogsThe Microsoft Security Development Lifecycle (SDL) Blog: http://blogs.msdn.com/sdlMichael Howard’s Blog: http://blogs.msdn.com/michael_howardJ.D. Meier’s Security Hotspots: http://shapingsoftware.com/2009/03/09/security-hot-spotsSANS Institute Top 25 Most Dangerous Programming Errors: http://www.sans.org/top25errors
53. Secure Design TenetsReduce Attack SurfaceDefense in DepthLeast PrivilegeSecure Defaults Learn from Past MistakesSecurity is a FeatureProvide Application Diversity
54. Reducing Attack SurfaceLess code running by default = less stuff to whack by defaultSlammer/CodeRed would not have happened if the features were not on by defaultILoveYou (etc.) would not have happened if scripting was offRequires less admin skillReduces the urgency to deploy security fixesUsability often means “automatically”
55. Input Trust Issues“All input is evil, until proven otherwise!”The root of most vulnerabilitiesBuffer OverrunsCanonicalization issuesCross-site Scripting (XSS) attacksSQL Injection attacks Good guys give you well-formed data, bad guys don’t!Don’t rely on your client application providing clean dataDon’t assume attackers play by the rulesThey go ‘under the radar’
56. Buffer OverrunsBeen around foreverPrimarily a C/C++ issueProgramming close to the metal!Prime example of Sloppy Programming!Aim is to change the flow of execution so attacker’s code is calledLack of diversity helps the attackerChapter 5
57. Buffer Overruns at WorkBuffersOther varsArgsEBPEIPHigher addressesvoid foo(char *p, int i) { int j = 0; CFoo foo; int (*fp)(int) = &func; char b[16];}
59. Buffer Overrun ResultsIf you’re lucky, you get an AVDenial of Service against serversIf you’re unlucky, you get instabilityBest of luck debugging that one!If you’re really unlucky, the attacker injects code into your processAnd executes it
60. Buffer Overrun ExamplesIndex Server ISAPI Application (CodeRed)// cchAttribute is char count of user inputWCHAR wcsAttribute[200];if ( cchAttribute >= sizeof wcsAttribute) THROW( CException( DB_E_ERRORSINCOMMAND ) );DecodeURLEscapes( (BYTE *) pszAttribute, cchAttribute, wcsAttribute,webServer.CodePage()); ...void DecodeURLEscapes( BYTE * pIn, ULONG & l, WCHAR * pOut, ULONG ulCodePage ) { WCHAR * p2 = pOut; ULONG l2 = l; ... for( ; l2; l2-- ) {// write to p2 based on pIn, up to l2 bytes
61. Buffer Overrun ExamplesIndex Server ISAPI Application (CodeRed)// cchAttribute is char count of user inputWCHAR wcsAttribute[200];if ( cchAttribute >= sizeof wcsAttribute / sizeof WCHAR) THROW( CException( DB_E_ERRORSINCOMMAND ) );DecodeURLEscapes( (BYTE *) pszAttribute, cchAttribute, wcsAttribute,webServer.CodePage()); ...void DecodeURLEscapes( BYTE * pIn, ULONG & l, WCHAR * pOut, ULONG ulCodePage ) { WCHAR * p2 = pOut; ULONG l2 = l; ... for( ; l2; l2-- ) {// write to p2 based on pIn, up to l2 bytesFIXED!
62. Using strncpyNaïve use of strncpy is no fixMay not null-terminate the stringShell version, StrCpyN and Windows lstrcpy do, howeverPerformance issuesThird argsizeof mix-upsOff-by-one errorsTotal size of destination bufferConsider strsafe.h/ntstrsafe.hIn Platform SDK, MSDN and VS.NET 2003
63. The VC++ /GS FlagA VC++.NET compile-time option that adds run-time code to certain functionsUnmanaged C/C++A random value called a ‘cookie’ inserted into stackValidates various stack data is not corruptMost of Windows Server 2003 and VS.NET is compiled with this optionWindowsXP SP2 Minimal perf hit – 4 instructions!
64. What /GS is NOTA PanaceaA cure for lazy developers!Crap code + /GS == crap code!Only catches some stack-smashing attacksNo heap protectionIt’s an insurance policy
65. Fixing Buffer OverrunsTrace data coming in from the ‘outside’Watch for data as it moves from untrusted to trusted boundariesBuild approp test plans using data mutationBe wary of certain functionsstrcpy, CopyMemory, MultiByteToWideCharsprintf(…,”%s”,…)Refer to Writing Secure Code 2nd Edition for listAPI which use byte vs. char countsNo such thing as ‘bad functions’ only ‘bad developers’Not limited to copy functionsCompile with /GSWindows Server 2003 on AMD Opteron™ adds /noexecute boot option
66. Canonicalization IssuesNever make a decision based on the name of a fileChances are good that you’ll get it wrongOften, there is more than one way to name something
69. İ// Do not allow "FILE://" URLsif(url.ToUpper().Left(4) == "FILE") return ERROR;getStuff(url);// Only allow "HTTP://" URLsif(url.ToUpper(CULTURE_INVARIANT).Left(4) == "HTTP") getStuff(url);else return ERROR; The Turkish-I problem(Applies also to Azerbaijan!)Turkish has four letter ‘I’si (U+0069) ı (U+0131) İ (U+0130) I (U+0049)In Turkish locale UC("file")==FİLE
70. SQL Injection – C#string Status = "No";string sqlstring ="";try { SqlConnection sql= new SqlConnection( @"data source=localhost;" + "user id=sa;password=password;"); sql.Open(); sqlstring="SELECT HasShipped" + " FROM detail WHERE ID='" + Id + "'"; SqlCommand cmd = new SqlCommand(sqlstring,sql); if ((int)cmd.ExecuteScalar() != 0) Status = "Yes";} catch (SqlException se) { Status = sqlstring + " failed\n\r"; foreach (SqlError e in se.Errors) {Status += e.Message + "\n\r";}} catch (Exception e) { Status = e.ToString();}
71. Good GuyID: 1001SELECT HasShippedFROM detail WHERE ID='1001'Not so Good GuyID: 1001' or 1=1 --SELECT HasShippedFROM detail WHERE ID= '1001' or 1=1 -- 'Why It’s Wrong(1 of 2)
72. Really Bad GuyID: 1001‘; drop table orders --SELECT HasShipped FROM detailWHERE ID= '1001‘; drop table orders -- 'Downright Evil GuyID: 1001’; exec xp_cmdshell(‘fdisk.exe’) --SELECT HasShipped FROM detailWHERE ID= ‘1001’; exec xp_cmdshell('fdisk.exe') -- 'Why It’s Wrong(2 of 2)
73. Cross Site ScriptingVery common vulnerabilityThe Nov01 Passport issue was CSSA flaw in a server that leads to compromise in a clientThe fault is simply echoing user input!And trusting user input!
74. CSS In ActionOwns badsite.comWelcome.aspHello,<%= request.querystring(‘name’)%>
76. Input RemediesAll input is evil until proven otherwiseRequire authenticated connectionsSanitize all inputLook for valid dataReject everything elseHigh-level languages can use RegExpSSN = ^\d{3}-\d{2}-\d{4}$Make no assumptions about the trustworthiness of dataNever directly echo Web-based user inputVerify input, then echo itAt the very least, HTML or URL encode the outputASP.NET adds the ValidateRequest optionUse SQL parameterized queries
77. Storing SecretsStoring secrets securely in software is impossible!…But you can raise the bar!Embedded ‘secrets’ don’t stay secretfor long
78. Storing SecretsDPAPI is the recommended methodCrypt[Un]ProtectDataRequires Windows 2000 and laterPreferable to LSA secretsEasy!You store the encrypted secretYou can back the data upDPAPI provides integrity checkNo need to run as adminAccount that encrypts the data, decrypts the data
79. Storing Secrets in MemoryProcessAcquire dataEncrypt it Decrypt itUse itScrub itFunctionsCrypt[Un]ProtectMemoryRequires Windows Server 2003 and laterRtl[En|De]cryptMemoryNow in PlatformSDKSecureZeroMemory
80. A Related Issue –“Encraption”XOR is not your friend!Don’t roll your ownUse CryptoAPIUse System.Security.CryptographyEvaluate usageAre algorithms appropriate?Document all uses of cryptoconst TCHAR szDecrypt[] = TEXT("susageP");// Decrypt the passworddwSize = (dwSize/sizeof(TCHAR)) - 1;for (dwType = 0; dwType < dwSize; dwType++) { lpRasDialParams->szPassword[dwType] ^= szDecrypt[dwType % 7];
81. The Threat Modeling ProcessCreate an application modelUse UML or DFDCategorize threats by using STRIDECreate a threat treeRank threats by using DREAD
85. Best PracticesTest SecurityInvolve test teams in projects at the beginningExplicitly test security, not just featuresKnow your enemy and know yourselfWhat techniques and technologies will hackers use?What techniques and technologies can testers use?Use threat modeling to develop security testing strategyAnalyze and prioritize test strategiesAttack!!!!
86. Best PracticesTest SecurityThink Evil. Be Evil. Test Evil.Automate attacks with scripts and low-level programming languagesSubmit a variety of invalid dataDelete or deny access to files or registry entriesTest with an account that is not an administrator accountPerform code reviews
87. Start Right AwayIt’s true that if you have 1000 or more developers, you’ll probably want to eventually work your way up to the Dynamic level of the Optimization Model (where we see ourselves), but the 5-person PHP shop could greatly benefit from implementing the SDL at the Standardized level. At the Standardized level, you perform high-ROI security activities such as validating input and encoding output to defend against cross-site scripting attacks, using stored procedures to defend against SQL injection attacks, and fuzzing your application inputs to find unknown errors. These all sound pretty applicable to a 5-person PHP shop to me!
Editor's Notes
#3: So you’ve decided to get serious about security…Photo credits: http://www.flickr.com/photos/declanjewell/2472470758/
#4: Maybe you need someheavy securityPhoto credits: http://www.flickr.com/photos/anonymouscollective/2291896028/
#5: This elegant system allows more than one person to open the gate, each using their own key.Photo credit:http://www.flickr.com/photos/psd/
#6: Overdone security can kill a system.If there is too much impedance, smart users will do their best to get around all the locks Too much security leads to systems that are hard to administer and maintainPhoto credit: http://www.flickr.com/photos/sunshinecity/
#7: In this presentation we will complete a high-level overview of the SDL and the important role it fulfills in the design stage of an application’s software development lifecycle. We will also review the secure design principles employed within the SDL that has helped Microsoft better deliver safer and more trusted applications to its customers since the inception of the SDL in 2004.
#12: After the requirements for a solution has been identified in the early stages of an application’s software development lifecycle, the next step is to design and architect a solution that satisfies those identified requirements. Developing trusted applications requires that sound security and privacy decisions be made early in the design phase because decisions made at this stage will highly influence subsequent efforts in the latter stages of the software development lifecycle and the final state of the application. Microsoft has found that by adopting this approach, application development costs (such as those required to address and resolve security and privacy issues) are significantly reduced compared to if security and privacy were considered later in the SDLC or not at all. This is because applications developed against more secure and privacy aware designs tend to be exposed to fewer threats and contain less vulnerabilities. Microsoft helps ensure that security and privacy considerations are incorporated into its application design efforts through the SDL by applying the following secure design principles.In the remainder of this presentation, I will briefly review each of these principles and mention how they can be applied to better ensure that application designs consist of sufficient and effective security and privacy best practices.
#13: The attack surface of an application is the portion of the program (code and functionality) that is exposed to a particular person or another program. For example, an open network port and a user-interface are examples of an application’s attack surface. One of the most effective secure design principles that can be used to protect an application from malicious acts is attack surface reduction (ASR). The principle of ASR is to minimize the attack surface while still satisfying the functional requirements of the application. Secure coding will reduce, but not eliminate all vulnerabilities in your application; however, by reducing the attack surface, you minimize the number of vulnerabilities that the attacker can discover and attempt to exploit.
#14: Here’s an example of attack surface. Let’s pretend we are a home security company and we want to protect this home from a burglar breaking in the home and stealing the valuables inside. What is our attack surface?(Mouse click)At the front of the house we have several windows and doors that a burglar could use or exploit.(Mouse click)At the side of the house we also have a couple windows a burglar could use or exploit.(Mouse click)And then finally, don not forget the chimney!Like this house, our applications have various points that are exposed to people or other programs and computers. Each one of these can be exploited by a malicious, and with attack surface reduction our goal is to minimize the number of potential vulnerabilities a malicious person could exploit.
#15: In order to reduce the attack surface of an application, application designers need to first know how to measure the attack surface.The attack surface is defined by the set of interfaces, or entry points, to the program. Attack surface analysis (ASA) is the process of identifying and understanding all of the entry points that comprise the attack surface, and is successfully performed by enumerating all of the interfaces, protocols, and code execution paths. Another important element of ASA is understanding the trust levels required to access each entry point.For each entry point, you must consider the importance of the feature that it enables. For features that are not important to a vast majority of the users, turn the feature off, disable it by default, or do not even install it by default; force the users that really want or need the feature to take explicit action to obtain that feature. This way, any vulnerability related to that specific feature will affect a very small percentage of the product’s user base.Next consider which specific classes of users require that feature, and then restrict its use to those classes. For example, do not default to making the feature remotely accessible, do not default to allowing anonymous access, do not default to running with more privilege than is needed, etc.A significant aspect of ASR is restricting who has access to a particular product feature, and how such users may obtain and use that access.
#16: ASA is an iterative process: for each feature that you analyze, you must also analyze all of its sub-features. And again, you want to restrict access to features as much as possible.For example, if your application in general processes files, configure it to read only the most common file types that it accepts; force the user to explicitly configure it to process the less commonly used file types. Also ensure that when the program writes files that it sets the proper ownership and rights on the file; do not create executable files unless those files must be executable.Disable older, faulty, and less used protocols, such as SSL V2 and PCT. Force users to use more robust alternatives, such as SSL V3 and TLS, or force them to explicitly configure applications to accept those older protocols.If your application provides a service or implements a protocol, restrict the commands that it accepts by default to those that are most commonly needed and used. Force the administrator to explicitly configure other commands if they want to accept them.
#17: While ASR focuses on restricting access, it is not strictly about disabling or not installing features. For instance, instead of using UDP as a network protocol, use TCP which can be more easily secured. Or instead of making a network service Internet accessible, make it local network accessible only until unless needed.You can also use ASR to enforce the principle of least privilege, which will be discussed later, by designing the program to run with the lowest set of privileges required to perform its function.
#18: Here are some examples of how ASR has been applied in the latest versions of Microsoft products that have previously encountered security complications:Authentication before interaction achieves ASR by disallowing anonymous access by default;Firewall on by default closes all but specifically required ports;Many services are now off by default, and when turned on are running as low privileged network services;When services are necessary out-of-the-box, they are restricted to localhost access; andFunctions or features that have been proven to introduce unnecessary and undesirable risk in the past are also now turned off by default.Note: “Network service” refers to the lesser privileged account running the service. Therefore an attacker that defeats the security of IIS 6 obtains relatively few and weak privileges, whereas that attacker defeating the security of IIS 4 or 5 was rewarded with Admin privileges.
#19: In addition to the SDL design principle of attack surface reduction, another core principle that needs to be considered when developing trusted software is that of privacy. Privacy, like security, is another key factor when developing trusted applications; however, they are not the same.Privacy focuses on the control and choices users have regarding the use, collection and distribution of their personal information. Security, on the other hand, is applied to protect assets, including personal information, from threats.Again, when designing trusted applications, both privacy and security together need to be evaluated. The SDL helps application designers create more privacy-aware applications by establishing during the design phase privacy best practices, standards, and guidelines.
#20: A common myth regarding the relationship between security and privacy is that if a system is sufficiently secure then privacy is also preserved. However, this may not always be the case. A security breach can certainly result in a loss of privacy (for instance, credit card information may be accessed by unauthorized users), but it is also possible for a secure system to cause a loss of privacy without a breach.Consider this secure, but privacy-violating scenario: Securely storing personal information and then sending that information using a securely encrypted communication channel to third parties without properly notifying and receiving consent from the user may be securely implemented but obviously does not take into consideration the rights of the user- some rights may have legal implications! In this scenario, the user’s privacy is compromised due to the inappropriate act of a user / application vs. due to a security breach.
#21: In the previous slide I presented the primary privacy objectives associated with developing trusted applications. I mentioned how certain behaviors of an application could create legal obligations that need to be met and how those behaviors could also block the deployment of an application. The table on this slide shows some of the common application behaviors and the legal obligations and blocked deployment scenarios that could arise because of those behaviors. For example, if an application is designed for users under 13 years of age, then legal obligations, such as those described in the Children Online Privacy Protection Act (COPPA), must be met. As another example, if an application transfers personal information, then satisfying legal obligations from the Gramm-Leach-Bliley Act (GLBA) and the Health Insurance Portability and Accountability Act could be required.Application designers need to understand the behavior of the applications and corresponding privacy concerns implied by those behaviors. Microsoft has developed the Microsoft Privacy Guidelines for Developing Products and Services to help application development teams better understand privacy implications associated with application behavior.
#22: In order to help application development teams better develop privacy-compliant products and services, Microsoft has released the Microsoft Privacy Guidelines for Developing Products and Services. This document provides common definitions and rules for developing better privacy-compliant products and services. The document is divided into two sections: The first section contains definitions and key concepts including data types, notice, consent, etc. The second section contains rules categorized by specific development scenarios, such as collection and transfer of personally identifiable information (pii), storage of data on the customer’s system, and onward transfer of pii to third parties. There are also specific scenarios for products or services that collect age or are attractive to children, and for products that are deployed in enterprises. Products deployed in enterprises are a special case, because the developers’ obligation transitions from the user to the enterprise administrator—you need to enable to enterprise administrator to fulfill their company’s privacy policies.At Microsoft, our goal is that our customers will be empowered to control the collection, use and distribution of their personal information through our products and services, and so any externally released application or Web site must comply with the clearly defined rules and guidelines set forth in the Microsoft Privacy Guidelines for Developing Products and Services. Within the SDL, a privacy bug bar is defined and is used to measure the impact of non-compliance with the rules of the Microsoft Privacy Guidelines for Developing Products and Services. Downloading the Microsoft Privacy GuidelinesThe current version (version 2.1a released 04/26/2007) of the Microsoft Privacy Guidelines for Developing Product and Services can be downloaded from:http://www.microsoft.com/downloads/details.aspx?FamilyId=C48CF80F-6E87-48F5-83EC-A18D1AD2FC1F&displaylang=en.A link to the most current version of this document can be found under the privacy section of the SDL training and resources link, located at: http://msdn.microsoft.com/en-us/security/cc448120.aspx.
#23: In this section of the presentation, I will briefly explain the process called threat modeling, which Microsoft uses through the SDL process to understand and address any and all threats to an application. It is important not to confuse threats with vulnerabilities. A threat is simply what an adversary might try to do to compromise a protected resource in the system. A vulnerability is a specific way that a threat is exploitable based on an unmitigated attack path.A person in an application design group with security expertise typically leads the threat modeling activities, which begin with identification of all potential threats to the system and the assets accessed by the system. Threat models must be revisited periodically to account for new threats resulting from new and evolving attack techniques.Please recall that this portion of the presentation is meant only to provide you with a brief introduction to the threat modeling process.
#24: At a high level, threat modeling consists of a number of activities conducted during the design phase of the application development process. These activities begin by envisioning the application as it will be used by typical users in a typical environment, and continue by identifying all of the potential threats to the application and to assets accessed via the application. During this process all security-related assumptions and external dependencies are documented, as are the “external security notes” – notes to help users and administrators understand the security boundaries of the application currently being developed.The threat modeling process continues by creating a number of data flow diagrams (DFDs), which model the trust boundaries of the application and its components and the flow of data between the application and its environment, as well as the flow of data between components within the application. Now that you have a completed model, the next step in the threat modeling process is to determine the types of threats facing the application (from the malicious user’s perspective) and list all of the DFD elements. The DFD elements represent the application assets that need to be protected from attack.Knowing what needs to be protected, and how they will be attacked, enables you to choose appropriate mitigations for each threat. Note that we are still in the design stage of application development! We are now designing security controls into the product based upon the most likely threats; the most cost-effective juncture to address such considerations.At this point, we need to review the threat model, the DFD elements (a.k.a. ‘assets’) that need protection, and the mitigations or defenses/countermeasures, to ensure that the mitigations do indeed protect the assets from the threats. If anything is found to be amiss, this is the time to start from the beginning of the threat-modeling process once again.
#25: Microsoft has published the threat modeling tool it uses internally to help automate aspects of the threat modeling process. The tool is available for download at http://www.microsoft.com/downloads/details.aspx?FamilyID=62830f95-0e61-4f87-88a6-e7c663444ac1&displaylang=en.
#26: In addition to attack surface reduction, privacy and threat modeling, another key design principle that should be leveraged to create trusted applications is the principle of defense in depth. A key perspective of defense in depth is beginning the application design process with the mindset that all applications and hardware will ultimately fail. If you go back to the burglar breaking into a house scenario, all the doors and windows to the house could be locked to keep the burglar out. Those might fail, so an alarm system could also be installed. The alarm system might fail, so the valuables inside the house could be placed inside a safe and so on. In the context of designing and developing trusted applications, this means that privacy (e.g., cryptographic algorithms used to protect sensitive or personal data) and security (e.g., firewalls) features or mechanisms defending our applications will inevitably fail. Unfortunately most applications today are designed and implemented in such a way that the application can be compromised when a single, and often only, layer of defense fails or is breached.With the defense in depth principle, applications are built in such a way that if one defense layer fails, there are additional layers of defense that can provide protection to the application. Think about it this way, if a malicious user is going to compromise our application then we should make their job as difficult as possible by implementing multiple layers of defense that they need to breach vs. just one. That is defense in depth!
#27: The easiest way application designers can get started with this powerful principle is to evaluate their application designs and ask themselves if one layer of defense is breached, what other layers can provide additional protection to the application and the assets that it is protecting.Here is an example of defense in depth and how this principle can be leveraged to make trusted applications more difficult to compromise. Consider a malicious user who wants to gain unauthorized access to sensitive data stored in a server, such as credit numbers or other personally identifiable information (PII).(Mouse click)Again most applications today are designed and developed with a single layer of defense in mind – typically a firewall.(Mouse click)If a malicious user is able to breach this single layer of defense, then that user is able to compromise the application. (Mouse click) On the other hand, an application designed with the defense in depth principle has multiple layers of defense protecting it. For instance, defense layers like input validation (application-level), smart card (host-level) access, and IP security (network-level) are examples of additional layers of defense that could protect an application.(Mouse click)So now, even if one layer of defense fails, there are additional layers of defense that can provide protection to the application and the attack is halted. In our example, while both the firewall and the second defense layer failed, the 3rd and 4th layers of defense were still able to halt the attack, thereby protecting the sensitive data.
#29: The previous SDL secure design principle of defense in depth started with the notion that all software and hardware would fail at some point. With the least privilege principle, we assume that all applications will be compromised. However, thru employing the principle of least privilege, should a malicious user compromise an application the amount of damage that may be inflicted is limited.
#30: Pretend that we have a malicious user and an application running on a system that the user is hoping to compromise.(Mouse click)In this example, the application is running in an administrative or local system state. That is, the application has the same rights as any administrative user on the system.(Mouse click)When our malicious user here compromises the application, because that application is running in an administrative state, the malicious user can now use the application to perform malicious actions, such as changing system passwords, reading users’ files, and accessing any data on that system. In fact, because the malicious user is essentially an administrator on that system through the compromised application, the user can do whatever is desired.(Mouse click)Now see what happens when a malicious user compromises the same application, but this time the application is running using the least privilege principle. That is, it is running in a lower privileged state, such as a network service.(Mouse click)Now when the malicious user compromises the application, the malicious user cannot perform malicious actions, such as changing system passwords, reading user files, etc., because the application that the malicious user is using to perform those nefarious actions does not have the privileges (i.e., access) to do so. In applying the least privilege principle, we have greatly limited the potential damage a malicious user can apply to a compromised system. It is still not an ideal situation; we would rather the malicious user not be able to compromise the application at all, but if the malicious user does compromise the application, then at least we can limit the amount of damage that may be inflicted.
#31: Here are a few tips when using least privilege to design applications that are to be more resilient to malicious attack.Think minimally. Ask yourself, what is the minimum access your application needs to function correctly?If your application requires higher privileges, elevate those privileges only when required and release those privileges immediately after the purposes of those privileges have been satisfied.
#32: In the previous section I provided an overview of the principle of least privilege. In this section, I will present another important and last principle known as, “secure defaults.” Recall that with the attack surface reduction principle, any non-critical part of an application that was exposed to a human or system was removed or disabled by default to reduce the number of exposed vulnerabilities a malicious user could use to compromise an application. The secure defaults principle considers the situation where part of an application needs to be exposed to a human or system by default and how this may be conducted more safely and securely. Microsoft, through the SDL process, has used this principle to better ensure that customers have safer experiences with our applications out-of-the-box, rather than after extensive and often manual configuration activities must be performed. With this principle, it is left to the user to reduce the security and privacy of an application, and not left to Microsoft / the manufacturer of the software.Malicious users commonly scan networks for applications or devices that are known to be insecure by default, such as wireless routers and web servers. These applications are easy to compromise. With secure defaults, this ability is taken away from malicious users and helps keeps your customers safer.
#33: Regarding the secure defaults principle, designers need to evaluate the various parts of their application from the perspective of what is the most secure or privacy-aware manner in which this part may be configured. Here are some examples:Firewall. Microsoft Windows can be configured with the firewall on or off. By default, the latest and future versions of Windows come with the firewall turned on by default.SSL Socket. If your application can read data through an SSL socket, then by default it should be configured to use only the latest secure protocol versions, such as v3, TLS, etc., and avoid insecure versions, such as v2.User Access Over Anonymous or Authenticated Channels. If your application has the option of allowing users to access it over anonymous or authenticated channels, then by default it should use authenticated.Password Complexity. If your application can require users to have complex passwords, then that feature should be enabled by default.Storing User Passwords as Hashes. If your application can store user passwords as hashes or clear text, then it should store passwords as hashes by default.
#36: This concludes our discussion on the SDL Secure Design Principles. In this presentation we completed a high-level overview of the SDL and the important role it fulfills in the design stage of an application’s software development lifecycle. We noted that when security and privacy considerations are sufficiently and effectively incorporated early into an application’s software development lifecycle, such as in the design phase, the overall number of threats an application is exposed to and the number of vulnerabilities an application may contains will be substantially reduced. Additionally, the overall cost of maintaining trusted applications will be reduced due to the number of remediation efforts required to address post-deployment security and privacy issues will most likely be reduced.Finally, we explored the core secure design principles leveraged by the SDL, which are:Attack Surface Reduction. This principle emphasizes the importance of reducing the overall number of possible points in an application that malicious users can use to attack that application.Basic Privacy. This principle concentrates on the importance of fulfilling certain legal obligations, increasing customer trust and unblocking deployments based on an application’s behavior.Threat Modeling. This technique gives application designers a structured and methodical way of understanding and analyzing threats to an application.Defense in Depth. This principle focuses on how the use of multiple layers of defense for an application greatly reduces the likelihood that a malicious user will be able to exploit it.Least Privilege. This principle emphasizes the importance of limiting the amount of damage a malicious user can inflict in the event an application is compromised.Secure Defaults. Finally, this principle concentrates on better ensuring customers’ safe experiences with an application out-of-the-box rather than being required to perform an extensive series of custom configurations.
#39: This diagram compares the security engineering steps of the SDL to the software engineering steps of the classic SDLC (software development lifecycle). The blue outer ring represents traditional software development and the orange inner circle represents the SDL. Notice that the security engineering steps are incorporated into the existing software engineering steps and that any engineering task can be supplemented with a security engineering task.Both of these development lifecycles, or collections of engineering steps, apply to the software development lifecycle regardless of the particular development model you use (for example waterfall, Agile, etc.) The small pewter colored circles represent the various milestones in your model and are an excellent time for ensuring that the steps in both the security and software development lifecycles have been adequately addressed.The SDL process has been documented and published in The Security Development Lifecycle book (Microsoft Press 2006, ISBN: 9780735622142), and the official Web site can be accessed at http://www.microsoft.com/sdl.
#40: This slide provides additional information and links if you would like to learn more about Microsoft’s threat modeling process.
#41: Microsoft also has a security developer center located at http://msdn.microsoft.com/security where developers can find a wealth of resources, including guidance and tools, to help them build safer applications using Microsoft technologies and platforms.
#42: Visit the SDL Blog to get the most current ideas and thoughts from Microsoft SDL team members.Visit Michael Howard’s Blog to read all about how security can be effectively incorporated into the software development process from the author of the popular book, Writing Secure Code (Howard, Michael and David LeBlanc, Microsoft Press, Redmond, Washington, 2003).
#45: This section provides additional slides, materials and information to supplement the main contents of the presentation.