Intrati in legatura
 Durata 21 ore

Schița de curs

1. Securitatea IT și codarea securizată

  • Principii fundamentale de securitate: 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 deployment.
  • Paradigme de codare securizată: apărare în profunzime, principiul celui mai mic privilegiu și valori 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: examinarea aprofundată a injecțiilor, autentificării defectuoase și expunerii datelor sensibile.
  • Cross-Site Scripting (XSS): scenarii XSS reflectat, stocat și bazat pe DOM în Java/JSP.
  • Cross-Site Request Forgery (CSRF): mecanisme de atac și implementarea token-urilor Anti-CSRF.
  • Gestionarea sesiunilor: securitatea cookie-urilor, fixarea sesiunii și gestionarea timeout-urilor.
  • Securitatea API-urilor: securizarea endpoint-urilor REST și SOAP împotriva abuzurilor.

3. Securitatea serviciilor web

  • Servicii web vs. aplicații web tradiționale: diferențe în ceea ce privește suprafețele de atac.
  • Securitatea la nivel de transport: configurarea SSL/TLS pentru clienții și serverele Java.
  • Securitatea mesajelor: integritate și confidențialitate la nivel de payload.
  • Standarde de autentificare: implementarea OAuth 2.0, OpenID Connect și JWT (JSON Web Tokens).

4. Securitatea XML

  • Vulnerabilități de parsare XML: prevenirea atacurilor XML External Entity (XXE).
  • Validarea schemei XML: bune practici pentru aplicarea strictă a schemei.
  • Semnături digitale XML: implementarea semnăturilor pentru a asigura non-repudierea.
  • Criptarea XML: abordări standard pentru criptarea conținutului XML.

5. Fundamentele securității Java

  • Arhitectura de securitate Java: pachetul java.security și arhitectura providerilor.
  • Provideri de securitate: instalarea și configurarea providerilor precum Bouncy Castle.
  • Controlul accesului: fișiere de policy, 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 aleatorii: pericolele utilizării java.util.Random față de java.security.SecureRandom.
  • Gestionarea cheilor: strategii de generare, stocare și rotație a cheilor.
  • Java Cryptography Architecture (JCA): utilizarea claselor Cipher, MessageDigest și Mac.
  • Java Cryptography Extension (JCE): înțelegerea fișierelor de policy și a jurisdicției de putere nelimitată.

7. Serviciile de securitate Java

  • SSL/TLS în Java: utilizarea SSLSocketFactory și HttpsURLConnection.
  • Trust Manageri: personalizarea verificării încrederii pentru medii 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 LoginModule-urilor.
  • Securitatea servlet-urilor: restricții de securitate gestionate de container și metode de autentificare (FORM, BASIC, DIGEST).

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

  • Deserializare nesigură: riscurile ObjectInputStream și ocolirea verificărilor de securitate.
  • Injecție de comenzi: atenuarea vulnerabilităților de execuție la nivel de sistem de operare.
  • Path Traversal: sanitizarea intrărilor din sistemul de fișiere pentru a preveni traversarea directoarelor.
  • Abuzul de reflection: riscuri 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, a cheilor slabe sau a IV-urilor 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 framework-ul Java.
  • Lecturi recomandate: listă de cărți, documentație și checklist-uri de codare securizată.

Cerințe

Niciuna.

Numărul de participanți


Pret per participant

Mărturii (4)

Cursuri viitoare

Categorii înrudite