PREMESSA
Il corso è indicato per programmatori, project manager o software architect e fornisce indicazioni sulle basi metodologiche, gli standard (ad esempio Owasp) e le linee guida per sviluppare codice sicuro, evitando di inserire nei programmi bugs o vulnerabilità. Vengono svolti alcuni laboratori pratici in linguaggio C# a supporto della trattazione teorica, che mostrano l’uso degli strumenti e la mitigazione di alcune delle vulnerabilità che più frequentemente si riscontrano nelle applicazioni desktop.
PREREQUISITI: buona conoscenza di linguaggi di programmazione a oggetti
DESTINATARI: Sviluppatori, Analisti programmatori, Progettisti di Software, IT Managers
DOTAZIONI RICHIESTE PER LO SVOLGIMENTO DEI LABORATORI: Visual Studio Community Edition 2019 con installazione dei template per lo sviluppo di applicazioni desktop
PROGRAMMA DEL CORSO
1. Introduzione alla scrittura di codice sicuro
– Introduzione
– Statistiche sugli scenari di attacco nel mondo IT
2. Metodologie per lo sviluppo di codice sicuro
– Ciclo di vita dello sviluppo di software
– Threat Modeling
– La Community OWASP: linee guida per il Secure Coding e Code Review
– SAST (Static Application Security Testing) tools, strumenti per analisi statica del codice
3. La Validazione dell’Input
– Linee guida di Secure Coding per la validazione dell’Input
– Vulnerabilità da Injection (ad. Esempio SQL-Injection)
– Laboratori pratici con applicazioni sviluppate in .NET
4. L’Autenticazione delle applicazioni
– Meccanismi di autenticazione
– Linee guida per autenticazione e gestione password
– Opzioni per il salvataggio dati sensibili (account, password, connection strings, ecc)
– Attacchi all’autenticazione: attacchi brute force e Man-in-the-middle
5. Linee guida di Secure Coding per la crittografia
– Introduzione alla crittografia e linee guida per l’uso della crittografia
– Algoritmi di Hashing
– Crittografia Simmetrica e Asimmetrica
– Utilizzo delle librerie native Microsoft per la cifratura
– Firma con certificato di applicazioni .NET