Schița de curs
A01:2025 – Broken Access Control
Controlul accesului impune politici astfel încât utilizatorii să nu poată acționa în afara permisiunilor lor prevăzute. Eșecurile duc, de obicei, la divulgarea neautorizată a informațiilor, modificarea sau distrugerea tuturor datelor, sau la executarea unei funcții de business în afara limitelor utilizatorului.
Aspecte Practice
-
Exemple practice de acces necontrolat
-
Controllarea accesului securizat și bunele practici
A02:2025 – Security Misconfiguration
Configurarea incorectă din punct de vedere al securității apare atunci când un sistem, o aplicație sau un serviciu cloud este configurat greșit, creând vulnerabilități.
Aspecte Practice
-
Exemple din lumea reală de configurări incorecte
-
Măsuri pentru prevenirea configurărilor incorecte, inclusiv gestiunea configurației și uneltele de automatizare
A03:2025 – Software Supply Chain Failures
Eșecurile în lanțul de aprovizionare software se referă la defecțiuni sau compromiteri în procesul de construire, distribuire sau actualizare a software-ului. Ele sunt adesea cauzate de vulnerabilități sau modificări malicioase în codul terțelor părți, unelte sau alte dependențe pe care se bazează sistemul.
A04:2025 – Cryptographic Failures
În general, toate datele în tranzit trebuie criptate la nivelul transportului (stratul OSI 4). Provocările anterioare, precum performanța CPU și managementul cheilor/certificatelor private, sunt acum gestionate de CPU-uri care au instrucțiuni pentru accelerarea criptării (de exemplu, suport AES) și de simplificarea managementului cheilor și certificatelor prin servicii precum LetsEncrypt.org, iar majoritatea vendorilor cloud oferă servicii de management a certificatelor integrate mai strâns pentru platformele lor specifice.
În afara securizării stratului de transport, este important să determinez ce date necesită criptare la repaus și ce date necesită criptare suplimentară în tranzit (la nivelul aplicației, stratul OSI 7).
De exemplu, parolele, numerele de card de credit, înregistrările medicale, informațiile personale și secretele de afaceri necesită protecție suplimentară, mai ales dacă datele respective sunt subiectul legilor de confidențialitate, de exemplu Reglementarea Generală privind Protecția Datelor (GDPR) a UE, sau a reglementărilor precum Standardul de Securitate a Datelor PCI (PCI DSS).
Aspecte Practice
-
Analiză detaliată a eșecurilor criptografice, precum algoritmi de criptare slabi sau management incorect al cheilor
-
Importanța mecanismelor criptografice puternice, a protocolurilor securizate (SSL/TLS) și exemple de criptografie modernă în securitatea web
A05:2025 – Injection
O vulnerabilitate de injecție este o defecțiune de sistem care permite unui atacator să insereze cod malicios sau comenzi (precum SQL sau cod shell) în câmpurile de intrare ale unui program, înșelându-l pe sistem să execute acel cod sau comenzi ca și cum ar fi parte din sistem. Acest lucru poate duce la consecințe cu adevărat grave.
Aspecte Practice
-
Dezbatere detaliată a injecției SQL, NoSQL, OS și LDAP
-
Technici de mitigare folosind declarații pregătite, interogări parametrizate și escapare a intrărilor
A06:2025 – Insecure Design
Designul nesecurizat este o categorie largă care reprezintă diverse slăbiciuni, exprimate ca „lipsa sau ineficacitatea designului de control”.
Designul nesecurizat nu este sursa tuturor celorlalte categorii de risc din Top Ten. Observă că există o diferență între design nesecurizat și implementare nesecurizată. Diferențiem între defecțiuni de design și defecte de implementare pentru un motiv: ele au cauze radiale diferite, au loc în momente diferite în procesul de dezvoltare și necesită remedieri diferite.
Un design securizat poate totuși avea defecte de implementare care duc la vulnerabilități care pot fi exploatate. Un design nesecurizat nu poate fi corectat printr-o implementare perfectă, deoarece controalele de securitate necesare nu au fost niciodată create pentru a se apăra împotriva anumitor atacuri.
Unul dintre factorii care contribuie la designul nesecurizat este lipsa profilării riscurilor de business intrinsece în software-ul sau sistemul dezvoltat, și prin urmare eșecul de a determina ce nivel de design de securitate este necesar.
Aspecte Practice
-
Vom explora defecțiuni de design care pot duce la vulnerabilități, precum validarea incorectă a intrărilor
-
Vom studia strategii pentru arhitectura securizată și principiile de design securizat
A07:2025 – Authentication Failures
Când un atacator reușește să înșele un sistem să recunoască un utilizator invalid sau incorect ca fiind legitim, această vulnerabilitate este prezentă.
Aspecte Practice
-
Probleme comune de autentificare
-
Strategii de autentificare securizate, precum autentificarea multi-factor și tratarea corectă a sesiunilor
A08:2025 – Software or Data Integrity Failures
Eșecurile de integritate a software-ului sau datelor se referă la codul și infrastructura care nu protejează împotriva codului sau datelor invalide sau nefiabile care sunt tratate ca fiind încredibile și valide.
Un exemplu pentru acest lucru este atunci când o aplicație se bazează pe plugin-uri, biblioteci sau module din surse nefiabile, depozite și rețele de livrare a conținutului (CDN).
Un pipeline CI/CD nesecurizat care nu consumă și nu oferă verificări de integritate software poate introduce potențialul accesului neautorizat, a codului nesecurizat sau malicios, sau a compromiterii sistemului.
Un alt exemplu pentru acest lucru este un CI/CD care preia cod sau artefacte din locații nefiabile și/sau nu le verifică înainte de utilizare (prin verificarea semnăturii sau a unui mecanism similar).
Aspecte Practice
-
Accent pe probleme precum actualizările software nefiabile și alterarea datelor
-
Mecanisme sigure de actualizare și verificări de integritate a datelor
A09:2025 – Security Logging and Alerting Failures
Fără logare și monitorizare, atacurile și violările nu pot fi detectate, iar fără alertare este foarte dificil să răspunzi rapid și eficient în timpul unui incident de securitate.
Logarea insuficientă, monitorizarea continuă, detectarea și alertarea pentru inițierea răspunsurilor active apar în orice moment.
Aspecte Practice
-
Importanța logării informațiilor relevante pentru securitate și monitorizarea activităților suspecte
-
Unele și practici pentru logarea corectă și monitorizarea în timp real pentru detectarea timpurie a violărilor
A10:2025 – Mishandling of Exceptional Conditions
Tratarea incorectă a condițiilor excepționale în software apare atunci când programele eșuează să prevină, să detecteze și să răspundă la situații neobișnuite și neprevăzute, ceea ce duce la crăpări, comportament neașteptat și, uneori, vulnerabilități.
Acest lucru poate implica una sau mai multe dintre următoarele 3 defecțiuni:
-
Aplicația nu previne apariția unei situații neobișnuite
-
Nu identifică situația pe măsură ce se întâmplă
-
Răspunde slab sau deloc la situația de mai târziu
SAST – Static Application Security Testing
-
Ce este analiza statică și când să o rulezi în SDLC (shift left)
-
Tipuri de vulnerabilități detectabile prin SAST, cod vulnerabil vs cod securizat
-
Prezentarea uneltelor SAST (de exemplu, Semgrep, SonarQube, Checkmarx, în funcție de stack-ul clientului)
-
Exercițiu practic: rulează un scan SAST pe un depozit cu vulnerabilități introduse deliberat, interpretează rezultatele, triajează falsurile pozitive vs vulnerabilitățile reale
DAST – Dynamic Application Security Testing
-
Diferența dintre SAST și DAST, testare black box pe aplicația rulantă
-
Fluxul scanării DAST, crawling, fuzzing, analiza răspunsurilor
-
Prezentarea uneltelor DAST (de exemplu, OWASP ZAP, Burp Suite)
-
Exercițiu practic: rulează un scan DAST pe o aplicație de test vulnerabilă (de exemplu, OWASP Juice Shop), identifică și validează descoperirile
SCA – Software Composition Analysis
-
Riscurile dependențelor terță parte și ale bibliotecilor, vulnerabilități moștenite
-
SBOM, Software Bill of Materials, ce este și de ce contează
-
Prezentarea uneltelor SCA (de exemplu, Dependency Check, Snyk, GitHub Dependabot)
-
Exercițiu practic: rulează un scan SCA pe un proiect real, identifică dependențele vulnerabile și construiește un plan de remediere (actualizare, patch, mitigare)
Cerințe
Persoanele participante ar trebui să aibă:
- Cunoștințe de bază despre conceptele de dezvoltare software
- Înțelegere de bază a aplicațiilor web și a tehnologiilor web comune
- Familiaritate cu Ciclul de Viață al Dezvoltării Software (SDLC)
- Înțelegere de bază a codului sursă și a dependențelor software
- Cunoștințe de bază despre conceptele de securitate sunt un plus, dar nu sunt obligatorii
Public Țintă
- Dezvoltatori Software
- Ingineri Software
- Ingineri QA și Testare Software
- Ingineri DevOps și DevSecOps
- Profesioniști în Siguranța Aplicațiilor
- Ingineri de Securitate
- Arhitecți Software
- Lead-ți Tehnici
- Profesioniști implicați în dezvoltarea software-ului securizat și în testarea siguranței aplicațiilor
Mărturii (3)
Schimbul de experiență, cunoștințele și valoarea profesorului sunt prețioase.
Carey Fan - Logitech
Curs - C/C++ Secure Coding
Tradus de catre o masina
înțelegeți mai multe despre produs și unele diferențe cheie între RHDS și OpenLDAP open source.
Jackie Xie - Westpac Banking Corporation
Curs - 389 Directory Server for Administrators
Tradus de catre o masina
cunoștințele instrctorului erau foarte mari - el știa despre ce vorbește și avea răspunsurile la întrebările noastre
Adam - Fireup.PRO
Curs - Advanced Java Security
Tradus de catre o masina