Il corso si basa sui concetti di sicurezza nella progettazione, realizzazione e gestione del software, basandosi sui contenuti del CBK (Common Body of Knowledge) per la Sicurezza Applicativa elaborato da ISC2. Le linee guida sono indipendenti dalla particolare tecnologia, tuttavia il corso presenta anche alcune delle principali vulnerabilità tecnologiche presenti in software realizzati utilizzando Java/.NET, JavaScript e tecnologie Web, facendo riferimento alla classifica Top 10 OWASP e alla classificazione CWE (Common Weakness Enumeration).
Nel laboratorio vengono presentati brani di codice insicuro, e verrà spiegato agli allievi come procederne all’individuazione e alla bonifica con l’aiuto di strumenti di analisi statica (SonarQube con profilo OWASP).
Sarà inoltre offerta una applicazione d’esempio che contiene diverse vulnerabilità (SQL Injection, XXE, XSS (Dom, Reflected e Stored), CSRF, Broken Authentication, IDOR, Token Hijacking…). Ai partecipanti verrà chiesto, tramite strumenti come Zed Attack Proxy, Burp, Wireshark, Zenmap, di effettuare gli attacchi per capirne la portata. Sarà inoltre spiegato l’uso di ZAP per operazioni di Spidering, Forced Browsing, Fuzzing, Active Scanning e Penetration Test dell’applicazione di esempio.
Gli strumenti SonarQube, ZAP e Dependency Checker saranno mostrati anche in catena di integrazione Continuous Integration con Maven e Jenkins, tramite opportuni plugin.
Al termine del corso, i partecipanti acquisiranno consapevolezza di come innervare il concetto di sicurezza in tutte le fasi di realizzazione del software (dai requisiti al deploy), e da quali principali vulnerabilità devono difendere lo sviluppo del proprio codice.
Contenuti:
- Aspetti di Design e SSDLC
- Concetti principali di sicurezza: Principi di progettazione della sicurezza; Requisiti software sicuri; Identificare i requisiti di sicurezza; Interpretare i requisiti di
classificazione dei dati; Identificare i requisiti di privacy; Sviluppare la matrice di tracciabilità del requisito di sicurezza - Progettazione di software sicuro: Modello delle minacce; Definire l'architettura di sicurezza; Progettare interfacce sicure; Valutazione del rischio architettonico; Modelli
(non funzionali) di sicurezza e vincoli; Utilizzo di architetture e strumenti di progettazione che migliorano la sicurezza; Utilizzare principi e modelli di progettazione
sicura - Implementazione / programmazione di software in modo sicuro: Prassi di codifica sicure; Analizzare il codice per le vulnerabilità di sicurezza: OWASP e CWE. Commento
delle principali vulnerabilità.
- Concetti principali di sicurezza: Principi di progettazione della sicurezza; Requisiti software sicuri; Identificare i requisiti di sicurezza; Interpretare i requisiti di
- Esercizi di Attacco e Remediation
- Presentazione di porzioni di codice Java e JavaScript con vulnerabilità. Classificazione OWASP/CWE delle vulnerabilità. Simulazione di penetrazione delle vulnerabilità.
Discussione sulle modalità di hardening del codice e implementazione. - Attacchi presentati (OWASP A1 – A9) e discussione delle mitigation:
- SQL Injection
- Blind SQL Injection; attacchi Union e Order By
- XXE; Blind XXE; XXE su architetture REST based
- Broken Authentication; Parameter Tampering; Web Token Tampering; Reset Password Interception; Elevazione di autorizzazione a pari autenticazione
- XSS: Stored, Reflected, DOM-Based. Alcuni esempi di attacchi.
- IDOR (Insecure Direct Object Reference).
- CSRF, vari esempi di attacchi
- Vulnerabilità nelle dipendenze (OWASP A9), uso di dependency checker, esempi
- Tutti gli attacchi sono presentati con esempi concreti e challenge presentate agli allievi, che le dovranno risolvere con opportuni strumenti (ZAP, Burp, Wireshark,
Zenmap…)
- Presentazione di porzioni di codice Java e JavaScript con vulnerabilità. Classificazione OWASP/CWE delle vulnerabilità. Simulazione di penetrazione delle vulnerabilità.
- Continuous Integration e Strumenti
- Setup di tool di security in continuous integration. SonarQube e Sonarlint come strumenti di SAST. Generazione report SonarQube OWASP Top 10 / Sans Top 25.
- Uso di ZAP come DAST per Fuzzing (con FuzzDB); Forced Browsing, Attacco Attivo con relativa configurazione. Generazione del report dei risultati di attacco dinamico.
- Integrazione di Owasp Dependency Check con Maven
Prezzo di listino
700,00 EUR + IVA per partecipante
Durata
- 14 ore
- 2 giorni
Prerequisiti
Conoscenza dei processi di sviluppo del software.
LAB: Installata Java JDK 1.8, OWASP ZAP, Possibilità di accesso Admin e Firewall alla macchina.
Prezzo di listino: 700,00 EUR + IVA per partecipante
Durata: 14 ore (2 giorni)
Erogabile on-line e on-site
Tutti i nostri corsi sono erogabili anche in modalità on-line (con formazione a distanza), oppure on-site, sempre personalizzati secondo le esigenze.