Di cosa tratta il corso
Un workshop di due giorni per team di sviluppo, costruito attorno al vostro stack tecnologico. Gli sviluppatori sfruttano in prima persona le vulnerabilità tipiche, le correggono e imparano a riconoscerle in fase di review. Il giorno 1 è dedicato a memory safety e C/C++ embedded, il giorno 2 a web, API e processo di review. Il corso può essere ridotto a un giorno o esteso a tre, e possiamo lavorare su vulnerabilità anonimizzate tratte dal vostro codice.
Programma
Giorno 1: Memory safety e codice embedded
Teoria
- Come ragiona un attaccante: dal bug all’exploit
- Buffer overflow, errori sugli interi e format string
- Undefined behaviour e che cosa ne fanno i compilatori
- MISRA C e SEI CERT C: che cosa coprono e che cosa lasciano fuori
- Casualità, chiavi e segreti sui dispositivi embedded
Pratica
- Exploit di uno stack overflow in un piccolo parser firmware
- Ricerca e correzione di bug di lunghezza e sugli interi nei protocol handler
- Fuzzing di un parser e triage dei crash
- Hardening della build: flag del compilatore e analisi statica
Giorno 2: Web, API e code review
Teoria
- OWASP Top 10 e OWASP API Security Top 10
- Autenticazione, sessioni e controllo degli accessi (IDOR, BOLA, BFLA)
- Injection e deserializzazione non sicura
- Segreti, dipendenze e supply chain del software
- Sicurezza nella pipeline: SAST, SCA e review gate
Pratica
- Abuso di un controllo degli accessi difettoso in un’API di esempio
- Correzione di falle di injection e di validazione
- Review di pull request con la mentalità dell’attaccante
- Scrittura di requisiti di sicurezza verificabili
