ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 150
Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 149
Abonament PDF

De la DevOps la DevSecOps

Tudor Voicu Rogojan
Senior DevOps Engineer @ Cognizant Romania



PROGRAMARE

Adoptarea practicilor DevOps care, în esență, reprezintă colaborarea strânsă dintre echipele de dezvoltatori și operațiuni a devenit un standard în industrie, mai ales în ultimii 10 ani, datorită așteptării consumatorilor de produse și servicii digitale ca firmele să poată satisface nevoile lor într-un timp scurt fără sacrificarea calității acestora, dar și datorită nevoii companiilor de a se putea adapta rapid atât așteptărilor consumatorilor, cât și schimbărilor din piață, păstrându-și profitabilitatea.

Conceput inițial ca o punte de legătură între echipele de dezvoltare (DEV) și de operațiuni IT (Ops), metodologia DevOps a revoluționat industria dezvoltatoare de software, îmbunătățind viteza și calitatea printr-o cultură a colaborării și a unei suite de tool-uri și procese pentru automatizare, dar și CI/CD.

Scurt istoric

Conceptul DevOps își are originile în 2009 și a devenit public în cadrul unei prezentări numite "10+ Deploys a Day: Dev and Ops Cooperation at Flickr" a lui John Allspaw (Flickr/Yahoo!) and Paul Hammond (Flickr) la un eveniment organizat de O'Reilly, dar practicile și cultura DevOps au evoluat din abordarea practicilor de producție de tip lean (concept administrativ care consideră că cheltuielile de resurse pentru orice alt scop decât crearea de valoare pentru clientul final este o risipă și, astfel, o țintă pentru eliminare) ale companiei Toyota.

Aceste abordări fac parte din sistemul de management integrat și de producție al companiei Toyota, numit și Toyota Production System (TPS) bazat pe concepte cheie similare cu DevOps precum automatizarea cu intervenție umană, îmbunătățirea continuă și producția just in time.

De ce DevSecOps?

Asemănător industriei Automotive, aceste concepte au permis scalarea rapidă a proceselor de dezvoltare și implementare a codului (a deployment-ului), păstrând calitatea. Practicile vechi de securitate nu au reușit să ajute prea mult la securizarea în mod eficient a aplicațiilor moderne din era DevOps din considerente precum:

  1. Ritmul crescut al schimbărilor: Introducerea practicilor DevOps în paralel cu apariția infrastructurilor în cloud-uri publice (Azure, AWS, Google Cloud), private (OpenStack) sau hibride a însemnat o creștere a ritmului de schimbare pentru mediile de dezvoltare, testare și productie a aplicatiilor. Tehnologiile și procesele vechi de securitate au fost concepute pentru infrastructuri rigide on-premise sau centre de date tradiționale, ele fiind tributare metodologiei Waterfall care a precedat metodologia Agile, populară în prezent.

  2. Dezvoltarea aplicațiilor native în cloud: Securitatea on-premise opera în cadrul unui parametru bine definit, pe când suprafața de atac a arhitecturilor în cloud este mult mai mare, având un perimetru mult mai slab definit.

  3. Containerizarea și Infrastructure as Code (IaC): Proliferarea containerizării și folosirea conceptului de Infrastructure as Code, ceea ce reprezintă managementul infrastructurii, atât la nivel extern (în cloud), dar și intern (OS) mediului de dezvoltare, a lăsat ușa deschisă pentru greșeli de configurare care nu sunt tratate de către procesele și tool-urile tradiționale de securitate.

Combinația celor 3 factori de mai sus a însemnat că responsabilitatea primară pentru securitatea codului la fiecare release cade acum mai mult asupra dezvoltatorilor, decât asupra persoanelor responsabile pentru operațiuni (administratori de servere, de rețea, de sisteme.)

Pe măsură ce termenele de implementare s-au accelerat și fiabilitatea software-ului s-a îmbunătățit, a devenit clar că securitatea trebuie să fie mai mult decât un un simplu checkpoint la finalul procesului de release, adică securitatea trebuie "să se deplaseze la stânga" (de aici și conceptul de shift to the left) pentru deveni o parte intrinsecă a procesului de dezvoltare (SDLC) încă de la început.

Sursa: Atlassian

Practic, în locul unei inspecții finale a codului chiar înainte de release, securitatea trebuie să devină parte integrală a procesului de dezvoltare (SDLC), ceea ce înseamnă ca DevSecOps este evoluția naturală a metodologiei DevOps și implementarea acesteia reprezintă valorificarea componentei de securitate în ceea ce privește crearea și menținerea codului. Putem spune că DevSecOps s-a născut din DevOps.

Această abordare proactivă pledează pentru integrarea timpurie a practicilor și a instrumentelor de securitate, obiectivul fiind clar: identificarea și abordarea vulnerabilităților mult mai repede, făcând dezvoltarea mai sigură și mai eficientă.

