Intrati in legatura

Schița de curs

1. Securitatea IT și programarea sigură

  • Principii fundamentale ale securității: Confidențialitate, Integritate și Disponibilitate (CIA) în contextul aplicațiilor Java.
  • Ciclul de viață al dezvoltării software sigure (SSDLC): Integrarea securității de la cerințe la implementare.
  • Paradigme de programare sigură: Apărare în profunzime, privilegiul minim și valorile 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 injectării, autentificării defectuoase și expunerii 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-ului.
  • Securitatea API-urilor: Protejarea punctelor finale 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: Integritate și confidențialitate la nivelul sarcinii utile.
  • Standardele de autentificare: Implementarea OAuth 2.0, OpenID Connect și JWT (JSON Web Tokens).

4. Securitatea XML

  • Vulnerabilități ale analizării XML: Prevenirea atacurilor XML External Entity (XXE).
  • Validarea schemelor XML: Cele mai bune practici pentru aplicarea strictă a schemelor.
  • Semnele digitale XML: Implementarea semnăturilor pentru a asigura non-repudierea.
  • 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 Managerul de Securitate (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 de criptografie Java (JCA): Utilizarea claselor Cipher, MessageDigest și Mac.
  • Extensia de criptografie Java (JCE): Înțelegerea fișierelor de politică și a jurisdicției de putere 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().
  • Analiza certificatelor: Citirea și analizarea 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 Servlet: Construcț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.
  • Injectare de comenzi: Atenuarea vulnerabilităților de execuție la nivel de sistem de operare.
  • Traversare de cale: Sanitizarea intrărilor din sistemul 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 scanări automate.
  • 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 programarea sigură.

Cerințe

Niciunul.

 21 Ore

Numărul de participanți


Pret per participant

Mărturii (4)

Cursuri viitoare

Categorii înrudite