Secure Programming
Challenge
- Most penetrations are due to buggy software.
- Good software design leads to good security.
Goals
- Avoid bugs
- Enforce security
- Proper components & proper composition
Avoid Bugs
- C language is a big problem
Buffer overflow
- Character strings in C = arrays of chars
- No array bounds checking in C
- Attacker's goal: overflow array in a controlled fashion.