Evitarea confuziilor

Deoarece ambele modele de practici conțin multe similarități și se bazează atât pe colaborare, cât și pe automatizare, există riscul apariției unor confuzii.

Dacă ar fi să gândim în termeni simpli, am putea compară DevOps vs DevSecOps în felul următor:

Toate echipele ce au implementat practici DevSecOps folosesc practici DevOps, dar nu toate echipele DevOps folosesc practici DevSecOps.

DevSecOps se concentrează pe conceptul de "shifting security to left" amintit mai sus, ceea ce reprezintă dezvoltarea activă a unor aplicații securizate, în locul practicii tradiționale de a securiza ulterior aplicația sau componenta realizată.

Importanța DevSecOps crește, mai ales în contextul dezvoltării soluțiilor bazate pe ML care, în mod inevitabil, vor duce la construirea de aplicații mult mai complexe, atât din punctul de vedere al codului, mai ales în ceea ce privește cantitatea (deoarece în aceste vremuri vorbim de o democratizare a posibilității de a scrie cod de către nespecialiști), cât și din punctul de vedere al operațiunilor.

Este foarte puțin probabil ca îngrijorările multor oameni care lucrează în domeniul dezvoltării software în ceea ce privește cariera lor să nu se materializeze, fiind foarte probabil să asistăm la un efect invers, adică să asistăm la o cerere mai mare de forță de muncă, dar și la o specializare mult mai mare a profesiilor datorită complexității rezultate, având în vedere faptul că "automatizarea muncii" este un fenomen constant în industria noastră.

Înțelegerea practicilor DevOps și DevSecOps, este deosebit de importantă pentru echipele care vor să își îmbunătățească workflow-urile, să își îmbunătățească produsele din punctul de vedere al calității și să se asigure că securitatea acestor aplicații nu este lăsată în urmă sau privită ca o simplă extensie.

Sursa: NovelVista

Asemănări și deosebiri între DevOps și DevSecOps

Având în vedere că ambele metodologii pun accent pe colaborare, automatizare, îmbunătățire continuă și responsabilitate comună, DevSecOps punând accent specific pe integrarea securității în procesul de dezvoltare, putem sintetiza asemănările și deosebirile în Tabelul următor.

Aspect DevOps DevSecOps
Obiectiv principal Dezvoltare și livrare software mai Livrare software sigură și rezistentă,
rapidă și mai eficientă. cu accent pe securitatea continuă.
Colaborare Cultura DevOps pune accent pe DevSecOps extinde colaborarea, prin
colaborarea dintre echipele de includerea echipelor de securitate,
dezvoltare și operațiuni în vederea promovând o cultură a responsabilității
eficientizării procesului de dezvoltare. comune.
Automatizare Cultura DevOps susține automatizarea DevSecOps include în automatizare și
proceselor de dezvoltare, testare și procese de securitate precum scanarea
implementare, urmărind ca scop final vulnerabilităților și testarea
eficiența și fiabilitatea. securității.
Integrare continua / Livrare continua Cultura DevOps încurajează folosirea DevSecOps integrează testele de
(CI/CD) pipeline-urilor CI/CD pentru securitate și verificările de
release-uri rapide și fiabile. conformitate în pipeline pentru
asigurarea implementării securizate a
feature-urilor.
Schimbări culturale Cultura DevOps reprezintă o schimbare DevSecOps reprezintă o schimbare
culturală către proprietate comună, culturală care pune accent pe
transparență și îmbunătățire continuă. conștientizarea nevoii de securitate și
colaborarea între echipe.
Eficienta Accelerarea release-urilor și sporirea DevSecOps pune accent pe eficiență, dar
eficienței reduce timpul de lansare pe adaugă un nivel de integrare a
piață. securității pentru a asigura
conformitatea și reziliența.
Responsabilitate comuna Cultura DevOps stimulează DevSecOps extinde responsabilitatea
responsabilitatea comună pentru calitate comună a echipei, incluzând securitatea,
și performanță între echipele de făcând-o responsabilitatea tuturor în
dezvoltare și operațiuni. cadrul SDLC.
Focalizare Cultura DevOps promovează colaborarea DevSecOps promovează integrarea
între echipele de dezvoltare și practicilor de securitate în procesul
operațiuni pentru a eficientiza livrarea DevOps pentru a asigura release-uri
software-ului. sigure și reziliente.
Implicarea echipei Echipe de dezvoltare și operațiuni DevSecOps promovează colaborarea între
integrate într-un colectiv comun. echipele de dezvoltare, operațiuni și
securitate.
Ciclu de viată Dezvoltare și livrare de software. Securitatea este integrată în fiecare
pas al ciclului de dezvoltare (SDLC).
Tool-uri și tehnologii Tool-uri CI/CD, configuration Tool-uri pentru testarea securității,
management, tool-uri pentru vulnerabilităților, sisteme de tip
monitorizare, infrastructure as code security information and event
(IaC). management (SIEM).

