Šta je to DevSecOps?
Saznajte kako da integrišite bezbednosne prakse u svaku fazu životnog ciklusa razvoja softvera u okruženju sa više oblaka.
DevSecOps definisan
DevSecOps, koji predstavlja razvoj, bezbednost i operacije, je radni okvir koji integriše bezbednost u sve faze životnog ciklusa razvoja softvera. Organizacije usvajaju ovaj pristup da bi smanjile rizik od zadatog koda sa bezbednosnim ranjivostima. Kroz saradnju, automatizaciju i jasne procese, timovi dele odgovornost za bezbednost, umesto da je ostavljaju do kraja kada rešavanje problema može biti mnogo teže i skuplje. DevSecOps je kritična komponenta bezbednosne strategije okruženja sa više oblaka.
DevSecOps naspram DevOps
U tradicionalnom razvoju softvera, projekti su podeljeni u različite faze za planiranje, dizajn, razvoj, integraciju i testiranje, koje se dešavaju uzastopno tokom nekoliko meseci ili čak godina. Iako je ovaj pristup veoma metodičan, mnoge organizacije su otkrile da je previše spor, što otežava ispunjavanje očekivanja klijenata za kontinuirano poboljšanje proizvoda. Pored toga, bezbednost se obično uključuje na samom kraju, što preduzeće dovodi u opasnost od proboja.
Da bi ostale konkurentne, mnoge kompanije su usvojile DevOps model koji daje prioritet isporuci manjih paketa visokokvalitetnog koda, a ne projektima bogatim funkcijama koji traju duže. U ovom okviru, timovi za razvoj softvera i operativni timovi sarađuju kako bi uključili testiranje i integraciju tokom celog procesa. Automatizacija, standardizovani procesi i saradnja pomažu timovima da se kreću brzo bez žrtvovanja kvaliteta.
DevSecOps je unapređenje usluge DevOps koje ugrađuje bezbednost u sve aspekte procesa. Cilj je rešavanje bezbednosnih problema od samog početka projekta. U ovom okviru, ne samo da ceo tim preuzima odgovornost za osiguranje kvaliteta i integraciju koda, već i za bezbednost. U praksi, to znači da timovi razgovaraju o bezbednosnim implikacijama tokom planiranja i počinju da testiraju bezbednosna pitanja u razvojnim okruženjima, umesto da čekaju do kraja. Drugi naziv za ovaj pristup je "Shift left security".
Zašto je DevSecOps važan?
Postoji mnogo metoda koje napadači koriste da bi dobili pristup podacima i imovini organizacije, ali uobičajena taktika je iskorišćavanje ranjivosti softvera. Ove vrste kršenja su skupe, troše vreme i, u zavisnosti od težine, štete reputaciji preduzeća. DevSecOps radni okvir smanjuje rizik od primene softvera sa pogrešnim konfiguracijama i drugim ranjivostima koje loši akteri mogu da iskoriste.
Ključne komponente usluge DevSecOps
Uspešan DevSecOps proces obuhvata sledeće komponente:
-
Neprekidna integracija
Uz kontinuiranu integraciju, projektanti predaju svoj kod u centralno spremište više puta dnevno. Zatim se kôd automatski integriše i testira. Ovaj pristup omogućava timovima da rano uoče probleme sa integracijom i greške u procesu umesto da čekaju do kraja kada može da postoji nekoliko problema koji treba da se reše.
-
Neprekidna isporuka
Kontinuirana isporuka se zasniva na kontinuiranoj integraciji kako bi se automatizovao proces premeštanja koda iz okruženja za pravljenje u okruženje za provođenje. Jednom u fazi, pored jediničnog testiranja, softver se automatski testira kako bi se osiguralo da korisnički interfejs radi, da je kod uspešno integrisan, da su API-ji pouzdani i da softver može da podnese očekivane količine saobraćaja. Cilj ovog pristupa je dosledno isporučivanje koda spremnog za proizvodnju koji pruža vrednost klijentima.
-
Neprekidna bezbednost
Ugradnja bezbednosti u ceo životni ciklus razvoja softvera je ključna komponenta usluge DevSecOps. Ovo uključuje modeliranje pretnji u ranoj fazi procesa i automatizovano testiranje bezbednosti tokom celog životnog ciklusa, počevši od sopstvenih okruženja projektanata. Ranim i čestim temeljnim testiranjem softvera za bezbednosne probleme, organizacije mogu efikasno da isporuče softver sa minimalnim problemima.
-
Komunikacija i saradnja
DevSecOps veoma zavisi od pojedinaca i timova koji sarađuju. Kontinuirana integracija zahteva od ljudi da sarađuju kako bi rešili konflikte u kodu, a timovi treba da efikasno komuniciraju kako bi se ujedinili oko istih ciljeva.
Kako da primenite DevSecOps
Dodavanje bezbednosti u DevOps proces zahteva pažljivo planiranje. Počnite polako sa procesima koji unose najmanje trenja za tim i nude najveću sigurnost. Evo nekoliko načina za dodavanje bezbednosti tipičnom DevOps sprintu.
-
Planiranje i razvoj
Uvođenje bezbednosti rano u sprintove razvoja ne samo da pomaže u smanjenju ranjivosti kasnije, već i štedi vreme jer je lakše rešavati probleme pre nego što se kôd izgradi i integriše. Tokom planiranja i razvoja, koristite modeliranje pretnji da biste identifikovali i ublažili potencijalne pretnje za aplikaciju. Ovo će vam pomoći da odmah na početku izgradite bezbednost u aplikaciji. Da biste otkrili bezbednosne probleme pre nego što se kôd preda u zajedničko skladište, primenite automatizovane provere, kao što su bezbednosni dodaci integrisanog razvojnog okruženja, koji projektantima daju trenutnu povratnu informaciju ako postoji potencijalni bezbednosni rizik u kodu koji su napisali. Tokom pregleda koda, neka neko ko ima bezbednosnu ekspertizu da preporuke za poboljšanje.
-
Izvršavanje koda
Jedan od ključeva uspešnog DevSecOps procesa je neprekidna integracija. Projektanti obično predaju svoj kôd u centralno spremište nekoliko puta dnevno kako bi osigurali da se problemi integracije rano otkriju. Važno’je da dodate automatizovane bezbednosne provere u ovu fazu. Ovo može uključivati skeniranje biblioteka i zavisnosti nezavisnih proizvođača, testiranje jedinica i statičko testiranje bezbednosti aplikacija. Takođe je važno primeniti kontrole pristupa zasnovane na ulogama da biste zaštitili vašu kontinuiranu integraciju i infrastrukturu za kontinuiranu isporuku od napadača koji žele da pokrenu zlonamerni kôd ili ukradu akreditive.
-
Sastavljanje i testiranje
Pokretanje automatizovanih bezbednosnih skripti u testnom okruženju pomaže u otkrivanju potencijalnih problema koji ranije nisu otkriveni. Neki od bezbednosnih testova koje možete da pokrenete tokom ove faze uključuju dinamičko testiranje bezbednosti aplikacija, skeniranje infrastrukture, skeniranje kontejnera, proveru konfiguracije oblaka i testiranje prihvatljivosti bezbednosti.
-
Proizvodnja
Kada se aplikacija primeni u produkciji, neke organizacije se bave testiranjem proboja kako bi pokušale da pronađu slabosti u živom okruženju. U testiranju proboja, ljudi usvajaju misli napadača i traže načine da probiju aplikaciju.
-
Operacija
Čak ni najbolji DevSecOps proces neće uhvatiti sve, tako da je od ključne važnosti da kontinuirano nadgledate aplikacije zbog ranjivosti i pretnji. Podaci analitike mogu vam pomoći da procenite da li se vaša bezbednosna pozicija poboljšava i da istaknete oblasti za optimizaciju.
-
DevSecOps alatke i tehnologije
Kada birate bezbednosne alatke, važno je da izaberete one koji dobro funkcionišu sa vašom trenutnom DevOps tehnologijom. To će olakšati uključivanje bezbednosti u ceo proces. Evo nekoliko tipova alatki koje će vam možda biti potrebne:
-
Infrastruktura kao skeniranje koda
Da bi poboljšali svoju efikasnost, DevSecOps timovi obično koriste alatke otvorenog koda kao što je Terraform da upravljaju i obezbeđuju infrastrukturu kao što su mreže, virtuelne mašine i balanseri opterećenja preko koda umesto da to rade ručno. Terraform pomaže da se infrastruktura konzistentno konfiguriše i ažurira na stotinama ili hiljadama servera. Da bi se smanjio rizik da se pogrešne konfiguracije primene u proizvodnom okruženju, infrastruktura kao što su alatke za skeniranje koda automatski proverava infrastrukturu na nivou koda da li je neusaglašena sa bezbednosnim smernicama i standardima.
-
Testiranje bezbednosti statičkih aplikacija
Pre nego što se njihov kôd sastavi, DevSecOps projektanti počinju da testiraju svoj prilagođeni kôd na bezbednosne ranjivosti. To im pomaže da reše probleme bez uticaja na verziju. Statičke alatke za testiranje bezbednosti aplikacija olakšavaju ovaj proces automatskim proverama i povratnim informacijama u realnom vremenu. Mnoge alatke identifikuju tačno koji kôd je rizični i nude predložene popravke.
-
Analiza sastavljanja softvera
Jedan od načina na koji timovi efikasnije grade aplikacije i funkcije je korišćenje dodataka i okvira nezavisnih proizvođača. Ove unapred izgrađene alatke štede vreme, ali takođe mogu da uvedu rizike, kao što su problemi sa licenciranjem, loše napisani kôd ili bezbednosne ranjivosti. Alatke za analizu sastava softvera identifikuju komponente otvorenog koda u aplikacijama i procenjuju ih u odnosu na vlasničke ili besplatne baze podataka kako bi otkrili kršenje licenci i probleme sa bezbednošću i kvalitetom.
-
Testiranje bezbednosti interaktivnih aplikacija
Tokom testiranja obezbeđenja kvaliteta ili kada se koristi aplikacija, interaktivne bezbednosne alatke aplikacije skeniraju kôd kako bi pronašli ranjivosti i obezbedili izveštaje koji identifikuju gde je u kodu problem.
-
Testiranje bezbednosti dinamičkih aplikacija
Dinamičko testiranje bezbednosti aplikacije oponaša metode koje bi loš akter mogao da koristi za napad na aplikaciju. Ovo testiranje se dešava dok je aplikacija pokrenuta i zasnovano je na unapred definisanim slučajevima korišćenja.
-
Skeniranje kontejnera
Kontejneri se široko koriste u usluzi DevSecOps jer pomažu projektantima da lako primene samostalne jedinice koda. Unutar kontejnera je slika kontejnera koja uključuje kôd koji pokreće procese za kontejner. Međutim, ove slike se često prave koristeći postojeće slike ili se izvlače iz javnih spremišta. Alatke za skeniranje kontejnera, skenirajte kontejnere i uporedite ih sa javnim ili vlasničkim bazama podataka ranjivosti da biste otkrili potencijalne bezbednosne probleme.
DevSecOps najbolje prakse
DevSecOps se bavi promenama kulture i on je proces i alatke. Evo nekoliko najboljih praksi koje će vam pomoći da usvajanje ovog okvira bude što lakši.
-
Pomeranje kulture
Shvatite da ljudima može biti teško da promene način na koji rade i da može doći do sukoba. Da biste im pomogli da se prilagode, jasno saopštite ciljeve i očekivanja organizacije, pružite mnogo mogućnosti za otvoren dijalog i predvidite da ćete morati da budete fleksibilni dok timovi ne pronađu alatke, proces i ritam koji im najbolje odgovaraju.
-
Definišite zahteve i metriku
Uspostavite minimalnu bezbednosnu osnovnu liniju. Za uputstva pogledajte industrijske i regulatorne zahteve Open Worldwide Application Security Project® (OWASP) Top Ten kritičnih rizika za veb aplikacije i SANS Top 25 so grešaka. Kada definišete zahteve, odredite koje metrike želite da pratite da biste lakše pratili napredak.
-
Počnite sa malim
Alatke za automatizaciju bezbednosti nude mnogo opcija za proveru problema u kodu, ali njihovo uključivanje, posebno u ranoj fazi usvajanja usluge DevSecOps, može da optereti vaš tim. Budite razboriti koje alatke primenjujete i koliko problema skenirate.
-
Izvršite modeliranje pretnji
Razvijte proces modeliranja pretnji, koji može biti jednostavan ili detaljan i tehnički koliko vam je potrebno. Koristite ovaj pristup da dokumentujete realističan bezbednosni prikaz vaše aplikacije koji uključuje:
- Kako napadači mogu da zloupotrebe dizajn aplikacije.
- Kako da otklonite ranjivosti.
- Prioritet različitih problema.
-
Primena automatizacije
Automatizacija je ključna za omogućavanje kvaliteta i brzine DevSecOps procesa. Ugrađivanjem automatizovanih bezbednosnih skeniranja tokom svih faza neprekidne integracije i neprekidnog životnog ciklusa isporuke, moći ćete da poboljšate bezbednost svojih aplikacija bez značajnog usporavanja procesa.
-
Upravljanje zavisnim elementima
Većina projektanata koristi pakete i biblioteke nezavisnih proizvođača za efikasnu izgradnju aplikacija. Problem je u tome što neka od ovih rešenja imaju bezbednosne nedostatke, a projektanti ne mare uvek da ih ažuriraju. Da biste smanjili rizik, uverite se da su komponente koje koristite proverene u pogledu bezbednosnih rizika i razvijte standardizovani proces za njihovo ažuriranje.
-
Procena i poboljšanje
Redovno procenjujte kako proces funkcioniše i prilagođavajte se po potrebi kako biste bili sigurni da vaša organizacija ispunjava svoje ciljeve. Obdukcija bez krivice nakon završetka sprinta može pomoći u otkrivanju mogućnosti za poboljšanje. Podaci o analitici i informacije o pretnjama mogu da vam pomognu da utvrdite da li postoje bezbednosne potrebe koje trenutno ne ispunjavaju vaš trenutni pristup.
-
DevSecOps za aplikacije koje su izvorne u oblaku
Osnovne aplikacije u oblaku su dizajnirane za oblak i obično su neutralne prema snabdevačima, što im omogućava da se prenose iz jednog oblaka u drugi. Dizajnirani da budu visoko skalabilni i otporni, razvojni timovi ih obično prave koristeći mikroservise, kontejnere i automatizaciju, što ih čini idealnim za DevSecOps proces. Izgradnja kontinuirane bezbednosti, kontinuirana integracija i kontinuirana isporuka u proces razvoja za aplikacije koje su izvorne u oblaku omogućavaju skalabilnost bez ugrožavanja bezbednosti. Koristite automatizovana bezbednosna rešenja, kao što su Microsoft zaštitnik za DevOps, da biste obezbedili kôd i ceo DevOps kanal. Kada primenite svoju aplikaciju u oblak, nastavite da je nadgledate zbog rizika. Platforme za zaštitu radnih opterećenja u oblaku (CWPP)Platforme za zaštitu radnog opterećenja u oblaku (CWPP) pomažu u zaštiti ovih aplikacija i osnovnih podataka otkrivanjem i ublažavanjem pretnji po radna opterećenja u okruženjima sa više oblaka. Upravljanje stanjem bezbednosti u oblaku (CSPM) rešenja otkrivaju i rešavaju pogrešne konfiguracije i ranjivosti u vašem okruženju.
Saznajte više o Microsoft bezbednosti
Microsoft Defender za oblak
Zaštitite okruženje sa više oblaka i hibridna okruženja od razvoja do vremena izvršavanja pomoću sveobuhvatne platforme za zaštitu aplikacija koja je izvorna u oblaku.
Microsoft Defender for Cloud Apps
Modernizujte način na koji obezbeđujete svoje aplikacije, štitite svoje podatke i podižete bezbednosni položaj svoje aplikacije pomoću ovog softvera kao rešenja za uslugu.
Microsoft zaštitnik za upravljanje stanjem bezbednosti u oblaku
Usredsredite se na svoje najkritičnije rizike u okruženju sa više oblaka pomoću kontekstualnog upravljanja bezbednosnim položajem u oblaku.
Microsoft Defender za DevOps
Nabavite objedinjeno upravljanje bezbednošću za DevOps u okruženjima sa više oblaka i okruženjima sa više kanala.
Najčešća pitanja
-
DevSecOps je proces koji integriše bezbednost u ceo životni ciklus razvoja softvera. Organizacije usvajaju ovaj pristup da bi smanjile rizik od zadatog koda sa bezbednosnim ranjivostima. Kroz saradnju, automatizaciju i jasne procese, timovi dele odgovornost za bezbednost, umesto da je ostavljaju do kraja kada rešavanje problema može biti mnogo teže i skuplje.
-
DevSecOps je skraćenica za razvoj, bezbednost i operacije. Odnosi se na proces integracije bezbednosti u sve faze razvoja softvera.
-
„Shift left“ je koncept u usluzi DevSecOps koji se odnosi na uključivanje bezbednosnih praksi počevši od samog početka procesa razvoja.
-
DevSecOps okvir uključuje kontinuiranu integraciju, kontinuiranu isporuku i kontinuiranu sigurnost. To je metod kojim bezbednosni, operativni i bezbednosni timovi rade zajedno i dele odgovornost za brzu isporuku kvalitetnog softvera, uz istovremeno smanjenje bezbednosnih ranjivosti.
-
Ne postoji jedan DevSecOps proces, ali uobičajeni način na koji ljudi vode ove projekte je podela posla na sprintove od kojih svaki uključuje sledeće komponente: planiranje i razvoj, pravljenje i testiranje i proizvodnja. Tokom sprinta, timovi koriste automatizaciju kako bi se kontinuirano bavili pitanjima osiguranja kvaliteta, kontinuirano se integrisali i kontinuirano testirali bezbednosne rizike.
Pratite Microsoft bezbednost