🚀 Submit a Challenge — SecDim AppSec Village CTF at DEF CON 34 and Win a ROG Xbox Ally

Secure Coding Fundamentals

6h 30mBeginnerJavaC#JavaScriptPythonGoTypeScriptOpenAPIRubyFeatured

Software is always more capable than its developers intended -- that extra capability is where vulnerabilities live, and it is why patching them one by one has never worked. This course redefines software security from a developer's perspective and shows how to address defects at their root cause using defensive programming. You will then explore integer overflow, the ancient bug that caused the Boeing 787 electrical shutdown, and fix it hands-on in a secure coding challenge.

Topics

  1. Introduction

    Lesson5m

    Overview of the course, learning objectives and syllabus.

  2. Rise of Software Vulnerabilities

    Lesson15m

    Why software security defects keep rising, who is responsible, and the developer's role in addressing them.

  3. Software Security Redefined

    Video15m

    A developer's redefinition of software security, from the CIA triad to programs as non-deterministic machines with hidden capabilities.

  4. Mistakes in Securing Software Today

    Video15m

    Two real-world case studies -- Heartbleed and Spring Data REST -- showing why after-the-fact patching fails to address root causes.

  5. The Alternative

    Video20m

    Defensive programming and the cross-disciplinary foundations that enable root-cause elimination, with concrete examples.

  6. Numeric Overflow

    Video20m

    The Boeing 787 incident, how integer overflow works at the bit level, and three remediation techniques including a new postcondition approach

  7. Boeing 787 Lab

    Lab30m

    In this lab, you will learn how to find, exploit and fix a numeric overflow (integer overflow) vulnerability in a program inspired by Boeing 787 shutdown incident.