This is the Trace Id: 2cbe894e4e6d236c39ac042090ac411a
Põhisisu juurde
Microsofti turbeteenus

Mis on DevSecOps?

Siit saate teada, kuidas integreerida turbetavad mitmikpilvkeskkonnas tarkvaraarenduse elutsükli igasse etappi.

DevSecOpsi määratlus

DevSecOps, mis tuleb ingliskeelsetest sõnadest „development, security, operations“ (arendus, turvalisus, käitus), on raamistik, mis integreerib turvalisuse kõikidesse tarkvaraarenduse elutsükli etappidesse. Organisatsioonid võtavad selle lähenemise kasutusele selleks, et vähendada turbenõrkustega koodi avaldamise ohtu. Koostöö, automatiseerimise ja selgete protsesside kaudu jagavad meeskonnad turvalisuse eest vastutust, selle asemel, et jätta see kõige lõppu, kui probleemid võivad osutuda juba palju keerulisemaks ja kulukamaks. DevSecOps on mitmikpilvkeskkonna turbestrateegia kriitilise tähtsusega komponent.

DevSecOps ja DevOps: sarnasused ja erinevused

Traditsioonilises tarkvaraarenduses on projektid jaotatud üksteisest selgelt eraldatud plaanimise, projekteerimise, arendamise, integreerimise ja testimise etappideks, mis toimuvad järjest ja võtavad kuid või isegi aastaid. Ehkki see lähenemine on väga metoodiline, on paljud organisatsioonid leidnud, et see on liiga aeglane ja klientide ootustele pidevate tootetäiustuste saamiseks on raske vastata. Lisaks mõeldakse turbemeetmetele tavaliselt alles kogu protsessi lõpus, mis seab ettevõtted turbemurde tekkimise ohtu.

Konkurentsis püsimiseks on paljud ettevõtted kasutusele võtnud DevOpsi mudeli, mis prioriseerib paljude funktsioonidega, kuid rohkem aega võtvate suurte projektide asemel väiksemate, ent kvaliteetsete koodipakettide tarnimist. Selles raamistikus teevad tarkvara arenduse ja käituse meeskonnad koostööd, et kaasata testimine ja integreerimine kogu protsessi. Automatiseerimine, tüüpprotsessid ja koostöö aitavad meeskondadel kiiresti edasi liikuda kvaliteedis järeleandmisi tegemata.

DevSecOps on DevOpsi täiustus, mis kaasab turbe kogu protsessi igasse aspekti. Eesmärk on pöörata turbeprobleemidele tähelepanu projekti algusest peale. Selles raamistikus ei vastuta kogu meeskond mitte ainult kvaliteedi tagamise ja koodi integreerimise, vaid ka turvalisuse eest. Praktikas tähendab see seda, et meeskonnad arutavad turbeküsimusi juba kavandamisjärgus ja alustavad turbeprobleemide otsimist arenduskeskkondades, mitte ei oota arendustöö lõpuni jõudmist. Seda lähenemist – turbemeetmete kasutusele võtmist juba arendamise algstaadiumis – nimetatakse vahel ka turbe nihutamiseks vasakule (ehk ajaskaala algusesse).

Miks on DevSecOps oluline?

Ründajad kasutavad organisatsiooni andmetele ja varadele juurdepääsu saamiseks mitmesuguseid meetodeid, kuid üks levinud taktika on tarkvaranõrkuste ärakasutamine. Seda tüüpi turbemurded on kulukad, aeganõudvad ja olenevalt raskusastmest võivad ka ettevõtte mainet kahjustada. DevSecOpsi raamistik vähendab väärkonfiguratsioonide ja muude selliste nõrkustega tarkvara juurutamise ohtu, mida kuritahtlike mõtetega inimesed saaksid ära kasutada.

DevSecOpsi põhikomponendid

Edukas DevSecOpsi protsess sisaldab järgmisi komponente.

Pidev integreerimine

Pideva integreerimise korral kinnitavad arendajad oma koodi kesksesse hoidlasse mitu korda päevas. Seejärel kood integreeritakse ja seda testitakse automaatselt. See lähenemine võimaldab meeskondadel integreerimisprobleeme ja programmivigu märgata kohe protsessi alguses, selle asemel et oodata kuni lõpuni, kui lahendamist vajavaid probleeme võib olla juba rohkem.

