Contesto: fase di implementazione di un software

È possibile avere un ottimo design ma un'implementazione insicura perché:

  1. L'implementazione si discosta dalla progettazione
  2. Il design lascia aperte molte opzioni (comprese quelle non sicure) Ad esempio, il design non specifica la lunghezza delle password, la loro memorizzazione, ...
  3. 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)