Struttura del corso
Fondamenti di Sicurezza Informatica e Programmazione Sicura
- Fondamenti della modellazione delle minacce: metodologia STRIDE, superfici di attacco e vettori di escalation dei privilegi
- Integrazione del controllo della sicurezza nel ciclo di sviluppo software (SDLC): approccio “shift left”, revisioni progettuali orientate alle minacce e principio della difesa in profondità
- Principio del minimo privilegio, gestione sicura dei contratti tra componenti e configurazioni predefinite sicure
- Esercitazione pratica: mappatura di un microservizio .NET rispetto a un modello delle minacce con individuazione dei controlli architetturali necessari
Sicurezza delle Applicazioni Web in ASP.NET
- Pipeline di gestione delle richieste in ASP.NET, ordine di esecuzione dei middleware e punti di intercettazione dei filtri
- Rischi legati al protocollo HTTP: injection negli header, tentativi di “request smuggling” e configurazioni errate di CORS
- Gestione delle sessioni utente, persistenza dello stato e best practice per la sicurezza dei cookie
- Implementazione di chiamate remote tra procedure e modelli ottimali per l’utilizzo di API esterne
- Esercitazione: identificazione e correzione di vulnerabilità in una catena di middleware in un’applicazione ASP.NET campione
Architettura della Sicurezza in .NET e Servizi Integrati
- Modello di sicurezza del CLR: gestione delle prove, dei permessi e l’evoluzione del sistema CAS (Code Access Security)
- ASP.NET Core Identity, schemi di autenticazione e tecnologie di sicurezza basate su token (JWT, OAuth2, OpenID Connect)
- API Data Protection: cifratura dei dati, rotazione delle chiavi crittografiche e serializzazione sicura
- Primitivi crittografici in .NET: generazione di numeri casuali, hashing, cifratura simmetrica/asimmetrica e validazione delle firme digitali
- Esercitazione pratica: implementazione di emissione sicura di token, rotazione delle chiavi crittografiche e protezione dei dati tra diversi microservizi
Errori Comuni nella Programmazione, Vulnerabilità e Contromisure Corrispondenti
- Attacchi di deserializzazione, manipolazione del ViewState e problemi legati alla terminazione delle stringhe in .NET
- Problematiche derivanti da configurazioni non corrette: file web.config/appsettings.json, esposizione involontaria di variabili d’ambiente e gestione impropria dei segreti
- Vettori di injection: attacchi SQL, tramite comandi di sistema, XSS e LDAP nell’accesso ai dati e nel routing gestito in C#
- Configurazioni predefinite poco sicure, codifica fissa dei parametri o gestione errata degli errori che possono portare a fughe di informazioni sensibili
- Esercitazione: analisi indiretta di un modulo .NET vulnerabile, applicazione di pattern corretti e validazione delle soluzioni tramite strumenti statici e dinamici di analisi
Test della Sicurezza, Validazione e Miglioramento Continuo del Codice
- Static Application Security Testing (SAST): strumenti come Roslyn analyzers e Security Code Scan, nonché loro integrazione nei processi di CI/CD
- Dynamic Application Security Testing (DAST): utilizzo di OWASP ZAP e Burp Suite per analisi automatizzate delle vulnerabilità del sistema in esecuzione
- Tecniche di protezione a runtime: strumenti tipo Application Guardrails, pratiche per la sicurezza della memoria e registrazione degli eventi conforme alle policy di sicurezza
- Gestione corretta dei patch, tracciamento delle dipendenze software e adeguata risposta ai bollettini di sicurezza rilasciati per .NET e ASP.NET
- Esercitazione: creazione di controlli preventivi di sicurezza sia prima dell’inoltro dei commit che nei processi automatizzati di pipeline per un progetto .NET
Fonti di Conoscenza e Ecossistema dello Sviluppo Sicuro
- Linee guida ufficiali Microsoft sulla sicurezza, documentazione tecnica relativa a .NET e riferimenti specifici per la protezione delle applicazioni ASP.NET
- Dati sui CVE, feed informativi relativi alle minacce e procedure di disclosure responsabile dei pacchetti open source
- Ecosistemi di librerie sicure: strumenti PGP, servizi crittografici dedicati, framework per l’autenticazione conformi a requisiti normativi e implementazioni crittografiche certificate
- Progettazione e diffusione interna di standard per la programmazione sicura, formazione degli sviluppatori e creazione di programmi di “security champions”
- Esercitazione: costruzione personalizzata di un set di strumenti utili per lo sviluppo sicuro ed elaborazione di un piano di monitoraggio continuativo delle minacce
Requisiti
- Conoscenza approfondita della programmazione in C# e dei fondamenti del framework .NET
- Familiarità con lo sviluppo web tramite ASP.NET (Razor Pages, MVC o Minimal API)
- Comprensione basilare di HTTP, routing e concetti relativi ai server web
- Non è richiesta alcuna certificazione specifica in materia di sicurezza, ma si presuppone esperienza pratica nello sviluppo software in produzione
Recensioni (5)
Molto utile per comprendere come un hacker potrebbe analizzare i siti alla ricerca di debolezze e gli strumenti che potrebbe utilizzare.
Roger - OTT Mobile
Corso - .NET, C# and ASP.NET Security Development
Traduzione automatica
le battute buffe. Amo la sessione di due giorni perché include i laboratori.
Kevin Galacgac - Human Edge Software Philippines, Inc.
Corso - .NET, C# and ASP.NET Security Development
Traduzione automatica
Il formatore si sta davvero connettendo con noi e si assicura che nessuno rimanga indietro nel tema attuale. Spiega bene ogni argomento e fornisce un esempio facile da comprendere.
Edgarico Llaneta - Human Edge Software Philippines, Inc.
Corso - .NET, C# and ASP.NET Security Development
Traduzione automatica
L'addestramento pratico e gli esempi.
Lord-Sam Lamparero - Human Edge Software Philippines, Inc.
Corso - .NET, C# and ASP.NET Security Development
Traduzione automatica
I was benefit from the exercises (SQL injection, XSS, CRSF. .).
David Lemoine - Statistical Solutions
Corso - .NET, C# and ASP.NET Security Development
Traduzione automatica