Contattataci

Struttura del corso

1. Sicurezza IT e codifica sicura

  • Principi fondamentali della sicurezza: Confidentiality, Integrity e Availability (CIA) nel contesto delle applicazioni Java.
  • Ciclo di vita dello sviluppo software sicuro (SSDLC): Integrazione della sicurezza dai requisiti al deployment.
  • Paradigmi di codifica sicura: Difesa in profondità, minimo privilegio e valori predefiniti fail-safe.
  • Classificazioni standard delle vulnerabilità: Comprensione di CWE (Common Weakness Enumeration) e OWASP.

2. Sicurezza delle applicazioni Web

  • Analisi approfondita della OWASP Top Ten: Analisi dettagliata di Injection, Authentication compromessa ed esposizione di dati sensibili.
  • Cross-Site Scripting (XSS): Scenari di XSS riflessa, memorizzata e basata su DOM in Java/JSP.
  • Cross-Site Request Forgery (CSRF): Meccanismi di attacco e implementazione di token Anti-CSRF.
  • Gestione delle sessioni: Sicurezza dei cookie, fissazione della sessione e gestione del timeout.
  • Sicurezza API: Protezione degli endpoint REST e SOAP contro gli abusi.

3. Sicurezza dei servizi Web

  • Servizi Web vs. App Web tradizionali: Differenze nelle superfici di attacco.
  • Sicurezza a livello di trasporto: Configurazione SSL/TLS per client e server Java.
  • Sicurezza dei messaggi: Integrità e riservatezza a livello di payload.
  • Standard di autenticazione: Implementazione di OAuth 2.0, OpenID Connect e JWT (JSON Web Tokens).

4. Sicurezza XML

  • Vulnerabilità di parsing XML: Prevenzione degli attacchi XML External Entity (XXE).
  • Validazione dello schema XML: Best practice per l'applicazione rigorosa degli schemi.
  • Firme digitali XML: Implementazione di firme per garantire la non ripudio.
  • Crittografia XML: Approcci standard per la crittografia del contenuto XML.

5. Fondamenti della sicurezza Java

  • Architettura della sicurezza Java: Il pacchetto java.security e l'architettura dei provider.
  • Provider di sicurezza: Installazione e configurazione di provider come Bouncy Castle.
  • Controllo degli accessi: File di policy, Permissions e Security Manager (Legacy vs. Moderno).
  • Gestione dei KeyStore: Creazione e gestione di keystores e truststore per i certificati.

6. Crittografia pratica

  • Algoritmi crittografici: Panoramica su algoritmi simmetrici (AES), asimmetrici (RSA, ECC) e di hashing (SHA-256/512).
  • Generazione di numeri casuali: I rischi di java.util.Random rispetto a java.security.SecureRandom.
  • Gestione delle chiavi: Strategie di generazione, archiviazione e rotazione delle chiavi.
  • Architettura di crittografia Java (JCA): Utilizzo delle classi Cipher, MessageDigest e Mac.
  • Estensione di crittografia Java (JCE): Comprensione dei file di policy e della giurisdizione a forza illimitata.

7. Servizi di sicurezza Java

  • SSL/TLS in Java: Utilizzo di SSLSocketFactory e HttpsURLConnection.
  • Trust Manager: Personalizzazione della verifica di fiducia per ambienti PKI privati.
  • Authenticator: Autenticazione programmatica utilizzando Authenticator.getDefault().
  • Analisi dei certificati: Lettura e analisi di certificati X.509 in modo programmatico.

8. Sicurezza Java EE

  • Sicurezza dichiarativa: Controllo degli accessi basato su ruoli (RBAC) utilizzando web.xml e annotazioni.
  • Sicurezza programmatica: Utilizzo di HttpServletRequest.isUserInRole() e getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Configurazione di login.conf e implementazione di LoginModule.
  • Sicurezza dei Servlet: Vincoli di sicurezza gestiti dal contenitore e metodi di autenticazione (FORM, BASIC, DIGEST).

9. Errori di codifica comuni e vulnerabilità

  • Deserializzazione non sicura: I rischi di ObjectInputStream e l'elusione dei controlli di sicurezza.
  • Iniezione di comandi: Mitigazione delle vulnerabilità di esecuzione a livello di sistema operativo.
  • Percorso di attraversamento: Sanificazione degli input del file system per prevenire l'attraversamento dei directory.
  • Abuso di Reflection: Rischi associati a java.lang.reflect e l'elusione del controllo degli accessi.
  • Credenziali hardcodate: Identificazione e rimozione dei segreti dal codice sorgente.
  • Errori nell'implementazione della crittografia: Uso della modalità ECB, chiavi deboli o IV statici.

10. Fonti di conoscenza

  • Strumenti di analisi statica: Utilizzo di SonarQube, Checkmarx e Fortify per la scansione automatizzata.
  • Strumenti di analisi dinamica: Panoramica su Burp Suite e OWASP ZAP.
  • Database CVE: Come tracciare e reagire alle nuove vulnerabilità del framework Java.
  • Letture consigliate: Elenco di libri, documentazione e check-list di codifica sicura.

Requisiti

Nessuno.

 21 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (4)

Corsi in Arrivo

Categorie relative