Security for Developers

Cursul Security for Developers este conceput pentru dezvoltatori și profesioniști IT care doresc să înțeleagă principalele riscuri de securitate asociate aplicațiilor moderne și să învețe cum pot integra măsuri de protecție încă din etapa de dezvoltare. Cu o durată de două zile și un nivel intermediar, trainingul urmărește să transforme securitatea aplicațiilor dintr-o etapă realizată exclusiv la finalul procesului de dezvoltare într-o responsabilitate integrată în întregul ciclu de viață software. Tematica include securitatea aplicațiilor web și mobile, vulnerabilitățile OWASP, măsuri tehnice de protecție, HTTP Security Headers, JSON Web Tokens și principii de secure coding.

Unul dintre cele mai importante principii ale cursului este ideea de security by design. Securitatea unei aplicații nu ar trebui verificată doar înainte de lansare, când eventualele probleme sunt deja costisitoare de remediat. Practicile de dezvoltare securizată trebuie introduse încă din etapa de proiectare și continuate pe parcursul implementării, testării, deployment-ului și mentenanței. AWS recomandă explicit instruirea echipelor de dezvoltare în practici de secure development și utilizarea threat modeling-ului pentru identificarea timpurie a riscurilor.

Un punct de plecare esențial îl reprezintă înțelegerea modului în care aplicațiile pot fi atacate. Cursul abordează OWASP Top 10, una dintre cele mai cunoscute referințe pentru riscurile de securitate ale aplicațiilor web. Participanții pot înțelege clase de vulnerabilități precum controlul deficitar al accesului, injection, identificarea și autentificarea incorectă, configurările nesigure sau problemele legate de componente software vulnerabile. Scopul nu este doar recunoașterea denumirilor, ci înțelegerea mecanismelor prin care o vulnerabilitate poate apărea și a măsurilor care pot preveni exploatarea acesteia.

Un dezvoltator trebuie să poată analiza securitatea aplicației din perspectiva întregului flux de date. De exemplu, informațiile primite de la utilizator trebuie validate înainte de a fi utilizate, iar datele generate de aplicație trebuie protejate atunci când sunt transmise, procesate sau stocate. Această perspectivă este fundamentală pentru prevenirea unor vulnerabilități precum injection, cross-site scripting sau manipularea necorespunzătoare a parametrilor. Secure coding presupune, astfel, mai mult decât scrierea unui cod care funcționează: înseamnă anticiparea modurilor în care acel cod ar putea fi utilizat în mod abuziv.

O componentă importantă este reprezentată de web penetration testing. Participanții sunt introduși în modul în care aplicațiile pot fi evaluate din perspectiva unui atacator și în tipurile de probleme care pot fi descoperite prin testare. Penetrarea nu trebuie privită exclusiv ca o activitate realizată de o echipă externă de securitate, ci și ca o sursă de feedback pentru dezvoltatori. Înțelegerea modului în care un atacator identifică și exploatează o problemă îi permite dezvoltatorului să construiască mecanisme de protecție mai eficiente.

Cursul abordează și măsurile tehnice și best practices care pot fi utilizate pentru reducerea suprafeței de atac. Acestea pot include validarea și sanitizarea datelor, controlul accesului, gestionarea corectă a sesiunilor, protejarea endpoint-urilor și configurarea sigură a componentelor aplicației. O abordare matură presupune combinarea mai multor controale, deoarece nicio singură măsură de securitate nu poate elimina toate riscurile unei aplicații.

Un capitol dedicat este cel al HTTP Security Headers, care reprezintă un mecanism important pentru consolidarea securității aplicațiilor web. Header-ele HTTP pot transmite browserului instrucțiuni privind modul în care trebuie tratate anumite tipuri de conținut și conexiuni. Configurarea corectă poate contribui la reducerea riscului unor atacuri și la impunerea unor politici de securitate la nivelul clientului. Pentru dezvoltatori, aceste mecanisme sunt importante deoarece securitatea aplicației nu se oprește la codul executat pe server, ci include și interacțiunea dintre browser, frontend și backend.

Un alt subiect relevant este JSON Web Token (JWT) și utilizarea token-urilor în mecanismele moderne de autentificare și autorizare. Participanții pot înțelege rolul token-urilor în aplicațiile distribuite și API-uri, precum și riscurile asociate gestionării incorecte a acestora. JWT poate fi util pentru transmiterea informațiilor de autentificare între componente, însă implementarea trebuie să țină cont de protejarea token-urilor, expirarea lor, validarea semnăturilor și delimitarea clară dintre autentificare și autorizare.

Tematica se extinde și către aplicațiile mobile, pentru care modelul de securitate diferă în anumite privințe de cel al aplicațiilor web. Sunt abordate vulnerabilitățile asociate aplicațiilor mobile și principiile care pot fi aplicate pentru reducerea riscurilor. Aplicațiile mobile trebuie să trateze cu atenție datele stocate local, comunicațiile cu serverele, autentificarea, gestionarea token-urilor și expunerea API-urilor. În plus, trebuie presupus că mediul clientului nu poate fi controlat în aceeași măsură ca infrastructura server-side.

