PREMESSA
Il corso consente di sviluppare competenze teoriche e pratiche avanzate per lo sviluppo di applicazioni web sicure indipendentemente dal linguaggio di programmazione utilizzato, avendo come riferimento le best practice di OWASP.
La trattazione teorica verrà corredata con esempi e laboratori pratici in linguaggio C# per la piattaforma .NET Core.
OBIETTIVO DEL CORSO
L’obiettivo è quello di uniformare le competenze in ambito di sicurezza web applicativa su tutti i membri del team, nonché far comprendere agli sviluppatori qual è il punto di vista di un attaccante.
Il linguaggio di riferimento utilizzato è C# su piattaforma .NET Core.
DESTINATARI
Il corso è destinato a sviluppatori .NET Core che vogliono approfondire le best practice di sicurezza applicativa.
NATURA DEL CORSO
La metodologia prevede l’alternarsi di lezioni teoriche e molteplici esercitazioni pratiche tramite un laboratorio presente su cloud e l’utilizzo di piattaforme per esercizi pubbliche.
PROGRAMMA
GIORNO 1
Introduzione alla scrittura di codice sicuro:
- Robustezza, Performance e Sicurezza del Software
- Cause principali delle vulnerabilità
- Metodologia OWASP per Secure Coding e Code Review
- Metodologia OWASP per PenTest di Applicazioni Web
Secure SDLC (Software Development Life Cycle):
- Costi dei bug di sicurezza
- Concetti di rischio e impatto
- Discussione riguardo ogni fase del Secure SDLC
Altri argomenti:
- Black Box Testing vs Code Review
- Introduzione a BurpSuite
- Bug bounties
- Principi di sicurezza del codice
- Vulnerabilità e attacchi:
- Information Gathering:
- Fingerprinting dell’applicazione
- Improper Error Handling
- Information Gathering:
GIORNO 2
Injection:
- SQL Injection
- LDAP Injection
- XPath Injection
- XML Injection
- Command Injection
- Path Traversal
- Log Forging
- HTTP Splitting
GIORNO 3
Autenticazione:
- Metodi di autenticazione di .NET (ASP.NET Core Identity)
- Authentication Bypass
- Credenziali di default
- Funzionalità di cambio o reset password
Autorizzazione:
- Authorization Bypass
- Parameter Manipulation
- Insecure Direct Object Reference
- Access Matrix
Altri argomenti:
- Bypass della logica applicativa
- JWT
GIORNO 4
Sensitive Data Exposure On Transit:
- SSL / TLS
- Suite di cifratura deboli
- Padding Oracle
Sensitive Data Exposure At Rest:
- Crittografia Simmetrica e Asimmetrica
- Hashing
- Salt
Sicurezza delle REST API
Data Validation:
- Cross-Site Scripting
- Whitelisting vs Blacklisting
- Output Encoding
XXE:
- In band
- Out of band
GIORNO 5
Gestione della sessione:
- CSRF (Antiforgery in ASP.NET Core)
- Randomicità ID di sessione
- Session Fixation
Altri argomenti:
- CORS Security
- SSRF
- Altre vulnerabilità:
- Clickjacking
- Denial of Service
- Software and data integrity failures
- IIS Hardening e .NET Core security
- .NET security vs Spring security