Pidev kohaletoimetamine

Pidev kohaletoimetamine toetub pidevale integreerimisele, et muuta koodi viimine koostekeskkonnast vahekeskkonda automaatseks. Vahekeskkonnas testitakse lisaks komponentidele automaatselt ka tarkvara, et veenduda kasutajaliidese töötamises, koodi integreerimises, API-de töökindluses ja selles, et tarkvara suudab eeldatavate liiklusmahtudega hakkama saada. Selle lähenemise eesmärk on järjepidevalt pakkuda klientide jaoks väärtuslikku töövalmis koodi.

Pidev turve

Turbemeetmete kaasamine kogu tarkvaraarenduse elutsüklisse on DevSecOpsi olulisemaid komponente. See hõlmab ohtude modelleerimist juba protsessi algusjärgus ja automaatset turbetestimist kogu toote elutsükli jooksul, alustades arendajate enda keskkondadest. Testides tarkvara turbeprobleemide tuvastamiseks põhjalikult, varakult ja sageli, saavad ettevõtted tarkvara kasutajateni toimetada tõhusalt ja minimaalsete probleemidega.

Suhtlus ja koostöö

DevSecOps sõltub suurel määral üksikisikute ja meeskondade tihedast koostööst. Pidev integratsioon nõuab, et inimesed teeksid koodis ilmnenud vastuolude lahendamiseks koostööd; meeskonnad peavad tõhusalt suhtlema, et tegutseda ühtselt samade eesmärkide täitmise nimel.

DevSecOpsi juurutamine

Turvalisuse lisamine DevOpsi protsessi nõuab hoolikat planeerimist. Alustage aeglaselt protsessidega, mis tekitavad meeskonnale kõige vähem lisakohustusi, kuid toovad võimalikult palju kasu. Tüüpilisele DevOpsi sprindile turvalisuse lisamiseks on mitu võimalust.

Plaanimine ja arendamine

Lisaks sellele, et turvalisuse varajane kaasamine arendussprintidesse aitab nõrkusi hiljem vähendada, säästab see ka aega, kuna probleeme on lihtsam lahendada enne koodi koostamist ja integreerimist. Plaanimise ja arendamise ajal kasutage ohtude modelleerimist, et rakenduse võimalikud ohud tuvastada ja juba eos maandada. See aitab teil turvalisuse kohe algusest peale rakendusse sisse ehitada. Turbeprobleemide leidmiseks enne koodi kinnitamist ühishoidlasse rakendage automaatkontrollid (nt integreeritud arenduskeskkonna turbe lisandmoodulid), mis annavad arendajatele vahetut tagasisidet, kui nende kirjutatud koodis esineb potentsiaalseid turberiske. Koodi läbivaatuse etapis kaasake keegi, kellel on turbealased oskused ja teadmised olemas ning kes oskaks teile täiustusi soovitada.

Koodi kinnitamine

Üks eduka DevSecOpsi protsessi võtmeid on pidev integreerimine. Arendajad kinnitavad oma koodi kesksesse hoidlasse enamasti mitu korda päevas, et tagada integreerimisprobleemide varajane märkamine. Sellesse etappi on oluline lisada automaatsed turbekontrollid. See võib hõlmata näiteks kolmandate osapoolte loodud teekide ja sõltuvusseoste kontrollimist, komponentide testimist ja staatilist rakenduse turbetestimist. Samuti on oluline võtta kasutusele rollipõhine juurdepääsu reguleerimine, mis kaitseks teie pideva integreerimise ja pideva kohaletoimetamise taristut ründajate eest, kes soovivad käivitada ründekoodi või varastada identimisteavet.

Koostamine ja testimine

Automaatsete turbeskriptide käitamine testimiskeskkonnas aitab tuvastada potentsiaalseid probleeme, mida varem ei märgatud. Mõned turbetestid, mida saate selles etapis käitada, hõlmavad rakenduse dünaamilist turbetestimist, taristu kontrollimist, ümbrise kontrollimist, pilvkonfiguratsiooni valideerimist ja turbemeetmete aktsepteerimise testimist.

