Kaj je DevSecOps?
Naučite se integrirati varnostne prakse v vse faze življenjskega cikla razvoja programske opreme v okolju z več oblaki.
DevSecOps je določen
DevSecOps, ki pomeni razvoj, varnost in operacije, je ogrodje, ki vključuje varnost v vse faze življenjskega cikla razvoja programske opreme. Organizacije sprejmejo ta pristop, da zmanjšajo tveganje objave kode z varnostnimi ranljivostmi. Prek sodelovanja, avtomatizacije in jasnih procesov si skupine delijo odgovornost za varnost, namesto da bi jo prelagale na konec,, ko je težave veliko težje in dražje odpraviti. DevSecOps je kritična komponenta varnostne strategije v več oblakih.
DevSecOps v primerjavi z DevOps
Pri tradicionalnem razvoju programske opreme so projekti razdeljeni v posamezne faze načrtovanja, oblikovanja, razvoja, integracije in preskušanja, ki si sledijo več mesecev ali celo let. Čeprav je ta pristop zelo metodičen, so številne organizacije ugotovile, da je prepočasen, zaradi česar je težko izpolniti pričakovanja strank glede stalnih izboljšav izdelkov. Poleg tega je varnost običajno dodana šele na koncu, zaradi česar so podjetja izpostavljena tveganju kršitve.
Številna podjetja so za ohranjanje konkurenčnosti sprejela model DevOps, ki daje prednost dostavi manjših paketov visokokakovostne kode namesto funkcionalno bogatih projektov, ki trajajo dlje. V tem ogrodju skupine za razvoj in delovanje programske opreme sodelujejo pri vključevanju preskušanja in integracije v celoten proces. Avtomatizacija, standardizirani procesi in sodelovanje pomagajo skupinam, da delujejo hitro, ne da bi pri tem žrtvovale kakovost.
DevSecOps je izboljšava devOps, ki v vse vidike postopka vključuje varnost. Cilj je obravnavati varnostne težave že od začetka projekta. V tem ogrodju celotna skupina ni odgovorna le za zagotavljanje kakovosti in integracijo kode, temveč tudi za varnost. V praksi to pomeni, da skupine že med načrtovanjem razpravljajo o varnostnih posledicah in začnejo preskušati varnostne težave v razvojnih okoljih, namesto da čakajo do konca. Drugo ime za ta pristop je premik v levo na področju varnosti.
Zakaj je DevSecOps pomemben?
Napadalci uporabljajo številne metode za dostop do podatkov in sredstev organizacije, vendar je pogosto, da izkoriščajo ranljivosti programske opreme. Te vrste kršitev so drage, zamudne in glede na resnost škodujejo ugledu podjetja. Ogrodje DevSecOps zmanjša tveganje za uvedbo programske opreme z napačnimi konfiguracijami in drugimi ranljivostmi, ki jih lahko izkoristijo zlonamerni akterji.
Ključne komponente DevSecOps
Uspešen proces DevSecOps vključuje te komponente:
-
Neprekinjena integracija
Z neprekinjeno integracijo razvijalci večkrat na dan oddajo svojo kodo v osrednjo shrambo. Nato je koda samodejno integrirana in preskušena. Ta pristop skupinam omogoča, da težave z integracijo in napake odkrijejo že na začetku procesa, namesto da bi čakali do konca, ko je morda treba rešiti več težav.
-
Neprekinjena dostava
Neprekinjena dostava temelji na neprekinjeni integraciji in avtomatizira postopek prenosa kode iz okolja graditve v okolje za pripravljanje. Ko je programska oprema v pripravljalni fazi, se poleg preskušanja enot samodejno preskusi, da se zagotovi delovanje uporabniškega vmesnika, uspešna integracija kode, zanesljivost API-jev in da lahko programska oprema obvladuje pričakovano količino prometa. Cilj tega pristopa je dosledno zagotavljati kodo, ki je pripravljena za proizvodnjo in zagotavlja vrednost za stranke.
-
Neprekinjena varnost
Vgradnja varnosti v celoten življenjski cikel razvoja programske opreme je ključna sestavina DevSecOps. To vključuje modeliranje groženj na začetku postopka in avtomatizirano varnostno preskušanje v celotnem življenjskem ciklu, začenši z lastnimi okolji razvijalcev. Organizacije lahko z zgodnjim in pogostim preskušanjem programske opreme za varnostne težave zgodaj in pogosto učinkovito zagotavljajo programsko opremo z minimalnimi težavami.
-
Komunikacija in sodelovanje
DevSecOps je zelo odvisen od tesnega sodelovanja posameznikov in skupin. Neprekinjena integracija zahteva, da ljudje sodelujejo pri delu s spori v kodi, skupine pa morajo učinkovito komunicirati, da se poenotijo glede istih ciljev.
Kako uvesti DevSecOps
Če želite dodati varnost v postopek DevOps, morate skrbno načrtovati. Počasi začnite s postopki, ki skupini povzročajo najmanj trenj in zagotavljajo največjo varnostno korist. Tukaj je nekaj načinov za dodajanje varnosti v običajni sprint DevOps.
-
Načrtovanje in razvoj
Z zgodnjim uvajanjem varnosti v sprinte za razvoj ne le zmanjšate število ranljivosti, temveč tudi prihranite čas,’saj je težave lažje odpraviti, preden je koda izdelana in integrirana. Med načrtovanjem in razvojem uporabite modeliranje groženj za prepoznavanje in preprečevanje morebitnih groženj za aplikacijo. Tako boste v aplikacijo že od samega začetka vgradili varnost. Če želite varnostne težave odkriti, preden je koda posredovana v shrambo v skupni rabi, uvedite samodejna preverjanja, kot so varnostni vtičniki integriranega razvojnega okolja, ki razvijalcem zagotavljajo takojšnje povratne informacije,če je v kodi, ki so jo napisali, morebitno varnostno tveganje. Med pregledom kode povabite osebo s strokovnim znanjem s področja varnosti, da pripravi priporočila za izboljšave.
-
Predaja kode
Eden od ključnih elementov uspešnega procesa DevSecOps je neprekinjena integracija. Razvijalci običajno večkrat na dan predajo svojo kodo v osrednjo shrambo, da bi zagotovili zgodnje odkrivanje težav pri integraciji. V to fazo je treba dodati samodejne varnostne preglede. To lahko vključuje pregledovanje knjižnic in odvisnosti neodvisnih izdelovalcev, preskušanje enot in statično varnostno preskušanje aplikacij. Pomembno je tudi, da uvedete nadzor dostopa, ki temelji na vlogah, in tako zaščitite infrastrukturo za neprekinjeno integracijo in neprekinjeno dostavo pred napadalci, ki želijo zagnati zlonamerno kodo ali ukrasti poverilnice.
-
Gradnja in preskušanje
Z izvajanjem samodejnih varnostnih skriptov v preskusnem okolju lahko odkrijete morebitne težave, ki prej niso bile zaznane. Nekateri varnostni preskusi, ki jih lahko izvedete v tej fazi, vključujejo dinamično preskušanje varnosti aplikacije, pregledovanje infrastrukture, pregledovanje vsebnikov, preverjanje konfiguracije v oblaku in preskušanje sprejema varnosti.
-
Proizvodnja
Ko je aplikacija uvedena v produkcijsko okolje, nekatere organizacije izvajajo preskušanje vdora, da bi odkrile pomanjkljivosti v trenutnem okolju. Pri preskušanju vdora se ljudje vživijo v miselnost napadalca in iščejo načine za vdor v aplikacijo.
-
Operacija
Tudi najboljši proces DevSecOps ne bo odkril vsega, zato je ključnega pomena, da nenehno spremljate aplikacije glede ranljivosti in groženj. Z analitični podatki lahko ocenite, ali se vaš varnostni položaj izboljšuje, in izpostavite področja, ki jih je treba optimizirati.
-
Orodja in tehnologije DevSecOps
Pri izbiri varnostnih orodij je pomembno, da izberete tista, ki dobro delujejo s trenutno tehnologijo DevOps. Tako boste lažje vključili varnost v celoten proces. Spodaj je navedenih nekaj vrst orodij, ki jih boste morda potrebovali:
-
Infrastruktura kot pregledovanje kode
Skupine DevSecOps za izboljšanje učinkovitosti običajno uporabljajo odprtokodna orodja, kot je Terraform, za upravljanje in omogočanje infrastrukture, kot so omrežja, navidezni računalniki in programi za uravnavanje obremenitve, prek kode, namesto da bi to izvajale ročno. Z orodjem Terraform lahko zagotovite, da je infrastruktura dosledno vzpostavljena in posodobljena v več sto ali več tisoč strežnikih. Če želite zmanjšati tveganje, da so napačne konfiguracije uvedene v produkcijsko okolje, orodja za pregledovanje infrastrukture kot kode samodejno preverjajo infrastrukturo na ravni kode glede neskladnosti z varnostnimi pravilniki in standardi.
-
Statično preskušanje varnosti aplikacij
Preden je koda sestavljena, razvijalci DevSecOps začnejo testirati svojo prilagojeno kodo za varnostne ranljivosti. Tako lahko odpravijo težave, ne da bi to vplivalo na graditev. Orodja za statično preskušanje varnosti aplikacij olajšajo ta postopek s samodejnimi pregledi in sprotnimi povratnimi informacijami. Številna orodja natančno prepoznajo, katera koda je tvegana, iin predlagajo popravke.
-
Analiza sestave programske opreme
Eden od načinov za učinkovitejšo izdelavo aplikacij in funkcij je uporaba vtičnikov in ogrodij drugih proizvajalcev. Ta vnaprej izdelana orodja prihranijo čas, vendar lahko prinašajo tudi tveganja, kot so težave z licenciranjem, slabo napisana koda ali varnostne ranljivosti. Orodja za analizo sestave programske opreme prepoznajo odprtokodne komponente v aplikacijah in jih ocenijo glede na lastniške ali brezplačne zbirke podatkov, da odkrijejo kršitve licenc ter težave z varnostjo in kakovostjo.
-
Interaktivno preskušanje varnosti aplikacij
Med preskušanjem zagotavljanja kakovosti ali med uporabo aplikacije interaktivna orodja za varnost aplikacij pregledajo kodo in iščejo ranljivosti ter pripravljajo poročila, v katerih je navedeno, kje v kodi je težava.
-
Dinamično preskušanje varnosti aplikacij
Dinamično preskušanje varnosti aplikacij posnema metode, ki bi jih lahko zlonamerni akterji uporabili za napad na aplikacijo. To preskušanje se izvede, ko se aplikacija izvaja in temelji na vnaprej določenih primerih uporabe.
-
Pregledovanje vsebnika
Vsebniki se pogosto uporabljajo v okolju DevSecOps, saj razvijalcem pomagajo preprosto uvajati samostojne enote kode. Znotraj vsebnika je slika vsebnika, ki vključuje kodo, ki izvaja procese za vsebnik. Vendar pa so te slike pogosto ustvarjene na podlagi obstoječih slik ali pa so vzete iz javnih shramb. Orodja za pregledovanje vsebnikov pregledujejo vsebnike in jih primerjajo z javnimi ali lastniškimi podatkovnimi zbirkami ranljivosti, da odkrijejo morebitne varnostne težave.
Najboljše prakse DevSecOps
Pri DevSecOps gre tako za spremembo kulture kot za proces in orodja. Tukaj je nekaj najboljših praks, ki vam bodo pomagale, da bo sprejetje tega ogrodja potekalo čim bolj gladko.
-
Sprememba kulture
Zavedajte se, da ljudje težko spremenijo svoj način dela in da lahko pride do sporov. Da bi jim pomagali pri prilagajanju, jim jasno sporočite cilje in pričakovanja organizacije,zagotovite veliko priložnosti za odprt dialog in predvidite, da boste morali biti prilagodljivi, dokler skupine ne najdejo orodij, procesov in načina dela, ki jim najbolj ustrezajo.
-
Določite zahteve in metrike
Vzpostavite osnovno raven minimalne varnosti. Navodila so na voljo v panožnih in regulativnih zahtevah ali v The Open Worldwide Application Security Project® (OWASP) Top Ten critical risks to web applications and the SANS Top 25 software errors. Ko ste opredelili zahteve, določite, katere metrike želite spremljati, da boste lažje spremljali napredek.
-
Začnite z majhnimi koraki
Orodja za avtomatizacijo varnosti ponujajo številne možnosti za preverjanje kode glede težav, vendar lahko z vklopom vseh teh orodij, zlasti na začetku uvajanja DevSecOps, preobremeni vašo ekipo. Preudarno izbirajte orodja, ki jih uporabljate, in število težav, ki jih iščete.
-
Izvedite modeliranje groženj
Razvijte postopek modeliranja groženj, ki je lahko tako preprost ali tako podroben in tehničen, kot ga potrebujete. Ta pristop uporabite za dokumentiranje realističnega varnostnega pogleda na aplikacijo, ki vključuje:
- Kako lahko napadalci zlorabijo zasnovo aplikacije.
- Kako odpraviti ranljivosti.
- Prednostna obravnava različnih vprašanj.
-
Izvajanje avtomatizacije
Avtomatizacija je ključna za zagotavljanje kakovosti in hitrosti v procesu DevSecOps. Če vdelate avtomatizirane varnostne preglede v vse faze življenjskega cikla neprekinjene integracije in neprekinjene dostave, boste lahko izboljšali varnost svojih aplikacij, ne da bi bistveno upočasnili postopek.
-
Upravljajte odvisnosti
Večina razvijalcev za učinkovito izdelavo aplikacij uporablja pakete in knjižnice tretjih oseb. Težava je v tem, da imajo nekatere od teh rešitev varnostne pomanjkljivosti, razvijalci pa jih ne posodabljajo vedno vestno. Če želite zmanjšati tveganje, poskrbite, da bodo uporabljene komponente preverjene glede varnostnih tveganj, in razvijajte standardiziran postopek za njihovo posodabljanje.
-
Ocenite in izboljšajte
Redno ocenjujte delovanje procesa in ga po potrebi prilagodite, da zagotovite izpolnjevanje ciljev organizacije. Po končanem sprintu lahko s pregledom brez očitkov odkrijete priložnosti za izboljšave. Analitični podatki in podatki o grožnjah vam lahko tudi pomagajo ugotoviti, ali obstajajo varnostne potrebe, ki jih vaš trenutni pristop ne izpolnjuje.
-
DevSecOps za izvorne aplikacije v oblaku
Izvorne aplikacije v oblakuIzvorne aplikacije v oblaku so zasnovane za oblak in so običajno nevtralne do prodajalca, kar jim omogoča prenos iz enega oblaka v drugega. Skupine za razvoj jih oblikujejo tako, da so izjemno prilagodljive in odporne, običajno pa uporabljajo mikrostoritve, vsebnike in avtomatizacijo, zaradi tega pa so najprimernejše za proces DevSecOps. Vgradnja neprekinjene varnosti, neprekinjene integracije in neprekinjene dostave v razvojni proces aplikacij v oblaku omogoča prilagodljivost brez ogrožanja varnosti. Uporabite avtomatizirane varnostne rešitve, kot je Microsoft Defender za DevOps, ki vam bodo pomagale zaščititi kodo in celoten cevovod DevOps. Ko aplikacijo uvedete v oblak, jo še naprej spremljajte glede tveganj. Platforme za zaščito dela v oblaku (CWPP) pomagajo zaščititi te aplikacije in osnovne podatke z zaznavanjem in zmanjševanjem groženj delovnim obremenitvam v okoljih z več oblaki. Rešitve upravljanja stanja varnosti v oblaku (CSPM) odkrivajo in odpravljajo napačne konfiguracije in ranljivosti v vašem okolju.
Več informacij o Microsoftovi varnosti
Microsoft Defender for Cloud
Zaščitite okolja z več oblaki in hibridna okolja od razvoja do zagona s celovito platformo za zaščito izvornih aplikacij v oblaku.
Microsoft Defender for Cloud Apps
Posodobite način varovanja aplikacij, zaščitite svoje podatke in izboljšajte varnostni položaj aplikacij s to programsko rešitvijo kot storitvijo.
Microsoft Defender za upravljanje stanja varnosti v oblaku
Osredotočite se na najbolj kritična tveganja v okoljih z več oblaki s kontekstualnim upravljanjem stanja varnosti v oblaku.
Microsoft Defender za DevOps
Pridobite poenoteno upravljanje varnosti DevOps v okoljih z več oblaki in več cevovodi.
Pogosta vprašanja
-
DevSecOps je proces, ki vključuje varnost v celoten življenjski cikel razvoja programske opreme. Organizacije sprejmejo ta pristop, da zmanjšajo tveganje objave kode z varnostnimi ranljivostmi. S sodelovanjem, avtomatizacijo in jasnimi procesi si skupine delijo odgovornost za varnost in je ne prelagajo na konec, ko je reševanje težav lahko veliko težje in dražje.
-
DevSecOps pomeni razvoj, varnost in operacije. Gre za proces vključevanja varnosti v vse faze razvoja programske opreme.
-
Premik v levo je koncept v DevSecOps, ki se nanaša na vključevanje varnostnih praks od samega začetka razvojnega procesa.
-
Ogrodje DevSecOps vključuje neprekinjeno integracijo, neprekinjeno dostavo in neprekinjeno varnost. To je način, s katerim skupine za varnost, operacije in zaščito sodelujejo in si delijo odgovornost za hitro zagotavljanje kakovostne programske opreme ob hkratnem zmanjševanju varnostnih ranljivosti.
-
Enotnega postopka DevSecOps ni, vendar ljudje te projekte običajno vodijo tako, da delo razdelijo na sprinte, od katerih vsak vključuje naslednje komponente: načrtovanje in razvoj, izgradnjo in preskušanje ter produkcijo. Med celotnim sprintom skupine uporabljajo avtomatizacijo za neprekinjeno reševanje vprašanj zagotavljanja kakovosti, neprekinjeno integracijo in neprekinjeno preskušanje varnostnih tveganj.
Spremljajte Microsoftovo varnost