O direcție importantă a dezvoltării moderne este integrarea securității direct în Software Development Lifecycle. În loc ca echipa de dezvoltare să finalizeze aplicația și să o trimită ulterior către securitate, verificările pot fi introduse gradual în procesul de dezvoltare și în pipeline-urile CI/CD. AWS prezintă Security for Developers ca exemplu de integrare a testării automate de tip SAST și DAST în procesele de release, împreună cu analiza componentelor software și verificările de securitate.

SAST, sau Static Application Security Testing, analizează codul sau artefactele aplicației fără a fi necesară executarea acesteia și poate identifica probleme înainte ca acestea să ajungă în producție. DAST, sau Dynamic Application Security Testing, analizează aplicația în execuție și poate identifica vulnerabilități care devin vizibile doar atunci când componentele interacționează într-un mediu funcțional. Împreună, aceste tehnici pot oferi feedback în mai multe etape ale procesului de dezvoltare.

Un alt concept important este Software Composition Analysis (SCA). Aplicațiile moderne sunt rareori construite exclusiv din cod scris de echipa internă. Framework-urile, bibliotecile și pachetele open-source pot introduce vulnerabilități sau riscuri de licențiere. Analiza dependențelor permite identificarea componentelor utilizate și evaluarea riscurilor asociate acestora. Într-un proces matur, aceste verificări pot fi automatizate și integrate în pipeline-ul de dezvoltare, astfel încât problemele să fie detectate înainte de deployment. AWS recomandă inclusiv utilizarea Software Bill of Materials pentru înțelegerea componentelor și a relațiilor dintre acestea și pentru gestionarea riscurilor din software supply chain.

Security for Developers este relevant și prin faptul că poziționează securitatea ca o responsabilitate comună a echipelor care construiesc aplicațiile. În mediile cloud, modelul shared responsibility înseamnă că furnizorul protejează infrastructura cloud, în timp ce clientul rămâne responsabil pentru securitatea resurselor și aplicațiilor pe care le implementează. Pentru dezvoltatori, acest lucru înseamnă că alegerea serviciilor, configurarea aplicațiilor, gestionarea identităților, protejarea datelor și implementarea controalelor de securitate fac parte din responsabilitatea tehnică a echipei.

Cunoștințele de securitate dezvoltate în acest curs pot fi extinse ulterior către autentificare, autorizare, criptare și protejarea datelor în aplicații cloud. În ecosistemul AWS, aceste subiecte includ tehnologii precum IAM, Amazon Cognito, AWS Key Management Service și servicii de gestionare a secretelor. Pentru dezvoltatori, obiectivul este să poată implementa autentificare și autorizare corectă, să protejeze datele în tranzit și la rest și să evite introducerea secretelor direct în cod. Aceste competențe sunt, de altfel, parte din domeniul Security al certificării AWS Certified Developer – Associate.

Pentru participare sunt recomandate cunoștințe de secure coding, ceea ce indică faptul că trainingul nu este destinat persoanelor care pornesc complet de la zero în dezvoltarea software. Nivelul intermediar permite concentrarea asupra problemelor specifice aplicațiilor și asupra modului în care principiile de securitate pot fi aplicate în cod și în procesele de dezvoltare. Cursul este potrivit pentru dezvoltatori, software engineers și alte roluri tehnice care participă direct la construirea și întreținerea aplicațiilor.

Cui i se adresează?

Developers și software architects preponderent.
Dar la fel de folositor și pentru  system administrators, technical managers and CISO.

Ce vei învăța?

  • Dezvoltarea gândirii „out-of-box”.
  • Vezi securitatea dintr-o perspectivă ofensivă
  • Aflii cele mai bune practici de securitate și (cele mai multe și mai puține) atacuri comune
  • Înveți să-ți aperi aplicațiile și infrastructura
  • Aflii concepte de codare sigură

Cerințe preliminare:

Cunoștințe despre concepte de secure coding

Agenda cursului:

Materialele de curs sunt în limba Engleză. Predarea se face în limba Română.

Prezentare generală a Web Penetration Testing
OWASP Cele mai bune zece vulnerabilități web
Măsuri tehnice și bune practici
OWASP Top 10 vulnerabilități mobile
Antete de securitate HTTP
JSON Web Tokens
Secure coding –  Standardul de verificare a securității aplicațiilor OWASP (ASVS)
Vulnerabilitatea aplicațiilor web mai puțin cunoscute
Modelarea amenințărilor (opțional)

Recomandăm să continui cu:

Certified Ethical Hacker

Security for Developers

Security for Developers

Oferte personalizate pentru grupuri de minim 2 persoane

Detalii curs

Durată:

2
zile

Preț:

660 EUR

Livrare:

Predare în clasă, Clasă hibridă, Clasă virtuală

Nivel:

2. Intermediate