Töökeskkond

Pärast rakenduse juurutamist töökeskkonnas teevad mõned ettevõtted nõrkuste otsimiseks läbistusteste. Läbistustestide korral proovivad inimesed ründajat kehastades otsida võimalusi, kuidas rakendusse sisse murda.

Käitus

Ka parimad DevSecOpsi protsessid ei suuda üles leida kõiki probleeme. Seega on oluline rakendusi nõrkuste ja ohtude leidmiseks pidevalt jälgida. Analüüsiandmed aitavad teil hinnata, kas teie turbeseisund on paremaks muutunud, ja tõstavad esile valdkonnad, mida saaks optimeerida.

DevSecOpsi tööriistad ja tehnoloogiad

Turbetööriistade valimisel on oluline valida sellised vahendid, mis töötavad teie praeguse DevOpsi tehnoloogiaga hästi koos. See lihtsustab turvalisuse kaasamist kogu protsessi. Järgmine loend annab ülevaate mõnda tüüpi tööriistadest, mida teil võib vaja minna.

Koodtaristu kontrollimine

Tõhususe huvides kasutavad DevSecOpsi meeskonnad enamasti avatud lähtekoodiga tööriistu (nt Terraform), et taristut (nt võrke, virtuaalarvuteid ja koormusetasakaalustusi) hallata ja ette valmistada koodi kaudu, mitte käsitsi. Terraform aitab tagada, et taristu on sadades või tuhandetes serverites järjepidevalt häälestatud ja värskendatud. Töökeskkonnas väärkonfiguratsioonide juurutamise riski vähendamiseks kontrollivad koodtaristu kontrollimise tööriistad taristut automaatselt koodi tasemel, otsides potentsiaalseid probleeme turbepoliitikate ja turbestandardite nõuetele vastavusega.

Staatiline rakenduse turbetestimine

Enne koodi kompileerimist alustavad DevSecOpsi arendajad oma kohandatud koodi testimist turbenõrkuste tuvastamiseks. See aitab neil probleeme lahendada ilma versioonijärku mõjutamata. Staatilise rakenduse turbetestimise tööriistad muudavad selle protsessi automaatsete kontrollide ja reaalajas tagasiside abil lihtsamaks. Paljud tööriistad tuvastavad täpselt, milline kood on riskantne, ja soovitavad parandusi.

Tarkvarakoosteanalüüs

Üks viis rakendusi ja funktsioone tõhusamalt välja töötada on kasutada teiste tootjate lisandmooduleid ja raamistikke. Need valmistööriistad säästavad aega, kuid võivad kaasa tuua ka ohte, mille seas on näiteks litsentsimisprobleemid, halvasti kirjutatud kood või turbenõrkused. Tarkvarakoosteanalüüsi tööriistad tuvastavad rakendustes avatud lähtekoodiga komponendid ja võrdlevad neid litsentsirikkumiste ning turbe- ja kvaliteediprobleemide tuvastamiseks avalike (tasuta) või omandandmebaasidega.

Interaktiivne rakenduse turbetestimine

Kvaliteedikontrolli testimise ajal või rakenduse kasutamise käigus kontrollivad interaktiivsed rakenduse turbetööriistad koodi, et leida nõrkusi; kui koodis tuvastatakse probleeme, antakse sellest teada.

Dünaamiline rakenduse turbetestimine

Dünaamiline rakenduse turbetestimine jäljendab meetodeid, mida kurjategija võiks rakenduse ründamiseks kasutada. See testimine toimub rakenduse töötamise ajal ja põhineb eelmääratletud kasutusjuhtumitel.

Ümbrise kontrollimine

Ümbriseid kasutatakse DevSecOpsis laialdaselt, kuna need aitavad arendajatel hõlpsalt kasutusele võtta iseseisvaid koodikomponente. Ümbrise sees on ümbrise tõmmis, mis sisaldab ümbrise protsesse käitavat koodi. Need tõmmised on aga sageli loodud olemasolevate tõmmiste põhjal või võetud avalikest hoidlatest. Ümbrise kontrollimise tööriistad kontrollivad ümbriseid ja võrdlevad neid nõrkuste avalike või omandandmebaasidega, et leida võimalikke turbeprobleeme.

