Intrati in legatura

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, privilegiu minim ș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: analiza amănunțită 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 politici, permisiuni și Security Manager (legacy vs. modern).
  • Gestionarea KeyStore: 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 vs. java.security.SecureRandom.
  • Gestionarea cheilor: strategii de generare, stocare și rotație a cheilor.
  • Arhitectura criptografică Java (JCA): utilizarea claselor Cipher, MessageDigest și Mac.
  • Extensia criptografică Java (JCE): înțelegerea fișierelor de politici și a jurisdicției de putere nelimitată.

7. Serviciile de securitate Java

  • SSL/TLS în Java: utilizarea SSLSocketFactory și HttpsURLConnection.
  • Trust Managers: 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: constrângeri de securitate gestionate de container și metode de autentificare (FORM, BASIC, DIGEST).

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

  • 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.
  • Traversarea căilor: sanitizarea intrărilor din sistemul de fișiere pentru a preveni directory traversal.
  • Abuzul reflecției: 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, a cheilor slabe sau a vectorilor de inițializare statici.

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 ale framework-ului Java.
  • Lecturi recomandate: listă de cărți, documentație și checklist-uri de codare securizată.

Cerințe

Niciuna.

 21 Ore

Numărul de participanți


Pret per participant

Mărturii (4)

Cursuri viitoare

Categorii înrudite