Intrati in legatura

Schița de curs

1. Securitate IT și codare securizată

  • Principii fundamentale ale securității: Confidențialitate, Integritate și Disponibilitate (CIA) în contextul aplicațiilor Java.
  • Ciclul de viață al dezvoltării software securizate (SSDLC): Integrarea securității de la cerințe până la implementare.
  • Paradigme de codare securizată: Apărare în profunzime, privilegiu minim și setări implicite sigure.
  • Clasificări standard ale vulnerabilităților: Înțelegerea CWE (Common Weakness Enumeration) și OWASP.

2. Securitatea aplicațiilor web

  • Analiză detaliată a OWASP Top Ten: Injecție, Autentificare defectuoasă și Expunerea datelor sensibile.
  • Cross-Site Scripting (XSS): Scenarii de XSS reflectat, stocat și bazat pe DOM în Java/JSP.
  • Cross-Site Request Forgery (CSRF): Mecanisme de atac și implementarea tokenurilor Anti-CSRF.
  • Gestionarea sesiunilor: Securitatea cookie-urilor, fixarea sesiunii și gestionarea timeout-urilor.
  • Securitatea API-urilor: Securizarea punctelor de capăt REST și SOAP împotriva abuzului.

3. Securitatea serviciilor web

  • Servicii web vs. aplicații web tradiționale: Diferențe în suprafețele de atac.
  • Securitatea la nivel de transport: Configurarea SSL/TLS pentru clienți și servere Java.
  • Securitatea mesajelor: Integritatea și confidențialitatea la nivelul sarcinii utile.
  • Standarde de autentificare: Implementarea OAuth 2.0, OpenID Connect și JWT (JSON Web Tokens).

4. Securitatea XML

  • Vulnerabilități ale analizei XML: Prevenirea atacurilor XML External Entity (XXE).
  • Validarea schemelor XML: Cele mai bune practici pentru aplicarea strictă a schemelor.
  • Semnături digitale XML: Implementarea semnăturilor pentru a asigura nerepudierea.
  • Criptarea XML: Abordări standard pentru criptarea conținutului XML.

5. Fundamentele securității în Java

  • Arhitectura de securitate Java: Pachetul java.security și arhitectura furnizorilor.
  • Furnizori de securitate: Instalarea și configurarea furnizorilor precum Bouncy Castle.
  • Controlul accesului: Fișiere de politică, permisiuni și Security Manager (Legacy vs. Modern).
  • Gestionarea KeyStore-urilor: Crearea și gestionarea keyStore-urilor și trustStore-urilor pentru certificate.

6. Criptografie practică

  • Algoritmi criptografici: Prezentare generală a algoritmilor simetrici (AES), asimetrici (RSA, ECC) și de hashing (SHA-256/512).
  • Generarea numerelor aleatoare: Pericolele lui java.util.Random vs. java.security.SecureRandom.
  • Gestionarea cheilor: Generarea, stocarea și strategiile de rotație a cheilor.
  • Arhitectura criptografică Java (JCA): Utilizarea claselor CipherMessageDigest și Mac.
  • Extensia criptografică Java (JCE): Înțelegerea fișierelor de politică și a jurisdicției de forță nelimitată.

7. Servicii de securitate Java

  • SSL/TLS în Java: Utilizarea SSLSocketFactory și HttpsURLConnection.
  • Manageri de încredere: Personalizarea verificării încrederii pentru mediile PKI private.
  • Autentificatori: Autentificare programatică folosind Authenticator.getDefault().
  • Parsarea certificatelor: Citirea și analiza programatică a certificatelor X.509.

8. Securitatea Java EE

  • Securitate declarativă: Controlul accesului bazat pe roluri (RBAC) folosind web.xml și adnotări.
  • Securitate programatică: Utilizarea HttpServletRequest.isUserInRole() și getRemoteUser().
  • JAAS (Java Authentication and Authorization Service): Configurarea login.conf și implementarea LoginModules.
  • Securitatea servletelor: Construcții de securitate gestionate de container și metode de autentificare (FORM, BASIC, DIGEST).

9. Erori și vulnerabilități comune de codare

  • Deserializare nesigură: Riscurile lui ObjectInputStream și ocolirea verificărilor de securitate.
  • Injectare de comenzi: Atenuarea vulnerabilităților de execuție la nivel de sistem de operare.
  • Traversare de cale: Sanitizarea intrărilor sistemului de fișiere pentru a preveni traversarea directoarelor.
  • Abuzul de reflexie: Riscurile asociate cu java.lang.reflect și ocolirea controlului accesului.
  • Credențiale hardcodate: Identificarea și eliminarea secretelor din codul sursă.
  • Erori de implementare a criptografiei: Utilizarea modului ECB, chei slabe sau IV-uri statice.

10. Surse de cunoștințe

  • Instrumente de analiză statică: Utilizarea SonarQube, Checkmarx și Fortify pentru scanare automată.
  • Instrumente de analiză dinamică: Prezentare generală a Burp Suite și OWASP ZAP.
  • Baze de date CVE: Cum să urmărești și să reacționezi la noile vulnerabilități din cadrul Java.
  • Lecturi recomandate: Listă de cărți, documentație și liste de verificare pentru codare securizată.

Cerințe

Niciunul.

 21 Ore

Numărul de participanți


Pret per participant

Mărturii (4)

Cursuri viitoare

Categorii înrudite