DevSecOpsi head tavad

DevSecOps pole pelgalt protsess ja tööriistad, vaid kogu töökultuuri muutus. Siit leiate mõned head tavad, mis aitavad selle raamistiku kasutuselevõtu muuta võimalikult sujuvaks.

Kultuuri ümberkujundamine

Ei tohi unustada, et inimestel võib olla raske oma harjumuspärast tööviisi muuta. Ka konfliktid pole võimatud. Et aidata neil kohaneda, väljendage selgelt organisatsiooni eesmärgid ja ootused, pakkuge ohtralt võimalusi avatud dialoogi jaoks ja võtke arvesse, et peate olema paindlik, kuni meeskonnad leiavad sellised tööriistad, protsessid ja rütmi, mis neile sobib.

Nõuete ja mõõdikute määratlemine

Pange paika turbe miinimumetalon. Suunised leiate valdkonna ja regulatiivsetest nõuetest või veebirakenduste peamisi kriitilisi riske käsitlevast artiklist Open Worldwide Application Security Project® (OWASP) Top Ten ning põhilisi tarkvaravigu kajastavast artiklist SANS Top 25 Software Errors. Kui olete nõuded kindlaks määranud, otsustage, milliseid mõõdikuid soovite oma edenemisel silma peal hoidmiseks jälgida.

Ettevaatlik alustamine

Turbe automatiseerimise tööriistad pakuvad koodist probleemide otsimiseks palju võimalusi, kuid nende kõigi sisselülitamine (eriti DevSecOpsi kasutuselevõtu varases järgus) võib teie meeskonnale koormavaks osutuda. Mõelge hoolikalt läbi, milliseid tööriistu rakendada ja kui paljusid probleeme otsida.

Ohtude modelleerimine

Töötage välja ohtude modelleerimise protsess, mis võib olla nii lihtne või üksikasjalik ja tehniline kui vaja. Selle lähenemise abil saate dokumenteerida oma rakenduse realistliku turbeülevaate, mis hõlmab:

  • teavet selle kohta, kuidas ründajad saaksid rakenduse konstruktsiooni enda huvides ära kasutada;
  • teavet selle kohta, kuidas nõrkused parandada;
  • erinevate probleemide prioriteeti.

Automaatika juurutamine

Automatiseerimine on DevSecOpsi protsessis oluline nii kvaliteedi kui ka kiiruse tagamiseks. Automaatsete turbekontrollide kaasamisega pideva integreerimise ja pideva kohaletoimetamise elutsükli igasse etappi saate oma rakenduste turvalisust täiustada ilma protsessi oluliselt aeglustamata.

Sõltuvusseoste haldamine

Enamik arendajaid kasutab rakenduste tõhusamaks koostamiseks muude tootjate pakette ja teeke. Probleem on selles, et mõnel neist lahendustest on turbevigu ja sugugi mitte kõik arendajad ei kanna hoolt selle eest, et tema lahendused käiksid ajaga kaasas. Riskide maandamiseks veenduge, et kasutatavad komponendid oleksid turberiskide suhtes kontrollitud, ja töötage nende värskendamiseks välja standardprotsess.

Hindamine ja täiustamine

Analüüsige regulaarselt, kuidas see protsess töötab, ja kohandage seda vastavalt vajadusele, et tagada teie organisatsiooni eesmärkide täitmine. Sprindi lõpuleviimise järel tehtav lahkamine, kus kedagi milleski ei süüdistata, aitab esile tõsta võimalusi, kuidas edaspidi asju paremini teha. Abiks võivad olla ka analüüsiandmed ja ohuteave, mis aitavad määratleda, kas teie praegune lähenemine jätab mõne turbega seotud vajaduse kõrvale.

DevSecOps pilvepõhiste rakenduste jaoks

