Contattataci

Struttura del corso

1. Sicurezza IT e codifica sicura

  • Principi fondamentali della sicurezza: Riservatezza, Integrità e Disponibilità (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à, principio del minimo privilegio e default fail-safe.
  • Classificazioni standard delle vulnerabilità: Comprensione di CWE (Common Weakness Enumeration) e OWASP.

2. Sicurezza delle applicazioni web

  • Approfondimento dell'OWASP Top Ten: Analisi dettagliata di Injection, Autenticazione 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 dei timeout.
  • Sicurezza delle API: Protezione degli endpoint REST e SOAP contro gli abusi.

3. Sicurezza dei Web services

  • Web Services vs. Applicazioni Web tradizionali: Differenze nelle superfici di attacco.
  • Sicurezza del layer 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à del parsing XML: Prevenzione degli attacchi XML External Entity (XXE).
  • Convalida dello schema XML: Migliori pratiche per il rigido rispetto dello schema.
  • Firme digitali XML: Implementazione di firme per garantire la non ripudiazione.
  • Crittografia XML: Approcci standard per la crittografia del contenuto XML.

5. Fondamenti della sicurezza Java

  • L'architettura di sicurezza Java: Il package java.security e l'architettura dei provider.
  • Provider di sicurezza: Installazione e configurazione di provider come Bouncy Castle.
  • Controllo degli accessi: File di policy, Permessi e Security Manager (Legato vs. Moderno).
  • Gestione dei KeyStore: Creazione e gestione di keystores e truststores per i certificati.

6. Crittografia pratica

  • Algoritmi crittografici: Panoramica degli algoritmi Simmetrici (AES), Asimmetrici (RSA, ECC) e di Hashing (SHA-256/512).
  • Generazione di numeri casuali: I pericoli di java.util.Random rispetto a java.security.SecureRandom.
  • Gestione delle chiavi: Strategie per la generazione, lo stoccaggio e la rotazione delle chiavi.
  • Java Cryptography Architecture (JCA): Utilizzo delle classi Cipher, MessageDigest e Mac.
  • Java Cryptography Extension (JCE): Comprensione dei file di policy e della giurisdizione senza limiti di forza.

7. Servizi di sicurezza Java

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

8. Sicurezza Java EE

  • Sicurezza dichiarativa: Controllo degli accessi basato sui 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 container e metodi di autenticazione (FORM, BASIC, DIGEST).

9. Errori comuni di codifica 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.
  • Path Traversal: Sanitizzazione degli input del filesystem per prevenire la traversamento delle directory.
  • Abuso della riflessione: Rischi associati a java.lang.reflect e elusione del controllo degli accessi.
  • Credenciales hard-coded: Identificazione ed eliminazione dei segreti dal codice sorgente.
  • Errori di implementazione crittografica: Utilizzo 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 di Burp Suite e OWASP ZAP.
  • Database CVE: Come monitorare e reagire alle nuove vulnerabilità del framework Java.
  • Lettura consigliata: Elenco di libri, documentazione e checklist per la codifica sicura.

Requisiti

Nessuno.

 21 ore

Numero di Partecipanti


Prezzo per partecipante

Recensioni (4)

Corsi in Arrivo

Categorie relative