Course Outline

Day 1

IT Security and Secure Coding for Government

  • Nature of Security
  • IT Security-Related Terms
  • Definition of Risk
  • Different Aspects of IT Security
  • Requirements for Various Application Areas
  • IT Security vs. Secure Coding
  • From Vulnerabilities to Botnets and Cybercrime
    • Nature of Security Flaws
    • Reasons for Difficulty
    • From an Infected Computer to Targeted Attacks
  • Classification of Security Flaws
    • Landwehr’s Taxonomy
    • The Seven Pernicious Kingdoms
    • OWASP Top Ten 2013
    • OWASP Top Ten Comparison 2003 – 2013

Introduction to the Microsoft® Security Development Lifecycle (SDL) for Government

  • Agenda
  • Applications Under Attack...
    • Cybercrime Evolution
    • Attacks Focusing on Applications
    • Most Vulnerabilities in Smaller ISV Apps
  • Origins of the Microsoft SDL...
    • Security Timeline at Microsoft...
    • Which Applications Are Required to Follow SDL?
  • Microsoft Security Development Lifecycle (SDL)
    • Microsoft Security Development Lifecycle (SDL)
    • Pre-SDL Requirements: Security Training
    • Phase One: Requirements
    • Phase Two: Design
    • Phase Three: Implementation
    • Phase Four: Verification
    • Phase Five: Release – Response Plan
    • Phase Five: Release – Final Security Review
    • Phase Five: Release – Archive
    • Post-SDL Requirement: Response
    • SDL Process Guidance for LOB Apps
    • SDL Guidance for Agile Methodologies
    • Secure Software Development Requires Process Improvement

Secure Design Principles for Government

  • Attack Surface
    • Attack Surface Reduction
    • Attack Surface – an Example
    • Attack Surface Analysis
    • Attack Surface Reduction – Examples
  • Privacy
    • Privacy
    • Understanding Application Behaviors and Concerns
  • Defense in Depth
    • SDL Core Principle: Defense In Depth
    • Defense in Depth – Example
  • Least Privilege Principle
    • Least Privilege – Example
  • Secure Defaults
    • Secure Defaults – Examples

Secure Implementation Principles for Government

  • Agenda
  • Microsoft Security Development Lifecycle (SDL)
  • Buffer Overflow Basics
    • Intel 80x86 Processors – Main Registers
    • The Memory Address Layout
    • The Function Calling Mechanism in C/C++ on x86
    • The Local Variables and the Stack Frame
    • Stack Overflow
      • Buffer Overflow on the Stack
      • Exercises – Introduction
      • Exercise BOFIntro
      • Exercise BOFIntro – Determine the Stack Layout
      • Exercise BOFIntro – a Simple Exploit
  • Input Validation
    • Input Validation Concepts
    • Integer Problems
      • Representation of Negative Integers
      • Integer Overflow
      • Arithmetic Overflow – Guess the Output!
      • Exercise IntOverflow
      • What is the Value of Math.Abs(int.MinValue)?
    • Integer Problem Mitigation
      • Integer Problem Mitigation
      • Avoiding Arithmetic Overflow – Addition
      • Avoiding Arithmetic Overflow – Multiplication
      • Detecting Overflow with the Checked Keyword in C#
      • Exercise – Using the Checked Keyword in C#
      • Exceptions Triggered by Overflows in C#
    • Case Study – Integer Overflow in .NET
      • A Real-World Integer Overflow Vulnerability
      • Exploiting the Integer Overflow Vulnerability
    • Path Traversal Vulnerability
      • Path Traversal Mitigation

Day 2

Secure Implementation Principles for Government

  • Injection
    • Typical SQL Injection Attack Methods
    • Blind and Time-Based SQL Injection
    • SQL Injection Protection Methods
    • Command Injection
  • Broken Authentication - Password Management
    • Exercise – Weakness of Hashed Passwords
    • Password Management and Storage
    • Special Purpose Hash Algorithms for Password Storage
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • CSS Injection
    • Exploitation: Injection Through Other HTML Tags
    • XSS Prevention
  • Missing Function Level Access Control
    • Filtering File Uploads
  • Practical Cryptography for Government
    • Providing Confidentiality with Symmetric Cryptography
    • Symmetric Encryption Algorithms
    • Block Ciphers – Modes of Operation
    • Hash or Message Digest
    • Hash Algorithms
    • Message Authentication Code (MAC)
    • Providing Integrity and Authenticity with a Symmetric Key
    • Providing Confidentiality with Public-Key Encryption
    • Rule of Thumb – Possession of Private Key
    • Typical Mistakes in Password Management
    • Exercise – Hard Coded Passwords
    • Conclusion

Secure Verification Principles for Government

  • Functional Testing vs. Security Testing
  • Security Vulnerabilities
  • Prioritization
  • Security Testing in the SDLC
  • Steps of Test Planning (Risk Analysis)
  • Scoping and Information Gathering
    • Stakeholders
    • Assets
    • The Attack Surface
    • Security Objectives for Testing
  • Threat Modeling
    • Threat Modeling
    • Attacker Profiles
    • Threat Modeling Based on Attack Trees
    • Threat Modeling Based on Misuse/Abuse Cases
    • Misuse/Abuse Cases – a Simple Web Shop Example
    • STRIDE Per Element Approach to Threat Modeling – MS SDL
    • Identifying Security Objectives
    • Diagramming – Examples of DFD Elements
    • Data Flow Diagram – Example
    • Threat Enumeration – MS SDL’s STRIDE and DFD Elements
    • Risk Analysis – Classification of Threats
    • The DREAD Threat/Risk Ranking Model
  • Security Testing Techniques and Tools
    • General Testing Approaches
    • Techniques for Various Steps of the SDLC
  • Code Review
    • Code Review for Software Security
    • Taint Analysis
    • Heuristics
  • Static Code Analysis
    • Static Code Analysis
    • Exercise – Using Static Code Analysis Tools
  • Testing the Implementation
    • Manual Run-Time Verification
    • Manual vs. Automated Security Testing
    • Penetration Testing
    • Stress Tests
  • Fuzzing
    • Automated Security Testing - Fuzzing
    • Challenges of Fuzzing
  • Web Vulnerability Scanners
    • Exercise – Using a Vulnerability Scanner
  • Checking and Hardening the Environment
    • Common Vulnerability Scoring System – CVSS
    • Vulnerability Scanners
    • Public Databases
  • Case Study – Forms Authentication Bypass
    • NULL Byte Termination Vulnerability
    • The Forms Authentication Bypass Vulnerability in the Code
    • Exploiting the Forms Authentication Bypass

Knowledge Sources for Government

  • Secure Coding Sources – a Starter Kit
  • Vulnerability Databases
  • .NET Secure Coding Guidelines at MSDN
  • .NET Secure Coding Cheat Sheets
  • Recommended Books – .NET and ASP.NET
 14 Hours

Number of participants


Price per participant

Testimonials (5)

Upcoming Courses

Related Categories