Back to course catalog

The secure coding landscape

CL-OSC
General security
Course page in PDF Inquiry

Course information

Preparedness

General software design and development

Exercises

Demonstrated

Delivery methods

Classroom

Course Reviews

Both the overview and the teacher was good. How he showed explicitly how commonly appearing insecure code constructs can be misused is very effective as eye openers.

September 2012 Stockholm

View all reviews

Description

The course introduces some common security concepts, gives an overview about the nature of the vulnerabilities regardless of the used programming languages and platforms, and explains how to handle the risks that apply regarding software security in the various phases of the software development lifecycle. Without going deeply into technical details, it highlights some of the most interesting and most aching vulnerabilities in various software development technologies, and presents the challenges of security testing, along with some techniques and tools that one can apply to find any existing problems in their code.

Participants attending this course will

  • Understand basic concepts of security, IT security and secure coding
  • Understand Web vulnerabilities both on server and client side
  • Realize the severe consequences of unsecure buffer handling
  • Be informated about some recent vulnerabilities in development environments and frameworks
  • Learn about typical coding mistakes and how to avoid them
  • Understand security testing approaches and methodologies
  • Get sources and further readings on secure coding practices

Outline

  • Agenda
  • IT security and secure coding
  • Security challenges of various platforms – highlights –
  • Challenges of security testing
  • Principles of security and secure coding
  • Knowledge sources

Table of Contents

    • Agenda
    • IT security and secure coding
      • Nature of security
      • What is risk?
      • Different aspects of IT security
      • IT security vs. secure coding
      • From vulnerabilities to botnets and cybercrime
        • Nature of security flaws
        • Reasons of difficulty
        • From an infected computer to targeted attacks
        • Cybercrime – an organized network of criminals
        • The threat landscape
    • Security challenges of various platforms – highlights –
      • Secure coding topics
      • C/C++ (native code) secure coding
        • The function calling mechanism in C/C++ on x86
        • Buffer overflow on the stack
        • Overwriting the return address
        • Exploiting stack overflow – jumping to arbitrary address
        • Exploiting stack overflow – injecting malicious code
        • Architecture level mitigation techniques (C/C++)
      • Web application security
        • OWASP Top Ten 2017
        • Exercise – SQL injection
        • Typical SQL Injection attack methods
        • Blind and time-based SQL injection
        • Insecure direct object reference (IDOR)
        • Persistent XSS
        • Reflected XSS
        • Exercise – Cross Site Scripting
      • Clickjacking
        • Clickjacking
        • Protection against Clickjacking
        • Anti frame-busting – dismissing protection scripts
        • Protection against busting frame busting
        • Form tampering
        • Exercise – Form tampering
      • Java platform security
        • Secure coding issues in Java
        • The Seven Pernicious Kingdoms
        • Case study – Java Calendar vulnerability
          • The most exploited flaw in Java at the time
          • The actual mistake in java.util.Calendar – spot the bug!
        • Case study – The double bug in Java
          • A generic Denial of Service attack against the Java environment
          • The “2.2250738585072012e-308 bug”
          • Exercise Double Bug
    • Challenges of security testing
      • Functional testing vs. security testing
      • Security vulnerabilities
      • Prioritization – risk analysis
    • Principles of security and secure coding
      • Matt Bishop’s principles of robust programming
      • The security principles of Saltzer and Schroeder
    • Knowledge sources
      • Secure coding sources – a starter kit
      • Vulnerability databases
      • Java secure coding sources
      • .NET secure coding guidelines at MSDN
      • .NET secure coding cheat sheets
      • Recommended books – C/C++
      • Recommended books – Java
      • Recommended books – .NET and ASP.NET
Show full table of contents

Get more information