Tranziția pas cu pas de la DevOps la DevSecOps

  1. Înțelegerea diferențelor:

    • Primul pas este înțelegerea diferențelor dintre DevOps și DevSecOps care au fost explicate mai sus în acest articol.
  2. Adoptarea unui mindset de tip Security First.

    • Trecerea de la DevOps la DevSecOps necesită o schimbare culturală sau, mai bine zis, o schimbare a modului de gândire. Securitatea nu mai poate fi lăsată la finalul ciclului de release, ea trebuie să devină o responsabilitate comună a tuturor membrilor echipei. Fiecare developer, DevOps engineer, QA engineer trebuie să învețe să gândească proactiv și să prevadă potențialele riscuri de securitate de la bun început.

    • Încurajarea conceptului de "blameless postmortems" pentru analiza vulnerabilităților și a erorilor în mod deschis ajută la abordarea colaborativă a rezolvării problemelor.
  3. Familiarizarea cu tool-urile și framework-urile de securitate moderne. O parte cheie a acestei tranziții implică utilizarea instrumentelor potrivite. Putem începe prin a ne familiariza cu instrumente ce se integrează perfect în pipeline-urile CI/CD existente, precum:

    • Static Application Security Testing (SAST): SonarQube, Checkmarx

    • Dynamic Application Security Testing (DAST): OWASP ZAP, Burp Suite

    • Container Security: Aqua Security, Falco

    • Secrets Management: HashiCorp Vault, AWS Secrets Manager

    • Framework-uri precum OWASP Top 10 și NIST Cybersecurity Framework pentru îndrumări pentru abordarea principalelor riscuri de securitate.
  4. Încorporarea securității în pipeline-urile de CI-CD. Ar trebui automatizate porți de securitate în pipeline-urile CI/CD fără a cauza încetinirea release-urilor, prin implementarea de practici precum:

    • Automated Security Testing: Integrarea de teste care detectează vulnerabilitățile în timp ce codul trece prin procesele de build.

    • Infrastructure as Code (IaC) Security: Folosirea tool-urilor IaC precum Terraform împreună cu tool-urile de validare a securității IaC pentru a ne asigura că infrastructura respectă bunele practici în materie de securitate.

    • Shift Left: Efectuarea evaluărilor de securitate mai devreme în ciclul de dezvoltare, pentru a identifica problemele înainte că acestea să ajungă în productie.
  5. Investiții în training de securitate pentru toate echipele.

    • Investirea în programe de formare continuă în ceea ce privește secure coding practices, modelarea amenințărilor (threat modeling) și procese de răspuns la incidente.

    • Încurajarea învățării prin cooperare (cross-functional learning) prin încorporarea experților în securitate în echipele DevOps pentru a oferi îndrumare și mentorat.
  6. Concentrarea pe conformitate (Compliance) și guvernanță (Governance).

    • Folosirea de tool-uri automate pentru compliance monitoring pentru a ne asigura că procesele respectă standarde precum GDPR, ISO 27001 sau PCI DSS.

    • Un model de guvernanță DevSecOps poate asigura că standardele în materie de securitate sunt respectate de către toate echipele.
  7. Măsurarea succesului prin KPIs și procese de îmbunătățire continuă.

    • Pentru a urmări eficacitatea tranziției, putem stabili indicatori cheie de performanță (KPI) care se aliniază cu obiectivele de securitate, precum:

      1. Vulnerabilitățile MTTD (Mean Time to Detect).

      2. Incidentele de securitate MTTR (Mean Time to Resolve).

      3. Numărul de defecte de securitate identificate și pre-producție remediată.

Concluzie

Tranziția de la DevOps la DevSecOps reprezintă o investiție strategică, atât în materie de securitate, cât și de agilitate. Ea necesită o schimbare a mentalității, a modului de formare continuă a echipelor, a integrării tool-urilor și un angajament pentru îmbunătățire continuă. Având securitatea aplicației inclusă în fiecare pas al procesului de dezvoltare software (SDLC), nu doar că reușim să reducem riscurile, dar câștigăm și un avantaj competitiv, construind produse mai reziliente care inspiră încredere atât clienților cât și partenerilor noștri.

Surse imagini:

  1. https://www.atlassian.com/devops/devops-tools/devsecops-tools

  2. https://wac-cdn.atlassian.com/dam/jcr:5f26d67b-bed6-4be1-912b-4032de4d06b0/devsecops-diagram.png?cdnVersion=2418

  3. https://www.novelvista.com/blogs/devops/devops-bs-devsecops

  4. https://www.novelvista.com/resources/images/blogs/details/devops-bs-devsecops.webp

NUMĂRUL 149 - Development with AI

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects