Turinys[Slėpti][Rodyti]
Tikriausiai jau žinote, kas yra „DevOps“, jei dirbate programinės įrangos pramonėje.
Nenuostabu, kad dauguma didelių įmonių integruoja savo metodikas į savo darbo eigą, nes jos vis labiau populiarėja tarp kūrėjų.
Prieš kelis mėnesius ar net metus didžiosios programinės įrangos kompanijos reguliariai išleisdavo naujas programas.
Buvo pakankamai laiko kodas, užtikrinantis saugumą ir kokybę užtikrinimo patikros; šias procedūras atliko nepriklausomos ekspertų grupės.
Padidėjus viešųjų debesų naudojimui, daugelis srautų buvo automatizuoti naudojant naujus įrankius ir technologijas, leidžiančias įmonėms greičiau vystytis ir išlikti žingsniu priekyje konkurentų.
Įdiegus konteinerius ir mikro paslaugų koncepciją, monolitinės programos pradėjo skaidytis į mažesnius, savarankiškus komponentus.
Tai padidino programinės įrangos kūrimo ir diegimo lankstumą.
Tačiau daugumoje saugumo ir atitikties stebėjimo sistemų tokios raidos nebuvo.
Dauguma jų negalėjo išbandyti savo kodo taip greitai, kaip to reikalauja tipinė „DevOps“ aplinka.
„SecDevOps“ diegimas buvo skirtas išspręsti šią problemą ir visiškai integruoti saugos testavimą į nuolatinės integracijos (CI) ir nuolatinio pristatymo (CD) vamzdynus, kartu patobulinant kūrimo komandos žinias ir patirtį, kad būtų lengviau atlikti vidinį testavimą ir pataisymą.
Šiame straipsnyje sužinosite daugiau apie SecDevOps, įskaitant jo svarbą, veikimą, geriausią praktiką ir daug daugiau.
Taigi, kas yra „SecDevOps“?
„DevOps“ yra greitas, tvirtas ir automatizuotas, be to, jis turi daugybę pranašumų.
Tačiau saugumo integravimas yra suvaržytas, nes greitesnis diegimas reiškia mažiau laiko saugumo trūkumams nustatyti ir pašalinti.
Jei kuriant programas siekiant greitai jas įdiegti saugumas neįtrauktas į kūrimo ir išleidimo procesą (DevOps metodas), gali atsirasti didelių saugos trūkumų.
Čia pradeda veikti SecDevOps (taip pat žinomas kaip DevSecOps arba DevOpsSec). Šis metodas apima saugumo įtraukimą į kūrimo ir diegimo procesus, kaip rodo pavadinimas.
„SecDevOps“ yra geriausios praktikos rinkinys, sukurtas siekiant giliai integruoti saugų kodavimą į „DevOps“ kūrimo ir diegimo procesus.
Jis dažnai vadinamas sunkiais „DevOps“.
Kuriant programas kūrėjai skatinami nuodugniau apsvarstyti saugumo standartus ir koncepcijas. Norint neatsilikti nuo greito „DevOps“ leidimo metodikos, saugos procesai ir patikros įtraukiami labai anksti gyvavimo ciklo metu.
„SecDevOps“ yra padalintas į dvi pagrindines dalis:
Saugumas kaip kodas (SaC)
Šiuo metu „DevOps“ dujotiekio įrankiai ir procedūros turėtų apimti saugumą.
Iš to išplaukia, kad įrankiai, skirti statinis programų saugos testavimas (SAST) ir dinaminis programų saugos testavimas (DAST) automatiškai nuskaito sukurtas programas.
Dėl šios priežasties pirmenybė teikiama automatizuotiems procesams, o ne rankiniams (nors saugumui svarbiose programos srityse reikalingi rankiniai procesai).
„DevOps“ procesai ir įrankių grandinės turi apimti apsaugą kaip kodą. Šie įrankiai ir jų automatizavimas turi būti suderinami su nepertraukiamo pristatymo architektūra.
Infrastruktūra kaip kodas (IAC)
Čia pateikiama nuoroda į „DevOps“ įrankių rinkinį, naudojamą infrastruktūros dalims konfigūruoti ir atnaujinti, kad būtų užtikrinta saugi ir valdoma diegimo aplinka.
Šiame procese dažnai naudojami įrankiai, tokie kaip „Chef“, „Ansible“ ir „Puppet“.
IaC apima tas pačias kodo kūrimo gaires, skirtas valdyti operacinę infrastruktūrą, o ne rankiniu būdu atlikti konfigūracijos atnaujinimus ar pakeitimus naudojant vienkartinius scenarijus.
Dėl to, užuot bandę pataisyti ir atnaujinti įdiegtus serverius, dėl sistemos problemos reikia įdiegti konfigūracijos valdomą serverį.
Prieš paleidžiant programą, SecDevOps naudoja nuolatinį ir automatinį saugos testavimą. Siekiant užtikrinti ankstyvą bet kokių trūkumų aptikimą, naudojamas problemų stebėjimas.
Be to, ji naudoja automatizavimą ir testavimą, kad užtikrintų efektyvesnes saugumo patikras per visą programinės įrangos kūrimo gyvavimo ciklą.
Kodėl įmonei reikalingas „SecDevOps“?
Šiuolaikiniame skaitmeniniame amžiuje saugumas turi būti svarbiausias ir kiekvienos organizacijos prioritetas.
Įdiegdama „SecDevOps“ modelį, įmonė parodo, kad saugumo srityje ji yra aktyvi, o ne reaktyvi.
Stiprių sistemų ir patikimų, atsparių taikomųjų programų kūrimą skatina įmonės mentalitetas „Saugumas pirmiausia“.
Šiuolaikinėje itin konkurencingoje IT rinkoje organizacijos negali sau leisti turėti saugumo trūkumų savo gamybos sistemose.
Išpuoliai, kuriuose naudojami išnaudojimai, yra brangūs ir dažnai paverčia sistemą ar organizaciją netinkama naudoti. „SecDevOps“ organizacijoje leidžia nuolat akcentuoti saugumą kiekviename dujotiekio lygyje.
Žinodami, kad kuriate konkrečias programas ir sistemas su funkcijomis ir funkcijomis, kurių reikia vartotojams, galite būti ramūs.
Siekiant užtikrinti, kad įmonė laikytųsi geriausios saugos praktikos, standartų ir teisės aktų, saugos komandai patariama anksti ir dažnai dalyvauti visose inžinerinėse ir neinžinerinėse iniciatyvose.
Kaip veikia „SecDevOps“?
„SecDevOps“ rūpinasi saugumo perkėlimu į kairę. Tai reiškia, kad kiekvienas turi prisiimti atsakomybę už saugumą nuo pat pradžių, net planavimo etapuose, o ne diegti reagavimo į incidentus sistemą.
Priešingai nei tipiškas krioklys artėja, dėl kurių saugumas patenka į gyvavimo ciklo pabaigą, tai yra reikšmingas pokytis. Visuose pasirinkimuose ir per visą kūrimo ciklą reikia atsižvelgti į saugumą.
Jie ne tik naudoja grėsmių modelius, bet ir palaiko bandymais pagrįstą kūrimo aplinką su saugos bandomaisiais atvejais.
Turite įsitikinti, kad automatinis saugos testavimas ir nuolatinis integravimas yra integruoti į procesą.
Norint rasti galimus programos trūkumus, „SecDevOps“ turi visiškai suprasti, kaip ji veikia.
Dabar, kai apie tai žinote, galite geriau apsaugoti jį nuo saugumo rizikos. Grėsmių modeliai dažnai naudojami tai padaryti per visą kūrimo ciklą.
Norėdami geriau suprasti, kaip ji veikia, pažvelkime į tipinę SecDevOps procedūrą.
Kūrėjai naudoja versijų valdymo sistemą. Dėl to palengvėja komunikacija apie tokius projektus ir jie gali sekti bet kokius programinės įrangos kūrimo iniciatyvų pokyčius.
Dirbdami su kodavimo projektu bendradarbiaudami, kūrėjai gali lengvai pasidalyti savo darbus naudodami filialus.
- Pirmiausia kūrėjas parašys sistemos kodą.
- Tada sistema priims pakeitimus.
- Tada kodas bus nuskaitytas iš sistemos ir jį išnagrinės kitas kūrėjas. Norėdami rasti saugos trūkumų ar pažeidžiamumų, šiame etape išanalizuokite statinį kodą.
Po šio etapo įprasta SecDevOps procedūra bus tęsiama taip:
- Programos diegimo aplinkos kūrimas ir saugos nustatymų taikymas sistemai naudojant IaC technologijas, pvz., „Lėlių“, „Chef“ ir „Ansible“
- atlieka backend, integravimo, API, saugos ir vartotojo sąsajos testus kaip testavimo automatizavimo rinkinio dalį su naujai įdiegta programa.
- diegti programą ir vykdyti jos automatinį dinaminį testavimą bandomojoje aplinkoje.
- Kai šie bandymai bus sėkmingi, įdiekite programą į gamybos aplinką.
- Nuolat stebėkite bet kokias aktyvias gamybos aplinkos saugumo problemas.
„SecDevOps“ pranašumai
„SecDevOps“ saugos komanda iš anksto nustato pagrindines strategijas.
Šios taisyklės gali apimti tokius dalykus kaip kodo standartai, testavimo rekomendacijos, statinės ir dinaminės analizės gairės, draudimai naudoti silpną šifravimą ir nesaugias API ir kt.
Be to, jie apibūdina veiksnius, dėl kurių reikia rankinio saugos komandos veiksmų (pvz., autentifikavimo arba autorizacijos modelio ar kitų saugumui svarbių sričių pakeitimai).
Kūrimo komanda įgyja patirties saugumo srityje, įtraukdama ją į procesą.
Taip užtikrinama, kad dujotiekio gale būtų kuo mažiau saugumo trūkumų. Jei pažeidžiamumas išliks, bus paprasta atlikti tyrimą, atnaujinti procedūrą ir atlikti patobulinimus.
Reikalingus saugos taisyklių ir standartų pakeitimus lengviau atlikti naudojant pagrindinės priežasties analizę.
Kitaip tariant, su kiekvienu ciklu rezultatas gerės. Dar vienas pasikartojančių patobulinimų tikslas – užtikrinti, kad būtų mažiau trikdančių vėlyvojo ciklo eskalacijų.
Toliau pateikiami keli ryškiausi SecDevOps pranašumai:
- Gebėjimas greitai reaguoti į pokyčius ir poreikius
- Ankstyvas kodavimo spragų aptikimas
- Pagerintas apsaugos padalinių judrumas ir greitis
- Daugiau komandinio bendradarbiavimo ir bendravimo
- Atlaisvinti komandos narių išteklius, kad jie galėtų dirbti su didelės vertės veikla automatizuojant
- Daugiau galimybių atlikti kokybės ir saugumo testavimą, taip pat automatizuotas kūrimas
Veiksmingos „SecDevOps“ strategijos
„SecDevOps“ integruoja saugumą, plėtrą ir operacijas, kad padėtų jiems visiems siekti vieno tikslo, pagerindama komandinį darbą, procedūras ir įrankius.
Dėl kultūrinio nenoro, netinkamo komandos bendravimo ar laiko apribojimų saugumo įtraukimas į „DevOps“ darbo eigą gali būti šiek tiek bauginantis.
Nors nėra vieno sėkmingo metodo, kurį kiekviena įmonė galėtų naudoti kurdama SecDevOps programą, yra tam tikrų patarimų ir strategijų, kurios gali būti naudingos.
Pradėkite nuo saugaus tobulinimo ir mokymų įgyvendinimo.
Tai nereiškia, kad turite priversti savo inžinierius tapti saugos specialistais arba įgyti pažangiausių saugos įrankių įgūdžių.
Bet jūs norite galvoti apie tai, kaip išmokyti juos saugos procedūrų, kurios padės apsaugoti jūsų programą. T
o užtikrinti, kad jūsų kūrėjai galėtų greitai suprasti ir naudoti patikimas saugos procedūras, turėtumėte pasiūlyti specialiai jiems pritaikytus saugos mokymus.
Visose situacijose naudokite versijos valdymą.
„DevOps“ kontekste kiekviena taikomoji programinė įranga, šablonas, diagrama ir scenarijus turi naudoti efektyvius versijų kūrimo įrankius ir strategijas.
Versijos valdymas suteikia daug saugos pranašumų ir leidžia pateikti nurodymus, kaip:
- Nustatykite, kuri konstrukcija ar funkcija buvo naudojama, kai iškilo saugos problema.
- Stebėkite plėtros veiklą, kad atitiktumėte teisinius standartus.
- Peržiūrėkite ir suraskite visus kenksmingus ar pažeidžiamus komponentus, kurie buvo įtraukti į kūrimo procesą.
Priimkite į žmones orientuoto saugumo koncepciją
Saugumo diegimas neturėtų priklausyti vienos komandos kompetencijai.
Kad visi prisiimtų atsakomybę už saugos standartų laikymąsi, jūsų įmonė turėtų perimti į žmones orientuotą saugumo kultūrą.
Skatinkite kūrėjus, bandytojus ir kitus darbuotojus prisiimti asmeninę atsakomybę už saugumą, be mokymų apie saugumą.
SSaugumo stebėjimas yra būtinas, tačiau jis taip pat turi kilti iš asmens, ir kiekvienas komandos narys turėtų prisiimti atsakomybę už tai.
Automatizuoti reguliarų darbą
Dauguma nusistovėjusių DevSecOps sistemų dažnai ir anksti naudoja automatizavimą.
Pavyzdžiui, automatizavus saugos testus lengviau pastebėti bet kokius kodo trūkumus, o tai pagreitina kūrimą ir padidina kūrėjo produktyvumą.
Tai ypač aktualu didelėse įmonėse, kur inžinieriai dažnai naudoja kelias kodo versijas per dieną.
„SecDevOps“ apribojimai
Nepaisant to, kad „SecDevOps“ yra naujausia taikomųjų programų kūrimo metodika ir turi keletą pranašumų, palyginti su įprastomis technikomis.
Tačiau jis taip pat turi keletą apribojimų, kurie išvardyti toliau.
- Ji negali būti greitai įdiegta, nes tai yra ilga procedūra.
- Būtina apmokyti kūrėjus saugių kodavimo metodų ir dažnų pažeidžiamumų, kuriems reikia laiko ir papildomų išteklių.
- Interesų konfliktas gali kilti, jei paraiškai neatliekamas nepriklausomas saugumo vertinimas.
- Programos kūrimo planavimo etapas iš pradžių gali užtrukti ilgiau dėl išsamios politikos ir procesų apibrėžimo.
Išvada
Saugos komandoms nuolat atrandant naujų veiklos būdų, „SecDevOps“ kursto entuziazmą ir skatina kūrybiškumą.
Kadangi skyriai bendradarbiauja tarpusavyje, o ne užmezga konkurencinius ryšius, tai skatina organizacijos augimą.
„SecDevOps“ diegimas įmonėms suteikia didelių techninių ir finansinių pranašumų.
„SecDevOps“ požiūriu programų kūrimas ir susiję procesai yra saugesni ir produktyvesni, kai pagrindas yra saugumas.
Palikti atsakymą