Contesto: fase di implementazione di un software
È possibile avere un ottimo design ma un'implementazione insicura perché:
- L'implementazione si discosta dalla progettazione
- Il design lascia aperte molte opzioni (comprese quelle non sicure)
Ad esempio, il design non specifica la lunghezza delle password, la loro memorizzazione, ...
- La concretizzazione può introdurre nuove vulnerabilità
Ad esempio, buffer overflow e altri attacchi ai dati e al controllo
Motivazioni (extra)
Buffer overflow
Puntatori in C (importante)
Compilazione e layout della memoria
Overflow del buffer (importante)
Difesa
Sommario (extra)