FAQ training Security for Developers

Ce este Security for Developers și de ce este important pentru dezvoltarea software?

Security for Developers se referă la integrarea principiilor și practicilor de securitate în procesul de dezvoltare software. Aceste competențe sunt importante deoarece aplicațiile moderne trebuie proiectate și dezvoltate ținând cont de protecția datelor, controlul accesului, gestionarea vulnerabilităților și reducerea riscurilor de securitate.

De ce sunt importante competențele de application security pentru dezvoltatori?

Competențele de application security îi ajută pe dezvoltatori să recunoască și să reducă riscurile care pot apărea în aplicații și în codul sursă. Înțelegerea principiilor de secure coding poate contribui la dezvoltarea unor aplicații mai rezistente la vulnerabilități și la integrarea securității în întregul software development lifecycle.

În ce domenii poate fi utilizată securitatea aplicațiilor?

Application security poate fi utilizată în dezvoltarea aplicațiilor web, mobile, enterprise și cloud, precum și în proiecte bazate pe API-uri, microservicii și aplicații distribuite. Principiile de securitate sunt relevante pentru orice organizație care dezvoltă sau gestionează aplicații și date cu caracter sensibil.

Cum mă poate ajuta cunoașterea Security for Developers în dezvoltarea profesională?

Cunoașterea principiilor de secure software development îți poate extinde competențele tehnice și te poate ajuta să privești dezvoltarea aplicațiilor și din perspectiva securității. Aceste cunoștințe sunt utile pentru identificarea riscurilor, înțelegerea vulnerabilităților, îmbunătățirea calității codului și colaborarea mai eficientă cu echipele de cybersecurity și DevSecOps.

Ce oportunități de carieră există pentru profesioniștii cu competențe de application security?

Competențele de application security pot fi utile pentru roluri precum Software Developer, Secure Software Developer, Application Security Engineer, Security Engineer, DevSecOps Engineer, Software Engineer, Security Consultant sau Application Security Specialist. În funcție de experiență, aceste competențe pot susține atât o carieră în dezvoltare software, cât și una în cybersecurity.

Cât de importante sunt competențele de software security și secure coding pe piața muncii din IT?

Competențele de software security și secure coding sunt tot mai relevante deoarece aplicațiile reprezintă o componentă esențială a infrastructurilor digitale. Organizațiile urmăresc să reducă vulnerabilitățile și riscurile de securitate încă din etapa de dezvoltare, ceea ce crește importanța abordărilor precum Secure SDLC și DevSecOps.

Care sunt avantajele integrării securității în procesul de dezvoltare software?

Integrarea securității în procesul de dezvoltare poate ajuta la identificarea timpurie a vulnerabilităților și la reducerea riscurilor asociate aplicațiilor. O abordare de tip secure by design poate contribui la dezvoltarea unor aplicații mai sigure, la reducerea costurilor asociate remedierii problemelor și la îmbunătățirea protecției datelor și serviciilor.

De ce sunt importante secure coding, vulnerability management și security testing?

Secure coding contribuie la reducerea introducerii vulnerabilităților în cod, vulnerability management ajută la identificarea și prioritizarea riscurilor, iar security testing oferă posibilitatea evaluării comportamentului aplicațiilor din perspectiva securității. Împreună, aceste practici susțin o abordare mai eficientă a application security pe parcursul ciclului de dezvoltare software.

Care este legătura dintre Security for Developers, DevSecOps, application security și software development?

Security for Developers conectează practicile de software development cu principiile de cybersecurity și DevSecOps. Prin integrarea security testing, vulnerability management, secure coding și security automation în software development lifecycle, organizațiile pot include securitatea în procesele de dezvoltare și livrare a aplicațiilor, fără a o trata ca pe o etapă separată de dezvoltare.

De ce îmi este recomandat acest curs?

Acest curs îți este recomandat deoarece ai căutat informații sau ai manifestat interes pentru subiecte precum Security for Developers, application security, software security, cybersecurity, secure software development, secure coding, secure coding practices, software security training, application security training, DevSecOps, DevSecOps training, software development security, Secure SDLC, security in software development, security testing, application security testing, vulnerability management, vulnerability assessment, security vulnerabilities, software vulnerabilities, web application security, API security, cloud application security, mobile application security, enterprise application security, application security architecture, security by design, secure by design, security engineering, security controls, access control, authentication, authorization, identity and access management, IAM, data security, data protection, encryption, cryptography, network security, application security risks, cyber risk, threat modeling, security assessment, penetration testing concepts, code security, source code security, dependency security, software supply chain security, security automation, CI/CD security, DevOps security, cloud security, cloud-native security, microservices security, secure APIs, application development, software engineering, software quality, security compliance, information security, cybersecurity strategy, Security Engineer, Application Security Engineer, DevSecOps Engineer, Software Developer, Software Engineer, Secure Software Developer, Security Consultant, Application Security Specialist, Cybersecurity Engineer, DevSecOps career, application security career, software security career și cybersecurity career.