Saturs[Paslēpt][Rādīt]
Jūs droši vien jau zināt, kas ir DevOps, ja strādājat programmatūras nozarē.
Nav pārsteigums, ka lielākā daļa lielo uzņēmumu integrē tās metodoloģijas savās darbplūsmās, ņemot vērā to, ka izstrādātāji tās kļūst arvien populārākas.
Pirms dažiem mēnešiem vai pat gadiem lielākie programmatūras uzņēmumi regulāri izlaida jaunas programmas.
Bija pietiekami daudz laika, lai kods, lai izietu drošību un kvalitāti pārliecības pārbaudes; šīs procedūras veica neatkarīgas ekspertu grupas.
Pieaugot publisko mākoņu izmantošanai, daudzas plūsmas ir automatizētas, izmantojot jaunus rīkus un tehnoloģijas, ļaujot uzņēmumiem ātrāk attīstīties un būt soli priekšā konkurentiem.
Monolītās programmas sāka fragmentēties mazākos, autonomos komponentos pēc konteineru un mikropakalpojumu koncepcijas ieviešanas.
Tas palielināja programmatūras izveides un ieviešanas elastību.
Tomēr lielākajā daļā drošības un atbilstības uzraudzības sistēmu šāda attīstība nebija vērojama.
Lielākā daļa no viņiem nevarēja pārbaudīt savu kodu tik ātri, kā to prasīja tipiska DevOps vide.
SecDevOps ieviešana bija paredzēta, lai risinātu šo problēmu un pilnībā integrētu drošības testēšanu nepārtrauktās integrācijas (CI) un nepārtrauktās piegādes (CD) cauruļvados, vienlaikus uzlabojot izstrādes komandas zināšanas un zināšanas, lai atvieglotu iekšējo testēšanu un ielāpu.
Šajā rakstā jūs uzzināsit vairāk par SecDevOps, tostarp tā nozīmi, darbību, labāko praksi un daudz ko citu.
Tātad, kas ir SecDevOps?
DevOps ir ātrs, izturīgs un automatizēts, un tam pašam ir daudz priekšrocību.
Tomēr drošības integrācija ir ierobežota, jo ātrāka izvietošana nozīmē mazāk laika, lai identificētu un novērstu drošības nepilnības.
Ja drošība nav iekļauta izveides un izlaišanas procesā, izstrādājot lietotnes ar nolūku ātri izvietot (DevOps metode), iespējams, tās ir pakļautas būtiskiem drošības trūkumiem.
Šeit tiek izmantots SecDevOps (pazīstams arī kā DevSecOps vai DevOpsSec). Šī metode ietver drošības iekļaušanu izstrādes un izvietošanas procesos, kā norāda nosaukums.
SecDevOps ir paraugprakses kolekcija, kas izstrādāta, lai dziļi integrētu drošu kodēšanu DevOps izstrādes un izvietošanas procesos.
To bieži dēvē par grūtajiem DevOps.
Kamēr viņi veido savas lietotnes, tas mudina izstrādātājus rūpīgāk apsvērt drošības standartus un koncepcijas. Lai neatpaliktu no ātrās DevOps izlaišanas metodoloģijas, drošības procesi un pārbaudes tiek iekļautas ļoti agrīnā dzīves cikla posmā.
SecDevOps ir sadalīts divās galvenajās daļās:
Drošība kā kods (SaC)
Šajā brīdī DevOps konveijera rīkos un procedūrās ir jāiekļauj drošība.
No tā izriet, ka instrumenti priekš statiskā lietojumprogrammu drošības pārbaude (SAST) un dinamiskā lietojumprogrammu drošības pārbaude (DAST) automātiski skenējiet izveidotās lietojumprogrammas.
Šī iemesla dēļ automatizētie procesi ir prioritāri salīdzinājumā ar manuālajiem (lai gan manuālie procesi ir nepieciešami drošībai kritiskās lietojumprogrammas jomās).
DevOps procesos un rīku ķēdēs ir jāiekļauj drošība kā kods. Šiem rīkiem un to automatizācijai jābūt saderīgiem ar nepārtrauktās piegādes arhitektūru.
Infrastruktūra kā kods (IaC)
Šeit ir norādīta DevOps rīku kolekcija, ko izmanto infrastruktūras daļu konfigurēšanai un jaunināšanai, lai nodrošinātu drošu un pārvaldītu izvietošanas vidi.
Šajā procesā bieži tiek izmantoti tādi rīki kā Chef, Ansible un Puppet.
IaC ietver to pašu koda izstrādes vadlīniju izmantošanu, lai pārvaldītu operatīvo infrastruktūru, nevis manuālu konfigurācijas atjauninājumu vai izmaiņu veikšanu, izmantojot vienreizējus skriptus.
Rezultātā tā vietā, lai mēģinātu labot un atjaunināt izvietotos serverus, sistēmas problēmai ir nepieciešams izvietot konfigurācijas kontrolētu serveri.
Pirms lietojumprogrammas palaišanas SecDevOps izmanto nepārtrauktu un automatizētu drošības testēšanu. Lai garantētu jebkādu trūkumu agrīnu atklāšanu, tiek izmantota problēmu izsekošana.
Turklāt tajā tiek izmantota automatizācija un testēšana, lai nodrošinātu efektīvākas drošības pārbaudes visā programmatūras izstrādes dzīves ciklā.
Kāpēc uzņēmumam ir nepieciešams SecDevOps?
Mūsdienu digitālajā laikmetā drošībai ir jābūt priekšplānā un katras organizācijas galvenajai prioritātei.
Ieviešot SecDevOps modeli, uzņēmums parāda, ka drošības jomā tas ir proaktīvs, nevis reaģējošs.
Spēcīgu sistēmu un uzticamu, elastīgu lietojumprogrammu izstrādi veicina korporatīvā mentalitāte “Drošība vispirms”.
Mūsdienu ļoti konkurētspējīgajā IT tirgū organizācijas nevar atļauties, ka to ražošanas sistēmās ir drošības nepilnības.
Uzbrukumi, kuros tiek izmantoti ļaunprātīgi veidi, ir dārgi un bieži padara sistēmu vai organizāciju nelietojamu. SecDevOps organizācijā nodrošina nepārtrauktu drošības uzsvaru katrā konveijera līmenī.
Zinot, ka veidojat konkrētas programmas un sistēmas ar patērētājiem nepieciešamajām funkcijām un funkcionalitāti, jūs varat nodrošināt sirdsmieru.
Lai pārliecinātos, ka uzņēmums atbilst drošības paraugpraksei, standartiem un tiesību aktiem, drošības komandai ieteicams savlaicīgi un bieži iesaistīties visās inženiertehniskajās un neinženieriskajās iniciatīvās.
Kā darbojas SecDevOps?
SecDevOps rūpējas par drošības pārvietošanu pa kreisi. Tas nozīmē, ka ikvienam ir jāuzņemas atbildība par drošību jau no paša sākuma, pat plānošanas posmos, nevis jāievieš incidentu reaģēšanas sistēma.
Pretstatā tipiskajam tuvojas ūdenskritums, kas nodrošina drošību dzīves cikla beigās, šīs ir būtiskas izmaiņas. Drošība ir jāņem vērā visās izvēlēs un visā izstrādes dzīves ciklā.
Papildus draudu modeļu izmantošanai tie atbalsta uz testiem balstītu izstrādes vidi ar drošības pārbaudes gadījumiem.
Jums ir jāpārliecinās, ka procesā ir integrēta automatizēta drošības pārbaude un nepārtraukta integrācija.
Lai atrastu lietojumprogrammas iespējamās nepilnības, SecDevOps ir pilnībā jāizprot, kā tā darbojas.
Tagad, kad to apzināsit, varat to labāk aizsargāt no drošības riskiem. Lai to izdarītu visā izstrādes dzīves ciklā, bieži tiek izmantoti draudu modeļi.
Lai labāk izprastu, kā tas darbojas, apskatīsim tipisku SecDevOps procedūru.
Izstrādātāji izmanto versiju kontroles pārvaldības sistēmu. Rezultātā tiek atvieglota komunikācija par šādiem projektiem un viņi spēj sekot līdzi jebkādām izmaiņām programmatūras izstrādes iniciatīvās.
Strādājot pie kodēšanas projekta kopīgi, izstrādātāji var viegli sadalīt savus darbus, izmantojot filiāles.
- Izstrādātājs vispirms uzrakstīs sistēmas kodu.
- Pēc tam sistēma pieņems korekcijas.
- Pēc tam kods tiks izgūts no sistēmas un to pārbaudīs cits izstrādātājs. Lai atrastu drošības trūkumus vai ievainojamības, šajā posmā analizējiet statisko kodu.
Pēc šī posma parastā SecDevOps procedūra turpināsies šādi:
- Lietojumprogrammas izvietošanas vides izveide un drošības iestatījumu piemērošana sistēmai, izmantojot IaC tehnoloģijas, piemēram, Puppet, Chef un Ansible
- aizmugursistēmas, integrācijas, API, drošības un lietotāja interfeisa testu veikšana kā daļa no testēšanas automatizācijas komplekta ar tikko izvietotu lietojumprogrammu.
- lietojumprogrammas izvietošana un automātiskās dinamiskās testēšanas palaišana testa vidē.
- Kad šie testi ir veiksmīgi, izvietojiet lietojumprogrammu ražošanas vidē.
- Pastāvīgi sekojiet līdzi jebkādām aktīvām drošības problēmām ražošanas vidē.
SecDevOps priekšrocības
SecDevOps drošības komanda jau iepriekš nosaka pamatpolitikas.
Šie noteikumi var attiekties uz tādām lietām kā koda standarti, testēšanas ieteikumi, statiskās un dinamiskās analīzes norādījumi, aizliegumi izmantot vāju šifrēšanu un nedrošas API utt.
Turklāt tajos ir norādīti faktori, kuriem būtu nepieciešama manuāla drošības komandas darbība (piemēram, izmaiņas autentifikācijā vai autorizācijas modelī vai citās drošībai kritiskās jomās).
Iekļaujot to procesā, izstrādes komanda iegūst zināšanas drošības jomā.
To darot, tiek nodrošināts, ka cauruļvada galā ir pēc iespējas mazāk drošības trūkumu. Ja ievainojamība joprojām pastāv, būs vienkārši veikt izmeklēšanu, atjaunināt procedūru un veikt uzlabojumus.
Nepieciešamo izmaiņu veikšana drošības noteikumos un standartos ir vieglāka, izmantojot pamatcēloņu analīzi.
Citiem vārdiem sakot, ar katru ciklu rezultāts kļūs labāks. Vēl viens iteratīvo uzlabojumu mērķis ir nodrošināt mazāk traucējošu vēlu cikla eskalāciju.
Tālāk ir minētas dažas no SecDevOps ievērojamākajām priekšrocībām.
- Spēja ātri reaģēt uz izmaiņām un prasībām
- Kodēšanas ievainojamību agrīna atklāšana
- Uzlabota apsardzes vienību veiklība un ātrums
- Vairāk komandas sadarbības un komunikācijas
- Atbrīvot komandas locekļu resursus darbam ar vērtīgām darbībām, izmantojot automatizāciju
- Vairāk iespēju kvalitātes un drošības testēšanai, kā arī automatizētai būvēšanai
Efektīvas SecDevOps stratēģijas
SecDevOps integrē drošību, izstrādi un darbības, lai palīdzētu viņiem visiem strādāt pie viena mērķa, uzlabojot komandas darbu, procedūras un rīkus.
Kultūras nevēlēšanās, nepareizas komandas komunikācijas vai laika ierobežojumu dēļ drošības iekļaušana DevOps darbplūsmā var būt nedaudz biedējoša.
Lai gan nav nevienas veiksmīgas metodes, ko katrs uzņēmums varētu izmantot SecDevOps programmas izstrādei, ir dažas norādes un stratēģijas, kas varētu būt noderīgas.
Sāciet ar drošas attīstības un apmācības ieviešanu.
Tas nenozīmē, ka jums ir jāpiespiež inženieri kļūt par drošības speciālistiem vai apgūt visprogresīvākos drošības rīkus.
Bet jūs vēlaties padomāt par to, kā iemācīt viņiem drošības procedūras, kas palīdzēs aizsargāt jūsu programmu. T
o lai nodrošinātu, ka jūsu izstrādātāji var ātri saprast un izmantot saprātīgas drošības procedūras, jums vajadzētu piedāvāt drošības apmācību, kas ir unikāli pielāgota viņiem.
Izmantojiet versiju kontroli visās situācijās.
DevOps kontekstā katrai lietojumprogrammatūrai, modelim, diagrammai un skriptam ir jāizmanto efektīvi versiju veidošanas rīki un stratēģijas.
Versijas kontrole nodrošina daudzas drošības priekšrocības, un tā nodrošina norādījumus, lai:
- Nosakiet, kurš būvējums vai līdzeklis tika izmantots, kad radās drošības problēma.
- Sekojiet līdzi izstrādes aktivitātēm, lai nodrošinātu atbilstību juridiskajiem standartiem.
- Izpētiet un atrodiet visus kaitīgos vai neaizsargātos komponentus, kas ir pievienoti izstrādes procesam.
Pieņemiet uz cilvēkiem vērstas drošības koncepciju
Drošības ieviešanai nevajadzētu būt vienas komandas kompetencē.
Lai pārliecinātos, ka visi uzņemas atbildību par drošības standartu ievērošanu, jūsu uzņēmumam ir jāpieņem uz cilvēkiem vērsta drošības kultūra.
Mudiniet izstrādātājus, testētājus un citus darbiniekus uzņemties personisku atbildību par drošību papildus drošības apmācībai.
Sdrošības uzraudzība ir būtiska, taču tai ir arī jārodas indivīda iekšienē, un katram komandas dalībniekam par to ir jāuzņemas atbildība.
Automatizējiet regulāru darbu
Lielākajā daļā izveidoto DevSecOps sistēmu automatizācija tiek izmantota bieži un agri.
Piemēram, drošības testu automatizēšana atvieglo koda trūkumu pamanīšanu, kas paātrina izstrādi un palielina izstrādātāja produktivitāti.
Tas jo īpaši attiecas uz lieliem uzņēmumiem, kur inženieri dienas laikā bieži izmanto vairākas koda versijas.
SecDevOps ierobežojumi
Neskatoties uz to, ka SecDevOps ir jaunākā lietojumprogrammu izstrādes metodika un piedāvā vairākas priekšrocības salīdzinājumā ar parastajām metodēm.
Tomēr tam ir arī daži ierobežojumi, kas ir uzskaitīti zemāk.
- To nevar ātri ieviest, jo tā ir ilgstoša procedūra.
- Ir nepieciešams apmācīt izstrādātājus par drošām kodēšanas metodēm un biežām ievainojamībām, kas prasa laiku un papildu resursus.
- Ja pieteikums netiek pakļauts neatkarīgam drošības novērtējumam, var rasties interešu konflikts.
- Lietojumprogrammu izstrādes plānošanas fāze sākotnēji varētu aizņemt ilgāku laiku, jo ir plaši definētas politikas un procesi.
Secinājumi
Tā kā drošības komandas pastāvīgi atrod jaunus darbības veidus, SecDevOps rada entuziasmu un veicina radošumu.
Tā kā departamenti sadarbojas savā starpā, nevis veido konkurences saites, tas veicina organizācijas izaugsmi.
SecDevOps ieviešana piedāvā lielas tehniskas un finansiālas priekšrocības uzņēmumiem.
Lietojumprogrammu izstrāde un saistītie procesi ir drošāki un produktīvāki, ja pamatā ir drošība, saskaņā ar SecDevOps viedokli.
Atstāj atbildi