Pilvepõhised rakendused on välja töötatud just pilvkeskkonna jaoks. Enamasti on need teenusepakkuja osas neutraalsed, mis tähendab, et neid saab mugavalt ühest pilvkeskkonnast teise üle viia. Kuna need on loodud olema äärmiselt skaleeritavad ja elastsed, kasutavad meeskonnad nende arendamiseks enamasti mikroteenuseid, ümbriseid ja automaatikat, mis teeb need DevSecOpsi protsessi jaoks ideaalselt sobivaks. Pideva turvalisuse, pideva integreerimise ja pideva kohaletoimetamise lähenemise kaasamine pilvepõhiste rakenduste arendusprotsessi võimaldab skaleeritavust toetada ilma turvalisuse osas kompromisse tegemata. Koodi ja kogu DevOpsi konveieri turvalisuse tagamiseks saate kasutada automaatseid turbelahendusi (nt Microsoft Defender for DevOps). Kui olete oma rakenduse pilvkeskkonnas juurutanud, jätkake selle jälgimist riskide tuvastamiseks. Pilvtalitlusüksuste kaitseplatvormid (CWPP) aitavad neid rakendusi ja nende aluseks olevaid andmeid kaitsta, tuvastades ja kõrvaldades mitmikpilvkeskkondades talitlusüksuste vastu suunatud ohud. Pilveturbeseisundi halduse (CSPM) lahendused tuvastavad teie keskkonnas väärkonfiguratsioonid ja nõrkused ning tegelevad nendega.

Lisateave Microsofti turbeteenuste kohta

Microsoft Defender for Cloud

Põhjaliku pilvepõhiste rakenduste kaitse platvormi abil saate mitmikpilv- ja hübriidkeskkondi kaitsta kogu elutsükli vältel, nii arendamise alguses kui ka käitusajal.

Microsoft Defender for Cloud Apps

Selle SaaS-lahenduse („tarkvara teenusena“) abil saate rakenduste kaitset moderniseerida, andmeid kaitsta ja rakenduste turbeseisundit paremaks muuta.

Microsoft Defender for Cloud Security Posture Management

Kontekstipõhine pilveturbeseisundi haldus aitab teil mitmikpilvkeskkondades keskenduda kõige kriitilisematele riskidele.

Microsoft Defender for DevOps

Mitmikpilv- ja mitme andmekonveieriga keskkondades saate kasutada ühtset DevOpsi turbehaldust.

Korduma kippuvad küsimused

  • DevSecOps on protsess, mis integreerib turvalisuse kogu tarkvaraarenduse elutsüklisse. Organisatsioonid võtavad selle lähenemise kasutusele selleks, et vähendada turbenõrkustega koodi avaldamise ohtu. Koostöö, automatiseerimise ja selgete protsesside kaudu jagavad meeskonnad turvalisuse eest vastutust, selle asemel, et jätta see kõige lõppu, kui probleemide lahendamine võib osutuda juba palju keerulisemaks ja kulukamaks.

  • DevSecOpsi fookuses on arendus, turvalisus ja käitus. Selle nimetusega viidatakse turbe integreerimisele tarkvaraarenduse igas etapis.

  • „Vasakule nihutamine“ on DevSecOpsi kontseptsioon, mille all mõeldakse turbetavade kaasamist arendusprotsessi algstaadiumist alates.

  • DevSecOpsi raamistik hõlmab pidevat integreerimist, pidevat kohaletoimetamist ja pidevat turvalisust. See on meetod, mille kasutamise korral teevad turbe- ja käitusmeeskonnad koostööd ja vastutavad ühiselt selle eest, et kvaliteetne tarkvara jõuaks tarbijateni kiiresti, ent võimalikult väheste turbenõrkustega.

  • DevSecOps pole üks konkreetne protsess, ent enamasti tähendab see, et projektidega töötavad inimesed jaotavad töö sprintideks ning iga sprint sisaldab järgmisi komponente: plaanimine ja arendamine, koostamine ja testimine ning töökeskkonnas kasutamine. Kogu sprindi jooksul kasutavad meeskonnad kvaliteedi tagamisega seotud probleemide pidevaks lahendamiseks, koodi pidevaks integreerimiseks ja turberiskide pidevaks testimiseks automatiseerimist.

Jälgige Microsofti turbeteenust