Skip navigation

Based on real-world experience managing the development of multiple security products as well as production software, this secure coding class provides both developers as well as analysis/managers with the right attitude in terms of secure coding.

Rather than a “cookbook” for secure coding in a specific language or platform, this class equips the attendees with samples of how things go wrong when software is not developed with security in mind. As we go through the analysis of these cases, a true understanding of the secure development life-cycle is realized.

Agenda:

  1. The security issue – background on secure coding
  2. Presenting the main secure coding realms (with examples):
    1. Input
      1. Buffers/Heap overflows
      2. Formatting (NULLs, casts, etc…)
      3. Injections
    2. Data structures
      1. Canonical representations
      2. Inter object/process contract breaches
    3. Access control
      1. Assumptions and defaults
      2. Authentication & Authorization pitfalls
      3. Least privilege concepts
  3. Common secure coding techniques
    1. Boundary checks
    2. Input validation & data cleaning
    3. Safe casting
    4. Business process validation (for data representation mainly)
    5. Defense in depth
    6. Testing – unit tests, defining bad data tests, “hacking” the application
  4. Building security into the product design (primer)

Duration: Full day (9 hours).